@rango-dev/widget-embedded 0.20.1-next.5 → 0.20.1-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/HeaderButtons/HeaderButtons.types.d.ts +0 -1
- package/dist/components/HeaderButtons/HeaderButtons.types.d.ts.map +1 -1
- package/dist/components/HeaderButtons/HomeButtons.d.ts.map +1 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +2 -2
- package/dist/hooks/useSwapInput.d.ts.map +1 -1
- package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/store/slices/data.d.ts.map +1 -1
- package/dist/types/config.d.ts +16 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/configs.d.ts +8 -0
- package/dist/utils/configs.d.ts.map +1 -1
- package/dist/utils/settings.d.ts +1 -1
- package/package.json +2 -2
- package/src/components/HeaderButtons/HeaderButtons.types.ts +0 -1
- package/src/components/HeaderButtons/HomeButtons.tsx +18 -25
- package/src/hooks/useSwapInput.ts +6 -2
- package/src/hooks/useSyncStoresWithConfig.ts +17 -34
- package/src/index.ts +2 -0
- package/src/store/slices/data.ts +5 -7
- package/src/types/config.ts +16 -3
- package/src/utils/configs.ts +41 -0
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Hc=Object.defineProperty;var i=(t,e)=>Hc(t,"name",{value:e,configurable:!0});import{MainEvents as cD,RouteEventType as mD,StepEventType as dD,StepExecutionBlockedEventStatus as fD,StepExecutionEventStatus as gD,useEvents as hD}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as SD,useWallets as Wl,Events as CD}from"@rango-dev/wallets-react";import{Networks as TD,WalletTypes as wD}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as vD}from"rango-types";import{Events as Pr,Provider as bm}from"@rango-dev/wallets-react";import{isEvmBlockchain as Im}from"rango-sdk";import ln,{createContext as Em,useEffect as $r,useRef as Wm,useState as Bm}from"react";import{useEffect as nn,useLayoutEffect as ba,useMemo as rn,useRef as sn}from"react";import pm,{createContext as um,useContext as cm,useEffect as mm,useRef as dm}from"react";import{create as am}from"zustand";import{persist as lm}from"zustand/middleware";var gr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0,customDestination:!0},bs=i((t,e,o)=>({config:{...gr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as Qc}from"rango-sdk";var Mo="c6381a79-2817-4602-83bf-6a641a409e32",Is="https://api.rango.exchange",Te="rango-swap-box";var hr={API_KEY:Mo};function _t(t){return hr[t]||""}i(_t,"getConfig");function Es(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),hr=e,hr}i(Es,"initConfig");var Ws=20,Bs=25,Ns="Roboto",yr="theme-widget";var _o,Dt=i(()=>_o||(_o=new Qc(_t("API_KEY"),_t("BASE_URL")),_o),"httpService");function Ft(t){return Array.from(new Set(t))}i(Ft,"removeDuplicateFrom");function Sr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Sr,"areEqual");function Ls(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ls,"debounce");function At(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(At,"containsText");var O=i(()=>document.getElementById(Te),"getContainer");function Do(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(Do,"getUniqueSwappersGroups");function Ps(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ps,"sortLiquiditySourcesByGroupTitle");function Le(t,e){return e?.[t]==="hidden"}i(Le,"isFeatureHidden");function Fo(t,e){return e?.[t]==="enabled"}i(Fo,"isFeatureEnabled");import{WalletState as Ye}from"@rango-dev/ui";import{readAccountAddress as Xc}from"@rango-dev/wallets-react";import{detectInstallLink as Kc,getCosmosExperimentalChainInfo as Yc,isEvmAddress as Jc,KEPLR_COMPATIBLE_WALLETS as rC,Networks as Ds}from"@rango-dev/wallets-shared";import Cr 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 $s=[jc.LEAP];import{BigNumber as _s}from"bignumber.js";var Oo=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),W=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new _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 Uo=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Ke=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),no=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function se(t){return W(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(se,"formatTooltipNumbers");function kr(t){switch(!0){case t.connected:return Ye.CONNECTED;case t.connecting:return Ye.CONNECTING;case!t.installed:return Ye.NOT_INSTALLED;default:return Ye.DISCONNECTED}}i(kr,"mapStatusToWalletState");function Fs(t,e,o,n){return o.filter(r=>!$s.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:Kc(l),state:p,type:r}})}i(Fs,"mapWalletTypesToWalletInfo");function Go(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Go,"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}=Xc(p),c=l.length>0,g=l.includes(m),f=m===Ds.Unknown;if(c&&!g&&!f)return;let h=m===Ds.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(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 Ho(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ho,"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:em(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=W(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 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"),Qo=i((t,e)=>{let o=Yc(Object.entries(t).map(([,n])=>n).filter(Zc));return o&&o[e]?.experimental},"isExperimentalChain");function Vo(t){return t?{...t,amount:W(t.amount,8,8),usdValue:W(t.usdValue,4,4)}:null}i(Vo,"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 Hs(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(Hs,"sortTokens");function Pe(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Pe,"tokensAreEqual");function Qs(t){return t.sort((e,o)=>+(o.state===Ye.CONNECTED)-+(e.state===Ye.CONNECTED)||+(o.state===Ye.DISCONNECTED||o.state===Ye.CONNECTING)-+(e.state===Ye.DISCONNECTED||e.state===Ye.CONNECTING))}i(Qs,"sortWalletsBasedOnConnectionState");function jo(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(jo,"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 Xo(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(Xo,"makeTokensBalance");var js=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var Xs=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.length>0&&!s.some(u=>Pe(u,p))||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=>Pe(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(Ps)},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 nm,French as rm,Japanese as im,Spanish as sm}from"@rango-dev/ui";var Ks=[{title:"English",label:"English",local:"en",SVGFlag:nm},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:sm},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:rm},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:im}],Ot="en";var Ys=[.5,1,3],Js=1,Zs=5,Rs=100,ea=0;var ta=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Ot,preferredBlockchains:[],slippage:Js,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=Le("theme",n),s=Le("language",n),a=Le("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:Ot},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function oa(t){return am()(lm((...e)=>({...Xs(...e),...ta(...e),...bs(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(oa,"createAppStore");var na=um(null);function d(){let t=cm(na);if(mm(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function ra(t){let e=dm();return e.current||(e.current=oa(t.config)),pm.createElement(na.Provider,{value:e.current},t.children)}i(ra,"AppStoreProvider");import yt from"bignumber.js";import{create as km}from"zustand";import{subscribeWithSelector as Tm}from"zustand/middleware";import{getLastSuccessfulStep as Sm}from"@rango-dev/queue-manager-rango-preset";import wk 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 ia(t,e){return e.find(o=>o.name===t)?.displayName}i(ia,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"getBlockchainShortNameFor");function sa(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(sa,"getSwapperDisplayName");function xr(t,e){return e.find(o=>Pe(o,t))??null}i(xr,"findToken");function vr(t,e){return e.find(o=>o.name===t)??null}i(vr,"findBlockchain");import{i18n as Oe}from"@lingui/core";import ve from"bignumber.js";import{PendingSwapNetworkStatus as Zo}from"rango-types";function Ko(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(Ko,"getRequiredWallets");function Yo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Yo,"isValidAddress");import{i18n as fe}from"@lingui/core";var Q=i(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:fe.t("No Routes Found."),description:fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function aa(t){switch(t.type){case 0:return t.diagnosisMessage??Q().noResultError.title;case 1:return Q().genericServerError;default:return""}}i(aa,"getQuoteErrorMessage");import{i18n as Jo}from"@lingui/core";var bt=i(()=>({connectWallet:Jo.t("Connect Wallet"),swap:Jo.t("Swap"),swapAnyway:Jo.t("Swap anyway"),ethWarning:Jo.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function la(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(la,"hasHighValueLoss");function Ar(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(Ar,"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=Oe.t({id:"Required: >= {min} {symbol}",values:{min:W(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Oe.t({id:"Required: > {min} {symbol}",values:{min:W(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Oe.t({id:"Required: <= {max} {symbol}",values:{max:W(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Oe.t({id:"Required: < {max} {symbol}",values:{max:W(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(br,"getLimitErrorMessage");function pa(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(pa,"getSwapButtonState");function Ir(t,e,o){return!((!o||o.lte(We))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(Ir,"canComputePriceImpact");function fm(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(fm,"requiredWallets");var gm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function hm(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=gm(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ve(r.amount).multipliedBy(s||0))}return o}i(hm,"getUsdFeeOfStep");function Ro(t,e){return t.reduce((o,n)=>o.plus(hm(n,e)),We)}i(Ro,"getTotalFeeInUsd");function Er(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(Er,"checkSlippageErrors");function ua(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(ua,"checkSlippageWarnings");function en(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(en,"getMinRequiredSlippage");function ca(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ca,"hasProperSlippage");function tn(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:g,initialQuote:f,destination:x}=t,h=s?.reduce((b,C)=>(b[C.chain]=C.address,b),{}),y=[];r?.forEach(b=>{let C=y.find(v=>v.blockchain===b.chain);C?C.addresses.push(b.address):y.push({blockchain:b.chain,addresses:[b.address]})});let A=!!f,T=Ft((f?.result?.swaps||[]).reduce((b,C)=>(b.push(C.from.blockchain,C.to.blockchain),C.internalSwaps&&Array.isArray(C.internalSwaps)&&C.internalSwaps.map(v=>{b.push(v.from.blockchain,v.to.blockchain)}),b),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:g??void 0,checkPrerequisites:A,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:h??{},slippage:u.toString(),...x&&{destination:x},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(b=>!a.includes(b)),swappersGroupsExclude:!1},...A&&{blockchains:T}}}i(tn,"createQuoteRequestBody");function ma(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(ma,"getWalletsForNewSwap");function Ut(t){return t.result?.outputAmount||null}i(Ut,"getQuoteOutputAmount");function da(t,e){return new ve(e).div(new ve(t)).minus(1).multipliedBy(100).toNumber()}i(da,"getPercentageChange");function fa(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(fa,"isOutputAmountChangedALot");function ga(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=>Ta(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=W(new ve(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=W(new ve(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Oe.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Oe.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Oe.t(" for input and network fee")),Oe.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Je(a.asset.blockchain,o)}})})}i(ga,"generateBalanceWarnings");function ha(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(ha,"calcOutputUsdValue");function ro(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Zo.NetworkChanged}i(ro,"isNetworkStatusInWarningState");function ya(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),ro(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Zo.WaitingForConnectingWallet:n=n||Oe.t("Waiting for connecting wallet");break;case Zo.WaitingForQueue:n=n||Oe.t("Waiting for other running tasks to be finished");break;case Zo.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(ya,"getSwapMessages");function Sa(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(Sa,"getLastConvertedTokenInFailedSwap");function Ca(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(Ca,"shouldRetrySwap");function ka(t,e,o,n,r,s){return t||!e&&!fm(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Yo(s,o)}i(ka,"confirmSwapDisabled");function Wr(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(Wr,"searchParamsToToken");function xa(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(xa,"getQuoteToTokenUsdPrice");function Br(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Br,"isNumberOfSwapsChanged");function Nr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!Sr(o,n)}i(Nr,"isQuoteSwappersUpdated");function Lr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!Sr(o,n)}i(Lr,"isQuoteInternalCoinsUpdated");function va(t,e){return Br(t,e)||Nr(t,e)||Lr(t,e)}i(va,"isQuoteChanged");function Ta(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(Ta,"getRequiredBalanceOfWallet");function at(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(at,"getPriceImpactLevel");function Aa(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=Sm(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=vr(s?s.toBlockchain:n.fromBlockchain,e),p=vr(r.toBlockchain,e),u=xr(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=xr(a,o),c=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}i(Aa,"createRetryQuote");function on(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&&la(a,m)){let g=Ro(t.result.swaps,r),f=at(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=en(t),u=s>Zs;if(ca(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:ua(t,s),minRequiredSlippage:p};return null}i(on,"generateQuoteWarnings");function $e(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:da(t.toString(),e.toString());return n&&n<0?n:null}i($e,"getPriceImpact");var Cm=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=Cm;var It=i((t,e)=>t?.usdPrice?new yt(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=ht(km()(Tm(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=ha(e.result?.outputAmount,xa(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}=Aa(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 Ia(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=U(),u=d().config,m=d().fetchStatus,c=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:x,setAffiliateWallets:h}=d(),y=rn(()=>u?.from?.tokens,[u?.from?.tokens]),A=rn(()=>u?.from?.blockchains,[u?.from?.blockchains]),T=rn(()=>u?.to?.tokens,[u?.to?.tokens]),w=rn(()=>u?.to?.blockchains,[u?.to?.blockchains]),b=sn(void 0),C=sn(void 0),v=sn(void 0),I=sn(void 0);nn(()=>{t(u?.amount?.toString()||"")},[u?.amount]),ba(()=>{if(m==="success"){let S=c.find(N=>N.name===u?.from?.blockchain),$=g.find(N=>Pe(N,u?.from?.token||null));(S||!S&&v.current)&&n(S??null),$?r({token:$,meta:{blockchains:c,tokens:g}}):!$&&b.current&&r({token:null}),v.current=u?.from?.blockchain,b.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),nn(()=>{s&&y&&(y.some(S=>Pe(S,s))||r({token:null})),l&&A&&(A.includes(l.name)||n(null))},[y,A]),nn(()=>{a&&T&&(T.some(S=>Pe(S,a))||e({token:null})),p&&w&&(w.includes(p.name)||o(null))},[T,w]),ba(()=>{if(m==="success"){let S=c.find(N=>N.name===u?.to?.blockchain),$=g.find(N=>Pe(N,u?.to?.token||null));(S||!S&&I.current)&&o(S??null),$?e({token:$,meta:{blockchains:c,tokens:g}}):!$&&C.current&&e({token:null}),I.current=u?.to?.blockchain,C.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),nn(()=>{f(u?.affiliate?.ref??null),x(u?.affiliate?.percent??null),h(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ia,"useSyncStoresWithConfig");import{useEffect as Am}from"react";import{create as wm}from"zustand";import{subscribeWithSelector as xm}from"zustand/middleware";var z=ht(wm()(xm((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:Xo(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=>Ho(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=>Ho(h,g)),x=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return x?.failed&&f&&r&&s([f],n,!1),f&&x?{...g,explorerUrl:x.explorerUrl,balances:qs(x,n),loading:!1}:g});return{loading:!1,balances:Xo(m),connectedWallets:m}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(m=>o.find(c=>Ho(c,m))?zs(m):m);return{loading:!1,balances:Xo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Tr(o);return n[r]??null}}))));import{allProviders as vm}from"@rango-dev/provider-all";function an(t,e){let o=vm({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 Ea(t,e){return an(t,e).map(r=>r.config.type)}i(Ea,"configWalletsToWalletName");function Wa(t,e){let o=z.use.clearConnectedWallet(),n=an(void 0,e);return Am(()=>{o(),n=an(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Wa,"useWalletProviders");var pn=Em({onConnectWallet:()=>{}});function Nm(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},[l,p]=Bm([]),{providers:u}=Wa(t.config.wallets,a),{connectWallet:m,disconnectWallet:c}=z(),g=Wm();Ia(),$r(()=>{n().catch(console.log)},[]),$r(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let f=r.filter(Im).map(h=>h.name),x=i((h,y,A,T,w)=>{if(y===Pr.ACCOUNTS)if(A){let b=Go(w.supportedBlockchains),C=Os(h,A,f,b,w.isContractWallet);p(C)}else c(h);if(y===Pr.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===Pr.NETWORK&&T.network){let b=`${h}-${T.network}`;g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,y,A,T,w)},"onUpdateState");return $r(()=>{l.length&&m(l,s)},[l,s]),ln.createElement(pn.Provider,{value:{onConnectWallet:h=>{g.current=h}}},ln.createElement(bm,{allBlockChains:r,providers:u,onUpdateState:x,autoConnect:!0},t.children))}i(Nm,"Main");function un(t){let{config:e,...o}=t;return ln.createElement(ra,{config:e},ln.createElement(Nm,{...o,config:e}))}i(un,"WidgetWallets");import As from"react";import{I18nManager as pS}from"@rango-dev/ui";import Lo,{useContext as uS,useEffect as Dc,useState as Fc}from"react";import{useQueueManager as Um}from"@rango-dev/queue-manager-rango-preset";import{useWallets as qm}from"@rango-dev/wallets-react";import{isEvmBlockchain as zm}from"rango-types";import cn,{Fragment as Gm}from"react";import{MemoryRouter as Hm,useInRouterContext as Qm}from"react-router";import{useWallets as Pm}from"@rango-dev/wallets-react";import{useEffect as $m,useRef as Mm}from"react";function Ba(){let{connect:t,state:e}=Pm(),o=Mm({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);$m(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(Ba,"useForceAutoConnect");import{useEffect as Mr,useRef as _r}from"react";import{createSearchParams as Dm,useLocation as Fm,useSearchParams as Om}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 _m}from"zustand";var Ae=ht(_m()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function Na(){let t=_r(!0),[e,o]=Om(),n=Fm(),r=_r(n.search),s=_r({}),a=U.use.fromBlockchain(),l=U.use.toBlockchain(),p=U.use.fromToken(),u=U.use.toToken(),m=U.use.setFromBlockchain(),c=U.use.setFromToken(),g=U.use.setToBlockchain(),f=U.use.setToToken(),x=U.use.inputAmount(),h=U.use.setInputAmount(),y=d().fetchStatus,A=d().blockchains(),T=d().tokens(),w=Ae.use.setSelectedSwap();return Mr(()=>{let b={};Dm(r.current).forEach((v,I)=>{b[I]=v}),s.current=b;let C=n.pathname.split(_.swaps+"/")[1]||null;C&&w(C)},[]),Mr(()=>{if(!t.current){let b="",C="",v="",I="",S="",$=s.current["autoConnect"];y!=="success"?(b=s.current["fromBlockchain"],C=s.current["fromToken"],v=s.current["toBlockchain"],I=s.current["toToken"],S=s.current["fromAmount"]||x):(b=a?.name||"",C=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),v=l?.name||"",I=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),S=x),o({...b&&{["fromBlockchain"]:b},...C&&{["fromToken"]:C},...v&&{["toBlockchain"]:v},...I&&{["toToken"]:I},...S&&{["fromAmount"]:S.toString()},...$&&{["autoConnect"]:$}},{replace:!0})}t.current=!1},[n.pathname,x,a,p,l,u]),Mr(()=>{if(y==="success"){let b=e.get("fromBlockchain"),C=e.get("fromToken"),v=e.get("toBlockchain"),I=e.get("toToken"),S=e.get("fromAmount"),$=A.find(M=>M.name===b),N=Wr(T,C,$||null),L=A.find(M=>M.name===v),k=Wr(T,I,L||null);$&&(m($),N&&c({token:N,meta:{blockchains:A,tokens:T}})),L&&(g(L),k&&f({token:k,meta:{blockchains:A,tokens:T}})),S&&h(S)}},[y]),null}i(Na,"UpdateUrl");function La({children:t,...e}){let o=Qm(),n=o?Gm:Hm,r=d().blockchains(),{canSwitchNetworkTo:s}=qm();Ba();let a=r.filter(zm);return Um({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(Na,null))}i(La,"AppRouter");import Ie from"react";import{useRoutes as nS}from"react-router-dom";import{i18n as Fn}from"@lingui/core";import{useManager as pg}from"@rango-dev/queue-manager-react";import{Alert as Up,Button as qp,css as Ti,Divider as ug,IconButton as zp,RefreshIcon as cg,SettingsIcon as mg,styled as Gp,Tooltip as dg,Typography as fg,WalletIcon as gg}from"@rango-dev/ui";import ee,{useEffect as Co,useLayoutEffect as hg,useRef as yg,useState as On}from"react";import{flushSync as Sg}from"react-dom";import{useNavigate as Cg}from"react-router-dom";import{i18n as lt}from"@lingui/core";import{Alert as ti,BalanceErrors as pf,Button as Bl,ChevronDownIcon as uf,ChevronLeftIcon as cf,Divider as Qt,MessageBox as mf,Modal as Nl,Typography as En,WalletIcon as df}from"@rango-dev/ui";import P,{useEffect as ff,useLayoutEffect as gf,useRef as hf,useState as Bt}from"react";import{useNavigate as yf}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 jm,css as Pa,darkTheme as qt,IconButton as Xm,keyframes as $a,styled as ge,TextField as Km}from"@rango-dev/ui";var io=300,Ym=$a({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Jm=$a({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Ma=ge("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),_a=ge("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Zm=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"}}}}),Da=ge(Zm,{alignSelf:"stretch",minHeight:"93px"}),Fa=ge(zt.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),Oa=ge("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Ua=ge(Xm,{position:"absolute",left:"$20"}),qa=ge("div",{paddingTop:"$20"}),za=Pa({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ga=ge(zt.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Ha=ge(jm,{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}}),Qa=ge("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),Va=Pa({paddingTop:"5px"}),ja=ge("div",{transition:`all ${io}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Xa=ge("div",{display:"flex"}),Ka=ge(Km,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),fn=ge(zt.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${Ym} ${io}ms ease-out`},false:{animation:`${Jm} ${io}ms ease-out`}}}}),Ya=ge("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as sf,Divider as Rr,Image as af,MessageBox as In,Modal as Al,SelectableWallet as lf,Typography as bl,WalletState as Il}from"@rango-dev/ui";import R,{useEffect as El,useState as ao}from"react";import{WalletState as Dr}from"@rango-dev/ui";import{useWallets as Rm}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as ed,WalletTypes as gn}from"@rango-dev/wallets-shared";import{useEffect as td,useState as od}from"react";var nd=Object.values(gn);function hn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=Rm(),{connectedWallets:u}=z(),m=d().blockchains(),c=Ea(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||nd,g=Fs(s,l,c,o),f=Qs(g),[x,h]=od(""),y=i(C=>!u.find(v=>v.walletType===C&&v.chain===o),"isExperimentalChainNotAdded"),A=i(async C=>{let v=s(C);try{if(x&&h(""),v.connected)await a(C);else{let I=!!g.find(S=>S.state===Dr.CONNECTED);if(!e?.multiWallets&&I)return;n?.(C),await p(C),r?.(C)}}catch(I){h("Error: "+I?.message)}},"handleClick"),T=i(()=>{let C=g?.filter(v=>v.state===Dr.CONNECTING)||[];for(let v of C)a(v.type)},"disconnectConnectingWallets");td(()=>()=>{T()},[]);let w=i(C=>C.filter(I=>I.state!=Dr.NOT_INSTALLED&&![gn.DEFAULT,gn.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(S=>S.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),b=i((C,v,I)=>Qo(I,v)&&y(C)&&!ed.includes(C)||C==gn.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(C=>!b(C.type,o??"",m)),error:x,handleClick:A}}i(hn,"useWalletList");import{i18n as Sl}from"@lingui/core";import{styled as kl,Typography as Jd,Wallet as Zd,WalletState as Rd}from"@rango-dev/ui";import Wt,{Fragment as ef,useState as Cl}from"react";import{BottomLogo as qd,Divider as zd,Header as Gd}from"@rango-dev/ui";import he from"react";import{useNavigate as rd}from"react-router-dom";function St(){let t=rd();return()=>t(-1)}i(St,"useNavigateBack");import{createTheme as qr,darkTheme as pd,lightTheme as ud}from"@rango-dev/ui";import{useEffect as Ra,useState as cd}from"react";import{theme as ad,darkColors as ld}from"@rango-dev/ui";var Ja=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]:Ja(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:Ja(e,-((l-5)*25))});return a},"generateRangeColors"),Fr=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 Za=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),id=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Za(o%52)+e;return Za(o%52)+e},"toAlphabeticName"),sd=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Or=i(t=>id(sd(5381,JSON.stringify(t))>>>0),"toHash");function Ur(t){let e=ad.colors,o=Fr({...e,...ld},!0,t?.dark),n=Fr(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:`${yr}-light-${Or(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${yr}-dark-${Or(p)}`,tokens:p}}return{light:a,dark:l}}i(Ur,"customizedThemeTokens");function Sn(t){let{colors:e,fontFamily:o=Ns,borderRadius:n=Ws,secondaryBorderRadius:r=Bs,mode:s="auto"}=t,[a,l]=cd("light"),{setTheme:p,theme:u}=d(),{dark:m,light:c}=Ur(e),g=qr({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,ud.className],x=[g.className,pd.className];if(c){let y=qr(c.id,c.tokens);f.push(y.className)}if(m){let y=qr(m.id,m.tokens);x.push(y.className)}return Ra(()=>{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)}},[]),Ra(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let y=f.join(" "),A=x.join(" ");return u==="auto"?a==="dark"?A:y:u==="dark"?A:y},"getActiveTheme")}}i(Sn,"useTheme");import{ChevronLeftIcon as fd}from"@rango-dev/ui";import ol from"react";import{darkTheme as md,IconButton as dd,styled as Cn}from"@rango-dev/ui";var Ue=Cn(dd,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),el=Cn("div",{position:"absolute",background:"$secondary500",[`.${md} &`]:{$$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"}),tl=Cn("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function zr(t){return ol.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},ol.createElement(fd,{color:"black",size:16}))}i(zr,"BackButton");import{i18n as gd}from"@lingui/core";import{Button as hd,Typography as yd}from"@rango-dev/ui";import Gr from"react";function Hr(t){return Gr.createElement(Gt,null,Gr.createElement(hd,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Gr.createElement(yd,{variant:"label",size:"medium",color:"error500"},gd.t("Cancel"))))}i(Hr,"CancelButton");import{i18n as Sd}from"@lingui/core";import{Tooltip as Cd,WalletIcon as kd}from"@rango-dev/ui";import kn from"react";function Qr(t){return kn.createElement(Cd,{container:t.container,side:"top",content:Sd.t("Connect Wallet")},kn.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&kn.createElement(el,null),kn.createElement(kd,{size:18,color:"black"})))}i(Qr,"WalletButton");import{i18n as xn}from"@lingui/core";import{NotificationsIcon as Md,Popover as _d,RefreshIcon as Dd,SettingsIcon as Fd,Tooltip as vn,TransactionIcon as Od}from"@rango-dev/ui";import ce from"react";import{i18n as Ed}from"@lingui/core";import{ChainToken as ll,ChevronRightIcon as Wd,ListItemButton as Bd,Typography as Nd}from"@rango-dev/ui";import qe from"react";import{useNavigate as Ld}from"react-router-dom";import{create as Td}from"zustand";import{persist as wd,subscribeWithSelector as xd}from"zustand/middleware";var Me=ht(Td()(wd(xd((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 nl=Tn("div",{padding:"$10",width:"350px",minHeight:"150px"}),rl=Tn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),il=Tn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),sl=Tn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as vd}from"@lingui/core";import{Divider as Ad,NoNotificationIcon as bd,Typography as Id}from"@rango-dev/ui";import wn from"react";function al(){return wn.createElement(sl,null,wn.createElement(bd,{color:"secondary",size:26}),wn.createElement(Ad,{size:12}),wn.createElement(Id,{variant:"body",size:"medium",color:"neutral700"},vd.t("You have no notification")))}i(al,"NotificationNotFound");var Pd=4;function Vr(){let t=Ld(),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,Pd),l=i(p=>{e(p),t(`${_.swaps}/${p}`)},"handleOnClick");return qe.createElement(nl,null,a.length?qe.createElement(rl,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(Bd,{key:p.requestId,onClick:()=>l(p.requestId),title:qe.createElement(Nd,{variant:"body",size:"small",color:"$neutral700"},Ed.t(p.event.message)),id:p.requestId,start:qe.createElement(il,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(ll,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(ll,{tokenImage:c?c.image:"",chainImage:g?g.logo:"",size:"small"}))),end:qe.createElement(Wd,{size:12,color:"gray"})})})):qe.createElement(al,null))}i(Vr,"NotificationContent");import{Typography as $d}from"@rango-dev/ui";import pl from"react";function ul(){let{getUnreadNotifications:t}=Me(),e=t().length;return e?pl.createElement(tl,null,pl.createElement($d,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(ul,"UnreadNotificationsBadge");function jr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:s}=t,{config:{features:a}}=d(),l=Le("notification",a);return ce.createElement(ce.Fragment,null,ce.createElement(vn,{container:O(),side:"top",content:xn.t("Refresh")},ce.createElement(Ue,{variant:"ghost",size:"small",onClick:o,disabled:!o},ce.createElement(Dd,{size:16,color:o?"black":"gray"}))),!l&&ce.createElement(vn,{container:O(),side:"top",content:xn.t("Notifications")},ce.createElement(_d,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:ce.createElement(Vr,null)},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:s},ce.createElement(Md,{size:18,color:"black"}),ce.createElement(ul,null)))),ce.createElement(vn,{container:O(),side:"top",content:xn.t("Settings")},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:r},ce.createElement(Fd,{size:18,color:"black"}))),ce.createElement(vn,{container:O(),side:"top",content:xn.t("Transactions History")},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:n},ce.createElement(Od,{size:18,color:"black"}))))}i(jr,"HomeButtons");import{darkTheme as Ud,styled as Xr}from"@rango-dev/ui";var cl=Xr("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",[`.${Ud} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"100vh"},false:{height:"auto !important"}}}}),ml=Xr("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"}}}}),dl=Xr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Hd(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=z.use.connectedWallets(),{config:{features:u,theme:m}}=d(),{activeTheme:c}=Sn(m||{}),g=Le("connectWalletButton",u),f=Ae.use.connectWalletsButtonDisabled(),x=St(),h=i(()=>{!f&&n.onWallet&&n.onWallet()},"onConnectWallet"),y=typeof n.hasBackButton>"u"||n.hasBackButton;return he.createElement(cl,{ref:e,fixedHeight:l,id:Te,className:c()},he.createElement(Gd,{prefix:he.createElement(he.Fragment,null,y&&he.createElement(zr,{onClick:x})),title:n.title,suffix:he.createElement(he.Fragment,null,n.suffix,n.onWallet&&!g&&he.createElement(Qr,{container:O(),onClick:h,isConnected:!!p?.length}),n.onCancel&&he.createElement(Hr,{onClick:n.onCancel}))}),he.createElement(ml,{noPadding:s},o),(a||r)&&he.createElement(dl,null,he.createElement("div",{className:"footer__content"},r),a&&he.createElement("div",{className:"footer__logo"},he.createElement(zd,{size:12}),he.createElement(qd,null))))}i(Hd,"LayoutComponent");var X=he.forwardRef(Hd);X.displayName="Layout";import{Divider as Kd,Modal as Yd}from"@rango-dev/ui";import Yr from"react";import{i18n as Ht}from"@lingui/core";import{Image as jd,MessageBox as Kr,WalletState as Xd}from"@rango-dev/ui";import Et from"react";import{keyframes as Qd,styled as An}from"@rango-dev/ui";var dv=An("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),fl=An("div",{position:"relative"}),Vd=Qd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),gl=An("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Vd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),hl=An("div",{"& img":{borderRadius:"50%"}});function yl(t){let{state:e,image:o,error:n}=t;return e===Xd.CONNECTED?Et.createElement(Kr,{type:"success",title:Ht.t("Wallet Connected"),description:Ht.t("Your wallet is connected, you can use it to swap.")}):n?Et.createElement(Kr,{type:"error",title:Ht.t("Failed to Connect"),description:n||Ht.t("Your wallet is not connected. Please try again.")}):Et.createElement(Kr,{type:"loading",title:Ht.t("Connecting to your wallet"),description:Ht.t("Click connect in your wallet popup."),icon:Et.createElement(fl,null,Et.createElement(hl,null,Et.createElement(jd,{src:o,size:45})),Et.createElement(gl,null))})}i(yl,"ModalContent");function so(t){let{open:e,onClose:o,...n}=t;return Yr.createElement(Yd,{open:e,onClose:o,container:document.getElementById(Te)||document.body},Yr.createElement(yl,{...n}),Yr.createElement(Kd,{direction:"vertical",size:32}))}i(so,"WalletModal");var tf=kl("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),of=kl("div",{textAlign:"center"}),bn=3e3,Jr=300;function Tl(){let{config:t,fetchStatus:e}=d(),[o,n]=Cl(!1),[r,s]=Cl(""),a=null,{list:l,handleClick:p,error:u}=hn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},Jr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},bn)}}),m=l.find(f=>f.type===r),c=m?.image||"",g=m?.state||Rd.NOT_INSTALLED;return Wt.createElement(X,{header:{title:Sl.t("Connect Wallets")}},Wt.createElement(of,null,Wt.createElement(Jd,{variant:"title",size:"xmedium",align:"center"},Sl.t("Choose a wallet to connect.")),Wt.createElement(tf,null,l.map((f,x)=>{let h=`wallet-${x}-${f.type}`;return Wt.createElement(ef,{key:h},Wt.createElement(Zd,{...f,container:O(),onClick:y=>{p(y)},isLoading:e==="loading"}))}),Wt.createElement(so,{open:!!o,onClose:()=>n(!1),image:c,state:g,error:u}))))}i(Tl,"WalletsPage");import{keyframes as nf,styled as Zr}from"@rango-dev/ui";var wl=Zr("div",{position:"relative"}),rf=nf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),xl=Zr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${rf} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vl=Zr("div",{"& img":{borderRadius:"50%"}});function ei(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=z.use.connectedWallets(),{blockchains:p}=d(),[u,m]=ao(""),[c,g]=ao(null),[f,x]=ao(!1),[h,y]=ao(null),{suggestAndConnect:A}=Wl(),T=null,{list:w,error:b,handleClick:C}=hn({config:a,chain:e,onBeforeConnect:k=>{T=setTimeout(()=>{m(k)},Jr)},onConnect:()=>{T&&clearTimeout(T),setTimeout(()=>{m("")},bn)}}),[v,I]=ao(w),S=w.length,$=r&&S-r>0,N=i(async k=>{x(!1),y("in-progress");try{await A(k.walletType,k.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");El(()=>{I(k=>{let M=w.findIndex(E=>o(E.type,e));return $&&M>1?[w[M]].concat(w.filter((E,G)=>G!==M)):k.map(E=>w.find(G=>G.type===E.type)??E)})},[JSON.stringify(w)]);let L=document.getElementById(Te);return El(()=>{let k=null;return(h==="completed"||h==="rejected")&&(k=setTimeout(()=>y(null),bn)),()=>{k&&clearTimeout(k)}},[h]),R.createElement(R.Fragment,null,v.slice(0,r).map(k=>{let M=Vs({connectedWallets:l,walletType:k.type,chain:e}),E=M?jo(M):"",G=Qo(p(),e),J=!l.find(Se=>Se.walletType===k.type&&Se.chain===e),te=G&&J&&k.state===Il.CONNECTED,H=te?ze.t({id:"Add {chain} chain",values:{chain:e}}):E,re=i(()=>{k.state===Il.DISCONNECTED?C(k.type):te?(g({walletType:k.type,chain:e,address:M??""}),x(!0)):n({walletType:k.type,chain:e,address:M??""})},"onClick"),ye=c?.chain?ia(c.chain,p()):void 0;return R.createElement(R.Fragment,null,R.createElement(so,{open:u===k.type,onClose:()=>m(""),image:k.image,state:k.state,error:b}),!!c&&R.createElement(Al,{open:!!c&&f,container:L,onClose:()=>{g(null)}},R.createElement(In,{title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),type:"warning",description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}})},R.createElement(Rr,{size:18}),R.createElement(Rr,{size:32}),R.createElement(sf,{onClick:N.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),h&&R.createElement(Al,{open:!!h,onClose:y.bind(null,null),container:L},h==="in-progress"&&R.createElement(In,{type:"loading",title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}}),icon:R.createElement(wl,null,R.createElement(vl,null,R.createElement(af,{src:k.image,size:45})),R.createElement(xl,null))}),h==="completed"&&R.createElement(In,{type:"success",title:ze.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ye}}),description:ze.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ye}})}),h==="rejected"&&R.createElement(In,{type:"error",title:ze.t("Request Rejected"),description:ze.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ye}})}),R.createElement(Rr,{direction:"vertical",size:32})),R.createElement(lf,{key:k.type,description:H,onClick:re,selected:o(k.type,e),...k}))}),$&&R.createElement(Da,{selected:!1,onClick:s},R.createElement(bl,{variant:"label",size:"medium"},ze.t("Show more wallets"),R.createElement(bl,{variant:"label",size:"medium",color:"$primary"},"\xA0+",S-(r??0)))))}i(ei,"WalletList");var Sf=2;function Ll(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:g,setCustomDestination:f}=U(),{connectedWallets:x,selectWallets:h}=z(),[y,A]=Bt(""),[T,w]=Bt([]),[b,C]=Bt(""),[v,I]=Bt(null),[S,$]=Bt(g),[N,L]=Bt(!!g),k=hf(null),M=Ko(p),E=l.find(D=>D.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),G=i(D=>!!p?.result?.swaps.find(Y=>Y.from.blockchain===D),"isWalletRequiredFor"),[J,te]=Bt(x.filter(D=>D.selected&&M.includes(D.chain))),H=l.find(D=>D.name===E?.name),re=i((D,Y)=>!!J.find(j=>j.walletType===D&&j.chain===Y&&j.selected&&(G(Y)||!G(Y)&&!S)),"isSelected"),ye=!!S&&N&&H&&!Yo(H,S),Se=i(()=>{L(!1),$(""),te(D=>{let Y=!1;return D.map(j=>!Y&&j.chain===E?.name?(Y=!0,{...j,selected:!0}):j)})},"resetCustomDestination"),Ce=i(D=>{if(y&&A(""),re(D.walletType,D.chain))return;let j=x.find(Ee=>Ee.walletType===D.walletType&&Ee.chain===D.chain);j&&(n(),D.chain===E?.name&&N&&(L(!1),$("")),te(Ee=>Ee.filter(ue=>ue.chain!==D.chain).concat({...j,selected:!0})))},"onChange"),Mt=i(()=>{let D=J.filter(Y=>Y.selected);h(D),u(D),f(S),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{w([]),C(""),I(null);let D=x.filter(Ee=>J.find(ue=>ue.chain===Ee.chain&&ue.walletType===Ee.walletType)),Y=await r?.({selectedWallets:D,customDestination:S}),j=Y.warnings;j?.balance?.messages&&w(j.balance.messages),j?.quoteUpdate&&I(j.quoteUpdate),Y.error&&C(aa(Y.error)),!Y.error&&(!j?.balance?.messages.length||0>0)?Mt():w(j?.balance?.messages??[])},"onConfirmWallets");ff(()=>{te(D=>D.concat(x.filter(Y=>!!!D.find(Ee=>Ee.chain===Y.chain)&&Y.selected&&M.includes(Y.chain))))},[x.length]),gf(()=>{N&&k.current&&setTimeout(()=>{k?.current?.scrollIntoView({behavior:"smooth"})},io)},[N]);let it=document.getElementById(Te),Xe=yf();return P.createElement(Nl,{open:e,onClose:()=>{m||Xe("../",{replace:!0}),o()},dismissible:!y,container:it,...!y&&{footer:P.createElement(Xa,null,P.createElement(Bl,{loading:s,disabled:ka(s,N,S,p,J,E),onClick:oo,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...y&&{containerStyle:{padding:"$0"},header:P.createElement(Oa,null,P.createElement(Ua,{variant:"ghost",onClick:A.bind(null,"")},P.createElement(cf,{size:16})),P.createElement(En,{variant:"headline",size:"small"},lt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(y,l)}})))},anchor:"center"},P.createElement(Nl,{open:T.length>0,onClose:w.bind(null,[]),container:it},P.createElement(mf,{title:lt.t("Insufficient account balance"),type:"error",description:P.createElement(pf,{messages:T??[]})},P.createElement(Bl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Mt},lt.t("Proceed anyway")))),y&&P.createElement(qa,null,P.createElement("div",{className:za()},P.createElement(ei,{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(ti,{variant:"alarm",type:"error",title:lt.t(b)}),P.createElement(Qt,{size:12})),v&&P.createElement(P.Fragment,null,P.createElement(ti,{variant:"alarm",type:"warning",title:dn(v)}),P.createElement(Qt,{size:12})),P.createElement(Ya,null,M.map((D,Y)=>{let j=l.find(de=>de.name===D),Ee=`wallet-${Y}`,ue=Y===M.length-1;return P.createElement("div",{key:Ee},P.createElement(Ma,null,P.createElement(En,{variant:"title",size:"xmedium"},lt.t({id:"Your {blockchainName} wallets",values:{blockchainName:j?.shortName}})),P.createElement(En,{variant:"label",color:"$neutral700",size:"medium"},lt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:j?.shortName}}))),P.createElement(Qt,{size:24}),P.createElement(_a,null,P.createElement(ei,{chain:D,isSelected:re,selectWallet:Ce,limit:Sf,onShowMore:()=>A(j?.name??"")})),!ue&&P.createElement(Qt,{size:32}),ue&&a?.customDestination&&P.createElement(Qa,null,P.createElement(Ga,{ref:k,selected:N,open:N,onOpenChange:de=>{de?G(E?.name??"")||te($o=>$o.map(st=>st.chain===E?.name?{...st,selected:!1}:st)):Se()}},P.createElement(Fa,{onClick:()=>L(de=>!de)},P.createElement(Ha,{fullWidth:!0,variant:"default",suffix:P.createElement(ja,{orientation:N?"up":"down"},P.createElement(uf,{size:10,color:"gray"}))},P.createElement("div",{className:"button__content"},P.createElement(df,{size:18,color:"info"}),P.createElement(Qt,{size:4,direction:"horizontal"}),P.createElement(En,{variant:"label",size:"medium"},lt.t("Send to a different address"))))),P.createElement(fn,{open:N},P.createElement(P.Fragment,null,P.createElement(Qt,{size:4}),P.createElement(Ka,{autoFocus:!0,placeholder:lt.t("Your destination address"),value:S,onChange:de=>{$(de.target.value)}})))),ye&&P.createElement("div",{className:Va()},P.createElement(ti,{variant:"alarm",type:"error",title:lt.t({values:{destination:S},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Ll,"ConfirmWalletsModal");import{Divider as rg}from"@rango-dev/ui";import _e from"react";import{i18n as li}from"@lingui/core";import{Alert as wf,ChevronDownIcon as xf,ChevronRightIcon as vf,Divider as pi,Image as Jl,InfoIcon as Af,QuoteCost as bf,StepDetails as If,TokenAmount as Ef,Tooltip as Nn,Typography as uo}from"@rango-dev/ui";import Zl from"bignumber.js";import B,{useLayoutEffect as Wf,useRef as Rl,useState as Bf}from"react";import{styled as lo}from"@rango-dev/ui";var Pl=lo("div",{paddingBottom:"$10"}),oi=lo("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),$l=lo("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),Ml=lo("div",{paddingBottom:"$15"}),_l=lo("div",{width:"100%",display:"flex"});import*as Wn from"@radix-ui/react-collapsible";import{css as ni,darkTheme as Ze,Image as Dl,styled as Ge,Typography as Cf}from"@rango-dev/ui";var ri=300,Fl=Ge(Wn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Ze} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ze} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Ol=ni({padding:"$10 $15"}),Ul=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"}}}]}),ql=ni({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),zl=ni({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ze} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Gl=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:{[`& ${Dl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Dl}`]:{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"}}),ii=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"}}}}),Hl=Ge(fn,{width:"100%",background:"inherit"}),si=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ri}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),vA=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Ql=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ze} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Vl=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ai=Ge(Cf,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),jl=Ge("div",{display:"flex",flexWrap:"wrap"});import{TokenAmount as Yl}from"@rango-dev/ui";import Bn from"react";import{css as kf,styled as Tf}from"@rango-dev/ui";var Xl=Tf("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Kl=kf({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function po(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Bn.createElement(Xl,null,Bn.createElement(Yl,{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:Kl()}),Bn.createElement(Yl,{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(po,"QuoteSummary");function ui(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]=Bf(t.expanded),f=Rl(null),x=Rl(c),h=W(Ro(e.result?.swaps??[],p),2,2),y=Oo(Uo(e.result?.swaps)),A=W(o.value,6,6),T=W(n.value,6,6),w=n.usdValue?W(n.usdValue,4,4):"",b=$e(o.usdValue,n.usdValue??null),C=W(b,2,2),v=at(b??0),S=i(L=>L.map((k,M)=>{let E,G=r?.type===3&&r.swap.swapperId===k.swapperId||r?.type===4&&r.recommendedSlippages?.has(M),J=s?.type===2&&s.recommendedSlippages?.has(M);return G?E="error":J&&(E="warning"),{swapper:{displayName:sa(k.swapperId,m),image:k.swapperLogo},from:{token:{displayName:k.from.symbol,image:k.from.logo},chain:{displayName:Je(k.from.blockchain,u),image:k.from.blockchainLogo},price:{value:M===0?W(o.value,6,6):W(k.fromAmount,6,6),usdValue:W((k.from.usdPrice??0)*parseFloat(k.fromAmount),4,4),realValue:se(M===0?o.value:k.fromAmount),realUsdValue:se(new Zl(k.from.usdPrice??0).multipliedBy(k.fromAmount))}},to:{token:{displayName:k.to.symbol,image:k.to.logo},chain:{displayName:Je(k.to.blockchain,u),image:k.to.blockchainLogo},price:{value:W(k.toAmount,6,6),usdValue:W((k.to.usdPrice??0)*parseFloat(k.toAmount),4,4),realValue:se(k.toAmount),realUsdValue:se(new Zl(k.to.usdPrice??0).multipliedBy(k.toAmount))}},state:E,alerts:G||J?B.createElement(Ml,null,B.createElement(wf,{type:G?"error":"warning",title:r?.type===3?r?.recommendation:li.t("Slippage Error:"),footer:B.createElement(_l,null,r?.type===3&&B.createElement(B.Fragment,null,B.createElement(uo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),B.createElement(pi,{direction:"horizontal",size:8}),B.createElement(uo,{size:"xsmall",variant:"body",color:"neutral900"},"|"),B.createElement(pi,{direction:"horizontal",size:8}),B.createElement(uo,{size:"xsmall",variant:"body",color:"neutral900"},li.t({id:"Yours: {amount} {symbol}",values:{amount:W(k.fromAmount,6,6),symbol:k?.from.symbol}}))),(r?.type===4||s?.type===2)&&B.createElement(uo,{size:"xsmall",variant:"body",color:"neutral900"},li.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??[]),$=S.length,N=O();return Wf(()=>{c&&!x.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},ri),x.current=c},[c,x]),B.createElement(B.Fragment,null,B.createElement(Ul,{recommended:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:ql()},B.createElement(bf,{fee:h,time:y,steps:$}),a==="basic"&&B.createElement("div",{className:zl()},B.createElement(Vl,null,B.createElement(Af,{size:12,color:"gray"})),B.createElement(jl,null,B.createElement(ai,{size:"small",variant:"body"},`${A} ${S[0].from.token.displayName} = `),B.createElement(Nn,{content:se(n.value),container:N,open:n.value?void 0:!1},B.createElement(ai,{size:"small",variant:"body"},"\xA0",`${T} ${S[S.length-1].to.token.displayName}`))),B.createElement(Nn,{content:se(n.usdValue),container:N,style:{display:"flex"}},B.createElement(uo,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${w})`))),a==="list-item"&&B.createElement(Ef,{type:"output",direction:"vertical",tooltipContainer:N,price:{value:T,usdValue:w,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:S[$-1].to.token.displayName,image:S[$-1].to.token.image},chain:{image:S[$-1].to.chain.image},percentageChange:C,warningLevel:v}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(po,{from:S[0].from,to:S[$-1].to,percentageChange:C,warningLevel:v}),B.createElement(pi,{size:4}))),B.createElement(Fl,{recommended:l,open:c,onOpenChange:g},B.createElement(Gl,{ref:L=>f.current=L,recommended:l,onClick:()=>g(L=>!L)},B.createElement("div",null,S.map((L,k)=>{let M=`item-${k}`,E=B.createElement(si,null,B.createElement(vf,{size:12,color:"black",...L.state&&{color:L.state==="error"?"error":"warning"}}));return B.createElement(B.Fragment,{key:M},B.createElement(Nn,{container:N,side:"bottom",sideOffset:4,content:L.from.chain.displayName},B.createElement(ii,{state:L.state||S[k-1]?.state},B.createElement(Jl,{src:L.from.chain.image,size:16}))),k===$-1&&B.createElement(B.Fragment,null,E,B.createElement(Nn,{container:N,side:"bottom",sideOffset:4,content:L.to.chain.displayName},B.createElement(ii,{state:L.state},B.createElement(Jl,{src:L.to.chain.image,size:16})))),k!==$-1&&B.createElement(B.Fragment,null,E))})),B.createElement(si,{orientation:c?"up":"down"},B.createElement(xf,{size:12,color:"black"}))),B.createElement(Hl,{open:c},B.createElement(Ql,null),B.createElement("div",{className:Ol()},S.map((L,k)=>{let M=`item-${k}`;return B.createElement(If,{type:"quote-details",key:M,step:L,hasSeparator:k!==S.length-1,state:L.state,tooltipContainer:N})}))))))}i(ui,"Quote");import{Divider as Pf,Skeleton as $f}from"@rango-dev/ui";import pt from"react";import{darkTheme as Nf,styled as Ln}from"@rango-dev/ui";var ep=Ln("div",{$$color:"$colors$neutral100",[`.${Nf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),tp=Ln("div",{paddingTop:"$2"}),op=Ln("div",{paddingLeft:"$8"}),np=Ln("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as fp,Divider as Nt,Skeleton as et}from"@rango-dev/ui";import q from"react";import{styled as Re}from"@rango-dev/ui";var rp=Re("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),ip=Re("div",{display:"flex"}),sp=Re("div",{padding:"$15 $0 14px $0"}),ap=Re("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),lp=Re("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),pp=Re("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),up=Re("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),cp=Re("div",{width:"65%",display:"flex",justifyContent:"start"}),mp=Re("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),dp=Re("div",{padding:"$15 $0 $15 $0"});function fo(t){let{type:e,tag:o=!1}=t,n=q.createElement(pp,null,q.createElement(cp,null,q.createElement(fp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(Nt,{size:8,direction:"horizontal"}),q.createElement(mp,null,q.createElement(et,{height:10,width:60,variant:"rounded"}),q.createElement(Nt,{size:4}),q.createElement(et,{height:15,variant:"rounded"}))),q.createElement(et,{height:12,width:64,variant:"rounded"}));return q.createElement("div",null,q.createElement(rp,null,q.createElement(ip,null,q.createElement(et,{width:60,height:10,variant:"rounded"}),q.createElement(Nt,{size:4,direction:"horizontal"}),q.createElement(et,{width:60,height:10,variant:"rounded"}),q.createElement(Nt,{size:4,direction:"horizontal"}),q.createElement(et,{width:60,height:10,variant:"rounded"})),o&&q.createElement(et,{height:22,width:100,variant:"rounded"})),e==="basic"&&q.createElement(sp,null,q.createElement(et,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(ap,null,q.createElement(lp,null,q.createElement(fp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(Nt,{direction:"horizontal",size:4}),q.createElement(et,{height:15,width:150,variant:"rounded"})),q.createElement(Nt,{size:4}),q.createElement(et,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(Nt,{size:4}),q.createElement(dp,null,n,q.createElement(up,null),n)))}i(fo,"QuoteSummarySkeleton");import{ChainToken as Cp,Divider as mi,NextIcon as Lf,Skeleton as Pn}from"@rango-dev/ui";import ae from"react";import{styled as go}from"@rango-dev/ui";var gp=go("div",{display:"flex",alignItems:"start"}),hp=go("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),ci=go("div",{display:"flex",alignItems:"center",flexGrow:1}),yp=go("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Sp=go("div",{display:"flex",alignItems:"center"});function tt(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(Sp,null,ae.createElement(Pn,{height:22,width:22,variant:"circular"}),ae.createElement(mi,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:15,width:148,variant:"rounded"})),ae.createElement(gp,null,ae.createElement(np,{hideSeparator:!e}),ae.createElement(hp,null,ae.createElement(ci,null,ae.createElement(Cp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(mi,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})),ae.createElement(yp,null,ae.createElement(Lf,{color:"gray",size:16})),ae.createElement(ci,null,ae.createElement(Cp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(mi,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})))))}i(tt,"StepSkeleton");function di(t){let{type:e,expanded:o,tag:n=!1}=t;return pt.createElement(ep,{rounded:e!=="basic"},pt.createElement(fo,{type:e,tag:n}),pt.createElement(tp,null,pt.createElement($f,{height:15,variant:"rounded"})),o&&pt.createElement(op,null,pt.createElement(Pf,{size:20}),pt.createElement(tt,null),pt.createElement(tt,null),pt.createElement(tt,{separator:!1})))}i(di,"QuoteSkeleton");import{i18n as eg}from"@lingui/core";import{Alert as tg,Button as og,InfoIcon as ng}from"@rango-dev/ui";import Be from"react";import{Alert as Mf,Button as _f,Divider as Ap,NoRouteIcon as Df,RefreshIcon as Ff,Typography as bp}from"@rango-dev/ui";import He from"react";import{i18n as kp}from"@lingui/core";function Tp(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:Q().genericServerError,action:{onClick:n,title:kp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:Q().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:kp.t("Reset")}},description:Q().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:Q().noResultError.description}}i(Tp,"makeInfo");import{styled as fi}from"@rango-dev/ui";var wp=fi("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),xp=fi("div",{width:"100%"}),vp=fi("div",{padding:"$6 $0"});function gi(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=Tp(o,n,()=>r(s,!0),e);return He.createElement(wp,null,He.createElement(Df,{size:24,color:"gray"}),He.createElement(Ap,{size:4}),He.createElement(bp,{variant:"title",size:"small"},Q().noResultError.title),!!a.description&&He.createElement(bp,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),He.createElement(Ap,{size:4}),!!a.alert&&He.createElement(xp,null,He.createElement(Mf,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&He.createElement(_f,{size:"xsmall",type:a.alert.type,prefix:He.createElement(vp,null,He.createElement(Ff,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(gi,"NoResult");import{i18n as ho}from"@lingui/core";import{Button as Uf,Divider as Lp,MessageBox as qf,Modal as zf,Typography as Gf,WarningIcon as Hf}from"@rango-dev/ui";import ot from"react";import{Typography as Bp}from"@rango-dev/ui";import yi from"react";import{darkTheme as Of,styled as $n}from"@rango-dev/ui";var Ip=$n("div",{width:"100%",paddingTop:"$10"}),hi=$n("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Ep=$n("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Of} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wp=$n("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Np(t){let{title:e,value:o,valueColor:n}=t;return yi.createElement(Ep,null,yi.createElement(Bp,{size:"medium",variant:"label",className:"_title"},e),yi.createElement(Bp,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Np,"QuoteErrorsModalItem");function Pp(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:ho.t("Swapping"),value:W(r.inputUsdValue,4,4)},{title:ho.t("Gas cost"),value:W(r.totalFee,2,2)},{title:ho.t("Receiving"),value:W(r.outputUsdValue,4,4)},{title:ho.t("Price impact"),value:W(r.priceImpact,2,2),valueColor:`${s}500`}];return ot.createElement(zf,{open:e,onClose:o,container:O()},ot.createElement(qf,{type:s,title:Q().highValueLossError.impactTitle,description:Q().highValueLossError.description}),ot.createElement(hi,null,ot.createElement(Lp,{size:20}),ot.createElement(Gf,{size:"small",variant:"title"},ho.t("Details")),ot.createElement(hi,null,a.map((l,p)=>ot.createElement(Np,{key:p,...l})))),ot.createElement(Lp,{size:32}),ot.createElement(Uf,{type:"primary",size:"large",prefix:ot.createElement(Hf,null),fullWidth:!0,onClick:n},Q().highValueLossError.confirmMessage))}i(Pp,"HighValueLossWarningModal");import{i18n as Si}from"@lingui/core";function $p(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(at(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=Q().highValueLossError.title),t.type===1&&(o.title=Q().unknownPriceError.title),t.type===2&&(o.title=Si.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=Si.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=Si.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($p,"makeAlerts");import{i18n as Vt}from"@lingui/core";import{Button as Mp,Divider as _p,MessageBox as Qf,Modal as Vf,Typography as jf}from"@rango-dev/ui";import Lt from"react";import{useNavigate as Xf}from"react-router-dom";function Dp(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=Xf(),p=e??o;return Lt.createElement(Vf,{anchor:"bottom",open:n,prefix:Lt.createElement(Mp,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},Lt.createElement(jf,{variant:"label",size:"medium",color:"$neutral900"},Vt.t("Change settings"))),container:O(),onClose:r},Lt.createElement(Qf,{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(_p,{size:18}),Lt.createElement(_p,{size:32}),Lt.createElement(Mp,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Vt.t("Confirm anyway"))))}i(Dp,"SlippageWarningModal");import{Button as Kf,Divider as Yf,MessageBox as Jf,Modal as Zf,WarningIcon as Rf}from"@rango-dev/ui";import yo from"react";function Fp(t){let{open:e,onClose:o,onConfirm:n}=t;return yo.createElement(Zf,{open:e,onClose:o,container:O()},yo.createElement(Jf,{type:"warning",title:Q().unknownPriceError.impactTitle,description:Q().unknownPriceError.description}),yo.createElement(Yf,{size:32}),yo.createElement(Kf,{type:"primary",size:"large",prefix:yo.createElement(Rf,null),fullWidth:!0,onClick:n},Q().unknownPriceError.confirmMessage))}i(Fp,"UnknownPriceWarningModal");function Ci(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=$p(e,o?.type===3||o?.type===4?o:null);return Be.createElement(Be.Fragment,null,m&&Be.createElement(gi,{error:o,fetch:n}),!!c&&Be.createElement(Ip,null,Be.createElement(tg,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Be.createElement(Wp,{onClick:s},Be.createElement(ng,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Be.createElement(og,{size:"xxsmall",type:c.alertType,onClick:p},eg.t("Change"))}})),e&&Be.createElement(Be.Fragment,null,e.type===0&&Be.createElement(Pp,{...u,warning:e}),(e.type===3||e.type===2)&&Be.createElement(Dp,{...u,warning:e}),e.type===1&&Be.createElement(Fp,{...u,warning:e})))}i(Ci,"QuoteWarningsAndErrors");function So(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:x,inputUsdValue:h,outputUsdValue:y,outputAmount:A}=U(),w=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,b=(s||r)&&_e.createElement(Ci,{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(oi,null,_e.createElement($l,{paddingTop:f==="top"},_e.createElement(di,{type:o,expanded:g}))),f==="top"&&_e.createElement(Pl,null,b),w?_e.createElement(oi,null,_e.createElement(ui,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:x,usdValue:h?.toString()??""},output:{value:A?.toString()??"",usdValue:y?.toString()??""}})):null,f==="bottom"&&_e.createElement(_e.Fragment,null,!s&&!r&&_e.createElement(rg,{size:16}),b))}i(So,"QuoteInfo");import{calculatePendingSwap as ag}from"@rango-dev/queue-manager-rango-preset";import{useEffect as lg}from"react";import{useRef as ig,useState as sg}from"react";function Mn(){let[t,e]=sg(!1),o=ig(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Dt().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(Mn,"useFetchQuote");function _n(t){if(!t.result)throw new Error(Q().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(Ar(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=Er(t);if(o){let n=en(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(_n,"throwErrorIfResponseIsNotValid");function Op(t,e,o){let n=!1;t&&(n=va(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=on(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(fa(t,e)?r.quoteUpdate={type:3,newOutputAmount:W(Ut(e)),percentageChange:W($e(Ut(t)??"",Ut(e)??""),null,2)}:Br(t,e)?r.quoteUpdate={type:0}:Nr(t,e)?r.quoteUpdate={type:1}:Lr(t,e)&&(r.quoteUpdate={type:2}));let a=ga(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Op,"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 ki(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=U(),{slippage:l,customSlippage:p,affiliatePercent:u,affiliateRef:m,affiliateWallets:c,disabledLiquiditySources:g}=d(),{connectedWallets:f}=z(),x=d().blockchains(),h=d().tokens(),{features:y}=d().config,{enableNewLiquiditySources:A}=d().config,T=p||l,{fetch:w,cancelFetch:b,loading:C}=Mn();return lg(()=>b,[]),{loading:C,fetch:i(async I=>{let S=I.selectedWallets,$=I?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=tn({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:S,excludeLiquiditySources:A,disabledLiquiditySources:g,slippage:T,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:$});Fo("experimentalRoute",y)&&(N.experimental=!0);let L;try{L=await w(N).then(G=>_n(G)),n(L)}catch(G){return Dn(G)}let k={slippage:T.toString(),disabledSwappersGroups:g},M=ag(o.toString(),L,ma(S),k,!1,{blockchains:x,tokens:h}),E=Op(r??void 0,L,{fromToken:t,toToken:e,meta:{blockchains:x,tokens:h},selectedWallets:S,userSlippage:T});return E.quoteUpdate&&a(!1),{quote:L,swap:M,error:null,warnings:E}},"fetch"),cancelFetch:b}}i(ki,"useConfirmSwap");var kg=Gp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),Tg=Gp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${zp}`]:{width:"$48",height:"$48"}}),wg=Ti({flexGrow:1,paddingRight:"$10"}),xg=Ti({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),vg=Ti({display:"flex",justifyContent:"space-between",alignItems:"center"});function Hp(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=U(),l=Cg(),[p,u]=On(""),{connectedWallets:m}=z(),c=!n,[g,f]=On(!1),x=Ae.use.setSelectedSwap(),h=d().disabledLiquiditySources,y=yg(h),{manager:A}=pg(),{fetch:T,loading:w,cancelFetch:b}=ki(),[C,v]=On({swap:null,error:null,warnings:null}),[I,S]=On(!1),$=i(async({selectedWallets:E,customDestination:G})=>{let J=await T?.({selectedWallets:E,customDestination:G});return v(J),J},"onConfirmSwap"),N=i(async()=>{if(C.swap&&n)try{await A?.create("swap",{swapDetails:C.swap},{id:C.swap.requestId}),x(C.swap.requestId);let E=`../${_.swaps}/${C.swap.requestId}`;l(E,{replace:!0}),setTimeout(()=>{e("")},0)}catch(E){u("Error: "+E?.message)}},"addNewSwap"),L=i(async()=>{await N()},"onConfirm"),k=i(async()=>{C?.warnings?.quote&&!a?S(!0):await L()},"onStartConfirmSwap"),M=i(async()=>{v({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:s}).then(E=>{v(E)}).catch(E=>console.error(E))},"onRefresh");return Co(()=>{!!y.current.length&&!h.length&&M(),y.current=h},[h.length]),Co(()=>{c&&b()},[c]),Co(()=>{c&&f(c)},[c]),Co(()=>{c||T({selectedWallets:o,customDestination:s}).then(E=>v(E)).catch(E=>console.error(E))},[]),Co(()=>{let E=C.warnings?.quote?.type&&Object.values(ft).includes(C.warnings?.quote?.type),G=o.length<1||!o.every(te=>m.find(H=>te.address===H.address&&te.walletType===H.walletType&&te.chain===H.chain)),J=!1;if(E){let te=Ko(t),H=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(Se=>Se.from.blockchain===H)||(te=te.slice(-te.length,te.length-1)),te.every(Se=>o.find(Ce=>Ce.chain===Se))||(J=!0)}t&&(G||J)&&(queueMicrotask(()=>Sg(f.bind(null,!0))),r(!1))},[C.warnings?.quote,o.length,m.length]),hg(()=>{t||l("../")},[]),ee.createElement(X,{header:{title:Fn.t("Confirm Swap"),onWallet:()=>{let E=`../${_.wallets}`;l(E)},suffix:ee.createElement(dg,{container:O(),side:"bottom",content:Fn.t("Settings")},ee.createElement(Ue,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},ee.createElement(mg,{size:18,color:"black"})))},footer:ee.createElement(Tg,null,ee.createElement("div",{className:wg()},ee.createElement(qp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w,disabled:!!C.error,onClick:k},Fn.t("Start Swap"))),ee.createElement(zp,{variant:"contained",type:"primary",size:"large",loading:w,onClick:f.bind(null,!0)},ee.createElement(gg,{size:24})))},g&&ee.createElement(Ll,{open:g,onClose:()=>f(!1),onCancel:b,loading:w,onCheckBalance:$}),ee.createElement(kg,null,ee.createElement("div",{className:vg()},ee.createElement(fg,{variant:"title",size:"small"},Fn.t("You get")),ee.createElement(qp,{style:{padding:"0"},variant:"ghost",disabled:w,onClick:M},ee.createElement("div",{className:xg()},ee.createElement(cg,{size:16})))),p&&ee.createElement(ee.Fragment,null,ee.createElement(Up,{type:"error",variant:"alarm",title:p}),ee.createElement(ug,{size:12})),C.warnings?.quoteUpdate&&ee.createElement("div",{className:"quote-update__alert"},ee.createElement(Up,{variant:"alarm",type:"warning",title:C.warnings.quoteUpdate&&dn(C.warnings.quoteUpdate)})),ee.createElement(So,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:C.error,loading:w,warning:C.warnings?.quote??null,refetchQuote:M,showWarningModal:I,onOpenWarningModal:()=>S(!0),onCloseWarningModal:()=>S(!1),onConfirmWarningModal:async()=>{S(!1),await N()},onChangeSettings:()=>l("../"+_.settings)})))}i(Hp,"ConfirmSwapPage");import{i18n as zn}from"@lingui/core";import{useManager as Lg}from"@rango-dev/queue-manager-react";import{Divider as Pg,NotFound as $g,styled as Rp}from"@rango-dev/ui";import Tt,{useState as Mg}from"react";import{useNavigate as _g}from"react-router-dom";import{CloseIcon as bg,IconButton as Ig,SearchIcon as Eg,TextField as Wg}from"@rango-dev/ui";import ko from"react";import{styled as Ag}from"@rango-dev/ui";var Qp=Ag("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function ut(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return ko.createElement(Wg,{prefix:ko.createElement(Qp,null,ko.createElement(Eg,{color:"black"})),suffix:!!a.length&&ko.createElement(Ig,{variant:"ghost",onClick:()=>l?.(""),size:"small"},ko.createElement(bg,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(ut,"SearchInput");import{i18n as jp}from"@lingui/core";import{Divider as Xp,SwapListItem as Kp,Typography as Yp}from"@rango-dev/ui";import Z from"react";import{css as Bg,darkTheme as Ng,styled as Un}from"@rango-dev/ui";var qn=Bg(),wi=Un("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${qn}`]:{$$color:"$colors$neutral600",[`.${Ng} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),xi=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),vi=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),Vp=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function Ai(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return Z.createElement(Z.Fragment,null,[{title:"Today",swaps:a},{title:"This month",swaps:a}].map(p=>Z.createElement(Z.Fragment,{key:p.title},Z.createElement(wi,null,Z.createElement(xi,null,Z.createElement(Yp,{variant:"label",size:"medium",className:qn()},jp.t(p.title))),Z.createElement(Xp,{size:4}),Z.createElement(vi,null,p.swaps.map((u,m)=>{let c=m+p.title;return Z.createElement(Z.Fragment,{key:c},Z.createElement(Kp,{isLoading:!0}))}))))))}return Z.createElement(Z.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>Z.createElement(Z.Fragment,{key:a.title},Z.createElement(wi,null,Z.createElement(xi,null,Z.createElement(Yp,{variant:"label",size:"medium",className:qn()},jp.t(a.title))),Z.createElement(Xp,{size:4}),Z.createElement(vi,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return Z.createElement(Z.Fragment,{key:l.requestId},Z.createElement(Kp,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",tooltipContainer:O(),swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:l.inputAmount},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:W(u.outputAmount||u.expectedOutputAmountHumanReadable||""),realAmount:se(u.outputAmount||u.expectedOutputAmountHumanReadable)}}}))}))))))}i(Ai,"SwapsGroup");import Jp from"dayjs";var Zp=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=Jp();return t.forEach(r=>{let s=Number(r.creationTime),a=Jp(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 Dg=Rp("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Fg=Rp("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Og=i((t,e)=>t?.length?t.filter(o=>Ke(o.fromBlockchain,e)||Ke(o.toBlockchain,e)||Ke(o.toSymbol,e)||Ke(o.fromSymbol,e)).length:!1,"isStepContainsText");function eu(){let t=Ae.use.setSelectedSwap(),e=_g(),{manager:o,state:n}=Lg(),r=jt(o).map(({swap:c})=>c),[s,a]=Mg(""),l=!n.loadedFromPersistor,p=i(c=>{let g=c.target.value;a(g)},"searchHandler"),u=r;s&&(u=r.filter(c=>Ke(c.inputAmount,s)||Ke(c.status,s)||Og(c.steps,s)||Ke(c.requestId,s)));let m=!u?.length&&!l;return Tt.createElement(X,{header:{title:zn.t("History")}},Tt.createElement(Dg,null,Tt.createElement(ut,{setValue:a,fullWidth:!0,variant:"contained",placeholder:zn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),Tt.createElement(Fg,null,m&&Tt.createElement(Vp,null,Tt.createElement(Pg,{size:32}),Tt.createElement($g,{title:zn.t("No results found"),description:s?zn.t("Try using different keywords"):""})),!m&&Tt.createElement(Ai,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:Zp,isLoading:l}))))}i(eu,"HistoryPage");import{i18n as Ei}from"@lingui/core";import{Button as Vg,styled as Wi,SwapInput as ru,WarningIcon as jg}from"@rango-dev/ui";import De,{useEffect as Xg,useRef as Kg,useState as Yg}from"react";import{useNavigate as Jg}from"react-router-dom";import{ReverseIcon as Ug,styled as tu}from"@rango-dev/ui";import bi from"react";var qg=tu("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),zg=tu("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 ou(){let t=U.use.switchFromAndTo();return bi.createElement(qg,null,bi.createElement(zg,{onClick:()=>{t()}},bi.createElement(Ug,{size:12})))}i(ou,"SwitchFromAndToButton");import{useCallback as Gg,useEffect as Hg,useState as Ii}from"react";var Qg=600;function nu(){let{fetch:t,cancelFetch:e}=Mn(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,resetQuote:m,setQuote:c}=U(),{slippage:g,customSlippage:f,affiliatePercent:x,affiliateRef:h,affiliateWallets:y,disabledLiquiditySources:A}=d(),[T,w]=Ii(!1),[b,C]=Ii(null),[v,I]=Ii(null),S=f??g,N=!a||!l||Pe(a,l)||!no(p),L=i(E=>{w(E),C(null),I(null)},"resetState"),k=i(E=>{let{fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:ye,slippage:Se,affiliateRef:Ce,affiliatePercent:Mt,affiliateWallets:oo}=E;if(T||L(!0),!N&&G&&J){m();let it=tn({fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:ye,slippage:Se,affiliateRef:Ce,affiliatePercent:Mt,affiliateWallets:oo});Fo("experimentalRoute",r)&&(it.experimental=!0),t(it).then(Xe=>{w(!1),c(Xe),_n(Xe);let D=on(Xe,{fromToken:G,toToken:J,userSlippage:S,tokens:s});I(D)}).catch(Xe=>{let{error:D}=Dn(Xe);(D?.type===0||D?.type===1)&&m(),D?.type!==2&&(C(D),w(!1))})}},"fetch"),M=Gg(Ls(E=>{N||k(E)},Qg),[N]);return Hg(()=>{if(!no(p)||u?.eq(0)){L(!1),e();return}if(!N)return m(),L(!0),M({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:A,slippage:S,affiliateRef:h,affiliatePercent:x,affiliateWallets:y}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,N,o?.length,n,A.length,S,h,x,JSON.stringify(y)]),{fetch:()=>k({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:A,slippage:S,affiliateRef:h,affiliatePercent:x,affiliateWallets:y}),loading:T,error:b,warning:v}}i(nu,"useSwapInput");var Zg=Wi("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),Rg=Wi("div",{position:"relative"}),eh=Wi("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function iu(){let t=Jg(),{fetch:e,loading:o,error:n,warning:r}=nu(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:g,outputUsdValue:f,quote:x,resetQuoteWallets:h,setQuoteWarningsConfirmed:y}=U(),A=d().fetchStatus,{connectedWallets:T,getBalanceFor:w}=z(),b=Ae.use.setCurrentPage(),[C,v]=Yg(!1),I=Kg(null),S=!!a&&js(T,a.name),$=!1,N=!Ir(x,m,c),L=!Ir(x,m,f),k=pa({fetchMetaStatus:A,fetchingQuote:o,inputAmount:m,quote:x,anyWalletConnected:T.length>0,error:n,warning:r,needsToWarnEthOnPath:$}),M=s?w(s):null,E=Vo(M)?.amount??"0",G=a&&s?W(M?.amount,M?.decimals):"0";Xg(()=>(b(_.home),h(),b.bind(null,"")),[]);let J=!c||!f||!f.gt(0)?null:$e(c.toString(),f.toString());return De.createElement(X,{ref:I,fixedHeight:!1,hasLogo:!0,footer:De.createElement(Vg,{type:"primary",size:"large",disabled:k.disabled,prefix:k.action==="confirm-warning"&&De.createElement(jg,null),fullWidth:!0,onClick:()=>{k.action==="connect-wallet"?t(_.wallets):k.action==="confirm-warning"?v(!0):t(_.confirmSwap)}},k.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:Ei.t("Swap"),suffix:De.createElement(jr,{layoutRef:I.current,onClickRefresh:x||n?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},De.createElement(Zg,null,De.createElement(eh,null,De.createElement(Rg,null,De.createElement(ru,{label:Ei.t("From"),mode:"From",onInputChange:u,balance:E,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:N?void 0:W(c,4,4),realUsdValue:N?void 0:se(c),error:N?Q().unknownPriceError.impactTitle:void 0},disabled:A==="failed",loading:A==="loading",loadingBalance:S,tooltipContainer:O(),onSelectMaxBalance:()=>{E!=="0"&&u(G.split(",").join(""))}}),De.createElement(ou,null)),De.createElement(ru,{sharpBottomStyle:!!x?.result||o,label:Ei.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:W($e(c,f),2,2),warningLevel:at(J??0),price:{value:W(g,6,6),usdValue:L?void 0:W(f,4,4),realValue:se(g),realUsdValue:L?void 0:se(f),error:L?Q().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(_.toSwap),disabled:A==="failed",loading:A==="loading",tooltipContainer:O()})),De.createElement("div",{className:"quote__container"},De.createElement(So,{quote:x,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:C,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),y(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(iu,"Home");import{i18n as su}from"@lingui/core";import{List as th,ListItemButton as oh,Radio as nh,RadioRoot as rh,Typography as ih}from"@rango-dev/ui";import wt from"react";import{styled as Gn}from"@rango-dev/ui";var ct=Gn("div",{height:"100%",overflow:"hidden"}),To=Gn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),Bi=Gn("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ni=Gn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Hn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:Ks,defaultLanguage:Ot,changeLanguage:r=>t(r||Ot)}}i(Hn,"useLanguage");function au(){let{activeLanguage:t,changeLanguage:e,languages:o}=Hn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:wt.createElement(ih,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:wt.createElement(nh,{value:s}),start:wt.createElement(l,null)}});return wt.createElement(X,{header:{title:su.t("Language")}},wt.createElement(ct,null,wt.createElement(rh,{value:t},wt.createElement(th,{type:wt.createElement(oh,{title:su.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(au,"LanguagePage");import{i18n as Xt}from"@lingui/core";import{Button as uh,Checkbox as ch,Image as mh,ListItemButton as dh,NotFound as fh,Typography as gh}from"@rango-dev/ui";import ke,{useState as hh}from"react";import{Checkbox as lh,Skeleton as pu}from"@rango-dev/ui";import wo from"react";import{ListItem as sh,styled as ah}from"@rango-dev/ui";var lu=ah(sh,{height:61});var ph=30;function Li(){return wo.createElement(To,null,Array.from(Array(ph),t=>wo.createElement(lu,{hasDivider:!0,key:t,start:wo.createElement(pu,{variant:"circular",width:35,height:35}),title:wo.createElement(pu,{variant:"text",size:"large",width:90}),end:wo.createElement(lh,{checked:!1})})))}i(Li,"LoadingLiquiditySourceList");function Pi({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=hh(""),a=d().toggleLiquiditySource,l=Do(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(mh,{src:T,size:22,type:"circular"}),onClick:()=>a(A),end:ke.createElement(ch,{checked:y}),title:ke.createElement(gh,{variant:"title",size:"xmedium"},Xt.t(A)),...h}}),f=i(h=>{let y=h.target.value;s(y)},"searchHandler"),x=g;return r&&(x=g.filter(h=>Ke(h.groupTitle,r))),ke.createElement(X,{header:{title:Xt.t(t),suffix:ke.createElement(Bi,null,ke.createElement(uh,{variant:"ghost",size:"xsmall",onClick:c},Xt.t(m?"Deselect all":"Select all")))}},ke.createElement(ct,null,ke.createElement(ut,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&ke.createElement(Li,null),!x.length&&r?ke.createElement(Ni,null,ke.createElement(fh,{title:Xt.t("No results found"),description:Xt.t("Try using different keywords")})):e==="success"&&ke.createElement(To,null,x.map(h=>ke.createElement(ke.Fragment,{key:h.id},ke.createElement(dh,{style:{height:"61px"},...h,selected:!1,hasDivider:!0}))))))}i(Pi,"LiquiditySourcePage");import{i18n as yu}from"@lingui/core";import{Divider as Di,getCountCategories as bh,SelectableCategoryList as Ih}from"@rango-dev/ui";import mt,{useState as Su}from"react";import{i18n as Mi}from"@lingui/core";import{Divider as gu,Image as Th,ListItemButton as wh,NotFound as xh,Typography as hu}from"@rango-dev/ui";import Fe,{useEffect as vh,useState as Ah}from"react";import{BlockchainCategories as $i}from"@rango-dev/ui";import{TransactionType as Qn}from"rango-sdk";var yh=i((t,e)=>{switch(e){case $i.ALL:return!0;case $i.UTXO:return t.type===Qn.TRANSFER;case $i.OTHER:return t.type!==Qn.TRANSFER&&t.type!==Qn.COSMOS&&t.type!==Qn.EVM;default:return t.type===e}},"filterByType"),uu=i((t,e,o)=>t.filter(n=>yh(n,o)).filter(n=>At(n.name,e)||At(n.displayName,e)),"filterBlockchains");import{ImageContainer as Sh,styled as cu}from"@rango-dev/ui";var mu=cu("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vn=cu("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${Sh}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Ch,Skeleton as du}from"@rango-dev/ui";import jn from"react";var kh=20;function fu(){return jn.createElement(Vn,null,Array.from(Array(kh),t=>jn.createElement(Ch,{key:t,hasDivider:!0,start:jn.createElement(du,{variant:"circular",width:35,height:35}),title:jn.createElement(du,{variant:"text",size:"large",width:90})})))}i(fu,"LoadingBlockchainList");function _i(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=Ah(e),{fetchStatus:l}=d();vh(()=>{a([...uu(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Fe.createElement(Fe.Fragment,null,Fe.createElement(gu,{size:32}),Fe.createElement(xh,{title:Mi.t("No results found"),description:Mi.t("Try using different keywords")})):Fe.createElement(Vn,{key:`${r}-${o}`},s.map(u=>Fe.createElement(wh,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Fe.createElement(Th,{src:u.logo,size:30}),title:Fe.createElement(hu,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Fe.createElement(mu,null,Fe.createElement(hu,{variant:"label",size:"large"},Mi.t("Select Blockchain")),Fe.createElement(gu,{size:4}),l==="loading"&&Fe.createElement(fu,null),l==="success"&&p())}i(_i,"BlockchainList");function Fi(t){let{type:e}=t,o=St(),[n,r]=Su(""),[s,a]=Su("ALL"),l=U.use.setToBlockchain(),p=U.use.setFromBlockchain(),u=d().fetchStatus,m=d().blockchains({type:e}),g=bh(m)!==1;return mt.createElement(X,{header:{title:yu.t("Select Blockchain")}},mt.createElement(Di,{size:12}),g&&mt.createElement(mt.Fragment,null,mt.createElement(Ih,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),mt.createElement(Di,{size:24})),mt.createElement(ut,{value:n,autoFocus:!0,placeholder:yu.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),mt.createElement(Di,{size:16}),mt.createElement(_i,{list:m,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(Fi,"SelectBlockchainPage");import{i18n as Fu}from"@lingui/core";import{Divider as Ou}from"@rango-dev/ui";import Jt,{useState as Qh}from"react";import{useNavigate as Vh}from"react-router-dom";import{i18n as qi}from"@lingui/core";import{BlockchainsChip as Xn,Divider as wu,Image as xu,Skeleton as Lh,Tooltip as Ph,Typography as zi}from"@rango-dev/ui";import le from"react";import{useEffect as Bh}from"react";var Cu=["ETH","COSMOS","OSMOSIS"];function Oi(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Eh),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(Wh(a)),r=n.splice(s)}return{list:n,more:r}}i(Oi,"prepare");function Eh(t,e){let o=Cu,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(Eh,"sortByMostUsedBlockchains");function Wh(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(Wh,"generateSortByPreferredBlockchainsFor");function ku(t,e){return!!e.list.find(o=>o.name===t)}i(ku,"isInVisibleList");function Ui(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();Bh(()=>{if(e?.selected){let s=Oi(t,o,e);ku(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Oi(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Ui,"usePrepareBlockchainList");import{styled as Nh}from"@rango-dev/ui";var Tu=Nh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var $h=12;function Gi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=Ui(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=a.more.length>0,c=a.more.length===1,g=!c&&m;return le.createElement(le.Fragment,null,le.createElement(wu,{size:12}),le.createElement(zi,{variant:"label",size:"large"},qi.t("Select Blockchain")),le.createElement(wu,{size:12}),le.createElement(Tu,null,l==="loading"&&Array.from(Array($h),f=>le.createElement(Lh,{key:f,variant:"rounded",height:50})),l==="success"&&le.createElement(le.Fragment,null,le.createElement(Xn,{selected:!n,onClick:()=>{o==="from"?u():p()}},le.createElement(zi,{variant:"body",size:"xsmall",color:"secondary500"},qi.t("All"))),a.list.map(f=>le.createElement(Ph,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:O()},le.createElement(Xn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},le.createElement(xu,{src:f.logo,size:30})))),c?le.createElement(Xn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},le.createElement(xu,{src:a.more[0].logo,size:30})):null,g?le.createElement(Xn,{onClick:s,key:"more-blockchains"},le.createElement(zi,{variant:"body",size:"xsmall",color:"secondary500"},qi._("More +{count}",{count:a.more.length}))):null)))}i(Gi,"BlockchainsSection");import{i18n as Ri}from"@lingui/core";import{darkTheme as Pu,Divider as Yt,ExternalLinkIcon as Dh,Image as Fh,ListItemButton as Oh,NotFound as Uh,PinIcon as qh,Skeleton as $u,Typography as Jn,VirtualizedList as zh}from"@rango-dev/ui";import F,{forwardRef as Gh,useEffect as Mu,useState as _u}from"react";import{Divider as Nu,ListItem as _h,Skeleton as xo}from"@rango-dev/ui";import Ve from"react";import{css as Kt,darkTheme as vu,ImageContainer as Mh,styled as Qe,Typography as Au}from"@rango-dev/ui";var Hi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Qi=Kt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Vi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ji=Kt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${vu} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Xi=Kt({}),Ki=Kt(),bu=Qe("div",{display:"flex",flexDirection:"column",flexGrow:1}),Yi=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":{[`& .${Qi}`]:{[`& .${ji}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Xi}`]:{bottom:"-15px"},[`& .${Hi}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Vi}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ji=Qe("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Zi=Qe(Au,{}),Iu=Qe("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ki}`]:{$$color:"$colors$neutral600",[`.${vu} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yn=Qe("div",{display:"flex",alignItems:"end",flexDirection:"column"}),gN=Qe("div",{display:"flex",alignItems:"center"}),Eu=Qe("div",{position:"relative",[`& ${Mh}`]:{borderRadius:"$xm",overflow:"hidden"}}),Wu=Qe("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Bu=Qe(Au,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Lu(t){return Ve.createElement(Kn,null,Array.from(Array(t.size),e=>Ve.createElement(_h,{key:e,hasDivider:!0,start:Ve.createElement(xo,{variant:"circular",width:35,height:35}),end:Ve.createElement(Yn,null,Ve.createElement(xo,{variant:"text",size:"large",width:70}),Ve.createElement(Nu,{size:4}),Ve.createElement(xo,{variant:"text",size:"medium",width:50})),title:Ve.createElement("div",null,Ve.createElement(xo,{variant:"text",size:"large",width:90}),Ve.createElement(Nu,{size:4}),Ve.createElement(xo,{variant:"text",size:"medium",width:90}))})))}i(Lu,"LoadingTokenList");var es=20,Hh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return F.createElement("div",{className:Qi()},o?F.createElement("div",{className:Hi()},o):F.createElement(Yi,{className:Vi()},F.createElement(Jn,{variant:"title",size:"xmedium"},r.symbol),F.createElement(Yt,{direction:"horizontal",size:4}),F.createElement(Ji,{css:s},F.createElement(Zi,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&F.createElement("div",{className:`${ji()} ${!o&&Xi()}`},F.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",F.createElement(Yt,{size:4,direction:"horizontal"}),F.createElement(Dh,{color:"gray",size:12}))))},"renderDesc");function Du(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=_u(e),l=d().fetchStatus,p=d().blockchains(),[u,m]=_u(!0),{getBalanceFor:c,loading:g}=z(),{isTokenPinned:f}=d(),x=Gh((A,T)=>F.createElement("div",{...A,ref:T,style:{...A.style,height:`${parseFloat(A.style?.height)+8*2}px`}})),h=i(()=>{a(e.slice(0,s.length+es))},"loadNextPage");Mu(()=>{m(e.length>s.length)},[s.length]),Mu(()=>{a(e.slice(0,es))},[e]);let y=i(()=>!s.length&&o?F.createElement(F.Fragment,null,F.createElement(Yt,{size:32}),F.createElement(Uh,{title:Ri.t("No results found"),description:Ri.t("Try using different keywords")})):F.createElement(zh,{Item:({index:A,style:T})=>{let w=s[A],b=Vo(c(w)),C=w.address||"",v=p.find(N=>N.name===w.blockchain),I=yn(w.symbol,v?.color||""),S={$$color:I[`${w.symbol}100`],[`.${Pu} &`]:{$$color:I[`${w.symbol}900`]},backgroundColor:"$$color"},$={$$color:I[`${w.symbol}700`],[`.${Pu} &`]:{$$color:I[`${w.symbol}100`]},color:"$$color"};return F.createElement("div",{style:{...T,paddingRight:5}},F.createElement(Oh,{style:{height:T?.height,width:"100%",overflow:"hidden"},"tab-index":A,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,hasDivider:!0,onClick:()=>n(s[A]),start:F.createElement(Eu,null,F.createElement(Fh,{src:w.image,size:30}),f(w,t.type)&&F.createElement(Wu,null,F.createElement(qh,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||w.name||!w.name&&!C?F.createElement(Yi,null,F.createElement(Jn,{variant:"title",size:"xmedium"},w.symbol),F.createElement(Yt,{direction:"horizontal",size:4}),F.createElement(Ji,{css:S},F.createElement(Zi,{variant:"body",size:"xsmall",css:$},w.blockchain))):void 0,description:v?.info&&C&&v.type!=="COSMOS"?Hh({address:C,token:s[A],customCssForTag:S,customCssForTagTitle:$,name:w.name,url:v.info.addressUrl.split("{wallet}").join(C)}):w.name||void 0,end:g?F.createElement(Yn,null,F.createElement($u,{variant:"text",size:"large",width:70}),F.createElement(Yt,{size:4}),F.createElement($u,{variant:"text",size:"medium",width:50})):b&&F.createElement(Iu,null,F.createElement(Bu,{variant:"title",size:"small"},b.amount),F.createElement("div",null),b.usdValue&&F.createElement(Jn,{variant:"body",className:Ki(),size:"xsmall"},`$${b.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:h,innerElementType:x,size:60,key:`${r}-${o}`}),"renderList");return F.createElement(bu,null,F.createElement(Jn,{variant:"label",size:"large"},Ri.t("Select Token")),F.createElement(Yt,{size:4}),l==="loading"&&F.createElement(Lu,{size:es}),l==="success"&&F.createElement(Kn,null,y()))}i(Du,"TokenList");function ts(t){let{type:e}=t,o=Vh(),n=St(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=z.use.getBalanceFor(),[c,g]=Qh(""),{isTokenPinned:f}=d(),h=(e==="source"?r:s)?.name??"",y=d().blockchains({type:e}),A=d().tokens({type:e,blockchain:h,searchFor:c}),w=Hs(A,m,i(v=>f(v,e),"checkIsTokenPinned")),b=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),C=i(v=>{e==="source"?a({token:v,meta:{blockchains:y,tokens:A}}):l({token:v,meta:{blockchains:y,tokens:A}})},"updateToken");return Jt.createElement(X,{header:{title:Fu.t("Swap {type}",{type:e})}},Jt.createElement(Gi,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(_.blockchains),onChange:v=>{b(v)}}),Jt.createElement(Ou,{size:24}),Jt.createElement(ut,{value:c,autoFocus:!0,placeholder:Fu.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:v=>g(v.target.value)}),Jt.createElement(Ou,{size:16}),Jt.createElement(Du,{list:w,selectedBlockchain:h,searchedFor:c,type:e,onChange:v=>{C(v);let I=y.find(S=>v.blockchain===S.name);I&&b(I),n()}}))}i(ts,"SelectSwapItemsPage");import{i18n as Pt}from"@lingui/core";import{ChevronRightIcon as rs,Divider as is,InfoIcon as ey,List as ty,ListItemButton as oy,Skeleton as ny,Switch as ry,Tooltip as iy,Typography as $t}from"@rango-dev/ui";import V from"react";import{useNavigate as sy}from"react-router-dom";import{i18n as Qu}from"@lingui/core";import{Divider as Yh,InfoIcon as Jh,TextField as Zh,Tooltip as Rh,Typography as Vu}from"@rango-dev/ui";import Ne from"react";import{Chip as jh,styled as vo,TextField as Xh}from"@rango-dev/ui";var Uu=vo("div",{paddingTop:"$5",padding:"$10 $5"}),qu=vo("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Xh}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),zu=vo("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Zn=vo("div",{maxWidth:"280px",padding:"$10"}),Gu=vo(jh,{width:"61px",flexShrink:0});import{i18n as os}from"@lingui/core";import{Typography as Kh}from"@rango-dev/ui";import Ao from"react";function Hu(){return Ao.createElement(Zn,null,Ao.createElement(Kh,{variant:"label",size:"medium",color:"neutral700"},os.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),Ao.createElement("br",null),Ao.createElement("br",null),Ao.createElement("b",null,os.t("Warning")),":",os.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Hu,"SlippageTooltipContent");function ns(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Ne.createElement(Uu,null,Ne.createElement(zu,null,Ne.createElement(Vu,{variant:"title",size:"xmedium"},Qu.t("Slippage tolerance per swap")),Ne.createElement(Yh,{direction:"horizontal",size:4}),Ne.createElement(Rh,{container:O(),side:"top",sideOffset:4,content:Ne.createElement(Hu,null)},Ne.createElement(Jh,{color:"gray"}))),Ne.createElement(qu,null,Ys.map((r,s)=>{let a=`slippage-${s}`;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Gu,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Ne.createElement(Zh,{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>=ea&&s<=Rs)&&n(s)},suffix:o&&Ne.createElement(Vu,{variant:"body",size:"small"},"%"),placeholder:Qu.t("Custom")})))}i(ns,"Slippage");function ju(){let t=sy(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=Le("theme",s),l=Le("liquiditySource",s),p=Le("language",s),u=d().infiniteApprove,m=d().toggleInfiniteApprove,c=Do(n,r),g=c.filter(S=>S.type==="BRIDGE"||S.type==="AGGREGATOR"),f=g.length,x=g.filter(S=>S.selected).length,h=c.filter(S=>S.type==="DEX"),y=h.length,A=h.filter(S=>S.selected).length,T=i((S,$)=>{switch(o){case"loading":return V.createElement(ny,{variant:"text",size:"medium",width:50});case"failed":return V.createElement($t,{variant:"body",size:"medium",color:"$error500"},Pt.t("Loading failed"));default:return V.createElement($t,{variant:"body",size:"medium"},`${S} / ${$}`)}},"handleEndItem"),w={id:"bridge-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled bridges")),end:V.createElement(V.Fragment,null,T(x,f),V.createElement(is,{direction:"horizontal",size:8}),V.createElement(rs,{color:"black"})),onClick:()=>t(_.bridges)},b={id:"exchange-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled exchanges")),end:V.createElement(V.Fragment,null,T(A,y),V.createElement(is,{direction:"horizontal",size:8}),V.createElement(rs,{color:"gray"})),onClick:()=>t(_.exchanges)},C={id:"theme-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Theme")),end:V.createElement(rs,{color:"gray"}),onClick:()=>t(_.themes)},v={id:"infinite-approval-item",title:V.createElement(V.Fragment,null,V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Infinite approval")),V.createElement(is,{direction:"horizontal",size:4}),V.createElement(iy,{side:"top",sideOffset:4,container:O(),content:V.createElement(Zn,null,V.createElement($t,{variant:"label",size:"medium",color:"neutral700"},Pt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},V.createElement(ey,{color:"gray"}))),end:V.createElement(ry,{checked:u}),onClick:m},I=l?[]:[w,b];return!e?.singleTheme&&!a&&I.push(C),I.push(v),V.createElement(X,{header:{title:Pt.t("Settings")}},V.createElement(ct,null,V.createElement(ns,null),V.createElement(ty,{type:V.createElement(oy,{title:"_",id:"_",onClick:()=>console.log()}),items:I})))}i(ju,"SettingsPage");import{cancelSwap as Ky}from"@rango-dev/queue-manager-rango-preset";import{useManager as Yy}from"@rango-dev/queue-manager-react";import bc from"react";import{i18n as dt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as By,getCurrentStep as Ny,getRelatedWalletOrNull as Ly}from"@rango-dev/queue-manager-rango-preset";import{Button as Sc,CopyIcon as Py,Divider as $y,IconButton as My,QuoteCost as _y,StepDetails as Dy,Typography as eo,useCopyToClipboard as Fy}from"@rango-dev/ui";import{useWallets as Oy}from"@rango-dev/wallets-react";import Cc from"bignumber.js";import{PendingSwapNetworkStatus as ur}from"rango-types";import K,{useEffect as kc,useRef as Uy,useState as Tc}from"react";import{useNavigate as qy}from"react-router-dom";import{i18n as xt}from"@lingui/core";var ay=[xt.t("Sunday"),xt.t("Monday"),xt.t("Tuesday"),xt.t("Wednesday"),xt.t("Thursday"),xt.t("Friday"),xt.t("Saturday")];function Xu(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"):`${ay[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Xu,"timeSince");function Ku(t){return t.finishTime?Xu(parseInt(t.finishTime)):Xu(parseInt(t.creationTime))}i(Ku,"getSwapDate");import{Modal as fy}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 Yu,Divider as ss,MessageBox as ly,Typography as Ju}from"@rango-dev/ui";import nt from"react";var Zu=i(({onCancel:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(ss,{size:20}),nt.createElement(ly,{type:"error",title:Rn.t("Cancel Swap"),description:Rn.t("Are you sure you want to cancel this swap?")}),nt.createElement(ss,{size:32}),nt.createElement(Yu,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(Ju,{variant:"title",size:"medium",color:"neutral100"},Rn.t("Yes, Cancel it"))),nt.createElement(ss,{size:12}),nt.createElement(Yu,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(Ju,{variant:"title",size:"medium",color:"primary"},Rn.t("No, Continue")))),"CancelContent");import{i18n as er}from"@lingui/core";import{Button as Ru,Divider as as,MessageBox as py,Typography as ec}from"@rango-dev/ui";import rt from"react";var tc=i(({onDelete:t,onClose:e})=>rt.createElement(rt.Fragment,null,rt.createElement(as,{size:20}),rt.createElement(py,{type:"error",title:er.t("Delete Transaction"),description:er.t("Are you sure you want to delete this swap?")}),rt.createElement(as,{size:32}),rt.createElement(Ru,{variant:"contained",type:"primary",size:"large",onClick:t},rt.createElement(ec,{variant:"title",size:"medium",color:"neutral100"},er.t("Yes, Delete it"))),rt.createElement(as,{size:12}),rt.createElement(Ru,{variant:"outlined",type:"primary",size:"large",onClick:e},rt.createElement(ec,{variant:"title",size:"medium",color:"primary"},er.t("No, Cancel")))),"DeleteContent");import{i18n as ls}from"@lingui/core";import{PendingSwapNetworkStatus as ps}from"rango-types";var us={[ps.WaitingForNetworkChange]:{type:"loading",title:ls.t("Change Network")},[ps.WaitingForConnectingWallet]:{type:"warning",title:ls.t("Connect Wallet")},[ps.NetworkChanged]:{type:"success",title:ls.t("Network Changed")}};import{MessageBox as cy,Wallet as my}from"@rango-dev/ui";import{useWallets as dy}from"@rango-dev/wallets-react";import bo from"react";import{styled as uy}from"@rango-dev/ui";var oc=uy("div",{display:"flex",justifyContent:"center"});var nc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=dy(),u=n?.walletType,m=u?kr(p(u)):null,c=u?l(u):null;return bo.createElement(bo.Fragment,null,bo.createElement(cy,{type:e,title:o,description:r}),s&&!!u&&!!m&&!!c&&bo.createElement(oc,null,bo.createElement(my,{container:O(),title:c.name,image:c.img,type:u,state:m,link:c.installLink,onClick:async()=>a(u)})))},"WalletStateContent");function cs(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(fy,{open:!!e,onClose:o,container:document.getElementById(Te)||document.body},l&&or.createElement(nc,{type:us[e].type,title:us[e].title,currentStepWallet:s,message:a,showWalletButton:e!==tr.WaitingForNetworkChange}),e==="delete"&&or.createElement(tc,{onClose:o,onDelete:n}),e==="cancel"&&or.createElement(Zu,{onClose:o,onCancel:r}))}i(cs,"SwapDetailsModal");import{i18n as Io}from"@lingui/core";import{Button as ms,Divider as nr,MessageBox as rc,Modal as gy,TokenAmount as hy,Typography as rr}from"@rango-dev/ui";import me from"react";import{useNavigate as yy}from"react-router-dom";function ds(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=yy();return me.createElement(gy,{open:e,onClose:o,container:document.getElementById(Te)||document.body},n==="success"?me.createElement(rc,{type:"success",title:Io.t("Swap Successful")},me.createElement(hy,{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(rc,{type:"error",title:Io.t("Transaction Failed"),description:c}),me.createElement(nr,{size:32}),n==="success"&&me.createElement(ms,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},me.createElement(rr,{variant:"title",size:"medium",color:"neutral100"},Io.t("Done"))),me.createElement(nr,{size:12}),g&&me.createElement(me.Fragment,null,me.createElement(ms,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Io.t("Diagnosis"))),me.createElement(nr,{size:12})),me.createElement(ms,{variant:"outlined",type:"primary",size:"large",onClick:o},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Io.t("See Details"))))}i(ds,"SwapDetailsCompleteModal");import Ey from"react";import{i18n as vy}from"@lingui/core";import{Alert as uc,IconButton as Ay,LinkIcon as by}from"@rango-dev/ui";import vt,{Fragment as Iy}from"react";import{Alert as Sy,ChevronDownIcon as Cy,ChevronUpIcon as ky,IconButton as Ty}from"@rango-dev/ui";import ir,{useState as wy}from"react";function ic(t){let{message:e}=t,[o,n]=wy(!1);return ir.createElement(Sy,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&ir.createElement(Ty,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?ir.createElement(ky,{size:12,color:"gray"}):ir.createElement(Cy,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(ic,"FailedAlert");import{styled as xy}from"@rango-dev/ui";var sc=xy("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as ac}from"@lingui/core";import{Alert as fs,Button as lc}from"@rango-dev/ui";import{PendingSwapNetworkStatus as gs}from"rango-types";import Eo from"react";function pc(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Eo.createElement(fs,{type:"warning",title:n.shortMessage,action:Eo.createElement(lc,{size:"xxsmall",type:"warning",onClick:()=>{o(gs.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},ac.t("Change"))}):r===gs.WaitingForConnectingWallet?Eo.createElement(fs,{type:"warning",title:n.shortMessage,action:Eo.createElement(lc,{size:"xxsmall",type:"warning",onClick:()=>{o(gs.WaitingForConnectingWallet)}},ac.t("Connect"))}):Eo.createElement(fs,{type:"warning",title:n.shortMessage})}i(pc,"WarningAlert");function hs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=ro(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l;return vt.createElement(sc,null,s.explorerUrl?.map((m,c,g)=>{let f=c+m.url,x=c===g.length-1,h=x&&u||p,y=x&&s.status==="failed";return vt.createElement(Iy,{key:f},vt.createElement(uc,{type:h&&"loading"||y&&"error"||"success",title:m.description?`${m.description} Tx`:vy.t("View transaction"),action:m.url&&vt.createElement(Ay,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},vt.createElement(by,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&vt.createElement(uc,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&vt.createElement(pc,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&vt.createElement(ic,{message:r}))}i(hs,"SwapDetailsAlerts");var cc=2e3;var mc=i(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,s)=>{let a=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Je(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:W(a,6,6),realValue:a}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Je(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:W(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6),realValue:r.outputAmount||r.expectedOutputAmountHumanReadable}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Ey.createElement(hs,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function dc(t){if(ro(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(dc,"getStepState");import{css as sr,darkTheme as Wy,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%"}),fc=Zt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),e$=Zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),gc=Zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),t$=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",[`.${Wy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),pr=sr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),hc=sr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),yc=sr({width:"100%",padding:"0 $20 $10"});function ys(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Oy(),p=d().blockchains(),u=d().tokens(),m=U.use.retry(),c=qy(),[g,f]=Fy(cc),x=Uy(null),[h,y]=Tc(null),[A,T]=Tc(null),w=i(()=>{r(),y(null)},"onCancel"),b=Me.use.getUnreadNotifications(),C=Me.use.setAsRead(),v=b(),I=Ny(e),S=I?.networkStatus;kc(()=>{v.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),C(e.requestId))},[e.status]),kc(()=>{G?y(ur.WaitingForNetworkChange):S===ur.WaitingForConnectingWallet||S===ur.NetworkChanged?y(S):y(null)},[S]);let $=Sa(e),N=I?By(e,I):null,L=I?Ly(e,I):null,k=Ku(e),M=Ca(e),E=i(ue=>!!l(ue)?.mobileWallet,"isMobileWallet"),G=S===ur.WaitingForNetworkChange&&!!N&&!!L?.walletType&&(E(L.walletType)||s(L.walletType,N)),J=G?a.bind(null,L.walletType,N):void 0,te=ya(e,I),H=mc({swap:e,switchNetwork:J,showNetworkModal:S,setNetworkModal:y,message:te,blockchains:p}),re=H.length,[ye,Se]=[e.steps[0],e.steps[re-1]],Ce=Se.outputAmount||Se.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((ue,de)=>ue+parseFloat(de.feeInUsd||""),0),oo=e.steps.find(ue=>ue.diagnosisUrl)?.diagnosisUrl,it=W(parseFloat(W(Ce,6,6))*(Se.toUsdPrice||0),4,4),Xe=W(parseFloat(e.inputAmount)*(ye.fromUsdPrice||0),4,4),D=Ce?se(new Cc(Ce).multipliedBy(Se.toUsdPrice||0)):"",Y=se(new Cc(e.inputAmount).multipliedBy(ye.fromUsdPrice||0)),j=$e(Xe,it),Ee=e.status==="success"?dt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:W(Ce,6,6),token:H[re-1].to.token.displayName,conciseAddress:jo(e.wallets[H[re-1].to.chain.displayName]?.address||""),chain:H[re-1].to.chain.displayName}}):`${dt.t("Transaction was not sent.")} ${$?dt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:$.outputAmount,symbol:$.symbol,blockchain:$.blockchain}}):""}`;return K.createElement(X,{noPadding:!0,header:{title:dt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Gt,null,K.createElement(Sc,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},K.createElement(eo,{size:"medium",variant:"label",color:"error"},dt.t("Delete"))))},footer:M&&!A&&K.createElement(Sc,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},dt.t("Try again"))},K.createElement(ar,null,K.createElement(lr,null,K.createElement("div",{className:Rt()},K.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${dt.t("Request ID")}:`),K.createElement("div",{className:pr()},K.createElement(eo,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(My,{variant:"ghost",onClick:f.bind(null,o||"")},K.createElement(Py,{size:16,color:"gray"})))),K.createElement("div",{className:Rt()},K.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${dt.t(e.finishTime?"Finished at":"Created at")}:`),K.createElement(eo,{variant:"label",size:"small",color:"neutral700"},k))),K.createElement("div",{className:hc()},K.createElement(_y,{fee:W(String(Mt),2,2),time:Oo(Uo(e.steps)),steps:re}),K.createElement(po,{from:{price:{value:W(e.inputAmount,6,6),usdValue:Xe,realUsdValue:Y,realValue:e.inputAmount},token:{displayName:H[0].from.token.displayName,image:H[0].from.token.image},chain:{image:H[0].from.chain.image,displayName:H[0].from.chain.displayName}},to:{price:{value:W(Ce,6,6),usdValue:it,realUsdValue:D,realValue:Ce},token:{displayName:H[re-1].to.token.displayName,image:H[re-1].to.token.image},chain:{image:H[re-1].to.chain.image,displayName:H[re-1].to.chain.displayName}},percentageChange:W(j,2,2),warningLevel:at(j??0)})),K.createElement("div",{className:yc()},K.createElement(eo,{variant:"title",size:"small"},dt.t("Swaps steps"))),K.createElement($y,{size:8}),K.createElement(fc,{ref:x},H.map((ue,de)=>{let $o=de,st=dc(e.steps[de]),Gc=st==="error"||st==="in-progress"||st==="warning"||st==="completed"&&de===H.length-1;return K.createElement(Dy,{key:$o,step:ue,type:"swap-progress",ref:x,state:st,hasSeparator:de!==0,tabIndex:$o,isFocused:Gc,tooltipContainer:O()})}))),K.createElement(cs,{state:h,onClose:()=>y(null),onCancel:w,onDelete:n,message:te.detailedMessage.content,currentStepWallet:L}),K.createElement(ds,{open:!!A,diagnosisUrl:oo,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:W(Ce,6,6),usdValue:it,realUsdValue:D,realValue:se(Ce),percentageChange:W(j,2,2),token:{displayName:H[re-1].to.token.displayName,image:H[re-1].to.token.image},chain:{image:H[re-1].to.chain.image},description:Ee}))}i(ys,"SwapDetails");import{i18n as Bo}from"@lingui/core";import{CopyIcon as Vy,IconButton as jy,NotFound as Xy,Skeleton as vc,Typography as mr}from"@rango-dev/ui";import pe from"react";import{i18n as zy}from"@lingui/core";import{Divider as Gy,Skeleton as Hy,Typography as Qy}from"@rango-dev/ui";import ie from"react";import{css as je,styled as Ss}from"@rango-dev/ui";var wc=Ss("div",{width:"100%",height:"100%",padding:"$10 $20"}),Wo=Ss("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),cr=Ss("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),L$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),P$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),$$=je({paddingTop:"$15",display:"flex"}),M$=je({padding:"$15 $0"}),_$=je({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),D$=je({paddingBottom:"$10"}),F$=je({display:"flex",justifyContent:"start",alignItems:"center"}),O$=je({paddingTop:"$5",display:"flex",alignItems:"center"}),U$=je({display:"flex",alignItems:"center"}),q$=je({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),xc=je({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Cs(){return ie.createElement(wc,null,ie.createElement(fo,{type:"swap-preview"}),ie.createElement("div",{className:"swaps-steps"},ie.createElement(Qy,{variant:"title",size:"small"},zy.t("Swaps steps"))),ie.createElement(ie.Fragment,null,ie.createElement(Wo,null,ie.createElement(tt,{separator:!1}),ie.createElement("div",{className:xc()},ie.createElement(Gy,{direction:"horizontal",size:20}),ie.createElement(Hy,{height:22,variant:"rectangular"}))),ie.createElement(cr,null),ie.createElement(Wo,null,ie.createElement(tt,{separator:!1})),ie.createElement(cr,null),ie.createElement(Wo,null,ie.createElement(tt,{separator:!1})),ie.createElement(cr,null),ie.createElement(Wo,null,ie.createElement(tt,{separator:!1}))))}i(Cs,"LoadingSwapDetails");function Ac(t){let{requestId:e,showSkeleton:o}=t;return pe.createElement(X,{noPadding:!0,header:{title:Bo.t("Swap and Bridge"),suffix:pe.createElement(Gt,null)}},o&&pe.createElement(ar,null,pe.createElement(lr,null,pe.createElement("div",{className:Rt()},pe.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${Bo.t("Request ID")}:`),pe.createElement("div",{className:pr()},pe.createElement(mr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(vc,{width:60,height:10,variant:"rounded"})),pe.createElement(jy,{variant:"ghost"},pe.createElement(Vy,{size:16,color:"gray"})))),pe.createElement("div",{className:Rt()},pe.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${Bo.t("Created at")}:`),pe.createElement(mr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(vc,{width:60,height:10,variant:"rounded"})))),pe.createElement(Cs,null)),!o&&pe.createElement(gc,null,pe.createElement(Xy,{title:Bo.t("Not found"),description:Bo.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Ac,"SwapDetailsPlaceholder");function Ic(){let{manager:t,state:e}=Yy(),o=!e.loadedFromPersistor,n=jt(t),r=Ae.use.selectedSwapRequestId(),s=St(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Ky(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?bc.createElement(Ac,{requestId:r||"",showSkeleton:l}):bc.createElement(ys,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Ic,"SwapDetailsPage");import{i18n as No}from"@lingui/core";import{AutoThemeIcon as Jy,DarkModeIcon as Zy,LightModeIcon as Ry,List as eS,ListItemButton as tS,Radio as ks,RadioRoot as oS,Typography as Ts}from"@rango-dev/ui";import be from"react";function Ec(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:be.createElement(Ts,{variant:"title",size:"xmedium"},No.t("Light")),onClick:()=>t("light"),start:be.createElement(Ry,{color:"gray"}),end:be.createElement(ks,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(Ts,{variant:"title",size:"xmedium"},No.t("Dark")),onClick:()=>t("dark"),start:be.createElement(Zy,{color:"gray"}),end:be.createElement(ks,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(Ts,{variant:"title",size:"xmedium"},No.t("Auto")),onClick:()=>t("auto"),start:be.createElement(Jy,{color:"gray"}),end:be.createElement(ks,{value:"auto"})}];return be.createElement(X,{header:{title:No.t("Theme")}},be.createElement(ct,null,be.createElement(oS,{onValueChange:n=>t(n),value:e},be.createElement(eS,{type:be.createElement(tS,{title:No.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Ec,"ThemePage");function Wc(){return nS([{path:_.home,element:Ie.createElement(iu,null)},{path:_.fromSwap,children:[{index:!0,element:Ie.createElement(ts,{type:"source"})},{path:_.blockchains,element:Ie.createElement(Fi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ie.createElement(ts,{type:"destination"})},{path:_.blockchains,element:Ie.createElement(Fi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Ie.createElement(ju,null)},{path:_.themes,element:Ie.createElement(Ec,null)},{path:_.languages,element:Ie.createElement(au,null)},{path:_.exchanges,element:Ie.createElement(Pi,{sourceType:"Exchanges"})},{path:_.bridges,element:Ie.createElement(Pi,{sourceType:"Bridges"})}]},{path:_.swaps,children:[{index:!0,element:Ie.createElement(eu,null)},{path:_.swapDetails,element:Ie.createElement(Ic,null)}]},{path:_.wallets,element:Ie.createElement(Tl,null)},{path:_.confirmSwap,element:Ie.createElement(Hp,null)}])}i(Wc,"AppRoutes");import{isApprovalTX as rS,MainEvents as Nc,RouteEventType as Lc,StepEventType as to,StepExecutionEventStatus as iS,useEvents as sS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Pc}from"react";import{StepExecutionBlockedEventStatus as ws}from"@rango-dev/queue-manager-rango-preset";var Bc=[ws.WAITING_FOR_CHANGE_WALLET_ACCOUNT,ws.WAITING_FOR_NETWORK_CHANGE,ws.WAITING_FOR_WALLET_CONNECT];function $c(){let t=d().tokens(),e=z.use.connectedWallets(),o=z.use.getWalletsDetails(),n=Me.use.setNotification(),r=Me.use.setAsRead(),s=sS();return Pc(()=>(s.on(Nc.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===to.TX_EXECUTION&&l.status===iS.TX_SENT&&!rS(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&&Bc.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]),Pc(()=>(s.on(Nc.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Lc.FAILED||l.type===Lc.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i($c,"WidgetEvents");import{globalCss as aS}from"@rango-dev/ui";var Mc=i(()=>aS({"@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 lS}from"@rango-dev/ui";var _c=lS("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(){Mc();let{config:t}=d(),{activeTheme:e}=Sn(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Hn(),[r,s]=Fc(""),[a,l]=Fc(),p=uS(pn);return Dc(()=>{Me.persist.rehydrate(),p.onConnectWallet(s)},[]),Dc(()=>{n(t?.language)},[t?.language]),Lo.createElement(pS,{language:o},Lo.createElement(_c,{id:"swap-container",className:e()},Lo.createElement($c,null),Lo.createElement(La,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Lo.createElement(Wc,null))))}i(dr,"Main");import vs,{useMemo as ES}from"react";import{checkWaitingForNetworkChange as cS,makeQueueDefinition as mS}from"@rango-dev/queue-manager-rango-preset";import{Provider as dS}from"@rango-dev/queue-manager-react";import{useWallets as fS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as gS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as hS}from"rango-types";import yS,{useMemo as SS}from"react";function CS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=fS(),l=SS(()=>mS({API_KEY:t.apiKey||_t("API_KEY"),BASE_URL:_t("BASE_URL")}),[t.apiKey]),p=d().blockchains(),m={blockchains:z.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},c=i(async(T,w)=>{if(s(T,w))return r(T,w)},"switchNetwork"),g=i(T=>!!a(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),x=p.filter(hS),h=i(T=>{let{supportedChains:w}=a(T);return Go(w)},"getSupportedChainNames"),y=e(),A={meta:{blockchains:f,evmBasedChains:x,evmNetworkChainInfo:gS(x),getSupportedChainNames:h},getSigners:o,wallets:m,providers:y,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return yS.createElement(dS,{queuesDefs:[l],context:A,onPersistedDataLoaded:T=>{cS(T)},isPaused:!1},t.children)}i(CS,"QueueManager");var Oc=CS;import{useManager as vS}from"@rango-dev/queue-manager-react";import AS,{createContext as bS,useContext as IS}from"react";import{cancelSwap as kS,getCurrentBlockchainOfOrNull as TS,getCurrentStep as wS,getRelatedWalletOrNull as xS}from"@rango-dev/queue-manager-rango-preset";var Po=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&&kS(o)}getCurrentStepInfo(e){let o=wS(e);return{step:o,wallet:o?xS(e,o):null,network:o?TS(e,o):null}}};i(Po,"WidgetHistory");var Uc=bS(void 0);function xs(t){let{manager:e}=vS(),o=U.use.retry(),n=new Po(e,{retrySwap:o}),r=z.use.connectedWallets(),s=z.use.loading(),a=Gs(r),l=z.use.getWalletsDetails(),p=d().blockchains(),u=d().tokens(),m=d().swappers(),c=d().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:u,swappers:m,loadingStatus:c}};return AS.createElement(Uc.Provider,{value:g},t.children)}i(xs,"WidgetInfo");function qc(){let t=IS(Uc);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(qc,"useWidget");function fr(t){let{onUpdateState:e,config:o}=t;return ES(()=>{Es({API_KEY:o?.apiKey||Mo,BASE_URL:o?.apiUrl||Is})},[o]),vs.createElement(un,{config:o,onUpdateState:e},vs.createElement(Oc,{apiKey:o.apiKey},vs.createElement(xs,null,t.children)))}i(fr,"WidgetProvider");function zc(t){return t.config?.externalWallets?As.createElement(dr,null):As.createElement(fr,{config:t.config??gr},As.createElement(dr,null))}i(zc,"Widget");export{cD as MainEvents,TD as Networks,vD as PendingSwapNetworkStatus,mD as RouteEventType,dD as StepEventType,fD as StepExecutionBlockedEventStatus,gD as StepExecutionEventStatus,CD as WalletEvents,wD as WalletTypes,zc as Widget,fr as WidgetProvider,un as WidgetWallets,Ur as customizedThemeTokens,SD as readAccountAddress,Wl as useWallets,qc as useWidget,hD as useWidgetEvents};
|
|
1
|
+
var Qc=Object.defineProperty;var i=(t,e)=>Qc(t,"name",{value:e,configurable:!0});import{MainEvents as gD,RouteEventType as hD,StepEventType as yD,StepExecutionBlockedEventStatus as SD,StepExecutionEventStatus as CD,useEvents as kD}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as wD,useWallets as Bl,Events as xD}from"@rango-dev/wallets-react";import{Networks as AD,WalletTypes as bD}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as ED}from"rango-types";import{Events as $r,Provider as Im}from"@rango-dev/wallets-react";import{isEvmBlockchain as Em}from"rango-sdk";import ln,{createContext as Wm,useEffect as Mr,useRef as Bm,useState as Nm}from"react";import{useEffect as rn,useLayoutEffect as Ia,useRef as sn}from"react";import um,{createContext as cm,useContext as mm,useEffect as dm,useRef as fm}from"react";import{create as lm}from"zustand";import{persist as pm}from"zustand/middleware";var gr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0,customDestination:!0},Is=i((t,e,o)=>({config:{...gr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as nm}from"rango-sdk";var _o="c6381a79-2817-4602-83bf-6a641a409e32",Es="https://api.rango.exchange",Te="rango-swap-box";import{WalletState as Ke}from"@rango-dev/ui";import{readAccountAddress as Xc}from"@rango-dev/wallets-react";import{detectInstallLink as Kc,getCosmosExperimentalChainInfo as Yc,isEvmAddress as Jc,KEPLR_COMPATIBLE_WALLETS as VS,Networks as Ls}from"@rango-dev/wallets-shared";import hr from"bignumber.js";import{isCosmosBlockchain as Zc}from"rango-types";import Vc from"bignumber.js";var We=new Vc(0);import{WalletTypes as jc}from"@rango-dev/wallets-shared";var Ws=[jc.LEAP];import{BigNumber as Ns}from"bignumber.js";var Do=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),E=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ns(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ns(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Fo=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Xe=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),no=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function se(t){return E(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(se,"formatTooltipNumbers");function yr(t){switch(!0){case t.connected:return Ke.CONNECTED;case t.connecting:return Ke.CONNECTING;case!t.installed:return Ke.NOT_INSTALLED;default:return Ke.DISCONNECTED}}i(yr,"mapStatusToWalletState");function Ps(t,e,o,n){return o.filter(r=>!Ws.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(m=>m.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l}=e(r),p=yr(t(r));return{title:s,image:a,link:Kc(l),state:p,type:r}})}i(Ps,"mapWalletTypesToWalletInfo");function qo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(qo,"walletAndSupportedChainsNames");function $s(t,e,o,n,r){let s=[];function a(p,u){if(!!!s.find(c=>c.chain===p)){let c={address:u,chain:p,walletType:t};s.push(c)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:m}=Xc(p),c=l.length>0,g=l.includes(m),f=m===Ls.Unknown;if(c&&!g&&!f)return;let h=m===Ls.Unknown&&Jc(u);if(f&&!h)return;o.includes(m)||h?r?a(m,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{a(T,u.toLowerCase())}):a(m,u)}),s}i($s,"prepareAccountsForWalletStore");function Ms(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(s=>{let a=s.from.blockchain,l=s.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}i(Ms,"getRequiredChains");function zo(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(zo,"isAccountAndWalletMatched");function _s(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new hr(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:em(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(_s,"makeBalanceFor");function Ds(t){return{...t,loading:!1,error:!0}}i(Ds,"resetConnectedWalletState");var Fs=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=E(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new hr(s?.amount||We).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),We)||We).toString();return Rc(r)},"calculateWalletUsdValue");function Rc(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Rc,"numberWithThousandSeparator");var em=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),Go=i((t,e)=>{let o=Yc(Object.entries(t).map(([,n])=>n).filter(Zc));return o&&o[e]?.experimental},"isExperimentalChain");function Ho(t){return t?{...t,amount:E(t.amount,8,8),usdValue:E(t.usdValue,4,4)}:null}i(Ho,"formatBalance");function tm(t,e){return t?.usdValue&&e?.usdValue?parseFloat(e.usdValue)-parseFloat(t.usdValue):!t?.usdValue&&e?.usdValue?1:t?.usdValue&&!e?.usdValue?-1:!t?.usdValue&&!e?.usdValue?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(tm,"sortTokensByBalance");function om(t,e,o){let n=o(t),r=o(e);return n===r?0:n?-1:1}i(om,"sortTokensByPinnedToken");function Os(t,e,o){return t.sort((n,r)=>{let s=e(n),a=e(r),l=om(n,r,o);return l!==0?l:tm(s,a)}),t}i(Os,"sortTokens");function Le(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Le,"tokensAreEqual");function Us(t){return t.sort((e,o)=>+(o.state===Ke.CONNECTED)-+(e.state===Ke.CONNECTED)||+(o.state===Ke.DISCONNECTED||o.state===Ke.CONNECTING)-+(e.state===Ke.DISCONNECTED||e.state===Ke.CONNECTING))}i(Us,"sortWalletsBasedOnConnectionState");function Qo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Qo,"getConciseAddress");function qs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(qs,"getAddress");function Sr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Sr,"createTokenHash");function Vo(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new hr(o?.usdPrice??We).multipliedBy(o?.amount).toString():""},r=o?Sr({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(Vo,"makeTokensBalance");var zs=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var Cr={API_KEY:_o};function _t(t){return Cr[t]||""}i(_t,"getConfig");function Gs(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Cr=e,Cr}i(Gs,"initConfig");var Hs=20,Qs=25,Vs="Roboto",kr="theme-widget",ro=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Le(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Le(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Tr=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig");var jo,Dt=i(()=>jo||(jo=new nm(_t("API_KEY"),_t("BASE_URL")),jo),"httpService");function Ft(t){return Array.from(new Set(t))}i(Ft,"removeDuplicateFrom");function wr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wr,"areEqual");function js(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(js,"debounce");function At(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(At,"containsText");var O=i(()=>document.getElementById(Te),"getContainer");function Xo(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Ft(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Xo,"getUniqueSwappersGroups");function Xs(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Xs,"sortLiquiditySourcesByGroupTitle");function Pe(t,e){return e?.[t]==="hidden"}i(Pe,"isFeatureHidden");function Ko(t,e){return e?.[t]==="enabled"}i(Ko,"isFeatureEnabled");var Ks=i((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.tokens:r.to?.tokens)??{},a=e().blockchains({type:o.type});return n.filter(p=>s&&ro(p,s)||o.blockchain&&p.blockchain!==o.blockchain||!a.some(u=>u.name===p.blockchain)?!1:o.searchFor?!!(At(p.symbol,o.searchFor)||At(p.address||"",o.searchFor)||At(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p,o.type)?-1:e().isTokenPinned(u,o.type)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Le(a,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(Xs)},fetch:async()=>{try{let o=await Dt().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],s=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,u)=>p.sort-u.sort),t({_blockchains:n,_tokens:r,_popularTokens:s,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{English as rm,French as im,Japanese as sm,Spanish as am}from"@rango-dev/ui";var Ys=[{title:"English",label:"English",local:"en",SVGFlag:rm},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:am},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:im},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:sm}],Ot="en";var Js=[.5,1,3],Zs=1,Rs=5,ea=100,ta=0;var oa=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Ot,preferredBlockchains:[],slippage:Zs,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=10-1;return p&&u}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let s=Ft(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n}=o,r=Pe("theme",n),s=Pe("language",n),a=Pe("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:Ot},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function na(t){return lm()(pm((...e)=>({...Ks(...e),...oa(...e),...Is(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(na,"createAppStore");var ra=cm(null);function d(){let t=mm(ra);if(dm(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function ia(t){let e=fm();return e.current||(e.current=na(t.config)),um.createElement(ra.Provider,{value:e.current},t.children)}i(ia,"AppStoreProvider");import ht from"bignumber.js";import{create as Tm}from"zustand";import{subscribeWithSelector as wm}from"zustand/middleware";import{getLastSuccessfulStep as Cm}from"@rango-dev/queue-manager-rango-preset";import Ak from"bignumber.js";var dt=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(dt||{});function sa(t,e){return e.find(o=>o.name===t)?.displayName}i(sa,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function aa(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(aa,"getSwapperDisplayName");function vr(t,e){return e.find(o=>Le(o,t))??null}i(vr,"findToken");function Ar(t,e){return e.find(o=>o.name===t)??null}i(Ar,"findBlockchain");import{i18n as Oe}from"@lingui/core";import ve from"bignumber.js";import{PendingSwapNetworkStatus as Ro}from"rango-types";function Yo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(Yo,"getRequiredWallets");function Jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Jo,"isValidAddress");import{i18n as fe}from"@lingui/core";var V=i(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:fe.t("No Routes Found."),description:fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function la(t){switch(t.type){case 0:return t.diagnosisMessage??V().noResultError.title;case 1:return V().genericServerError;default:return""}}i(la,"getQuoteErrorMessage");import{i18n as Zo}from"@lingui/core";var bt=i(()=>({connectWallet:Zo.t("Connect Wallet"),swap:Zo.t("Swap"),swapAnyway:Zo.t("Swap anyway"),ethWarning:Zo.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function pa(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ve(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ve(1e3)))??!1}i(pa,"hasHighValueLoss");function br(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(br,"hasLimitError");function Ir(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ve(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new ve(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=Oe.t({id:"Required: >= {min} {symbol}",values:{min:E(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Oe.t({id:"Required: > {min} {symbol}",values:{min:E(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Oe.t({id:"Required: <= {max} {symbol}",values:{max:E(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Oe.t({id:"Required: < {max} {symbol}",values:{max:E(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(Ir,"getLimitErrorMessage");function ua(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:bt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:bt().swap,action:"confirm-swap",disabled:!0}:a?{title:bt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:bt().ethWarning,action:"confirm-warning",disabled:!1}:{title:bt().swap,action:"confirm-swap",disabled:!1}:{title:bt().connectWallet,action:"connect-wallet",disabled:!1}}i(ua,"getSwapButtonState");function Er(t,e,o){return!((!o||o.lte(We))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(Er,"canComputePriceImpact");function gm(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(gm,"requiredWallets");var hm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function ym(t,e){let o=We;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=hm(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ve(r.amount).multipliedBy(s||0))}return o}i(ym,"getUsdFeeOfStep");function en(t,e){return t.reduce((o,n)=>o.plus(ym(n,e)),We)}i(en,"getTotalFeeInUsd");function Wr(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Wr,"checkSlippageErrors");function ca(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(ca,"checkSlippageWarnings");function tn(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(tn,"getMinRequiredSlippage");function ma(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ma,"hasProperSlippage");function on(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:g,initialQuote:f,destination:v}=t,h=s?.reduce((b,S)=>(b[S.chain]=S.address,b),{}),y=[];r?.forEach(b=>{let S=y.find(x=>x.blockchain===b.chain);S?S.addresses.push(b.address):y.push({blockchain:b.chain,addresses:[b.address]})});let A=!!f,T=Ft((f?.result?.swaps||[]).reduce((b,S)=>(b.push(S.from.blockchain,S.to.blockchain),S.internalSwaps&&Array.isArray(S.internalSwaps)&&S.internalSwaps.map(x=>{b.push(x.from.blockchain,x.to.blockchain)}),b),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:g??void 0,checkPrerequisites:A,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:h??{},slippage:u.toString(),...v&&{destination:v},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(b=>!a.includes(b)),swappersGroupsExclude:!1},...A&&{blockchains:T}}}i(on,"createQuoteRequestBody");function da(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(da,"getWalletsForNewSwap");function Ut(t){return t.result?.outputAmount||null}i(Ut,"getQuoteOutputAmount");function fa(t,e){return new ve(e).div(new ve(t)).minus(1).multipliedBy(100).toNumber()}i(fa,"getPercentageChange");function ga(t,e){let o=Ut(t),n=Ut(e);if(!o||!n)return!1;let r=$e(o,n);return r?r<=-1:!0}i(ga,"isOutputAmountChangedALot");function ha(t,e,o){let n=t.validationStatus,r=Ms(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>wa(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=E(new ve(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=E(new ve(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Oe.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Oe.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Oe.t(" for input and network fee")),Oe.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Ye(a.asset.blockchain,o)}})})}i(ha,"generateBalanceWarnings");function ya(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(ya,"calcOutputUsdValue");function io(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ro.NetworkChanged}i(io,"isNetworkStatusInWarningState");function Sa(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),io(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Ro.WaitingForConnectingWallet:n=n||Oe.t("Waiting for connecting wallet");break;case Ro.WaitingForQueue:n=n||Oe.t("Waiting for other running tasks to be finished");break;case Ro.WaitingForNetworkChange:n=n||Oe.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(Sa,"getSwapMessages");function Ca(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Ca,"getLastConvertedTokenInFailedSwap");function ka(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(ka,"shouldRetrySwap");function Ta(t,e,o,n,r,s){return t||!e&&!gm(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Jo(s,o)}i(Ta,"confirmSwapDisabled");function Br(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Br,"searchParamsToToken");function va(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(va,"getQuoteToTokenUsdPrice");function Nr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Nr,"isNumberOfSwapsChanged");function Lr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!wr(o,n)}i(Lr,"isQuoteSwappersUpdated");function Pr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!wr(o,n)}i(Pr,"isQuoteInternalCoinsUpdated");function Aa(t,e){return Nr(t,e)||Lr(t,e)||Pr(t,e)}i(Aa,"isQuoteChanged");function wa(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(wa,"getRequiredBalanceOfWallet");function it(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(it,"getPriceImpactLevel");function ba(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=Cm(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ar(s?s.toBlockchain:n.fromBlockchain,e),p=Ar(r.toBlockchain,e),u=vr(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=vr(a,o),c=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}i(ba,"createRetryQuote");function nn(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=It(o,t.requestAmount),l=It(n,t.result?.outputAmount??"");if(t.result&&a&&l){let m=$e(a.toString(),l.toString());if(!!m&&pa(a,m)){let g=en(t.result.swaps,r),f=it(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=tn(t),u=s>Rs;if(ma(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:ca(t,s),minRequiredSlippage:p};return null}i(nn,"generateQuoteWarnings");function $e(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:fa(t.toString(),e.toString());return n&&n<0?n:null}i($e,"getPriceImpact");var km=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),gt=km;var It=i((t,e)=>t?.usdPrice?new ht(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=gt(Tm()(wm(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ht(0),outputUsdValue:new ht(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=We;return no(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ht(e.result?.outputAmount):null,r=ya(e.result?.outputAmount,va(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new ht(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:It(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new ht(0),outputUsdValue:new ht(0),quote:null},...!!o.fromToken&&{inputUsdValue:It(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=ba(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:It(a??null,u),outputUsdValue:new ht(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:It(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Ea(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=U(),u=d().config,m=d().fetchStatus,c=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:v,setAffiliateWallets:h}=d(),y=u?.from?.tokens,A=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,b=sn(void 0),S=sn(void 0),x=sn(void 0),I=sn(void 0);rn(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Ia(()=>{if(m==="success"){let C=c.find($=>$.name===u?.from?.blockchain),N=g.find($=>Le($,u?.from?.token||null));(C||!C&&x.current)&&n(C??null),N?r({token:N,meta:{blockchains:c,tokens:g}}):!N&&b.current&&r({token:null}),x.current=u?.from?.blockchain,b.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),rn(()=>{ro(s,y)&&r({token:null}),Tr(l,A)&&n(null)},[y,A]),rn(()=>{ro(a,T)&&r({token:null}),Tr(p,w)&&o(null)},[T,w]),Ia(()=>{if(m==="success"){let C=c.find($=>$.name===u?.to?.blockchain),N=g.find($=>Le($,u?.to?.token||null));(C||!C&&I.current)&&o(C??null),N?e({token:N,meta:{blockchains:c,tokens:g}}):!N&&S.current&&e({token:null}),I.current=u?.to?.blockchain,S.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),rn(()=>{f(u?.affiliate?.ref??null),v(u?.affiliate?.percent??null),h(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ea,"useSyncStoresWithConfig");import{useEffect as bm}from"react";import{create as xm}from"zustand";import{subscribeWithSelector as vm}from"zustand/middleware";var H=gt(xm()(vm((t,e)=>({connectedWallets:[],balances:{},customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Vo(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>zo(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),p=(await Dt().getWalletsDetails(a)).wallets;if(p)t(u=>{let m=u.connectedWallets.map(g=>{let f=o.find(h=>zo(h,g)),v=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return v?.failed&&f&&r&&s([f],n,!1),f&&v?{...g,explorerUrl:v.explorerUrl,balances:_s(v,n),loading:!1}:g});return{loading:!1,balances:Vo(m),connectedWallets:m}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(m=>o.find(c=>zo(c,m))?Ds(m):m);return{loading:!1,balances:Vo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Sr(o);return n[r]??null}}))));import{allProviders as Am}from"@rango-dev/provider-all";function an(t,e){let o=Am({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(an,"matchAndGenerateProviders");function Wa(t,e){return an(t,e).map(r=>r.config.type)}i(Wa,"configWalletsToWalletName");function Ba(t,e){let o=H.use.clearConnectedWallet(),n=an(void 0,e);return bm(()=>{o(),n=an(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Ba,"useWalletProviders");var pn=Wm({onConnectWallet:()=>{}});function Lm(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},[l,p]=Nm([]),{providers:u}=Ba(t.config.wallets,a),{connectWallet:m,disconnectWallet:c}=H(),g=Bm();Ea(),Mr(()=>{n().catch(console.log)},[]),Mr(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let f=r.filter(Em).map(h=>h.name),v=i((h,y,A,T,w)=>{if(y===$r.ACCOUNTS)if(A){let b=qo(w.supportedBlockchains),S=$s(h,A,f,b,w.isContractWallet);p(S)}else c(h);if(y===$r.ACCOUNTS&&T.connected){let b=`${h}-${T.network}-${A}`;T.connected&&(g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(y===$r.NETWORK&&T.network){let b=`${h}-${T.network}`;g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,y,A,T,w)},"onUpdateState");return Mr(()=>{l.length&&m(l,s)},[l,s]),ln.createElement(pn.Provider,{value:{onConnectWallet:h=>{g.current=h}}},ln.createElement(Im,{allBlockChains:r,providers:u,onUpdateState:v,autoConnect:!0},t.children))}i(Lm,"Main");function un(t){let{config:e,...o}=t;return ln.createElement(ia,{config:e},ln.createElement(Lm,{...o,config:e}))}i(un,"WidgetWallets");import bs from"react";import{I18nManager as uS}from"@rango-dev/ui";import Po,{useContext as cS,useEffect as Fc,useState as Oc}from"react";import{useQueueManager as qm}from"@rango-dev/queue-manager-rango-preset";import{useWallets as zm}from"@rango-dev/wallets-react";import{isEvmBlockchain as Gm}from"rango-types";import cn,{Fragment as Hm}from"react";import{MemoryRouter as Qm,useInRouterContext as Vm}from"react-router";import{useWallets as $m}from"@rango-dev/wallets-react";import{useEffect as Mm,useRef as _m}from"react";function Na(){let{connect:t,state:e}=$m(),o=_m({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Mm(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(Na,"useForceAutoConnect");import{useEffect as _r,useRef as Dr}from"react";import{createSearchParams as Fm,useLocation as Om,useSearchParams as Um}from"react-router-dom";var _={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",themes:"themes",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId"};import{create as Dm}from"zustand";var Ae=gt(Dm()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function La(){let t=Dr(!0),[e,o]=Um(),n=Om(),r=Dr(n.search),s=Dr({}),a=U.use.fromBlockchain(),l=U.use.toBlockchain(),p=U.use.fromToken(),u=U.use.toToken(),m=U.use.setFromBlockchain(),c=U.use.setFromToken(),g=U.use.setToBlockchain(),f=U.use.setToToken(),v=U.use.inputAmount(),h=U.use.setInputAmount(),y=d().fetchStatus,A=d().blockchains(),T=d().tokens(),w=Ae.use.setSelectedSwap();return _r(()=>{let b={};Fm(r.current).forEach((x,I)=>{b[I]=x}),s.current=b;let S=n.pathname.split(_.swaps+"/")[1]||null;S&&w(S)},[]),_r(()=>{if(!t.current){let b="",S="",x="",I="",C="",N=s.current["autoConnect"];y!=="success"?(b=s.current["fromBlockchain"],S=s.current["fromToken"],x=s.current["toBlockchain"],I=s.current["toToken"],C=s.current["fromAmount"]||v):(b=a?.name||"",S=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),x=l?.name||"",I=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),C=v),o({...b&&{["fromBlockchain"]:b},...S&&{["fromToken"]:S},...x&&{["toBlockchain"]:x},...I&&{["toToken"]:I},...C&&{["fromAmount"]:C.toString()},...N&&{["autoConnect"]:N}},{replace:!0})}t.current=!1},[n.pathname,v,a,p,l,u]),_r(()=>{if(y==="success"){let b=e.get("fromBlockchain"),S=e.get("fromToken"),x=e.get("toBlockchain"),I=e.get("toToken"),C=e.get("fromAmount"),N=A.find(M=>M.name===b),$=Br(T,S,N||null),B=A.find(M=>M.name===x),k=Br(T,I,B||null);N&&(m(N),$&&c({token:$,meta:{blockchains:A,tokens:T}})),B&&(g(B),k&&f({token:k,meta:{blockchains:A,tokens:T}})),C&&h(C)}},[y]),null}i(La,"UpdateUrl");function Pa({children:t,...e}){let o=Vm(),n=o?Hm:Qm,r=d().blockchains(),{canSwitchNetworkTo:s}=zm();Na();let a=r.filter(Gm);return qm({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),cn.createElement(cn.Fragment,null,cn.createElement(n,null,t),o&&cn.createElement(La,null))}i(Pa,"AppRouter");import Ie from"react";import{useRoutes as rS}from"react-router-dom";import{i18n as Fn}from"@lingui/core";import{useManager as ug}from"@rango-dev/queue-manager-react";import{Alert as qp,Button as zp,css as wi,Divider as cg,IconButton as Gp,RefreshIcon as mg,SettingsIcon as dg,styled as Hp,Tooltip as fg,Typography as gg,WalletIcon as hg}from"@rango-dev/ui";import te,{useEffect as ko,useLayoutEffect as yg,useRef as Sg,useState as On}from"react";import{flushSync as Cg}from"react-dom";import{useNavigate as kg}from"react-router-dom";import{i18n as st}from"@lingui/core";import{Alert as oi,BalanceErrors as uf,Button as Nl,ChevronDownIcon as cf,ChevronLeftIcon as mf,Divider as Qt,MessageBox as df,Modal as Ll,Typography as En,WalletIcon as ff}from"@rango-dev/ui";import P,{useEffect as gf,useLayoutEffect as hf,useRef as yf,useState as Bt}from"react";import{useNavigate as Sf}from"react-router-dom";import{i18n as mn}from"@lingui/core";function dn(t){switch(t.type){case 0:return mn.t("Route has been updated.");case 3:return mn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return mn.t("Route swappers has been updated.");case 2:return mn.t("Route internal coins has been updated.");default:return""}}i(dn,"getQuoteUpdateWarningMessage");import*as zt from"@radix-ui/react-collapsible";import{Button as Xm,css as $a,darkTheme as qt,IconButton as Km,keyframes as Ma,styled as ge,TextField as Ym}from"@rango-dev/ui";var so=300,Jm=Ma({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Zm=Ma({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_a=ge("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Da=ge("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Rm=ge("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Fa=ge(Rm,{alignSelf:"stretch",minHeight:"93px"}),Oa=ge(zt.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),Ua=ge("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),qa=ge(Km,{position:"absolute",left:"$20"}),za=ge("div",{paddingTop:"$20"}),Ga=$a({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ha=ge(zt.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Qa=ge(Xm,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${qt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Va=ge("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),ja=$a({paddingTop:"5px"}),Xa=ge("div",{transition:`all ${so}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Ka=ge("div",{display:"flex"}),Ya=ge(Ym,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),fn=ge(zt.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${Jm} ${so}ms ease-out`},false:{animation:`${Zm} ${so}ms ease-out`}}}}),Ja=ge("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as af,Divider as ei,Image as lf,MessageBox as In,Modal as bl,SelectableWallet as pf,Typography as Il,WalletState as El}from"@rango-dev/ui";import ee,{useEffect as Wl,useState as lo}from"react";import{WalletState as Fr}from"@rango-dev/ui";import{useWallets as ed}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as td,WalletTypes as gn}from"@rango-dev/wallets-shared";import{useEffect as od,useState as nd}from"react";var rd=Object.values(gn);function hn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=ed(),{connectedWallets:u}=H(),m=d().blockchains(),c=Wa(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||rd,g=Ps(s,l,c,o),f=Us(g),[v,h]=nd(""),y=i(S=>!u.find(x=>x.walletType===S&&x.chain===o),"isExperimentalChainNotAdded"),A=i(async S=>{let x=s(S);try{if(v&&h(""),x.connected)await a(S);else{let I=!!g.find(C=>C.state===Fr.CONNECTED);if(!e?.multiWallets&&I)return;n?.(S),await p(S),r?.(S)}}catch(I){h("Error: "+I?.message)}},"handleClick"),T=i(()=>{let S=g?.filter(x=>x.state===Fr.CONNECTING)||[];for(let x of S)a(x.type)},"disconnectConnectingWallets");od(()=>()=>{T()},[]);let w=i(S=>S.filter(I=>I.state!=Fr.NOT_INSTALLED&&![gn.DEFAULT,gn.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(C=>C.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),b=i((S,x,I)=>Go(I,x)&&y(S)&&!td.includes(S)||S==gn.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(S=>!b(S.type,o??"",m)),error:v,handleClick:A}}i(hn,"useWalletList");import{i18n as Cl}from"@lingui/core";import{styled as Tl,Typography as Zd,Wallet as Rd,WalletState as ef}from"@rango-dev/ui";import Wt,{Fragment as tf,useState as kl}from"react";import{BottomLogo as zd,Divider as Gd,Header as Hd}from"@rango-dev/ui";import he from"react";import{useNavigate as id}from"react-router-dom";function yt(){let t=id();return()=>t(-1)}i(yt,"useNavigateBack");import{createTheme as zr,darkTheme as ud,lightTheme as cd}from"@rango-dev/ui";import{useEffect as el,useState as md}from"react";import{theme as ld,darkColors as pd}from"@rango-dev/ui";var Za=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[s,a,l]=t.match(/.{2}/g);[s,a,l]=[parseInt(s,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],s=Math.max(Math.min(255,s),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(s.length<2?"0":"")+s,u=(a.length<2?"0":"")+a,m=(l.length<2?"0":"")+l;return`#${p}${u}${m}`},"colorShade"),yn=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:Za(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:Za(e,-((l-5)*25))});return a},"generateRangeColors"),Or=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];if(a&&a!==t[s])if(n=!0,s==="background"||s==="foreground")r={...r,[s]:a};else if(s==="neutral"&&e){let l=yn(s,a);r={...r,[`${s}100`]:l[`${s}900`],[`${s}200`]:l[`${s}800`],[`${s}300`]:l[`${s}700`],[`${s}400`]:l[`${s}600`],[`${s}500`]:l[`${s}500`],[`${s}600`]:l[`${s}400`],[`${s}700`]:l[`${s}300`],[`${s}800`]:l[`${s}200`],[`${s}900`]:l[`${s}100`]}}else r={...r,...yn(s,a)}}return n?r:{}},"generateColors");var Ra=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),sd=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Ra(o%52)+e;return Ra(o%52)+e},"toAlphabeticName"),ad=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ur=i(t=>sd(ad(5381,JSON.stringify(t))>>>0),"toHash");function qr(t){let e=ld.colors,o=Or({...e,...pd},!0,t?.dark),n=Or(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${kr}-light-${Ur(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${kr}-dark-${Ur(p)}`,tokens:p}}return{light:a,dark:l}}i(qr,"customizedThemeTokens");function Sn(t){let{colors:e,fontFamily:o=Vs,borderRadius:n=Hs,secondaryBorderRadius:r=Qs,mode:s="auto"}=t,[a,l]=md("light"),{setTheme:p,theme:u}=d(),{dark:m,light:c}=qr(e),g=zr({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,cd.className],v=[g.className,ud.className];if(c){let y=zr(c.id,c.tokens);f.push(y.className)}if(m){let y=zr(m.id,m.tokens);v.push(y.className)}return el(()=>{let y=i(A=>{A.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",y),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",y)}},[]),el(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let y=f.join(" "),A=v.join(" ");return u==="auto"?a==="dark"?A:y:u==="dark"?A:y},"getActiveTheme")}}i(Sn,"useTheme");import{ChevronLeftIcon as gd}from"@rango-dev/ui";import nl from"react";import{darkTheme as dd,IconButton as fd,styled as Cn}from"@rango-dev/ui";var Ue=Cn(fd,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),tl=Cn("div",{position:"absolute",background:"$secondary500",[`.${dd} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=Cn("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),ol=Cn("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function Gr(t){return nl.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},nl.createElement(gd,{color:"black",size:16}))}i(Gr,"BackButton");import{i18n as hd}from"@lingui/core";import{Button as yd,Typography as Sd}from"@rango-dev/ui";import Hr from"react";function Qr(t){return Hr.createElement(Gt,null,Hr.createElement(yd,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Hr.createElement(Sd,{variant:"label",size:"medium",color:"error500"},hd.t("Cancel"))))}i(Qr,"CancelButton");import{i18n as Cd}from"@lingui/core";import{Tooltip as kd,WalletIcon as Td}from"@rango-dev/ui";import kn from"react";function Vr(t){return kn.createElement(kd,{container:t.container,side:"top",content:Cd.t("Connect Wallet")},kn.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&kn.createElement(tl,null),kn.createElement(Td,{size:18,color:"black"})))}i(Vr,"WalletButton");import{i18n as xn}from"@lingui/core";import{NotificationsIcon as _d,Popover as Dd,RefreshIcon as Fd,SettingsIcon as Od,Tooltip as vn,TransactionIcon as Ud}from"@rango-dev/ui";import le from"react";import{i18n as Wd}from"@lingui/core";import{ChainToken as pl,ChevronRightIcon as Bd,ListItemButton as Nd,Typography as Ld}from"@rango-dev/ui";import qe from"react";import{useNavigate as Pd}from"react-router-dom";import{create as wd}from"zustand";import{persist as xd,subscribeWithSelector as vd}from"zustand/middleware";var Me=gt(wd()(xd(vd((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:s.toBlockchain,tokenSymbol:s.toSymbol,tokenAddress:s.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{styled as Tn}from"@rango-dev/ui";var rl=Tn("div",{padding:"$10",width:"350px",minHeight:"150px"}),il=Tn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),sl=Tn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),al=Tn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Ad}from"@lingui/core";import{Divider as bd,NoNotificationIcon as Id,Typography as Ed}from"@rango-dev/ui";import wn from"react";function ll(){return wn.createElement(al,null,wn.createElement(Id,{color:"secondary",size:26}),wn.createElement(bd,{size:12}),wn.createElement(Ed,{variant:"body",size:"medium",color:"neutral700"},Ad.t("You have no notification")))}i(ll,"NotificationNotFound");var $d=4;function jr(){let t=Pd(),e=Ae.use.setSelectedSwap(),{getUnreadNotifications:o}=Me(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,$d),l=i(p=>{e(p),t(`${_.swaps}/${p}`)},"handleOnClick");return qe.createElement(rl,null,a.length?qe.createElement(il,null,a.map(p=>{let u=s.find(f=>f.address===p.route.from.tokenAddress&&f.blockchain===p.route.from.blockchain&&f.symbol===p.route.from.tokenSymbol),m=r.find(f=>f.name===p.route.from.blockchain),c=s.find(f=>f.address===p.route.to.tokenAddress&&f.blockchain===p.route.to.blockchain&&f.symbol===p.route.to.tokenSymbol),g=r.find(f=>f.name===p.route.to.blockchain);return qe.createElement(Nd,{key:p.requestId,onClick:()=>l(p.requestId),title:qe.createElement(Ld,{variant:"body",size:"small",color:"$neutral700"},Wd.t(p.event.message)),id:p.requestId,start:qe.createElement(sl,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(pl,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(pl,{tokenImage:c?c.image:"",chainImage:g?g.logo:"",size:"small"}))),end:qe.createElement(Bd,{size:12,color:"gray"})})})):qe.createElement(ll,null))}i(jr,"NotificationContent");import{Typography as Md}from"@rango-dev/ui";import ul from"react";function cl(){let{getUnreadNotifications:t}=Me(),e=t().length;return e?ul.createElement(ol,null,ul.createElement(Md,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(cl,"UnreadNotificationsBadge");function Xr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r}=t,{config:{features:s}}=d(),a=Pe("notification",s);return le.createElement(le.Fragment,null,le.createElement(vn,{container:O(),side:"top",content:xn.t("Refresh")},le.createElement(Ue,{variant:"ghost",size:"small",onClick:o,disabled:!o},le.createElement(Fd,{size:16,color:o?"black":"gray"}))),!a&&le.createElement(Dd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:le.createElement(jr,null)},le.createElement("div",null,le.createElement(vn,{container:O(),side:"top",content:xn.t("Notifications")},le.createElement(Ue,{size:"small",variant:"ghost"},le.createElement(_d,{size:18,color:"black"}),le.createElement(cl,null))))),le.createElement(vn,{container:O(),side:"top",content:xn.t("Settings")},le.createElement(Ue,{size:"small",variant:"ghost",onClick:r},le.createElement(Od,{size:18,color:"black"}))),le.createElement(vn,{container:O(),side:"top",content:xn.t("Transactions History")},le.createElement(Ue,{size:"small",variant:"ghost",onClick:n},le.createElement(Ud,{size:18,color:"black"}))))}i(Xr,"HomeButtons");import{darkTheme as qd,styled as Kr}from"@rango-dev/ui";var ml=Kr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"100vw",minWidth:"300px",maxWidth:"390px",maxHeight:"700px",textAlign:"left",$$color:"$colors$neutral100",[`.${qd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"100vh"},false:{height:"auto !important"}}}}),dl=Kr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),fl=Kr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Qd(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=H.use.connectedWallets(),{config:{features:u,theme:m}}=d(),{activeTheme:c}=Sn(m||{}),g=Pe("connectWalletButton",u),f=Ae.use.connectWalletsButtonDisabled(),v=yt(),h=i(()=>{!f&&n.onWallet&&n.onWallet()},"onConnectWallet"),y=typeof n.hasBackButton>"u"||n.hasBackButton;return he.createElement(ml,{ref:e,fixedHeight:l,id:Te,className:c()},he.createElement(Hd,{prefix:he.createElement(he.Fragment,null,y&&he.createElement(Gr,{onClick:v})),title:n.title,suffix:he.createElement(he.Fragment,null,n.suffix,n.onWallet&&!g&&he.createElement(Vr,{container:O(),onClick:h,isConnected:!!p?.length}),n.onCancel&&he.createElement(Qr,{onClick:n.onCancel}))}),he.createElement(dl,{noPadding:s},o),(a||r)&&he.createElement(fl,null,he.createElement("div",{className:"footer__content"},r),a&&he.createElement("div",{className:"footer__logo"},he.createElement(Gd,{size:12}),he.createElement(zd,null))))}i(Qd,"LayoutComponent");var K=he.forwardRef(Qd);K.displayName="Layout";import{Divider as Yd,Modal as Jd}from"@rango-dev/ui";import Jr from"react";import{i18n as Ht}from"@lingui/core";import{Image as Xd,MessageBox as Yr,WalletState as Kd}from"@rango-dev/ui";import Et from"react";import{keyframes as Vd,styled as An}from"@rango-dev/ui";var yv=An("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),gl=An("div",{position:"relative"}),jd=Vd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),hl=An("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${jd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),yl=An("div",{"& img":{borderRadius:"50%"}});function Sl(t){let{state:e,image:o,error:n}=t;return e===Kd.CONNECTED?Et.createElement(Yr,{type:"success",title:Ht.t("Wallet Connected"),description:Ht.t("Your wallet is connected, you can use it to swap.")}):n?Et.createElement(Yr,{type:"error",title:Ht.t("Failed to Connect"),description:n||Ht.t("Your wallet is not connected. Please try again.")}):Et.createElement(Yr,{type:"loading",title:Ht.t("Connecting to your wallet"),description:Ht.t("Click connect in your wallet popup."),icon:Et.createElement(gl,null,Et.createElement(yl,null,Et.createElement(Xd,{src:o,size:45})),Et.createElement(hl,null))})}i(Sl,"ModalContent");function ao(t){let{open:e,onClose:o,...n}=t;return Jr.createElement(Jd,{open:e,onClose:o,container:document.getElementById(Te)||document.body},Jr.createElement(Sl,{...n}),Jr.createElement(Yd,{direction:"vertical",size:32}))}i(ao,"WalletModal");var of=Tl("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),nf=Tl("div",{textAlign:"center"}),bn=3e3,Zr=300;function wl(){let{config:t,fetchStatus:e}=d(),[o,n]=kl(!1),[r,s]=kl(""),a=null,{list:l,handleClick:p,error:u}=hn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},Zr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},bn)}}),m=l.find(f=>f.type===r),c=m?.image||"",g=m?.state||ef.NOT_INSTALLED;return Wt.createElement(K,{header:{title:Cl.t("Connect Wallets")}},Wt.createElement(nf,null,Wt.createElement(Zd,{variant:"title",size:"xmedium",align:"center"},Cl.t("Choose a wallet to connect.")),Wt.createElement(of,null,l.map((f,v)=>{let h=`wallet-${v}-${f.type}`;return Wt.createElement(tf,{key:h},Wt.createElement(Rd,{...f,container:O(),onClick:y=>{p(y)},isLoading:e==="loading"}))}),Wt.createElement(ao,{open:!!o,onClose:()=>n(!1),image:c,state:g,error:u}))))}i(wl,"WalletsPage");import{keyframes as rf,styled as Rr}from"@rango-dev/ui";var xl=Rr("div",{position:"relative"}),sf=rf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),vl=Rr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${sf} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Al=Rr("div",{"& img":{borderRadius:"50%"}});function ti(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=H.use.connectedWallets(),{blockchains:p}=d(),[u,m]=lo(""),[c,g]=lo(null),[f,v]=lo(!1),[h,y]=lo(null),{suggestAndConnect:A}=Bl(),T=null,{list:w,error:b,handleClick:S}=hn({config:a,chain:e,onBeforeConnect:k=>{T=setTimeout(()=>{m(k)},Zr)},onConnect:()=>{T&&clearTimeout(T),setTimeout(()=>{m("")},bn)}}),[x,I]=lo(w),C=w.length,N=r&&C-r>0,$=i(async k=>{v(!1),y("in-progress");try{await A(k.walletType,k.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Wl(()=>{I(k=>{let M=w.findIndex(L=>o(L.type,e));return N&&M>1?[w[M]].concat(w.filter((L,q)=>q!==M)):k.map(L=>w.find(q=>q.type===L.type)??L)})},[JSON.stringify(w)]);let B=document.getElementById(Te);return Wl(()=>{let k=null;return(h==="completed"||h==="rejected")&&(k=setTimeout(()=>y(null),bn)),()=>{k&&clearTimeout(k)}},[h]),ee.createElement(ee.Fragment,null,x.slice(0,r).map(k=>{let M=qs({connectedWallets:l,walletType:k.type,chain:e}),L=M?Qo(M):"",q=Go(p(),e),J=!l.find(Se=>Se.walletType===k.type&&Se.chain===e),Z=q&&J&&k.state===El.CONNECTED,Q=Z?ze.t({id:"Add {chain} chain",values:{chain:e}}):L,re=i(()=>{k.state===El.DISCONNECTED?S(k.type):Z?(g({walletType:k.type,chain:e,address:M??""}),v(!0)):n({walletType:k.type,chain:e,address:M??""})},"onClick"),ye=c?.chain?sa(c.chain,p()):void 0;return ee.createElement(ee.Fragment,null,ee.createElement(ao,{open:u===k.type,onClose:()=>m(""),image:k.image,state:k.state,error:b}),!!c&&ee.createElement(bl,{open:!!c&&f,container:B,onClose:()=>{g(null)}},ee.createElement(In,{title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),type:"warning",description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}})},ee.createElement(ei,{size:18}),ee.createElement(ei,{size:32}),ee.createElement(af,{onClick:$.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),h&&ee.createElement(bl,{open:!!h,onClose:y.bind(null,null),container:B},h==="in-progress"&&ee.createElement(In,{type:"loading",title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}}),icon:ee.createElement(xl,null,ee.createElement(Al,null,ee.createElement(lf,{src:k.image,size:45})),ee.createElement(vl,null))}),h==="completed"&&ee.createElement(In,{type:"success",title:ze.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ye}}),description:ze.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ye}})}),h==="rejected"&&ee.createElement(In,{type:"error",title:ze.t("Request Rejected"),description:ze.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ye}})}),ee.createElement(ei,{direction:"vertical",size:32})),ee.createElement(pf,{key:k.type,description:Q,onClick:re,selected:o(k.type,e),...k}))}),N&&ee.createElement(Fa,{selected:!1,onClick:s},ee.createElement(Il,{variant:"label",size:"medium"},ze.t("Show more wallets"),ee.createElement(Il,{variant:"label",size:"medium",color:"$primary"},"\xA0+",C-(r??0)))))}i(ti,"WalletList");var Cf=2;function Pl(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:g,setCustomDestination:f}=U(),{connectedWallets:v,selectWallets:h}=H(),[y,A]=Bt(""),[T,w]=Bt([]),[b,S]=Bt(""),[x,I]=Bt(null),[C,N]=Bt(g),[$,B]=Bt(!!g),k=yf(null),M=Yo(p),L=l.find(F=>F.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),q=i(F=>!!p?.result?.swaps.find(z=>z.from.blockchain===F),"isWalletRequiredFor"),[J,Z]=Bt(v.filter(F=>F.selected&&M.includes(F.chain))),Q=l.find(F=>F.name===L?.name),re=i((F,z)=>!!J.find(X=>X.walletType===F&&X.chain===z&&X.selected&&(q(z)||!q(z)&&!C)),"isSelected"),ye=!!C&&$&&Q&&!Jo(Q,C),Se=i(()=>{B(!1),N(""),Z(F=>{let z=!1;return F.map(X=>!z&&X.chain===L?.name?(z=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),Ce=i(F=>{if(y&&A(""),re(F.walletType,F.chain))return;let X=v.find(Ee=>Ee.walletType===F.walletType&&Ee.chain===F.chain);X&&(n(),F.chain===L?.name&&$&&(B(!1),N("")),Z(Ee=>Ee.filter(ce=>ce.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),Mt=i(()=>{let F=J.filter(z=>z.selected);h(F),u(F),f(C),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{w([]),S(""),I(null);let F=v.filter(Ee=>J.find(ce=>ce.chain===Ee.chain&&ce.walletType===Ee.walletType)),z=await r?.({selectedWallets:F,customDestination:C}),X=z.warnings;X?.balance?.messages&&w(X.balance.messages),X?.quoteUpdate&&I(X.quoteUpdate),z.error&&S(la(z.error)),!z.error&&(!X?.balance?.messages.length||0>0)?Mt():w(X?.balance?.messages??[])},"onConfirmWallets");gf(()=>{Z(F=>F.concat(v.filter(z=>!!!F.find(Ee=>Ee.chain===z.chain)&&z.selected&&M.includes(z.chain))))},[v.length]),hf(()=>{$&&k.current&&setTimeout(()=>{k?.current?.scrollIntoView({behavior:"smooth"})},so)},[$]);let mt=document.getElementById(Te),vt=Sf();return P.createElement(Ll,{open:e,onClose:()=>{m||vt("../",{replace:!0}),o()},dismissible:!y,container:mt,...!y&&{footer:P.createElement(Ka,null,P.createElement(Nl,{loading:s,disabled:Ta(s,$,C,p,J,L),onClick:oo,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...y&&{containerStyle:{padding:"$0"},header:P.createElement(Ua,null,P.createElement(qa,{variant:"ghost",onClick:A.bind(null,"")},P.createElement(mf,{size:16})),P.createElement(En,{variant:"headline",size:"small"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(y,l)}})))},anchor:"center"},P.createElement(Ll,{open:T.length>0,onClose:w.bind(null,[]),container:mt},P.createElement(df,{title:st.t("Insufficient account balance"),type:"error",description:P.createElement(uf,{messages:T??[]})},P.createElement(Nl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Mt},st.t("Proceed anyway")))),y&&P.createElement(za,null,P.createElement("div",{className:Ga()},P.createElement(ti,{chain:y,isSelected:re,selectWallet:Ce,onShowMore:A.bind(null,y)}))),!y&&P.createElement(P.Fragment,null,b&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"error",title:st.t(b)}),P.createElement(Qt,{size:12})),x&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"warning",title:dn(x)}),P.createElement(Qt,{size:12})),P.createElement(Ja,null,M.map((F,z)=>{let X=l.find(de=>de.name===F),Ee=`wallet-${z}`,ce=z===M.length-1;return P.createElement("div",{key:Ee},P.createElement(_a,null,P.createElement(En,{variant:"title",size:"xmedium"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),P.createElement(En,{variant:"label",color:"$neutral700",size:"medium"},st.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),P.createElement(Qt,{size:24}),P.createElement(Da,null,P.createElement(ti,{chain:F,isSelected:re,selectWallet:Ce,limit:Cf,onShowMore:()=>A(X?.name??"")})),!ce&&P.createElement(Qt,{size:32}),ce&&a?.customDestination&&P.createElement(Va,null,P.createElement(Ha,{ref:k,selected:$,open:$,onOpenChange:de=>{de?q(L?.name??"")||Z(Mo=>Mo.map(rt=>rt.chain===L?.name?{...rt,selected:!1}:rt)):Se()}},P.createElement(Oa,{onClick:()=>B(de=>!de)},P.createElement(Qa,{fullWidth:!0,variant:"default",suffix:P.createElement(Xa,{orientation:$?"up":"down"},P.createElement(cf,{size:10,color:"gray"}))},P.createElement("div",{className:"button__content"},P.createElement(ff,{size:18,color:"info"}),P.createElement(Qt,{size:4,direction:"horizontal"}),P.createElement(En,{variant:"label",size:"medium"},st.t("Send to a different address"))))),P.createElement(fn,{open:$},P.createElement(P.Fragment,null,P.createElement(Qt,{size:4}),P.createElement(Ya,{autoFocus:!0,placeholder:st.t("Your destination address"),value:C,onChange:de=>{N(de.target.value)}})))),ye&&P.createElement("div",{className:ja()},P.createElement(oi,{variant:"alarm",type:"error",title:st.t({values:{destination:C},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Pl,"ConfirmWalletsModal");import{Divider as ig}from"@rango-dev/ui";import _e from"react";import{i18n as pi}from"@lingui/core";import{Alert as xf,ChevronDownIcon as vf,ChevronRightIcon as Af,Divider as ui,Image as Zl,InfoIcon as bf,QuoteCost as If,StepDetails as Ef,TokenAmount as Wf,Tooltip as Nn,Typography as co}from"@rango-dev/ui";import Rl from"bignumber.js";import W,{useLayoutEffect as Bf,useRef as ep,useState as Nf}from"react";import{styled as po}from"@rango-dev/ui";var $l=po("div",{paddingBottom:"$10"}),ni=po("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ml=po("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),_l=po("div",{paddingBottom:"$15"}),Dl=po("div",{width:"100%",display:"flex"});import*as Wn from"@radix-ui/react-collapsible";import{css as ri,darkTheme as Je,Image as Fl,styled as Ge,Typography as kf}from"@rango-dev/ui";var ii=300,Ol=Ge(Wn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Ul=ri({padding:"$10 $15"}),ql=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Je} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Je} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Je} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}]}),zl=ri({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),Gl=ri({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Je} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hl=Ge(Wn.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Fl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Fl}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),si=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",border:"1.5px transparent solid",display:"flex",justifyContent:"center",alignItems:"center",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Ql=Ge(fn,{width:"100%",background:"inherit"}),ai=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ii}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),EA=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Vl=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),jl=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),li=Ge(kf,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Xl=Ge("div",{display:"flex",flexWrap:"wrap"});import{TokenAmount as Jl}from"@rango-dev/ui";import Bn from"react";import{css as Tf,styled as wf}from"@rango-dev/ui";var Kl=wf("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Yl=Tf({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function uo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Bn.createElement(Kl,null,Bn.createElement(Jl,{direction:"horizontal",label:"Swap input",type:"input",tooltipContainer:O(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Bn.createElement("div",{className:Yl()}),Bn.createElement(Jl,{direction:"horizontal",label:"Estimated output",tooltipContainer:O(),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(uo,"QuoteSummary");function ci(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=d().tokens(),u=d().blockchains(),m=d().swappers(),[c,g]=Nf(t.expanded),f=ep(null),v=ep(c),h=E(en(e.result?.swaps??[],p),2,2),y=Do(Fo(e.result?.swaps)),A=E(o.value,6,6),T=E(n.value,6,6),w=n.usdValue?E(n.usdValue,4,4):"",b=$e(o.usdValue,n.usdValue??null),S=E(b,2,2),x=it(b??0),C=i(B=>B.map((k,M)=>{let L,q=r?.type===3&&r.swap.swapperId===k.swapperId||r?.type===4&&r.recommendedSlippages?.has(M),J=s?.type===2&&s.recommendedSlippages?.has(M);return q?L="error":J&&(L="warning"),{swapper:{displayName:aa(k.swapperId,m),image:k.swapperLogo},from:{token:{displayName:k.from.symbol,image:k.from.logo},chain:{displayName:Ye(k.from.blockchain,u),image:k.from.blockchainLogo},price:{value:M===0?E(o.value,6,6):E(k.fromAmount,6,6),usdValue:E((k.from.usdPrice??0)*parseFloat(k.fromAmount),4,4),realValue:se(M===0?o.value:k.fromAmount),realUsdValue:se(new Rl(k.from.usdPrice??0).multipliedBy(k.fromAmount))}},to:{token:{displayName:k.to.symbol,image:k.to.logo},chain:{displayName:Ye(k.to.blockchain,u),image:k.to.blockchainLogo},price:{value:E(k.toAmount,6,6),usdValue:E((k.to.usdPrice??0)*parseFloat(k.toAmount),4,4),realValue:se(k.toAmount),realUsdValue:se(new Rl(k.to.usdPrice??0).multipliedBy(k.toAmount))}},state:L,alerts:q||J?W.createElement(_l,null,W.createElement(xf,{type:q?"error":"warning",title:r?.type===3?r?.recommendation:pi.t("Slippage Error:"),footer:W.createElement(Dl,null,r?.type===3&&W.createElement(W.Fragment,null,W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),W.createElement(ui,{direction:"horizontal",size:8}),W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},"|"),W.createElement(ui,{direction:"horizontal",size:8}),W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Yours: {amount} {symbol}",values:{amount:E(k.fromAmount,6,6),symbol:k?.from.symbol}}))),(r?.type===4||s?.type===2)&&W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(M)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(M)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),N=C.length,$=O();return Bf(()=>{c&&!v.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},ii),v.current=c},[c,v]),W.createElement(W.Fragment,null,W.createElement(ql,{recommended:l,listItem:a==="list-item",basic:a==="basic"},W.createElement("div",{className:zl()},W.createElement(If,{fee:h,time:y,steps:N}),a==="basic"&&W.createElement("div",{className:Gl()},W.createElement(jl,null,W.createElement(bf,{size:12,color:"gray"})),W.createElement(Xl,null,W.createElement(li,{size:"small",variant:"body"},`${A} ${C[0].from.token.displayName} = `),W.createElement(Nn,{content:se(n.value),container:$,open:n.value?void 0:!1},W.createElement(li,{size:"small",variant:"body"},"\xA0",`${T} ${C[C.length-1].to.token.displayName}`))),W.createElement(Nn,{content:se(n.usdValue),container:$,style:{display:"flex"}},W.createElement(co,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${w})`))),a==="list-item"&&W.createElement(Wf,{type:"output",direction:"vertical",tooltipContainer:$,price:{value:T,usdValue:w,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:C[N-1].to.token.displayName,image:C[N-1].to.token.image},chain:{image:C[N-1].to.chain.image},percentageChange:S,warningLevel:x}),a==="swap-preview"&&W.createElement(W.Fragment,null,W.createElement(uo,{from:C[0].from,to:C[N-1].to,percentageChange:S,warningLevel:x}),W.createElement(ui,{size:4}))),W.createElement(Ol,{recommended:l,open:c,onOpenChange:g},W.createElement(Hl,{ref:B=>f.current=B,recommended:l,onClick:()=>g(B=>!B)},W.createElement("div",null,C.map((B,k)=>{let M=`item-${k}`,L=W.createElement(ai,null,W.createElement(Af,{size:12,color:"black",...B.state&&{color:B.state==="error"?"error":"warning"}}));return W.createElement(W.Fragment,{key:M},W.createElement(Nn,{container:$,side:"bottom",sideOffset:4,content:B.from.chain.displayName},W.createElement(si,{state:B.state||C[k-1]?.state},W.createElement(Zl,{src:B.from.chain.image,size:16}))),k===N-1&&W.createElement(W.Fragment,null,L,W.createElement(Nn,{container:$,side:"bottom",sideOffset:4,content:B.to.chain.displayName},W.createElement(si,{state:B.state},W.createElement(Zl,{src:B.to.chain.image,size:16})))),k!==N-1&&W.createElement(W.Fragment,null,L))})),W.createElement(ai,{orientation:c?"up":"down"},W.createElement(vf,{size:12,color:"black"}))),W.createElement(Ql,{open:c},W.createElement(Vl,null),W.createElement("div",{className:Ul()},C.map((B,k)=>{let M=`item-${k}`;return W.createElement(Ef,{type:"quote-details",key:M,step:B,hasSeparator:k!==C.length-1,state:B.state,tooltipContainer:$})}))))))}i(ci,"Quote");import{Divider as $f,Skeleton as Mf}from"@rango-dev/ui";import at from"react";import{darkTheme as Lf,styled as Ln}from"@rango-dev/ui";var tp=Ln("div",{$$color:"$colors$neutral100",[`.${Lf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),op=Ln("div",{paddingTop:"$2"}),np=Ln("div",{paddingLeft:"$8"}),rp=Ln("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as gp,Divider as Nt,Skeleton as Re}from"@rango-dev/ui";import G from"react";import{styled as Ze}from"@rango-dev/ui";var ip=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),sp=Ze("div",{display:"flex"}),ap=Ze("div",{padding:"$15 $0 14px $0"}),lp=Ze("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),pp=Ze("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),up=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),cp=Ze("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),mp=Ze("div",{width:"65%",display:"flex",justifyContent:"start"}),dp=Ze("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),fp=Ze("div",{padding:"$15 $0 $15 $0"});function go(t){let{type:e,tag:o=!1}=t,n=G.createElement(up,null,G.createElement(mp,null,G.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Nt,{size:8,direction:"horizontal"}),G.createElement(dp,null,G.createElement(Re,{height:10,width:60,variant:"rounded"}),G.createElement(Nt,{size:4}),G.createElement(Re,{height:15,variant:"rounded"}))),G.createElement(Re,{height:12,width:64,variant:"rounded"}));return G.createElement("div",null,G.createElement(ip,null,G.createElement(sp,null,G.createElement(Re,{width:60,height:10,variant:"rounded"}),G.createElement(Nt,{size:4,direction:"horizontal"}),G.createElement(Re,{width:60,height:10,variant:"rounded"}),G.createElement(Nt,{size:4,direction:"horizontal"}),G.createElement(Re,{width:60,height:10,variant:"rounded"})),o&&G.createElement(Re,{height:22,width:100,variant:"rounded"})),e==="basic"&&G.createElement(ap,null,G.createElement(Re,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(lp,null,G.createElement(pp,null,G.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Nt,{direction:"horizontal",size:4}),G.createElement(Re,{height:15,width:150,variant:"rounded"})),G.createElement(Nt,{size:4}),G.createElement(Re,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Nt,{size:4}),G.createElement(fp,null,n,G.createElement(cp,null),n)))}i(go,"QuoteSummarySkeleton");import{ChainToken as kp,Divider as di,NextIcon as Pf,Skeleton as Pn}from"@rango-dev/ui";import ae from"react";import{styled as ho}from"@rango-dev/ui";var hp=ho("div",{display:"flex",alignItems:"start"}),yp=ho("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),mi=ho("div",{display:"flex",alignItems:"center",flexGrow:1}),Sp=ho("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Cp=ho("div",{display:"flex",alignItems:"center"});function et(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(Cp,null,ae.createElement(Pn,{height:22,width:22,variant:"circular"}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:15,width:148,variant:"rounded"})),ae.createElement(hp,null,ae.createElement(rp,{hideSeparator:!e}),ae.createElement(yp,null,ae.createElement(mi,null,ae.createElement(kp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})),ae.createElement(Sp,null,ae.createElement(Pf,{color:"gray",size:16})),ae.createElement(mi,null,ae.createElement(kp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})))))}i(et,"StepSkeleton");function fi(t){let{type:e,expanded:o,tag:n=!1}=t;return at.createElement(tp,{rounded:e!=="basic"},at.createElement(go,{type:e,tag:n}),at.createElement(op,null,at.createElement(Mf,{height:15,variant:"rounded"})),o&&at.createElement(np,null,at.createElement($f,{size:20}),at.createElement(et,null),at.createElement(et,null),at.createElement(et,{separator:!1})))}i(fi,"QuoteSkeleton");import{i18n as tg}from"@lingui/core";import{Alert as og,Button as ng,InfoIcon as rg}from"@rango-dev/ui";import Be from"react";import{Alert as _f,Button as Df,Divider as bp,NoRouteIcon as Ff,RefreshIcon as Of,Typography as Ip}from"@rango-dev/ui";import He from"react";import{i18n as Tp}from"@lingui/core";function wp(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:V().genericServerError,action:{onClick:n,title:Tp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:V().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Tp.t("Reset")}},description:V().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:V().noResultError.description}}i(wp,"makeInfo");import{styled as gi}from"@rango-dev/ui";var xp=gi("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),vp=gi("div",{width:"100%"}),Ap=gi("div",{padding:"$6 $0"});function hi(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=wp(o,n,()=>r(s,!0),e);return He.createElement(xp,null,He.createElement(Ff,{size:24,color:"gray"}),He.createElement(bp,{size:4}),He.createElement(Ip,{variant:"title",size:"small"},V().noResultError.title),!!a.description&&He.createElement(Ip,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),He.createElement(bp,{size:4}),!!a.alert&&He.createElement(vp,null,He.createElement(_f,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&He.createElement(Df,{size:"xsmall",type:a.alert.type,prefix:He.createElement(Ap,null,He.createElement(Of,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(hi,"NoResult");import{i18n as yo}from"@lingui/core";import{Button as qf,Divider as Pp,MessageBox as zf,Modal as Gf,Typography as Hf,WarningIcon as Qf}from"@rango-dev/ui";import tt from"react";import{Typography as Np}from"@rango-dev/ui";import Si from"react";import{darkTheme as Uf,styled as $n}from"@rango-dev/ui";var Ep=$n("div",{width:"100%",paddingTop:"$10"}),yi=$n("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Wp=$n("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Uf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Bp=$n("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Lp(t){let{title:e,value:o,valueColor:n}=t;return Si.createElement(Wp,null,Si.createElement(Np,{size:"medium",variant:"label",className:"_title"},e),Si.createElement(Np,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Lp,"QuoteErrorsModalItem");function $p(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:yo.t("Swapping"),value:E(r.inputUsdValue,4,4)},{title:yo.t("Gas cost"),value:E(r.totalFee,2,2)},{title:yo.t("Receiving"),value:E(r.outputUsdValue,4,4)},{title:yo.t("Price impact"),value:E(r.priceImpact,2,2),valueColor:`${s}500`}];return tt.createElement(Gf,{open:e,onClose:o,container:O()},tt.createElement(zf,{type:s,title:V().highValueLossError.impactTitle,description:V().highValueLossError.description}),tt.createElement(yi,null,tt.createElement(Pp,{size:20}),tt.createElement(Hf,{size:"small",variant:"title"},yo.t("Details")),tt.createElement(yi,null,a.map((l,p)=>tt.createElement(Lp,{key:p,...l})))),tt.createElement(Pp,{size:32}),tt.createElement(qf,{type:"primary",size:"large",prefix:tt.createElement(Qf,null),fullWidth:!0,onClick:n},V().highValueLossError.confirmMessage))}i($p,"HighValueLossWarningModal");import{i18n as Ci}from"@lingui/core";function Mp(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(it(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=V().highValueLossError.title),t.type===1&&(o.title=V().unknownPriceError.title),t.type===2&&(o.title=Ci.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Ci.t("Caution, your slippage is high.")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action="show-info"),e.type===4&&(o.title=Ci.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):null}i(Mp,"makeAlerts");import{i18n as Vt}from"@lingui/core";import{Button as _p,Divider as Dp,MessageBox as Vf,Modal as jf,Typography as Xf}from"@rango-dev/ui";import Lt from"react";import{useNavigate as Kf}from"react-router-dom";function Fp(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=Kf(),p=e??o;return Lt.createElement(jf,{anchor:"bottom",open:n,prefix:Lt.createElement(_p,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},Lt.createElement(Xf,{variant:"label",size:"medium",color:"$neutral900"},Vt.t("Change settings"))),container:O(),onClose:r},Lt.createElement(Vf,{type:"warning",title:a.type===3?Vt.t("High slippage"):Vt.t("Low slippage"),description:a.type===3?Vt.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Vt.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Lt.createElement(Dp,{size:18}),Lt.createElement(Dp,{size:32}),Lt.createElement(_p,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Vt.t("Confirm anyway"))))}i(Fp,"SlippageWarningModal");import{Button as Yf,Divider as Jf,MessageBox as Zf,Modal as Rf,WarningIcon as eg}from"@rango-dev/ui";import So from"react";function Op(t){let{open:e,onClose:o,onConfirm:n}=t;return So.createElement(Rf,{open:e,onClose:o,container:O()},So.createElement(Zf,{type:"warning",title:V().unknownPriceError.impactTitle,description:V().unknownPriceError.description}),So.createElement(Jf,{size:32}),So.createElement(Yf,{type:"primary",size:"large",prefix:So.createElement(eg,null),fullWidth:!0,onClick:n},V().unknownPriceError.confirmMessage))}i(Op,"UnknownPriceWarningModal");function ki(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:s,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,u={open:r,onClose:a,onConfirm:l},m=o?.type===0||o?.type===1,c=Mp(e,o?.type===3||o?.type===4?o:null);return Be.createElement(Be.Fragment,null,m&&Be.createElement(hi,{error:o,fetch:n}),!!c&&Be.createElement(Ep,null,Be.createElement(og,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Be.createElement(Bp,{onClick:s},Be.createElement(rg,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Be.createElement(ng,{size:"xxsmall",type:c.alertType,onClick:p},tg.t("Change"))}})),e&&Be.createElement(Be.Fragment,null,e.type===0&&Be.createElement($p,{...u,warning:e}),(e.type===3||e.type===2)&&Be.createElement(Fp,{...u,warning:e}),e.type===1&&Be.createElement(Op,{...u,warning:e})))}i(ki,"QuoteWarningsAndErrors");function Co(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:v,inputUsdValue:h,outputUsdValue:y,outputAmount:A}=U(),w=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,b=(s||r)&&_e.createElement(ki,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c});return _e.createElement(_e.Fragment,null,n&&_e.createElement(ni,null,_e.createElement(Ml,{paddingTop:f==="top"},_e.createElement(fi,{type:o,expanded:g}))),f==="top"&&_e.createElement($l,null,b),w?_e.createElement(ni,null,_e.createElement(ci,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:v,usdValue:h?.toString()??""},output:{value:A?.toString()??"",usdValue:y?.toString()??""}})):null,f==="bottom"&&_e.createElement(_e.Fragment,null,!s&&!r&&_e.createElement(ig,{size:16}),b))}i(Co,"QuoteInfo");import{calculatePendingSwap as lg}from"@rango-dev/queue-manager-rango-preset";import{useEffect as pg}from"react";import{useRef as sg,useState as ag}from"react";function Mn(){let[t,e]=ag(!1),o=sg(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Dt().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(Mn,"useFetchQuote");function _n(t){if(!t.result)throw new Error(V().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(br(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=Ir(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=Wr(t);if(o){let n=tn(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(_n,"throwErrorIfResponseIsNotValid");function Up(t,e,o){let n=!1;t&&(n=Aa(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=nn(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(ga(t,e)?r.quoteUpdate={type:3,newOutputAmount:E(Ut(e)),percentageChange:E($e(Ut(t)??"",Ut(e)??""),null,2)}:Nr(t,e)?r.quoteUpdate={type:0}:Lr(t,e)?r.quoteUpdate={type:1}:Pr(t,e)&&(r.quoteUpdate={type:2}));let a=ha(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Up,"generateWarnings");function Dn(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Dn,"handleQuoteErrors");function Ti(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=U(),{slippage:l,customSlippage:p,affiliatePercent:u,affiliateRef:m,affiliateWallets:c,disabledLiquiditySources:g}=d(),{connectedWallets:f}=H(),v=d().blockchains(),h=d().tokens(),{features:y}=d().config,{enableNewLiquiditySources:A}=d().config,T=p||l,{fetch:w,cancelFetch:b,loading:S}=Mn();return pg(()=>b,[]),{loading:S,fetch:i(async I=>{let C=I.selectedWallets,N=I?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let $=on({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:C,excludeLiquiditySources:A,disabledLiquiditySources:g,slippage:T,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:N});Ko("experimentalRoute",y)&&($.experimental=!0);let B;try{B=await w($).then(q=>_n(q)),n(B)}catch(q){return Dn(q)}let k={slippage:T.toString(),disabledSwappersGroups:g},M=lg(o.toString(),B,da(C),k,!1,{blockchains:v,tokens:h}),L=Up(r??void 0,B,{fromToken:t,toToken:e,meta:{blockchains:v,tokens:h},selectedWallets:C,userSlippage:T});return L.quoteUpdate&&a(!1),{quote:B,swap:M,error:null,warnings:L}},"fetch"),cancelFetch:b}}i(Ti,"useConfirmSwap");var Tg=Hp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),wg=Hp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Gp}`]:{width:"$48",height:"$48"}}),xg=wi({flexGrow:1,paddingRight:"$10"}),vg=wi({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Ag=wi({display:"flex",justifyContent:"space-between",alignItems:"center"});function Qp(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=U(),l=kg(),[p,u]=On(""),{connectedWallets:m}=H(),c=!n,[g,f]=On(!1),v=Ae.use.setSelectedSwap(),h=d().disabledLiquiditySources,y=Sg(h),{manager:A}=ug(),{fetch:T,loading:w,cancelFetch:b}=Ti(),[S,x]=On({swap:null,error:null,warnings:null}),[I,C]=On(!1),N=i(async({selectedWallets:L,customDestination:q})=>{let J=await T?.({selectedWallets:L,customDestination:q});return x(J),J},"onConfirmSwap"),$=i(async()=>{if(S.swap&&n)try{await A?.create("swap",{swapDetails:S.swap},{id:S.swap.requestId}),v(S.swap.requestId);let L=`../${_.swaps}/${S.swap.requestId}`;l(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){u("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{await $()},"onConfirm"),k=i(async()=>{S?.warnings?.quote&&!a?C(!0):await B()},"onStartConfirmSwap"),M=i(async()=>{x({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:s}).then(L=>{x(L)}).catch(L=>console.error(L))},"onRefresh");return ko(()=>{!!y.current.length&&!h.length&&M(),y.current=h},[h.length]),ko(()=>{c&&b()},[c]),ko(()=>{c&&f(c)},[c]),ko(()=>{c||T({selectedWallets:o,customDestination:s}).then(L=>x(L)).catch(L=>console.error(L))},[]),ko(()=>{let L=S.warnings?.quote?.type&&Object.values(dt).includes(S.warnings?.quote?.type),q=o.length<1||!o.every(Z=>m.find(Q=>Z.address===Q.address&&Z.walletType===Q.walletType&&Z.chain===Q.chain)),J=!1;if(L){let Z=Yo(t),Q=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(Se=>Se.from.blockchain===Q)||(Z=Z.slice(-Z.length,Z.length-1)),Z.every(Se=>o.find(Ce=>Ce.chain===Se))||(J=!0)}t&&(q||J)&&(queueMicrotask(()=>Cg(f.bind(null,!0))),r(!1))},[S.warnings?.quote,o.length,m.length]),yg(()=>{t||l("../")},[]),te.createElement(K,{header:{title:Fn.t("Confirm Swap"),onWallet:()=>{let L=`../${_.wallets}`;l(L)},suffix:te.createElement(fg,{container:O(),side:"bottom",content:Fn.t("Settings")},te.createElement(Ue,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},te.createElement(dg,{size:18,color:"black"})))},footer:te.createElement(wg,null,te.createElement("div",{className:xg()},te.createElement(zp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w,disabled:!!S.error,onClick:k},Fn.t("Start Swap"))),te.createElement(Gp,{variant:"contained",type:"primary",size:"large",loading:w,onClick:f.bind(null,!0)},te.createElement(hg,{size:24})))},g&&te.createElement(Pl,{open:g,onClose:()=>f(!1),onCancel:b,loading:w,onCheckBalance:N}),te.createElement(Tg,null,te.createElement("div",{className:Ag()},te.createElement(gg,{variant:"title",size:"small"},Fn.t("You get")),te.createElement(zp,{style:{padding:"0"},variant:"ghost",disabled:w,onClick:M},te.createElement("div",{className:vg()},te.createElement(mg,{size:16})))),p&&te.createElement(te.Fragment,null,te.createElement(qp,{type:"error",variant:"alarm",title:p}),te.createElement(cg,{size:12})),S.warnings?.quoteUpdate&&te.createElement("div",{className:"quote-update__alert"},te.createElement(qp,{variant:"alarm",type:"warning",title:S.warnings.quoteUpdate&&dn(S.warnings.quoteUpdate)})),te.createElement(Co,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:S.error,loading:w,warning:S.warnings?.quote??null,refetchQuote:M,showWarningModal:I,onOpenWarningModal:()=>C(!0),onCloseWarningModal:()=>C(!1),onConfirmWarningModal:async()=>{C(!1),await $()},onChangeSettings:()=>l("../"+_.settings)})))}i(Qp,"ConfirmSwapPage");import{i18n as zn}from"@lingui/core";import{useManager as Pg}from"@rango-dev/queue-manager-react";import{Divider as $g,NotFound as Mg,styled as eu}from"@rango-dev/ui";import kt,{useState as _g}from"react";import{useNavigate as Dg}from"react-router-dom";import{CloseIcon as Ig,IconButton as Eg,SearchIcon as Wg,TextField as Bg}from"@rango-dev/ui";import To from"react";import{styled as bg}from"@rango-dev/ui";var Vp=bg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return To.createElement(Bg,{prefix:To.createElement(Vp,null,To.createElement(Wg,{color:"black"})),suffix:!!a.length&&To.createElement(Eg,{variant:"ghost",onClick:()=>l?.(""),size:"small"},To.createElement(Ig,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(lt,"SearchInput");import{i18n as Xp}from"@lingui/core";import{Divider as Kp,SwapListItem as Yp,Typography as Jp}from"@rango-dev/ui";import R from"react";import{css as Ng,darkTheme as Lg,styled as Un}from"@rango-dev/ui";var qn=Ng(),xi=Un("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${qn}`]:{$$color:"$colors$neutral600",[`.${Lg} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vi=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Ai=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),jp=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function bi(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return R.createElement(R.Fragment,null,[{title:"Today",swaps:a},{title:"This month",swaps:a}].map(p=>R.createElement(R.Fragment,{key:p.title},R.createElement(xi,null,R.createElement(vi,null,R.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(p.title))),R.createElement(Kp,{size:4}),R.createElement(Ai,null,p.swaps.map((u,m)=>{let c=m+p.title;return R.createElement(R.Fragment,{key:c},R.createElement(Yp,{isLoading:!0}))}))))))}return R.createElement(R.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>R.createElement(R.Fragment,{key:a.title},R.createElement(xi,null,R.createElement(vi,null,R.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(a.title))),R.createElement(Kp,{size:4}),R.createElement(Ai,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return R.createElement(R.Fragment,{key:l.requestId},R.createElement(Yp,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",tooltipContainer:O(),swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:l.inputAmount},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:E(u.outputAmount||u.expectedOutputAmountHumanReadable||""),realAmount:se(u.outputAmount||u.expectedOutputAmountHumanReadable)}}}))}))))))}i(bi,"SwapsGroup");import Zp from"dayjs";var Rp=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}]]);function o(r,s){e.has(r)||e.set(r,{title:r,swaps:[]}),e.get(r)?.swaps.push(s)}i(o,"addYearsToOutput");let n=Zp();return t.forEach(r=>{let s=Number(r.creationTime),a=Zp(s);if(n.isSame(a,"day"))e.get("today")?.swaps.push(r);else if(n.isSame(a,"week"))e.get("week")?.swaps.push(r);else if(n.isSame(a,"month"))e.get("month")?.swaps.push(r);else if(n.isSame(a,"year"))e.get("year")?.swaps.push(r);else{let l=new Date(s).getFullYear().toString();o(l,r)}}),Array.from(e.values())},"groupSwapsByDate");var jt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");var Fg=eu("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Og=eu("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Ug=i((t,e)=>t?.length?t.filter(o=>Xe(o.fromBlockchain,e)||Xe(o.toBlockchain,e)||Xe(o.toSymbol,e)||Xe(o.fromSymbol,e)).length:!1,"isStepContainsText");function tu(){let t=Ae.use.setSelectedSwap(),e=Dg(),{manager:o,state:n}=Pg(),r=jt(o).map(({swap:c})=>c),[s,a]=_g(""),l=!n.loadedFromPersistor,p=i(c=>{let g=c.target.value;a(g)},"searchHandler"),u=r;s&&(u=r.filter(c=>Xe(c.inputAmount,s)||Xe(c.status,s)||Ug(c.steps,s)||Xe(c.requestId,s)));let m=!u?.length&&!l;return kt.createElement(K,{header:{title:zn.t("History")}},kt.createElement(Fg,null,kt.createElement(lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:zn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),kt.createElement(Og,null,m&&kt.createElement(jp,null,kt.createElement($g,{size:32}),kt.createElement(Mg,{title:zn.t("No results found"),description:s?zn.t("Try using different keywords"):""})),!m&&kt.createElement(bi,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:Rp,isLoading:l}))))}i(tu,"HistoryPage");import{i18n as Wi}from"@lingui/core";import{Button as jg,styled as Bi,SwapInput as iu,WarningIcon as Xg}from"@rango-dev/ui";import De,{useEffect as Kg,useRef as Yg,useState as Jg}from"react";import{useNavigate as Zg}from"react-router-dom";import{ReverseIcon as qg,styled as ou}from"@rango-dev/ui";import Ii from"react";var zg=ou("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gg=ou("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function nu(){let t=U.use.switchFromAndTo();return Ii.createElement(zg,null,Ii.createElement(Gg,{onClick:()=>{t()}},Ii.createElement(qg,{size:12})))}i(nu,"SwitchFromAndToButton");import{useCallback as Hg,useEffect as Qg,useState as Ei}from"react";var Vg=600;function ru(){let{fetch:t,cancelFetch:e}=Mn(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,quote:m,resetQuote:c,setQuote:g}=U(),{slippage:f,customSlippage:v,affiliatePercent:h,affiliateRef:y,affiliateWallets:A,disabledLiquiditySources:T}=d(),[w,b]=Ei(!1),[S,x]=Ei(null),[I,C]=Ei(null),N=v??f,B=!a||!l||Le(a,l)||!no(p),k=i(q=>{b(q),x(null),C(null)},"resetState"),M=i(q=>{let{fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:Mt,affiliatePercent:oo,affiliateWallets:mt}=q;if(w||k(!0),!B&&J&&Z){c();let vt=on({fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:Mt,affiliatePercent:oo,affiliateWallets:mt});Ko("experimentalRoute",r)&&(vt.experimental=!0),t(vt).then(F=>{b(!1),g(F),_n(F);let z=nn(F,{fromToken:J,toToken:Z,userSlippage:N,tokens:s});C(z)}).catch(F=>{let{error:z}=Dn(F);(z?.type===0||z?.type===1)&&c(),z?.type!==2&&(x(z),b(!1))})}},"fetch"),L=Hg(js(q=>{B||M(q)},Vg),[B]);return Qg(()=>{if(!no(p)||u?.eq(0)){k(!1),e();return}if(B){m&&c();return}return c(),k(!0),L({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:T,slippage:N,affiliateRef:y,affiliatePercent:h,affiliateWallets:A}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,B,o?.length,n,T.length,N,y,h,JSON.stringify(A)]),{fetch:()=>M({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:T,slippage:N,affiliateRef:y,affiliatePercent:h,affiliateWallets:A}),loading:w,error:S,warning:I}}i(ru,"useSwapInput");var Rg=Bi("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),eh=Bi("div",{position:"relative"}),th=Bi("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function su(){let t=Zg(),{fetch:e,loading:o,error:n,warning:r}=ru(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:g,outputUsdValue:f,quote:v,resetQuoteWallets:h,setQuoteWarningsConfirmed:y}=U(),A=d().fetchStatus,{connectedWallets:T,getBalanceFor:w}=H(),b=Ae.use.setCurrentPage(),[S,x]=Jg(!1),I=Yg(null),C=!!a&&zs(T,a.name),N=!1,$=!Er(v,m,c),B=!Er(v,m,f),k=ua({fetchMetaStatus:A,fetchingQuote:o,inputAmount:m,quote:v,anyWalletConnected:T.length>0,error:n,warning:r,needsToWarnEthOnPath:N}),M=s?w(s):null,L=Ho(M)?.amount??"0",q=a&&s?E(M?.amount,M?.decimals):"0";Kg(()=>(b(_.home),h(),b.bind(null,"")),[]);let J=!c||!f||!f.gt(0)?null:$e(c.toString(),f.toString());return De.createElement(K,{ref:I,fixedHeight:!1,hasLogo:!0,footer:De.createElement(jg,{type:"primary",size:"large",disabled:k.disabled,prefix:k.action==="confirm-warning"&&De.createElement(Xg,null),fullWidth:!0,onClick:()=>{k.action==="connect-wallet"?t(_.wallets):k.action==="confirm-warning"?x(!0):t(_.confirmSwap)}},k.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:Wi.t("Swap"),suffix:De.createElement(Xr,{layoutRef:I.current,onClickRefresh:v||n?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},De.createElement(Rg,null,De.createElement(th,null,De.createElement(eh,null,De.createElement(iu,{label:Wi.t("From"),mode:"From",onInputChange:u,balance:L,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:$?void 0:E(c,4,4),realUsdValue:$?void 0:se(c),error:$?V().unknownPriceError.impactTitle:void 0},disabled:A==="failed",loading:A==="loading",loadingBalance:C,tooltipContainer:O(),onSelectMaxBalance:()=>{L!=="0"&&u(q.split(",").join(""))}}),De.createElement(nu,null)),De.createElement(iu,{sharpBottomStyle:!!v?.result||o,label:Wi.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:E($e(c,f),2,2),warningLevel:it(J??0),price:{value:E(g,6,6),usdValue:B?void 0:E(f,4,4),realValue:se(g),realUsdValue:B?void 0:se(f),error:B?V().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(_.toSwap),disabled:A==="failed",loading:A==="loading",tooltipContainer:O()})),De.createElement("div",{className:"quote__container"},De.createElement(Co,{quote:v,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:S,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),y(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(su,"Home");import{i18n as au}from"@lingui/core";import{List as oh,ListItemButton as nh,Radio as rh,RadioRoot as ih,Typography as sh}from"@rango-dev/ui";import Tt from"react";import{styled as Gn}from"@rango-dev/ui";var pt=Gn("div",{height:"100%",overflow:"hidden"}),wo=Gn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),Ni=Gn("div",{width:80,display:"flex",justifyContent:"flex-end"}),Li=Gn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Hn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:Ys,defaultLanguage:Ot,changeLanguage:r=>t(r||Ot)}}i(Hn,"useLanguage");function lu(){let{activeLanguage:t,changeLanguage:e,languages:o}=Hn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:Tt.createElement(sh,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:Tt.createElement(rh,{value:s}),start:Tt.createElement(l,null)}});return Tt.createElement(K,{header:{title:au.t("Language")}},Tt.createElement(pt,null,Tt.createElement(ih,{value:t},Tt.createElement(oh,{type:Tt.createElement(nh,{title:au.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(lu,"LanguagePage");import{i18n as Xt}from"@lingui/core";import{Button as ch,Checkbox as mh,Image as dh,ListItemButton as fh,NotFound as gh,Typography as hh}from"@rango-dev/ui";import ke,{useState as yh}from"react";import{Checkbox as ph,Skeleton as uu}from"@rango-dev/ui";import xo from"react";import{ListItem as ah,styled as lh}from"@rango-dev/ui";var pu=lh(ah,{height:61});var uh=30;function Pi(){return xo.createElement(wo,null,Array.from(Array(uh),t=>xo.createElement(pu,{hasDivider:!0,key:t,start:xo.createElement(uu,{variant:"circular",width:35,height:35}),title:xo.createElement(uu,{variant:"text",size:"large",width:90}),end:xo.createElement(ph,{checked:!1})})))}i(Pi,"LoadingLiquiditySourceList");function $i({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=yh(""),a=d().toggleLiquiditySource,l=Xo(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let u=l.filter(h=>p.includes(h.type)),m=u.length===u.filter(h=>h.selected).length,c=i(()=>{u.forEach(h=>{m?a(h.groupTitle):h.selected||a(h.groupTitle)})},"toggleAllSources"),g=u.map(h=>{let{selected:y,groupTitle:A,logo:T}=h;return{start:ke.createElement(dh,{src:T,size:22,type:"circular"}),onClick:()=>a(A),end:ke.createElement(mh,{checked:y}),title:ke.createElement(hh,{variant:"title",size:"xmedium"},Xt.t(A)),...h}}),f=i(h=>{let y=h.target.value;s(y)},"searchHandler"),v=g;return r&&(v=g.filter(h=>Xe(h.groupTitle,r))),ke.createElement(K,{header:{title:Xt.t(t),suffix:ke.createElement(Ni,null,ke.createElement(ch,{variant:"ghost",size:"xsmall",onClick:c},Xt.t(m?"Deselect all":"Select all")))}},ke.createElement(pt,null,ke.createElement(lt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&ke.createElement(Pi,null),!v.length&&r?ke.createElement(Li,null,ke.createElement(gh,{title:Xt.t("No results found"),description:Xt.t("Try using different keywords")})):e==="success"&&ke.createElement(wo,null,v.map(h=>ke.createElement(ke.Fragment,{key:h.id},ke.createElement(fh,{style:{height:"61px"},...h,selected:!1,hasDivider:!0}))))))}i($i,"LiquiditySourcePage");import{i18n as Su}from"@lingui/core";import{Divider as Fi,getCountCategories as Ih,SelectableCategoryList as Eh}from"@rango-dev/ui";import ut,{useState as Cu}from"react";import{i18n as _i}from"@lingui/core";import{Divider as hu,Image as wh,ListItemButton as xh,NotFound as vh,Typography as yu}from"@rango-dev/ui";import Fe,{useEffect as Ah,useState as bh}from"react";import{BlockchainCategories as Mi}from"@rango-dev/ui";import{TransactionType as Qn}from"rango-sdk";var Sh=i((t,e)=>{switch(e){case Mi.ALL:return!0;case Mi.UTXO:return t.type===Qn.TRANSFER;case Mi.OTHER:return t.type!==Qn.TRANSFER&&t.type!==Qn.COSMOS&&t.type!==Qn.EVM;default:return t.type===e}},"filterByType"),cu=i((t,e,o)=>t.filter(n=>Sh(n,o)).filter(n=>At(n.name,e)||At(n.displayName,e)),"filterBlockchains");import{ImageContainer as Ch,styled as mu}from"@rango-dev/ui";var du=mu("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vn=mu("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${Ch}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as kh,Skeleton as fu}from"@rango-dev/ui";import jn from"react";var Th=20;function gu(){return jn.createElement(Vn,null,Array.from(Array(Th),t=>jn.createElement(kh,{key:t,hasDivider:!0,start:jn.createElement(fu,{variant:"circular",width:35,height:35}),title:jn.createElement(fu,{variant:"text",size:"large",width:90})})))}i(gu,"LoadingBlockchainList");function Di(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=bh(e),{fetchStatus:l}=d();Ah(()=>{a([...cu(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Fe.createElement(Fe.Fragment,null,Fe.createElement(hu,{size:32}),Fe.createElement(vh,{title:_i.t("No results found"),description:_i.t("Try using different keywords")})):Fe.createElement(Vn,{key:`${r}-${o}`},s.map(u=>Fe.createElement(xh,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Fe.createElement(wh,{src:u.logo,size:30}),title:Fe.createElement(yu,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Fe.createElement(du,null,Fe.createElement(yu,{variant:"label",size:"large"},_i.t("Select Blockchain")),Fe.createElement(hu,{size:4}),l==="loading"&&Fe.createElement(gu,null),l==="success"&&p())}i(Di,"BlockchainList");function Oi(t){let{type:e}=t,o=yt(),[n,r]=Cu(""),[s,a]=Cu("ALL"),l=U.use.setToBlockchain(),p=U.use.setFromBlockchain(),u=d().fetchStatus,m=d().blockchains({type:e}),g=Ih(m)!==1;return ut.createElement(K,{header:{title:Su.t("Select Blockchain")}},ut.createElement(Fi,{size:12}),g&&ut.createElement(ut.Fragment,null,ut.createElement(Eh,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),ut.createElement(Fi,{size:24})),ut.createElement(lt,{value:n,autoFocus:!0,placeholder:Su.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),ut.createElement(Fi,{size:16}),ut.createElement(Di,{list:m,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(Oi,"SelectBlockchainPage");import{i18n as Ou}from"@lingui/core";import{Divider as Uu}from"@rango-dev/ui";import Jt,{useState as Vh}from"react";import{useNavigate as jh}from"react-router-dom";import{i18n as zi}from"@lingui/core";import{BlockchainsChip as Xn,Divider as xu,Image as vu,Skeleton as Ph,Tooltip as $h,Typography as Gi}from"@rango-dev/ui";import pe from"react";import{useEffect as Nh}from"react";var ku=["ETH","COSMOS","OSMOSIS"];function Ui(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Wh),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];a=a.filter(m=>u.name!==m)}}n.sort(Bh(a)),r=n.splice(s)}return{list:n,more:r}}i(Ui,"prepare");function Wh(t,e){let o=ku,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(Wh,"sortByMostUsedBlockchains");function Bh(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Bh,"generateSortByPreferredBlockchainsFor");function Tu(t,e){return!!e.list.find(o=>o.name===t)}i(Tu,"isInVisibleList");function qi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();Nh(()=>{if(e?.selected){let s=Ui(t,o,e);Tu(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Ui(t,o,e);return{list:r.list,more:r.more,history:[]}}i(qi,"usePrepareBlockchainList");import{styled as Lh}from"@rango-dev/ui";var wu=Lh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Mh=12;function Hi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=qi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=a.more.length>0,c=a.more.length===1,g=!c&&m;return pe.createElement(pe.Fragment,null,pe.createElement(xu,{size:12}),pe.createElement(Gi,{variant:"label",size:"large"},zi.t("Select Blockchain")),pe.createElement(xu,{size:12}),pe.createElement(wu,null,l==="loading"&&Array.from(Array(Mh),f=>pe.createElement(Ph,{key:f,variant:"rounded",height:50})),l==="success"&&pe.createElement(pe.Fragment,null,pe.createElement(Xn,{selected:!n,onClick:()=>{o==="from"?u():p()}},pe.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi.t("All"))),a.list.map(f=>pe.createElement($h,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:O()},pe.createElement(Xn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},pe.createElement(vu,{src:f.logo,size:30})))),c?pe.createElement(Xn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},pe.createElement(vu,{src:a.more[0].logo,size:30})):null,g?pe.createElement(Xn,{onClick:s,key:"more-blockchains"},pe.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi._("More +{count}",{count:a.more.length}))):null)))}i(Hi,"BlockchainsSection");import{i18n as es}from"@lingui/core";import{darkTheme as $u,Divider as Yt,ExternalLinkIcon as Fh,Image as Oh,ListItemButton as Uh,NotFound as qh,PinIcon as zh,Skeleton as Mu,Typography as Jn,VirtualizedList as Gh}from"@rango-dev/ui";import D,{forwardRef as Hh,useEffect as _u,useState as Du}from"react";import{Divider as Lu,ListItem as Dh,Skeleton as vo}from"@rango-dev/ui";import Ve from"react";import{css as Kt,darkTheme as Au,ImageContainer as _h,styled as Qe,Typography as bu}from"@rango-dev/ui";var Qi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vi=Kt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ji=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Xi=Kt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Au} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ki=Kt({}),Yi=Kt(),Iu=Qe("div",{display:"flex",flexDirection:"column",flexGrow:1}),Ji=Qe("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kn=Qe("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Vi}`]:{[`& .${Xi}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ki}`]:{bottom:"-15px"},[`& .${Qi}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ji}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Zi=Qe("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ri=Qe(bu,{}),Eu=Qe("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Yi}`]:{$$color:"$colors$neutral600",[`.${Au} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yn=Qe("div",{display:"flex",alignItems:"end",flexDirection:"column"}),CN=Qe("div",{display:"flex",alignItems:"center"}),Wu=Qe("div",{position:"relative",[`& ${_h}`]:{borderRadius:"$xm",overflow:"hidden"}}),Bu=Qe("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Nu=Qe(bu,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Pu(t){return Ve.createElement(Kn,null,Array.from(Array(t.size),e=>Ve.createElement(Dh,{key:e,hasDivider:!0,start:Ve.createElement(vo,{variant:"circular",width:35,height:35}),end:Ve.createElement(Yn,null,Ve.createElement(vo,{variant:"text",size:"large",width:70}),Ve.createElement(Lu,{size:4}),Ve.createElement(vo,{variant:"text",size:"medium",width:50})),title:Ve.createElement("div",null,Ve.createElement(vo,{variant:"text",size:"large",width:90}),Ve.createElement(Lu,{size:4}),Ve.createElement(vo,{variant:"text",size:"medium",width:90}))})))}i(Pu,"LoadingTokenList");var ts=20,Qh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return D.createElement("div",{className:Vi()},o?D.createElement("div",{className:Qi()},o):D.createElement(Ji,{className:ji()},D.createElement(Jn,{variant:"title",size:"xmedium"},r.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(Zi,{css:s},D.createElement(Ri,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&D.createElement("div",{className:`${Xi()} ${!o&&Ki()}`},D.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",D.createElement(Yt,{size:4,direction:"horizontal"}),D.createElement(Fh,{color:"gray",size:12}))))},"renderDesc");function Fu(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=Du(e),l=d().fetchStatus,p=d().blockchains(),[u,m]=Du(!0),{getBalanceFor:c,loading:g}=H(),{isTokenPinned:f}=d(),v=Hh((A,T)=>D.createElement("div",{...A,ref:T,style:{...A.style,height:`${parseFloat(A.style?.height)+8*2}px`}})),h=i(()=>{a(e.slice(0,s.length+ts))},"loadNextPage");_u(()=>{m(e.length>s.length)},[s.length]),_u(()=>{a(e.slice(0,ts))},[e]);let y=i(()=>!s.length&&o?D.createElement(D.Fragment,null,D.createElement(Yt,{size:32}),D.createElement(qh,{title:es.t("No results found"),description:es.t("Try using different keywords")})):D.createElement(Gh,{Item:({index:A,style:T})=>{let w=s[A],b=Ho(c(w)),S=w.address||"",x=p.find($=>$.name===w.blockchain),I=yn(w.symbol,x?.color||""),C={$$color:I[`${w.symbol}100`],[`.${$u} &`]:{$$color:I[`${w.symbol}900`]},backgroundColor:"$$color"},N={$$color:I[`${w.symbol}700`],[`.${$u} &`]:{$$color:I[`${w.symbol}100`]},color:"$$color"};return D.createElement("div",{style:{...T,paddingRight:5}},D.createElement(Uh,{style:{height:T?.height,width:"100%",overflow:"hidden"},"tab-index":A,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,hasDivider:!0,onClick:()=>n(s[A]),start:D.createElement(Wu,null,D.createElement(Oh,{src:w.image,size:30}),f(w,t.type)&&D.createElement(Bu,null,D.createElement(zh,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||w.name||!w.name&&!S?D.createElement(Ji,null,D.createElement(Jn,{variant:"title",size:"xmedium"},w.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(Zi,{css:C},D.createElement(Ri,{variant:"body",size:"xsmall",css:N},w.blockchain))):void 0,description:x?.info&&S&&x.type!=="COSMOS"?Qh({address:S,token:s[A],customCssForTag:C,customCssForTagTitle:N,name:w.name,url:x.info.addressUrl.split("{wallet}").join(S)}):w.name||void 0,end:g?D.createElement(Yn,null,D.createElement(Mu,{variant:"text",size:"large",width:70}),D.createElement(Yt,{size:4}),D.createElement(Mu,{variant:"text",size:"medium",width:50})):b&&D.createElement(Eu,null,D.createElement(Nu,{variant:"title",size:"small"},b.amount),D.createElement("div",null),b.usdValue&&D.createElement(Jn,{variant:"body",className:Yi(),size:"xsmall"},`$${b.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:h,innerElementType:v,size:60,key:`${r}-${o}`}),"renderList");return D.createElement(Iu,null,D.createElement(Jn,{variant:"label",size:"large"},es.t("Select Token")),D.createElement(Yt,{size:4}),l==="loading"&&D.createElement(Pu,{size:ts}),l==="success"&&D.createElement(Kn,null,y()))}i(Fu,"TokenList");function os(t){let{type:e}=t,o=jh(),n=yt(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=H.use.getBalanceFor(),[c,g]=Vh(""),{isTokenPinned:f}=d(),h=(e==="source"?r:s)?.name??"",y=d().blockchains({type:e}),A=d().tokens({type:e,blockchain:h,searchFor:c}),w=Os(A,m,i(x=>f(x,e),"checkIsTokenPinned")),b=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),S=i(x=>{e==="source"?a({token:x,meta:{blockchains:y,tokens:A}}):l({token:x,meta:{blockchains:y,tokens:A}})},"updateToken");return Jt.createElement(K,{header:{title:Ou.t("Swap {type}",{type:e})}},Jt.createElement(Hi,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(_.blockchains),onChange:x=>{b(x)}}),Jt.createElement(Uu,{size:24}),Jt.createElement(lt,{value:c,autoFocus:!0,placeholder:Ou.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:x=>g(x.target.value)}),Jt.createElement(Uu,{size:16}),Jt.createElement(Fu,{list:w,selectedBlockchain:h,searchedFor:c,type:e,onChange:x=>{S(x);let I=y.find(C=>x.blockchain===C.name);I&&b(I),n()}}))}i(os,"SelectSwapItemsPage");import{i18n as Pt}from"@lingui/core";import{ChevronRightIcon as is,Divider as ss,InfoIcon as ty,List as oy,ListItemButton as ny,Skeleton as ry,Switch as iy,Tooltip as sy,Typography as $t}from"@rango-dev/ui";import j from"react";import{useNavigate as ay}from"react-router-dom";import{i18n as Vu}from"@lingui/core";import{Divider as Jh,InfoIcon as Zh,TextField as Rh,Tooltip as ey,Typography as ju}from"@rango-dev/ui";import Ne from"react";import{Chip as Xh,styled as Ao,TextField as Kh}from"@rango-dev/ui";var qu=Ao("div",{paddingTop:"$5",padding:"$10 $5"}),zu=Ao("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Kh}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Gu=Ao("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Zn=Ao("div",{maxWidth:"280px",padding:"$10"}),Hu=Ao(Xh,{width:"61px",flexShrink:0});import{i18n as ns}from"@lingui/core";import{Typography as Yh}from"@rango-dev/ui";import bo from"react";function Qu(){return bo.createElement(Zn,null,bo.createElement(Yh,{variant:"label",size:"medium",color:"neutral700"},ns.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),bo.createElement("br",null),bo.createElement("br",null),bo.createElement("b",null,ns.t("Warning")),":",ns.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Qu,"SlippageTooltipContent");function rs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Ne.createElement(qu,null,Ne.createElement(Gu,null,Ne.createElement(ju,{variant:"title",size:"xmedium"},Vu.t("Slippage tolerance per swap")),Ne.createElement(Jh,{direction:"horizontal",size:4}),Ne.createElement(ey,{container:O(),side:"top",sideOffset:4,content:Ne.createElement(Qu,null)},Ne.createElement(Zh,{color:"gray"}))),Ne.createElement(zu,null,Js.map((r,s)=>{let a=`slippage-${s}`;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Hu,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Ne.createElement(Rh,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=parseFloat(r.target.value);(!s||s>=ta&&s<=ea)&&n(s)},suffix:o&&Ne.createElement(ju,{variant:"body",size:"small"},"%"),placeholder:Vu.t("Custom")})))}i(rs,"Slippage");function Xu(){let t=ay(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=Pe("theme",s),l=Pe("liquiditySource",s),p=Pe("language",s),u=d().infiniteApprove,m=d().toggleInfiniteApprove,c=Xo(n,r),g=c.filter(C=>C.type==="BRIDGE"||C.type==="AGGREGATOR"),f=g.length,v=g.filter(C=>C.selected).length,h=c.filter(C=>C.type==="DEX"),y=h.length,A=h.filter(C=>C.selected).length,T=i((C,N)=>{switch(o){case"loading":return j.createElement(ry,{variant:"text",size:"medium",width:50});case"failed":return j.createElement($t,{variant:"body",size:"medium",color:"$error500"},Pt.t("Loading failed"));default:return j.createElement($t,{variant:"body",size:"medium"},`${C} / ${N}`)}},"handleEndItem"),w={id:"bridge-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled bridges")),end:j.createElement(j.Fragment,null,T(v,f),j.createElement(ss,{direction:"horizontal",size:8}),j.createElement(is,{color:"black"})),onClick:()=>t(_.bridges)},b={id:"exchange-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled exchanges")),end:j.createElement(j.Fragment,null,T(A,y),j.createElement(ss,{direction:"horizontal",size:8}),j.createElement(is,{color:"gray"})),onClick:()=>t(_.exchanges)},S={id:"theme-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Theme")),end:j.createElement(is,{color:"gray"}),onClick:()=>t(_.themes)},x={id:"infinite-approval-item",title:j.createElement(j.Fragment,null,j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Infinite approval")),j.createElement(ss,{direction:"horizontal",size:4}),j.createElement(sy,{side:"top",sideOffset:4,container:O(),content:j.createElement(Zn,null,j.createElement($t,{variant:"label",size:"medium",color:"neutral700"},Pt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},j.createElement(ty,{color:"gray"}))),end:j.createElement(iy,{checked:u}),onClick:m},I=l?[]:[w,b];return!e?.singleTheme&&!a&&I.push(S),I.push(x),j.createElement(K,{header:{title:Pt.t("Settings")}},j.createElement(pt,null,j.createElement(rs,null),j.createElement(oy,{type:j.createElement(ny,{title:"_",id:"_",onClick:()=>console.log()}),items:I})))}i(Xu,"SettingsPage");import{cancelSwap as Yy}from"@rango-dev/queue-manager-rango-preset";import{useManager as Jy}from"@rango-dev/queue-manager-react";import Ic from"react";import{i18n as ct}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Ny,getCurrentStep as Ly,getRelatedWalletOrNull as Py}from"@rango-dev/queue-manager-rango-preset";import{Button as Cc,CopyIcon as $y,Divider as My,IconButton as _y,QuoteCost as Dy,StepDetails as Fy,Typography as eo,useCopyToClipboard as Oy}from"@rango-dev/ui";import{useWallets as Uy}from"@rango-dev/wallets-react";import kc from"bignumber.js";import{PendingSwapNetworkStatus as ur}from"rango-types";import Y,{useEffect as Tc,useRef as qy,useState as wc}from"react";import{useNavigate as zy}from"react-router-dom";import{i18n as wt}from"@lingui/core";var ly=[wt.t("Sunday"),wt.t("Monday"),wt.t("Tuesday"),wt.t("Wednesday"),wt.t("Thursday"),wt.t("Friday"),wt.t("Saturday")];function Ku(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wt.t("Today"):`${ly[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ku,"timeSince");function Yu(t){return t.finishTime?Ku(parseInt(t.finishTime)):Ku(parseInt(t.creationTime))}i(Yu,"getSwapDate");import{Modal as gy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as tr}from"rango-types";import or from"react";import{i18n as Rn}from"@lingui/core";import{Button as Ju,Divider as as,MessageBox as py,Typography as Zu}from"@rango-dev/ui";import ot from"react";var Ru=i(({onCancel:t,onClose:e})=>ot.createElement(ot.Fragment,null,ot.createElement(as,{size:20}),ot.createElement(py,{type:"error",title:Rn.t("Cancel Swap"),description:Rn.t("Are you sure you want to cancel this swap?")}),ot.createElement(as,{size:32}),ot.createElement(Ju,{variant:"contained",type:"primary",size:"large",onClick:t},ot.createElement(Zu,{variant:"title",size:"medium",color:"neutral100"},Rn.t("Yes, Cancel it"))),ot.createElement(as,{size:12}),ot.createElement(Ju,{variant:"outlined",type:"primary",size:"large",onClick:e},ot.createElement(Zu,{variant:"title",size:"medium",color:"primary"},Rn.t("No, Continue")))),"CancelContent");import{i18n as er}from"@lingui/core";import{Button as ec,Divider as ls,MessageBox as uy,Typography as tc}from"@rango-dev/ui";import nt from"react";var oc=i(({onDelete:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(ls,{size:20}),nt.createElement(uy,{type:"error",title:er.t("Delete Transaction"),description:er.t("Are you sure you want to delete this swap?")}),nt.createElement(ls,{size:32}),nt.createElement(ec,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(tc,{variant:"title",size:"medium",color:"neutral100"},er.t("Yes, Delete it"))),nt.createElement(ls,{size:12}),nt.createElement(ec,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(tc,{variant:"title",size:"medium",color:"primary"},er.t("No, Cancel")))),"DeleteContent");import{i18n as ps}from"@lingui/core";import{PendingSwapNetworkStatus as us}from"rango-types";var cs={[us.WaitingForNetworkChange]:{type:"loading",title:ps.t("Change Network")},[us.WaitingForConnectingWallet]:{type:"warning",title:ps.t("Connect Wallet")},[us.NetworkChanged]:{type:"success",title:ps.t("Network Changed")}};import{MessageBox as my,Wallet as dy}from"@rango-dev/ui";import{useWallets as fy}from"@rango-dev/wallets-react";import Io from"react";import{styled as cy}from"@rango-dev/ui";var nc=cy("div",{display:"flex",justifyContent:"center"});var rc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=fy(),u=n?.walletType,m=u?yr(p(u)):null,c=u?l(u):null;return Io.createElement(Io.Fragment,null,Io.createElement(my,{type:e,title:o,description:r}),s&&!!u&&!!m&&!!c&&Io.createElement(nc,null,Io.createElement(dy,{container:O(),title:c.name,image:c.img,type:u,state:m,link:c.installLink,onClick:async()=>a(u)})))},"WalletStateContent");function ms(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===tr.WaitingForNetworkChange||e===tr.WaitingForConnectingWallet||e===tr.NetworkChanged;return or.createElement(gy,{open:!!e,onClose:o,container:document.getElementById(Te)||document.body},l&&or.createElement(rc,{type:cs[e].type,title:cs[e].title,currentStepWallet:s,message:a,showWalletButton:e!==tr.WaitingForNetworkChange}),e==="delete"&&or.createElement(oc,{onClose:o,onDelete:n}),e==="cancel"&&or.createElement(Ru,{onClose:o,onCancel:r}))}i(ms,"SwapDetailsModal");import{i18n as Eo}from"@lingui/core";import{Button as ds,Divider as nr,MessageBox as ic,Modal as hy,TokenAmount as yy,Typography as rr}from"@rango-dev/ui";import me from"react";import{useNavigate as Sy}from"react-router-dom";function fs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,realUsdValue:a,realValue:l,token:p,chain:u,percentageChange:m,description:c,diagnosisUrl:g}=t,f=Sy();return me.createElement(hy,{open:e,onClose:o,container:document.getElementById(Te)||document.body},n==="success"?me.createElement(ic,{type:"success",title:Eo.t("Swap Successful")},me.createElement(yy,{direction:"vertical",tooltipContainer:O(),type:"output",centerAlign:!0,price:{value:r,usdValue:s,realUsdValue:a,realValue:l},token:p,chain:u,percentageChange:m}),me.createElement(nr,{size:12}),me.createElement(rr,{variant:"body",size:"medium",color:"neutral700",align:"center"},c)):me.createElement(ic,{type:"error",title:Eo.t("Transaction Failed"),description:c}),me.createElement(nr,{size:32}),n==="success"&&me.createElement(ds,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},me.createElement(rr,{variant:"title",size:"medium",color:"neutral100"},Eo.t("Done"))),me.createElement(nr,{size:12}),g&&me.createElement(me.Fragment,null,me.createElement(ds,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Eo.t("Diagnosis"))),me.createElement(nr,{size:12})),me.createElement(ds,{variant:"outlined",type:"primary",size:"large",onClick:o},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Eo.t("See Details"))))}i(fs,"SwapDetailsCompleteModal");import Wy from"react";import{i18n as Ay}from"@lingui/core";import{Alert as cc,IconButton as by,LinkIcon as Iy}from"@rango-dev/ui";import xt,{Fragment as Ey}from"react";import{Alert as Cy,ChevronDownIcon as ky,ChevronUpIcon as Ty,IconButton as wy}from"@rango-dev/ui";import ir,{useState as xy}from"react";function sc(t){let{message:e}=t,[o,n]=xy(!1);return ir.createElement(Cy,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&ir.createElement(wy,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?ir.createElement(Ty,{size:12,color:"gray"}):ir.createElement(ky,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(sc,"FailedAlert");import{styled as vy}from"@rango-dev/ui";var ac=vy("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as lc}from"@lingui/core";import{Alert as gs,Button as pc}from"@rango-dev/ui";import{PendingSwapNetworkStatus as hs}from"rango-types";import Wo from"react";function uc(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Wo.createElement(gs,{type:"warning",title:n.shortMessage,action:Wo.createElement(pc,{size:"xxsmall",type:"warning",onClick:()=>{o(hs.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},lc.t("Change"))}):r===hs.WaitingForConnectingWallet?Wo.createElement(gs,{type:"warning",title:n.shortMessage,action:Wo.createElement(pc,{size:"xxsmall",type:"warning",onClick:()=>{o(hs.WaitingForConnectingWallet)}},lc.t("Connect"))}):Wo.createElement(gs,{type:"warning",title:n.shortMessage})}i(uc,"WarningAlert");function ys(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=io(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l;return xt.createElement(ac,null,s.explorerUrl?.map((m,c,g)=>{let f=c+m.url,v=c===g.length-1,h=v&&u||p,y=v&&s.status==="failed";return xt.createElement(Ey,{key:f},xt.createElement(cc,{type:h&&"loading"||y&&"error"||"success",title:m.description?`${m.description} Tx`:Ay.t("View transaction"),action:m.url&&xt.createElement(by,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},xt.createElement(Iy,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&xt.createElement(cc,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&xt.createElement(uc,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&xt.createElement(sc,{message:r}))}i(ys,"SwapDetailsAlerts");var mc=2e3;var dc=i(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,s)=>{let a=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Ye(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:E(a,6,6),realValue:a}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Ye(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:E(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6),realValue:r.outputAmount||r.expectedOutputAmountHumanReadable}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Wy.createElement(ys,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function fc(t){if(io(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(fc,"getStepState");import{css as sr,darkTheme as By,styled as Zt}from"@rango-dev/ui";var ar=Zt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1}),lr=Zt("div",{width:"100%"}),gc=Zt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),r$=Zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),hc=Zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),i$=Zt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Rt=sr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${By} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),pr=sr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),yc=sr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Sc=sr({width:"100%",padding:"0 $20 $10"});function Ss(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Uy(),p=d().blockchains(),u=d().tokens(),m=U.use.retry(),c=zy(),[g,f]=Oy(mc),v=qy(null),[h,y]=wc(null),[A,T]=wc(null),w=i(()=>{r(),y(null)},"onCancel"),b=Me.use.getUnreadNotifications(),S=Me.use.setAsRead(),x=b(),I=Ly(e),C=I?.networkStatus;Tc(()=>{x.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),S(e.requestId))},[e.status]),Tc(()=>{q?y(ur.WaitingForNetworkChange):C===ur.WaitingForConnectingWallet||C===ur.NetworkChanged?y(C):y(null)},[C]);let N=Ca(e),$=I?Ny(e,I):null,B=I?Py(e,I):null,k=Yu(e),M=ka(e),L=i(ce=>!!l(ce)?.mobileWallet,"isMobileWallet"),q=C===ur.WaitingForNetworkChange&&!!$&&!!B?.walletType&&(L(B.walletType)||s(B.walletType,$)),J=q?a.bind(null,B.walletType,$):void 0,Z=Sa(e,I),Q=dc({swap:e,switchNetwork:J,showNetworkModal:C,setNetworkModal:y,message:Z,blockchains:p}),re=Q.length,[ye,Se]=[e.steps[0],e.steps[re-1]],Ce=Se.outputAmount||Se.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((ce,de)=>ce+parseFloat(de.feeInUsd||""),0),oo=e.steps.find(ce=>ce.diagnosisUrl)?.diagnosisUrl,mt=E(parseFloat(E(Ce,6,6))*(Se.toUsdPrice||0),4,4),vt=E(parseFloat(e.inputAmount)*(ye.fromUsdPrice||0),4,4),F=Ce?se(new kc(Ce).multipliedBy(Se.toUsdPrice||0)):"",z=se(new kc(e.inputAmount).multipliedBy(ye.fromUsdPrice||0)),X=$e(vt,mt),Ee=e.status==="success"?ct.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:E(Ce,6,6),token:Q[re-1].to.token.displayName,conciseAddress:Qo(e.wallets[Q[re-1].to.chain.displayName]?.address||""),chain:Q[re-1].to.chain.displayName}}):`${ct.t("Transaction was not sent.")} ${N?ct.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:N.outputAmount,symbol:N.symbol,blockchain:N.blockchain}}):""}`;return Y.createElement(K,{noPadding:!0,header:{title:ct.t("Swap and Bridge"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(Gt,null,Y.createElement(Cc,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},Y.createElement(eo,{size:"medium",variant:"label",color:"error"},ct.t("Delete"))))},footer:M&&!A&&Y.createElement(Cc,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},ct.t("Try again"))},Y.createElement(ar,null,Y.createElement(lr,null,Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${ct.t("Request ID")}:`),Y.createElement("div",{className:pr()},Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(_y,{variant:"ghost",onClick:f.bind(null,o||"")},Y.createElement($y,{size:16,color:"gray"})))),Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${ct.t(e.finishTime?"Finished at":"Created at")}:`),Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},k))),Y.createElement("div",{className:yc()},Y.createElement(Dy,{fee:E(String(Mt),2,2),time:Do(Fo(e.steps)),steps:re}),Y.createElement(uo,{from:{price:{value:E(e.inputAmount,6,6),usdValue:vt,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:E(Ce,6,6),usdValue:mt,realUsdValue:F,realValue:Ce},token:{displayName:Q[re-1].to.token.displayName,image:Q[re-1].to.token.image},chain:{image:Q[re-1].to.chain.image,displayName:Q[re-1].to.chain.displayName}},percentageChange:E(X,2,2),warningLevel:it(X??0)})),Y.createElement("div",{className:Sc()},Y.createElement(eo,{variant:"title",size:"small"},ct.t("Swaps steps"))),Y.createElement(My,{size:8}),Y.createElement(gc,{ref:v},Q.map((ce,de)=>{let Mo=de,rt=fc(e.steps[de]),Hc=rt==="error"||rt==="in-progress"||rt==="warning"||rt==="completed"&&de===Q.length-1;return Y.createElement(Fy,{key:Mo,step:ce,type:"swap-progress",ref:v,state:rt,hasSeparator:de!==0,tabIndex:Mo,isFocused:Hc,tooltipContainer:O()})}))),Y.createElement(ms,{state:h,onClose:()=>y(null),onCancel:w,onDelete:n,message:Z.detailedMessage.content,currentStepWallet:B}),Y.createElement(fs,{open:!!A,diagnosisUrl:oo,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:E(Ce,6,6),usdValue:mt,realUsdValue:F,realValue:se(Ce),percentageChange:E(X,2,2),token:{displayName:Q[re-1].to.token.displayName,image:Q[re-1].to.token.image},chain:{image:Q[re-1].to.chain.image},description:Ee}))}i(Ss,"SwapDetails");import{i18n as No}from"@lingui/core";import{CopyIcon as jy,IconButton as Xy,NotFound as Ky,Skeleton as Ac,Typography as mr}from"@rango-dev/ui";import ue from"react";import{i18n as Gy}from"@lingui/core";import{Divider as Hy,Skeleton as Qy,Typography as Vy}from"@rango-dev/ui";import ie from"react";import{css as je,styled as Cs}from"@rango-dev/ui";var xc=Cs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Bo=Cs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),cr=Cs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),_$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),D$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),F$=je({paddingTop:"$15",display:"flex"}),O$=je({padding:"$15 $0"}),U$=je({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),q$=je({paddingBottom:"$10"}),z$=je({display:"flex",justifyContent:"start",alignItems:"center"}),G$=je({paddingTop:"$5",display:"flex",alignItems:"center"}),H$=je({display:"flex",alignItems:"center"}),Q$=je({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),vc=je({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ks(){return ie.createElement(xc,null,ie.createElement(go,{type:"swap-preview"}),ie.createElement("div",{className:"swaps-steps"},ie.createElement(Vy,{variant:"title",size:"small"},Gy.t("Swaps steps"))),ie.createElement(ie.Fragment,null,ie.createElement(Bo,null,ie.createElement(et,{separator:!1}),ie.createElement("div",{className:vc()},ie.createElement(Hy,{direction:"horizontal",size:20}),ie.createElement(Qy,{height:22,variant:"rectangular"}))),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1}))))}i(ks,"LoadingSwapDetails");function bc(t){let{requestId:e,showSkeleton:o}=t;return ue.createElement(K,{noPadding:!0,header:{title:No.t("Swap and Bridge"),suffix:ue.createElement(Gt,null)}},o&&ue.createElement(ar,null,ue.createElement(lr,null,ue.createElement("div",{className:Rt()},ue.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Request ID")}:`),ue.createElement("div",{className:pr()},ue.createElement(mr,{variant:"label",size:"small",color:"neutral700"},ue.createElement(Ac,{width:60,height:10,variant:"rounded"})),ue.createElement(Xy,{variant:"ghost"},ue.createElement(jy,{size:16,color:"gray"})))),ue.createElement("div",{className:Rt()},ue.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Created at")}:`),ue.createElement(mr,{variant:"label",size:"small",color:"neutral700"},ue.createElement(Ac,{width:60,height:10,variant:"rounded"})))),ue.createElement(ks,null)),!o&&ue.createElement(hc,null,ue.createElement(Ky,{title:No.t("Not found"),description:No.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(bc,"SwapDetailsPlaceholder");function Ec(){let{manager:t,state:e}=Jy(),o=!e.loadedFromPersistor,n=jt(t),r=Ae.use.selectedSwapRequestId(),s=yt(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Yy(g)}},"onCancel"),m=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(g){console.log(g)}},"onDelete"),c=p?.swap;return!c||l?Ic.createElement(bc,{requestId:r||"",showSkeleton:l}):Ic.createElement(Ss,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Ec,"SwapDetailsPage");import{i18n as Lo}from"@lingui/core";import{AutoThemeIcon as Zy,DarkModeIcon as Ry,LightModeIcon as eS,List as tS,ListItemButton as oS,Radio as Ts,RadioRoot as nS,Typography as ws}from"@rango-dev/ui";import be from"react";function Wc(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Light")),onClick:()=>t("light"),start:be.createElement(eS,{color:"gray"}),end:be.createElement(Ts,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Dark")),onClick:()=>t("dark"),start:be.createElement(Ry,{color:"gray"}),end:be.createElement(Ts,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Auto")),onClick:()=>t("auto"),start:be.createElement(Zy,{color:"gray"}),end:be.createElement(Ts,{value:"auto"})}];return be.createElement(K,{header:{title:Lo.t("Theme")}},be.createElement(pt,null,be.createElement(nS,{onValueChange:n=>t(n),value:e},be.createElement(tS,{type:be.createElement(oS,{title:Lo.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Wc,"ThemePage");function Bc(){return rS([{path:_.home,element:Ie.createElement(su,null)},{path:_.fromSwap,children:[{index:!0,element:Ie.createElement(os,{type:"source"})},{path:_.blockchains,element:Ie.createElement(Oi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ie.createElement(os,{type:"destination"})},{path:_.blockchains,element:Ie.createElement(Oi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Ie.createElement(Xu,null)},{path:_.themes,element:Ie.createElement(Wc,null)},{path:_.languages,element:Ie.createElement(lu,null)},{path:_.exchanges,element:Ie.createElement($i,{sourceType:"Exchanges"})},{path:_.bridges,element:Ie.createElement($i,{sourceType:"Bridges"})}]},{path:_.swaps,children:[{index:!0,element:Ie.createElement(tu,null)},{path:_.swapDetails,element:Ie.createElement(Ec,null)}]},{path:_.wallets,element:Ie.createElement(wl,null)},{path:_.confirmSwap,element:Ie.createElement(Qp,null)}])}i(Bc,"AppRoutes");import{isApprovalTX as iS,MainEvents as Lc,RouteEventType as Pc,StepEventType as to,StepExecutionEventStatus as sS,useEvents as aS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as $c}from"react";import{StepExecutionBlockedEventStatus as xs}from"@rango-dev/queue-manager-rango-preset";var Nc=[xs.WAITING_FOR_CHANGE_WALLET_ACCOUNT,xs.WAITING_FOR_NETWORK_CHANGE,xs.WAITING_FOR_WALLET_CONNECT];function Mc(){let t=d().tokens(),e=H.use.connectedWallets(),o=H.use.getWalletsDetails(),n=Me.use.setNotification(),r=Me.use.setAsRead(),s=aS();return $c(()=>(s.on(Lc.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===to.TX_EXECUTION&&l.status===sS.TX_SENT&&!iS(p)||l.type===to.SUCCEEDED){let c=e.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);c&&o([c],t),g&&o([g],t)}l.type===to.TX_EXECUTION_BLOCKED&&Nc.includes(l.status)||l.type===to.FAILED?n(l,u):(l.type===to.TX_EXECUTION||l.type===to.CHECK_STATUS)&&r(u.requestId)}),()=>s.all.clear()),[s,e.length]),$c(()=>(s.on(Lc.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Pc.FAILED||l.type===Pc.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(Mc,"WidgetEvents");import{globalCss as lS}from"@rango-dev/ui";var _c=i(()=>lS({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{styled as pS}from"@rango-dev/ui";var Dc=pS("div",{display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function dr(){_c();let{config:t}=d(),{activeTheme:e}=Sn(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Hn(),[r,s]=Oc(""),[a,l]=Oc(),p=cS(pn);return Fc(()=>{Me.persist.rehydrate(),p.onConnectWallet(s)},[]),Fc(()=>{n(t?.language)},[t?.language]),Po.createElement(uS,{language:o},Po.createElement(Dc,{id:"swap-container",className:e()},Po.createElement(Mc,null),Po.createElement(Pa,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Po.createElement(Bc,null))))}i(dr,"Main");import As,{useMemo as WS}from"react";import{checkWaitingForNetworkChange as mS,makeQueueDefinition as dS}from"@rango-dev/queue-manager-rango-preset";import{Provider as fS}from"@rango-dev/queue-manager-react";import{useWallets as gS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as hS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as yS}from"rango-types";import SS,{useMemo as CS}from"react";function kS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=gS(),l=CS(()=>dS({API_KEY:t.apiKey||_t("API_KEY"),BASE_URL:_t("BASE_URL")}),[t.apiKey]),p=d().blockchains(),m={blockchains:H.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},c=i(async(T,w)=>{if(s(T,w))return r(T,w)},"switchNetwork"),g=i(T=>!!a(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),v=p.filter(yS),h=i(T=>{let{supportedChains:w}=a(T);return qo(w)},"getSupportedChainNames"),y=e(),A={meta:{blockchains:f,evmBasedChains:v,evmNetworkChainInfo:hS(v),getSupportedChainNames:h},getSigners:o,wallets:m,providers:y,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return SS.createElement(fS,{queuesDefs:[l],context:A,onPersistedDataLoaded:T=>{mS(T)},isPaused:!1},t.children)}i(kS,"QueueManager");var Uc=kS;import{useManager as AS}from"@rango-dev/queue-manager-react";import bS,{createContext as IS,useContext as ES}from"react";import{cancelSwap as TS,getCurrentBlockchainOfOrNull as wS,getCurrentStep as xS,getRelatedWalletOrNull as vS}from"@rango-dev/queue-manager-rango-preset";var $o=class{constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return jt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&TS(o)}getCurrentStepInfo(e){let o=xS(e);return{step:o,wallet:o?vS(e,o):null,network:o?wS(e,o):null}}};i($o,"WidgetHistory");var qc=IS(void 0);function vs(t){let{manager:e}=AS(),o=U.use.retry(),n=new $o(e,{retrySwap:o}),r=H.use.connectedWallets(),s=H.use.loading(),a=Fs(r),l=H.use.getWalletsDetails(),p=d().blockchains(),u=d().tokens(),m=d().swappers(),c=d().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:u,swappers:m,loadingStatus:c}};return bS.createElement(qc.Provider,{value:g},t.children)}i(vs,"WidgetInfo");function zc(){let t=ES(qc);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(zc,"useWidget");function fr(t){let{onUpdateState:e,config:o}=t;return WS(()=>{Gs({API_KEY:o?.apiKey||_o,BASE_URL:o?.apiUrl||Es})},[o]),As.createElement(un,{config:o,onUpdateState:e},As.createElement(Uc,{apiKey:o.apiKey},As.createElement(vs,null,t.children)))}i(fr,"WidgetProvider");function Gc(t){return t.config?.externalWallets?bs.createElement(dr,null):bs.createElement(fr,{config:t.config??gr},bs.createElement(dr,null))}i(Gc,"Widget");export{gD as MainEvents,AD as Networks,ED as PendingSwapNetworkStatus,hD as RouteEventType,yD as StepEventType,SD as StepExecutionBlockedEventStatus,CD as StepExecutionEventStatus,xD as WalletEvents,bD as WalletTypes,Gc as Widget,fr as WidgetProvider,un as WidgetWallets,qr as customizedThemeTokens,wD as readAccountAddress,Bl as useWallets,zc as useWidget,kD as useWidgetEvents};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|