@rango-dev/widget-embedded 0.20.1-next.4 → 0.20.1-next.6
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/containers/Wallets/Wallets.d.ts.map +1 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +2 -2
- 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 +7 -7
- package/src/containers/Wallets/Wallets.tsx +11 -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 uD,RouteEventType as cD,StepEventType as mD,StepExecutionBlockedEventStatus as dD,StepExecutionEventStatus as fD,useEvents as gD}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as yD,useWallets as Wl,Events as SD}from"@rango-dev/wallets-react";import{Networks as kD,WalletTypes as TD}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as xD}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 Wa,useRef as Wm}from"react";import{useEffect as nn,useLayoutEffect as Aa,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},As=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",bs="https://api.rango.exchange",Te="rango-swap-box";var hr={API_KEY:Mo};function _t(t){return hr[t]||""}i(_t,"getConfig");function Is(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),hr=e,hr}i(Is,"initConfig");var Es=20,Ws=25,Bs="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 Ns(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ns,"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 Ls(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ls,"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 nC,Networks as _s}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 Ps=[jc.LEAP];import{BigNumber as Ms}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 Ms(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ms(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 Ds(t,e,o,n){return o.filter(r=>!Ps.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(Ds,"mapWalletTypesToWalletInfo");function Go(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Go,"walletAndSupportedChainsNames");function Fs(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),d=m===_s.Unknown;if(c&&!g&&!d)return;let S=m===_s.Unknown&&Jc(u);if(d&&!S)return;o.includes(m)||S?r?a(m,u.toLowerCase()):l.filter(w=>o.includes(w)).forEach(w=>{a(w,u.toLowerCase())}):a(m,u)}),s}i(Fs,"prepareAccountsForWalletStore");function Os(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(Os,"getRequiredChains");function Ho(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ho,"isAccountAndWalletMatched");function Us(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(Us,"makeBalanceFor");function qs(t){return{...t,loading:!1,error:!0}}i(qs,"resetConnectedWalletState");var zs=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 Gs(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(Gs,"sortTokens");function Pe(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Pe,"tokensAreEqual");function Hs(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(Hs,"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 Qs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Qs,"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 Vs=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var js=i((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.tokens:r.to?.tokens)??[],a=e().blockchains({type:o.type});return n.filter(p=>s.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(Ls)},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 Xs=[{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 Ks=[.5,1,3],Ys=1,Js=5,Zs=100,Rs=0;var ea=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Ot,preferredBlockchains:[],slippage:Ys,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 ta(t){return am()(lm((...e)=>({...js(...e),...ea(...e),...As(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(ta,"createAppStore");var oa=um(null);function f(){let t=cm(oa);if(mm(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(f,"useAppStore");function na(t){let e=dm();return e.current||(e.current=ta(t.config)),pm.createElement(oa.Provider,{value:e.current},t.children)}i(na,"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 Tk 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 ra(t,e){return e.find(o=>o.name===t)?.displayName}i(ra,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"getBlockchainShortNameFor");function ia(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(ia,"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 sa(t){switch(t.type){case 0:return t.diagnosisMessage??Q().noResultError.title;case 1:return Q().genericServerError;default:return""}}i(sa,"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 aa(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(aa,"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 la(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(la,"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 pa(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(pa,"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 ua(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ua,"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:d,destination:T}=t,S=s?.reduce((b,C)=>(b[C.chain]=C.address,b),{}),h=[];r?.forEach(b=>{let C=h.find(v=>v.blockchain===b.chain);C?C.addresses.push(b.address):h.push({blockchain:b.chain,addresses:[b.address]})});let A=!!d,w=Ft((d?.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:h,selectedWallets:S??{},slippage:u.toString(),...T&&{destination:T},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(b=>!a.includes(b)),swappersGroupsExclude:!1},...A&&{blockchains:w}}}i(tn,"createQuoteRequestBody");function ca(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(ca,"getWalletsForNewSwap");function Ut(t){return t.result?.outputAmount||null}i(Ut,"getQuoteOutputAmount");function ma(t,e){return new ve(e).div(new ve(t)).minus(1).multipliedBy(100).toNumber()}i(ma,"getPercentageChange");function da(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(da,"isOutputAmountChangedALot");function fa(t,e,o){let n=t.validationStatus,r=Os(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>ka(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(fa,"generateBalanceWarnings");function ga(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(ga,"calcOutputUsdValue");function ro(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Zo.NetworkChanged}i(ro,"isNetworkStatusInWarningState");function ha(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(ha,"getSwapMessages");function ya(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(ya,"getLastConvertedTokenInFailedSwap");function Sa(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(Sa,"shouldRetrySwap");function Ca(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(Ca,"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 wa(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(wa,"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 xa(t,e){return Br(t,e)||Nr(t,e)||Lr(t,e)}i(xa,"isQuoteChanged");function ka(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(ka,"getRequiredBalanceOfWallet");function at(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(at,"getPriceImpactLevel");function va(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(va,"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&&aa(a,m)){let g=Ro(t.result.swaps,r),d=at(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:g,warningLevel:d}}}else if(t.result&&(!a||!l))return{type:1};let p=en(t),u=s>Js;if(ua(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:pa(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:ma(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=ga(e.result?.outputAmount,wa(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new yt(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:It(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new yt(0),outputUsdValue:new yt(0),quote:null},...!!o.fromToken&&{inputUsdValue:It(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=va(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 ba(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=U(),u=f().config,m=f().fetchStatus,c=f().blockchains(),g=f().tokens(),{setAffiliateRef:d,setAffiliatePercent:T,setAffiliateWallets:S}=f(),h=rn(()=>u?.from?.tokens,[u?.from?.tokens]),A=rn(()=>u?.from?.blockchains,[u?.from?.blockchains]),w=rn(()=>u?.to?.tokens,[u?.to?.tokens]),x=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]),Aa(()=>{if(m==="success"){let y=c.find(N=>N.name===u?.from?.blockchain),$=g.find(N=>Pe(N,u?.from?.token||null));(y||!y&&v.current)&&n(y??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&&h&&(h.some(y=>Pe(y,s))||r({token:null})),l&&A&&(A.includes(l.name)||n(null))},[h,A]),nn(()=>{a&&w&&(w.some(y=>Pe(y,a))||e({token:null})),p&&x&&(x.includes(p.name)||o(null))},[w,x]),Aa(()=>{if(m==="success"){let y=c.find(N=>N.name===u?.to?.blockchain),$=g.find(N=>Pe(N,u?.to?.token||null));(y||!y&&I.current)&&o(y??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(()=>{d(u?.affiliate?.ref??null),T(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(ba,"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 d=o.find(S=>Ho(S,g)),T=p.find(S=>S.address===g.address&&S.blockChain===g.chain);return T?.failed&&d&&r&&s([d],n,!1),d&&T?{...g,explorerUrl:T.explorerUrl,balances:Us(T,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))?qs(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 Ia(t,e){return an(t,e).map(r=>r.config.type)}i(Ia,"configWalletsToWalletName");function Ea(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(Ea,"useWalletProviders");var pn=Em({onConnectWallet:()=>{}});function Bm(t){let{updateConfig:e,updateSettings:o,fetch:n}=f(),r=f().blockchains(),s=f().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:l}=Ea(t.config.wallets,a),{connectWallet:p,disconnectWallet:u}=z(),m=Wm();ba(),Wa(()=>{n().catch(console.log)},[]),Wa(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let c=r.filter(Im).map(d=>d.name),g=i((d,T,S,h,A)=>{if(T===Pr.ACCOUNTS)if(S){let w=Go(A.supportedBlockchains),x=Fs(d,S,c,w,A.isContractWallet);p(x,s)}else u(d);if(T===Pr.ACCOUNTS&&h.connected){let w=`${d}-${h.network}-${S}`;h.connected&&(m.current?m.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===Pr.NETWORK&&h.network){let w=`${d}-${h.network}`;m.current?m.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(d,T,S,h,A)},"onUpdateState");return ln.createElement(pn.Provider,{value:{onConnectWallet:d=>{m.current=d}}},ln.createElement(bm,{allBlockChains:r,providers:l,onUpdateState:g,autoConnect:!0},t.children))}i(Bm,"Main");function un(t){let{config:e,...o}=t;return ln.createElement(na,{config:e},ln.createElement(Bm,{...o,config:e}))}i(un,"WidgetWallets");import vs from"react";import{I18nManager as lS}from"@rango-dev/ui";import Lo,{useContext as pS,useEffect as Dc,useState as Fc}from"react";import{useQueueManager as Om}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Um}from"@rango-dev/wallets-react";import{isEvmBlockchain as qm}from"rango-types";import cn,{Fragment as zm}from"react";import{MemoryRouter as Gm,useInRouterContext as Hm}from"react-router";import{useWallets as Lm}from"@rango-dev/wallets-react";import{useEffect as Pm,useRef as $m}from"react";function Ba(){let{connect:t,state:e}=Lm(),o=$m({}),{fetchStatus:n}=f(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Pm(()=>{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 $r,useRef as Mr}from"react";import{createSearchParams as _m,useLocation as Dm,useSearchParams as Fm}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 Mm}from"zustand";var Ae=ht(Mm()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function Na(){let t=Mr(!0),[e,o]=Fm(),n=Dm(),r=Mr(n.search),s=Mr({}),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(),d=U.use.setToToken(),T=U.use.inputAmount(),S=U.use.setInputAmount(),h=f().fetchStatus,A=f().blockchains(),w=f().tokens(),x=Ae.use.setSelectedSwap();return $r(()=>{let b={};_m(r.current).forEach((v,I)=>{b[I]=v}),s.current=b;let C=n.pathname.split(_.swaps+"/")[1]||null;C&&x(C)},[]),$r(()=>{if(!t.current){let b="",C="",v="",I="",y="",$=s.current["autoConnect"];h!=="success"?(b=s.current["fromBlockchain"],C=s.current["fromToken"],v=s.current["toBlockchain"],I=s.current["toToken"],y=s.current["fromAmount"]||T):(b=a?.name||"",C=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),v=l?.name||"",I=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),y=T),o({...b&&{["fromBlockchain"]:b},...C&&{["fromToken"]:C},...v&&{["toBlockchain"]:v},...I&&{["toToken"]:I},...y&&{["fromAmount"]:y.toString()},...$&&{["autoConnect"]:$}},{replace:!0})}t.current=!1},[n.pathname,T,a,p,l,u]),$r(()=>{if(h==="success"){let b=e.get("fromBlockchain"),C=e.get("fromToken"),v=e.get("toBlockchain"),I=e.get("toToken"),y=e.get("fromAmount"),$=A.find(M=>M.name===b),N=Wr(w,C,$||null),L=A.find(M=>M.name===v),k=Wr(w,I,L||null);$&&(m($),N&&c({token:N,meta:{blockchains:A,tokens:w}})),L&&(g(L),k&&d({token:k,meta:{blockchains:A,tokens:w}})),y&&S(y)}},[h]),null}i(Na,"UpdateUrl");function La({children:t,...e}){let o=Hm(),n=o?zm:Gm,r=f().blockchains(),{canSwitchNetworkTo:s}=Um();Ba();let a=r.filter(qm);return Om({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 oS}from"react-router-dom";import{i18n as Fn}from"@lingui/core";import{useManager as lg}from"@rango-dev/queue-manager-react";import{Alert as Up,Button as qp,css as ki,Divider as pg,IconButton as zp,RefreshIcon as ug,SettingsIcon as cg,styled as Gp,Tooltip as mg,Typography as dg,WalletIcon as fg}from"@rango-dev/ui";import ee,{useEffect as Co,useLayoutEffect as gg,useRef as hg,useState as On}from"react";import{flushSync as yg}from"react-dom";import{useNavigate as Sg}from"react-router-dom";import{i18n as lt}from"@lingui/core";import{Alert as ei,BalanceErrors as lf,Button as Bl,ChevronDownIcon as pf,ChevronLeftIcon as uf,Divider as Qt,MessageBox as cf,Modal as Nl,Typography as En,WalletIcon as mf}from"@rango-dev/ui";import P,{useEffect as df,useLayoutEffect as ff,useRef as gf,useState as Bt}from"react";import{useNavigate as hf}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 Vm,css as Pa,darkTheme as qt,IconButton as jm,keyframes as $a,styled as ge,TextField as Xm}from"@rango-dev/ui";var io=300,Km=$a({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ym=$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%"}),Jm=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(Jm,{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(jm,{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(Vm,{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(Xm,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),fn=ge(zt.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${Km} ${io}ms ease-out`},false:{animation:`${Ym} ${io}ms ease-out`}}}}),Ya=ge("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as rf,Divider as Zr,Image as sf,MessageBox as In,Modal as Al,SelectableWallet as af,Typography as bl,WalletState as Il}from"@rango-dev/ui";import R,{useEffect as El,useState as ao}from"react";import{WalletState as _r}from"@rango-dev/ui";import{useWallets as Zm}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as Rm,WalletTypes as gn}from"@rango-dev/wallets-shared";import{useEffect as ed,useState as td}from"react";var od=Object.values(gn);function hn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=Zm(),{connectedWallets:u}=z(),m=f().blockchains(),c=Ia(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||od,g=Ds(s,l,c,o),d=Hs(g),[T,S]=td(""),h=i(C=>!u.find(v=>v.walletType===C&&v.chain===o),"isExperimentalChainNotAdded"),A=i(async C=>{let v=s(C);try{if(T&&S(""),v.connected)await a(C);else{let I=!!g.find(y=>y.state===_r.CONNECTED);if(!e?.multiWallets&&I)return;n?.(C),await p(C),r?.(C)}}catch(I){S("Error: "+I?.message)}},"handleClick"),w=i(()=>{let C=g?.filter(v=>v.state===_r.CONNECTING)||[];for(let v of C)a(v.type)},"disconnectConnectingWallets");ed(()=>()=>{w()},[]);let x=i(C=>C.filter(I=>I.state!=_r.NOT_INSTALLED&&![gn.DEFAULT,gn.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(y=>y.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),b=i((C,v,I)=>Qo(I,v)&&h(C)&&!Rm.includes(C)||C==gn.DEFAULT&&!x(g),"shouldExcludeWallet");return{list:d.filter(C=>!b(C.type,o??"",m)),error:T,handleClick:A}}i(hn,"useWalletList");import{i18n as Sl}from"@lingui/core";import{styled as kl,Typography as Yd,Wallet as Jd,WalletState as Zd}from"@rango-dev/ui";import Wt,{Fragment as Rd,useState as Cl}from"react";import{BottomLogo as Ud,Divider as qd,Header as zd}from"@rango-dev/ui";import he from"react";import{useNavigate as nd}from"react-router-dom";function St(){let t=nd();return()=>t(-1)}i(St,"useNavigateBack");import{createTheme as Ur,darkTheme as ld,lightTheme as pd}from"@rango-dev/ui";import{useEffect as Ra,useState as ud}from"react";import{theme as sd,darkColors as ad}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"),Dr=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"),rd=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"),id=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Fr=i(t=>rd(id(5381,JSON.stringify(t))>>>0),"toHash");function Or(t){let e=sd.colors,o=Dr({...e,...ad},!0,t?.dark),n=Dr(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-${Fr(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${yr}-dark-${Fr(p)}`,tokens:p}}return{light:a,dark:l}}i(Or,"customizedThemeTokens");function Sn(t){let{colors:e,fontFamily:o=Bs,borderRadius:n=Es,secondaryBorderRadius:r=Ws,mode:s="auto"}=t,[a,l]=ud("light"),{setTheme:p,theme:u}=f(),{dark:m,light:c}=Or(e),g=Ur({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[g.className,pd.className],T=[g.className,ld.className];if(c){let h=Ur(c.id,c.tokens);d.push(h.className)}if(m){let h=Ur(m.id,m.tokens);T.push(h.className)}return Ra(()=>{let h=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",h),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",h)}},[]),Ra(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let h=d.join(" "),A=T.join(" ");return u==="auto"?a==="dark"?A:h:u==="dark"?A:h},"getActiveTheme")}}i(Sn,"useTheme");import{ChevronLeftIcon as dd}from"@rango-dev/ui";import ol from"react";import{darkTheme as cd,IconButton as md,styled as Cn}from"@rango-dev/ui";var Ue=Cn(md,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),el=Cn("div",{position:"absolute",background:"$secondary500",[`.${cd} &`]:{$$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 qr(t){return ol.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},ol.createElement(dd,{color:"black",size:16}))}i(qr,"BackButton");import{i18n as fd}from"@lingui/core";import{Button as gd,Typography as hd}from"@rango-dev/ui";import zr from"react";function Gr(t){return zr.createElement(Gt,null,zr.createElement(gd,{variant:"ghost",onClick:t.onClick,size:"xsmall"},zr.createElement(hd,{variant:"label",size:"medium",color:"error500"},fd.t("Cancel"))))}i(Gr,"CancelButton");import{i18n as yd}from"@lingui/core";import{Tooltip as Sd,WalletIcon as Cd}from"@rango-dev/ui";import kn from"react";function Hr(t){return kn.createElement(Sd,{container:t.container,side:"top",content:yd.t("Connect Wallet")},kn.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&kn.createElement(el,null),kn.createElement(Cd,{size:18,color:"black"})))}i(Hr,"WalletButton");import{i18n as xn}from"@lingui/core";import{NotificationsIcon as $d,Popover as Md,RefreshIcon as _d,SettingsIcon as Dd,Tooltip as vn,TransactionIcon as Fd}from"@rango-dev/ui";import ce from"react";import{i18n as Id}from"@lingui/core";import{ChainToken as ll,ChevronRightIcon as Ed,ListItemButton as Wd,Typography as Bd}from"@rango-dev/ui";import qe from"react";import{useNavigate as Nd}from"react-router-dom";import{create as kd}from"zustand";import{persist as Td,subscribeWithSelector as wd}from"zustand/middleware";var Me=ht(kd()(Td(wd((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 xd}from"@lingui/core";import{Divider as vd,NoNotificationIcon as Ad,Typography as bd}from"@rango-dev/ui";import wn from"react";function al(){return wn.createElement(sl,null,wn.createElement(Ad,{color:"secondary",size:26}),wn.createElement(vd,{size:12}),wn.createElement(bd,{variant:"body",size:"medium",color:"neutral700"},xd.t("You have no notification")))}i(al,"NotificationNotFound");var Ld=4;function Qr(){let t=Nd(),e=Ae.use.setSelectedSwap(),{getUnreadNotifications:o}=Me(),n=o(),r=f().blockchains(),s=f().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,Ld),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(d=>d.address===p.route.from.tokenAddress&&d.blockchain===p.route.from.blockchain&&d.symbol===p.route.from.tokenSymbol),m=r.find(d=>d.name===p.route.from.blockchain),c=s.find(d=>d.address===p.route.to.tokenAddress&&d.blockchain===p.route.to.blockchain&&d.symbol===p.route.to.tokenSymbol),g=r.find(d=>d.name===p.route.to.blockchain);return qe.createElement(Wd,{key:p.requestId,onClick:()=>l(p.requestId),title:qe.createElement(Bd,{variant:"body",size:"small",color:"$neutral700"},Id.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(Ed,{size:12,color:"gray"})})})):qe.createElement(al,null))}i(Qr,"NotificationContent");import{Typography as Pd}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(Pd,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(ul,"UnreadNotificationsBadge");function Vr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:s}=t,{config:{features:a}}=f(),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(_d,{size:16,color:o?"black":"gray"}))),!l&&ce.createElement(vn,{container:O(),side:"top",content:xn.t("Notifications")},ce.createElement(Md,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:ce.createElement(Qr,null)},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:s},ce.createElement($d,{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(Dd,{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(Fd,{size:18,color:"black"}))))}i(Vr,"HomeButtons");import{darkTheme as Od,styled as jr}from"@rango-dev/ui";var cl=jr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"100vw",minWidth:"300px",maxWidth:"390px",maxHeight:"700px",textAlign:"left",$$color:"$colors$neutral100",[`.${Od} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"100vh"},false:{height:"auto !important"}}}}),ml=jr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),dl=jr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Gd(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}}=f(),{activeTheme:c}=Sn(m||{}),g=Le("connectWalletButton",u),d=Ae.use.connectWalletsButtonDisabled(),T=St(),S=i(()=>{!d&&n.onWallet&&n.onWallet()},"onConnectWallet"),h=typeof n.hasBackButton>"u"||n.hasBackButton;return he.createElement(cl,{ref:e,fixedHeight:l,id:Te,className:c()},he.createElement(zd,{prefix:he.createElement(he.Fragment,null,h&&he.createElement(qr,{onClick:T})),title:n.title,suffix:he.createElement(he.Fragment,null,n.suffix,n.onWallet&&!g&&he.createElement(Hr,{container:O(),onClick:S,isConnected:!!p?.length}),n.onCancel&&he.createElement(Gr,{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(qd,{size:12}),he.createElement(Ud,null))))}i(Gd,"LayoutComponent");var X=he.forwardRef(Gd);X.displayName="Layout";import{Divider as Xd,Modal as Kd}from"@rango-dev/ui";import Kr from"react";import{i18n as Ht}from"@lingui/core";import{Image as Vd,MessageBox as Xr,WalletState as jd}from"@rango-dev/ui";import Et from"react";import{keyframes as Hd,styled as An}from"@rango-dev/ui";var mv=An("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),fl=An("div",{position:"relative"}),Qd=Hd({"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:`${Qd} 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===jd.CONNECTED?Et.createElement(Xr,{type:"success",title:Ht.t("Wallet Connected"),description:Ht.t("Your wallet is connected, you can use it to swap.")}):n?Et.createElement(Xr,{type:"error",title:Ht.t("Failed to Connect"),description:n||Ht.t("Your wallet is not connected. Please try again.")}):Et.createElement(Xr,{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(Vd,{src:o,size:45})),Et.createElement(gl,null))})}i(yl,"ModalContent");function so(t){let{open:e,onClose:o,...n}=t;return Kr.createElement(Kd,{open:e,onClose:o,container:document.getElementById(Te)||document.body},Kr.createElement(yl,{...n}),Kr.createElement(Xd,{direction:"vertical",size:32}))}i(so,"WalletModal");var ef=kl("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),tf=kl("div",{textAlign:"center"}),bn=3e3,Yr=300;function Tl(){let{config:t,fetchStatus:e}=f(),[o,n]=Cl(!1),[r,s]=Cl(""),a=null,{list:l,handleClick:p,error:u}=hn({config:t,onBeforeConnect:d=>{a=setTimeout(()=>{n(!0),s(d)},Yr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},bn)}}),m=l.find(d=>d.type===r),c=m?.image||"",g=m?.state||Zd.NOT_INSTALLED;return Wt.createElement(X,{header:{title:Sl.t("Connect Wallets")}},Wt.createElement(tf,null,Wt.createElement(Yd,{variant:"title",size:"xmedium",align:"center"},Sl.t("Choose a wallet to connect.")),Wt.createElement(ef,null,l.map((d,T)=>{let S=`wallet-${T}-${d.type}`;return Wt.createElement(Rd,{key:S},Wt.createElement(Jd,{...d,container:O(),onClick:h=>{p(h)},isLoading:e==="loading"}))}),Wt.createElement(so,{open:!!o,onClose:()=>n(!1),image:c,state:g,error:u}))))}i(Tl,"WalletsPage");import{keyframes as of,styled as Jr}from"@rango-dev/ui";var wl=Jr("div",{position:"relative"}),nf=of({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),xl=Jr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${nf} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vl=Jr("div",{"& img":{borderRadius:"50%"}});function Rr(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=f(),l=z.use.connectedWallets(),{blockchains:p}=f(),[u,m]=ao(""),[c,g]=ao(null),[d,T]=ao(!1),[S,h]=ao(null),{suggestAndConnect:A}=Wl(),w=null,{list:x,error:b,handleClick:C}=hn({config:a,chain:e,onBeforeConnect:k=>{w=setTimeout(()=>{m(k)},Yr)},onConnect:()=>{w&&clearTimeout(w),setTimeout(()=>{m("")},bn)}}),[v,I]=ao(x),y=x.length,$=r&&y-r>0,N=i(async k=>{T(!1),h("in-progress");try{await A(k.walletType,k.chain),h("completed")}catch{h("rejected")}},"addExperimentalChain");El(()=>{I(k=>{let M=x.findIndex(E=>o(E.type,e));return $&&M>1?[x[M]].concat(x.filter((E,G)=>G!==M)):k.map(E=>x.find(G=>G.type===E.type)??E)})},[JSON.stringify(x)]);let L=document.getElementById(Te);return El(()=>{let k=null;return(S==="completed"||S==="rejected")&&(k=setTimeout(()=>h(null),bn)),()=>{k&&clearTimeout(k)}},[S]),R.createElement(R.Fragment,null,v.slice(0,r).map(k=>{let M=Qs({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??""}),T(!0)):n({walletType:k.type,chain:e,address:M??""})},"onClick"),ye=c?.chain?ra(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&&d,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(Zr,{size:18}),R.createElement(Zr,{size:32}),R.createElement(rf,{onClick:N.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),S&&R.createElement(Al,{open:!!S,onClose:h.bind(null,null),container:L},S==="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(sf,{src:k.image,size:45})),R.createElement(xl,null))}),S==="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}})}),S==="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(Zr,{direction:"vertical",size:32})),R.createElement(af,{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+",y-(r??0)))))}i(Rr,"WalletList");var yf=2;function Ll(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=f().config,l=f().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:g,setCustomDestination:d}=U(),{connectedWallets:T,selectWallets:S}=z(),[h,A]=Bt(""),[w,x]=Bt([]),[b,C]=Bt(""),[v,I]=Bt(null),[y,$]=Bt(g),[N,L]=Bt(!!g),k=gf(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(T.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)&&!y)),"isSelected"),ye=!!y&&N&&H&&!Yo(H,y),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(h&&A(""),re(D.walletType,D.chain))return;let j=T.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);S(D),u(D),d(y),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{x([]),C(""),I(null);let D=T.filter(Ee=>J.find(ue=>ue.chain===Ee.chain&&ue.walletType===Ee.walletType)),Y=await r?.({selectedWallets:D,customDestination:y}),j=Y.warnings;j?.balance?.messages&&x(j.balance.messages),j?.quoteUpdate&&I(j.quoteUpdate),Y.error&&C(sa(Y.error)),!Y.error&&(!j?.balance?.messages.length||0>0)?Mt():x(j?.balance?.messages??[])},"onConfirmWallets");df(()=>{te(D=>D.concat(T.filter(Y=>!!!D.find(Ee=>Ee.chain===Y.chain)&&Y.selected&&M.includes(Y.chain))))},[T.length]),ff(()=>{N&&k.current&&setTimeout(()=>{k?.current?.scrollIntoView({behavior:"smooth"})},io)},[N]);let it=document.getElementById(Te),Xe=hf();return P.createElement(Nl,{open:e,onClose:()=>{m||Xe("../",{replace:!0}),o()},dismissible:!h,container:it,...!h&&{footer:P.createElement(Xa,null,P.createElement(Bl,{loading:s,disabled:Ca(s,N,y,p,J,E),onClick:oo,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...h&&{containerStyle:{padding:"$0"},header:P.createElement(Oa,null,P.createElement(Ua,{variant:"ghost",onClick:A.bind(null,"")},P.createElement(uf,{size:16})),P.createElement(En,{variant:"headline",size:"small"},lt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(h,l)}})))},anchor:"center"},P.createElement(Nl,{open:w.length>0,onClose:x.bind(null,[]),container:it},P.createElement(cf,{title:lt.t("Insufficient account balance"),type:"error",description:P.createElement(lf,{messages:w??[]})},P.createElement(Bl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Mt},lt.t("Proceed anyway")))),h&&P.createElement(qa,null,P.createElement("div",{className:za()},P.createElement(Rr,{chain:h,isSelected:re,selectWallet:Ce,onShowMore:A.bind(null,h)}))),!h&&P.createElement(P.Fragment,null,b&&P.createElement(P.Fragment,null,P.createElement(ei,{variant:"alarm",type:"error",title:lt.t(b)}),P.createElement(Qt,{size:12})),v&&P.createElement(P.Fragment,null,P.createElement(ei,{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(Rr,{chain:D,isSelected:re,selectWallet:Ce,limit:yf,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(pf,{size:10,color:"gray"}))},P.createElement("div",{className:"button__content"},P.createElement(mf,{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:y,onChange:de=>{$(de.target.value)}})))),ye&&P.createElement("div",{className:Va()},P.createElement(ei,{variant:"alarm",type:"error",title:lt.t({values:{destination:y},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Ll,"ConfirmWalletsModal");import{Divider as ng}from"@rango-dev/ui";import _e from"react";import{i18n as ai}from"@lingui/core";import{Alert as Tf,ChevronDownIcon as wf,ChevronRightIcon as xf,Divider as li,Image as Jl,InfoIcon as vf,QuoteCost as Af,StepDetails as bf,TokenAmount as If,Tooltip as Nn,Typography as uo}from"@rango-dev/ui";import Zl from"bignumber.js";import B,{useLayoutEffect as Ef,useRef as Rl,useState as Wf}from"react";import{styled as lo}from"@rango-dev/ui";var Pl=lo("div",{paddingBottom:"$10"}),ti=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 oi,darkTheme as Ze,Image as Dl,styled as Ge,Typography as Sf}from"@rango-dev/ui";var ni=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=oi({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=oi({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),zl=oi({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"}}),ri=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"}),ii=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ni}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),xA=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"}),si=Ge(Sf,{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 Cf,styled as kf}from"@rango-dev/ui";var Xl=kf("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Kl=Cf({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 pi(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=f().tokens(),u=f().blockchains(),m=f().swappers(),[c,g]=Wf(t.expanded),d=Rl(null),T=Rl(c),S=W(Ro(e.result?.swaps??[],p),2,2),h=Oo(Uo(e.result?.swaps)),A=W(o.value,6,6),w=W(n.value,6,6),x=n.usdValue?W(n.usdValue,4,4):"",b=$e(o.usdValue,n.usdValue??null),C=W(b,2,2),v=at(b??0),y=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:ia(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(Tf,{type:G?"error":"warning",title:r?.type===3?r?.recommendation:ai.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(li,{direction:"horizontal",size:8}),B.createElement(uo,{size:"xsmall",variant:"body",color:"neutral900"},"|"),B.createElement(li,{direction:"horizontal",size:8}),B.createElement(uo,{size:"xsmall",variant:"body",color:"neutral900"},ai.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"},ai.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??[]),$=y.length,N=O();return Ef(()=>{c&&!T.current&&d.current&&setTimeout(()=>{d?.current?.scrollIntoView({behavior:"smooth"})},ni),T.current=c},[c,T]),B.createElement(B.Fragment,null,B.createElement(Ul,{recommended:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:ql()},B.createElement(Af,{fee:S,time:h,steps:$}),a==="basic"&&B.createElement("div",{className:zl()},B.createElement(Vl,null,B.createElement(vf,{size:12,color:"gray"})),B.createElement(jl,null,B.createElement(si,{size:"small",variant:"body"},`${A} ${y[0].from.token.displayName} = `),B.createElement(Nn,{content:se(n.value),container:N,open:n.value?void 0:!1},B.createElement(si,{size:"small",variant:"body"},"\xA0",`${w} ${y[y.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"},`($${x})`))),a==="list-item"&&B.createElement(If,{type:"output",direction:"vertical",tooltipContainer:N,price:{value:w,usdValue:x,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:y[$-1].to.token.displayName,image:y[$-1].to.token.image},chain:{image:y[$-1].to.chain.image},percentageChange:C,warningLevel:v}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(po,{from:y[0].from,to:y[$-1].to,percentageChange:C,warningLevel:v}),B.createElement(li,{size:4}))),B.createElement(Fl,{recommended:l,open:c,onOpenChange:g},B.createElement(Gl,{ref:L=>d.current=L,recommended:l,onClick:()=>g(L=>!L)},B.createElement("div",null,y.map((L,k)=>{let M=`item-${k}`,E=B.createElement(ii,null,B.createElement(xf,{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(ri,{state:L.state||y[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(ri,{state:L.state},B.createElement(Jl,{src:L.to.chain.image,size:16})))),k!==$-1&&B.createElement(B.Fragment,null,E))})),B.createElement(ii,{orientation:c?"up":"down"},B.createElement(wf,{size:12,color:"black"}))),B.createElement(Hl,{open:c},B.createElement(Ql,null),B.createElement("div",{className:Ol()},y.map((L,k)=>{let M=`item-${k}`;return B.createElement(bf,{type:"quote-details",key:M,step:L,hasSeparator:k!==y.length-1,state:L.state,tooltipContainer:N})}))))))}i(pi,"Quote");import{Divider as Lf,Skeleton as Pf}from"@rango-dev/ui";import pt from"react";import{darkTheme as Bf,styled as Ln}from"@rango-dev/ui";var ep=Ln("div",{$$color:"$colors$neutral100",[`.${Bf} &`]:{$$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 ci,NextIcon as Nf,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"}),ui=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(ci,{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(ui,null,ae.createElement(Cp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(ci,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})),ae.createElement(yp,null,ae.createElement(Nf,{color:"gray",size:16})),ae.createElement(ui,null,ae.createElement(Cp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(ci,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})))))}i(tt,"StepSkeleton");function mi(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(Pf,{height:15,variant:"rounded"})),o&&pt.createElement(op,null,pt.createElement(Lf,{size:20}),pt.createElement(tt,null),pt.createElement(tt,null),pt.createElement(tt,{separator:!1})))}i(mi,"QuoteSkeleton");import{i18n as Rf}from"@lingui/core";import{Alert as eg,Button as tg,InfoIcon as og}from"@rango-dev/ui";import Be from"react";import{Alert as $f,Button as Mf,Divider as Ap,NoRouteIcon as _f,RefreshIcon as Df,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 di}from"@rango-dev/ui";var wp=di("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),xp=di("div",{width:"100%"}),vp=di("div",{padding:"$6 $0"});function fi(t){let{fetch:e,error:o}=t,n=f().disabledLiquiditySources,r=f().toggleAllLiquiditySources,s=f().swappers(),a=Tp(o,n,()=>r(s,!0),e);return He.createElement(wp,null,He.createElement(_f,{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($f,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&He.createElement(Mf,{size:"xsmall",type:a.alert.type,prefix:He.createElement(vp,null,He.createElement(Df,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(fi,"NoResult");import{i18n as ho}from"@lingui/core";import{Button as Of,Divider as Lp,MessageBox as Uf,Modal as qf,Typography as zf,WarningIcon as Gf}from"@rango-dev/ui";import ot from"react";import{Typography as Bp}from"@rango-dev/ui";import hi from"react";import{darkTheme as Ff,styled as $n}from"@rango-dev/ui";var Ip=$n("div",{width:"100%",paddingTop:"$10"}),gi=$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",[`.${Ff} &`]:{$$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 hi.createElement(Ep,null,hi.createElement(Bp,{size:"medium",variant:"label",className:"_title"},e),hi.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(qf,{open:e,onClose:o,container:O()},ot.createElement(Uf,{type:s,title:Q().highValueLossError.impactTitle,description:Q().highValueLossError.description}),ot.createElement(gi,null,ot.createElement(Lp,{size:20}),ot.createElement(zf,{size:"small",variant:"title"},ho.t("Details")),ot.createElement(gi,null,a.map((l,p)=>ot.createElement(Np,{key:p,...l})))),ot.createElement(Lp,{size:32}),ot.createElement(Of,{type:"primary",size:"large",prefix:ot.createElement(Gf,null),fullWidth:!0,onClick:n},Q().highValueLossError.confirmMessage))}i(Pp,"HighValueLossWarningModal");import{i18n as yi}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=yi.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=yi.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=yi.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 Hf,Modal as Qf,Typography as Vf}from"@rango-dev/ui";import Lt from"react";import{useNavigate as jf}from"react-router-dom";function Dp(t){let{customSlippage:e,slippage:o}=f(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=jf(),p=e??o;return Lt.createElement(Qf,{anchor:"bottom",open:n,prefix:Lt.createElement(Mp,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},Lt.createElement(Vf,{variant:"label",size:"medium",color:"$neutral900"},Vt.t("Change settings"))),container:O(),onClose:r},Lt.createElement(Hf,{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 Xf,Divider as Kf,MessageBox as Yf,Modal as Jf,WarningIcon as Zf}from"@rango-dev/ui";import yo from"react";function Fp(t){let{open:e,onClose:o,onConfirm:n}=t;return yo.createElement(Jf,{open:e,onClose:o,container:O()},yo.createElement(Yf,{type:"warning",title:Q().unknownPriceError.impactTitle,description:Q().unknownPriceError.description}),yo.createElement(Kf,{size:32}),yo.createElement(Xf,{type:"primary",size:"large",prefix:yo.createElement(Zf,null),fullWidth:!0,onClick:n},Q().unknownPriceError.confirmMessage))}i(Fp,"UnknownPriceWarningModal");function Si(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(fi,{error:o,fetch:n}),!!c&&Be.createElement(Ip,null,Be.createElement(eg,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Be.createElement(Wp,{onClick:s},Be.createElement(og,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Be.createElement(tg,{size:"xxsmall",type:c.alertType,onClick:p},Rf.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(Si,"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:d="bottom"}=t,{inputAmount:T,inputUsdValue:S,outputUsdValue:h,outputAmount:A}=U(),x=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,b=(s||r)&&_e.createElement(Si,{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(ti,null,_e.createElement($l,{paddingTop:d==="top"},_e.createElement(mi,{type:o,expanded:g}))),d==="top"&&_e.createElement(Pl,null,b),x?_e.createElement(ti,null,_e.createElement(pi,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:T,usdValue:S?.toString()??""},output:{value:A?.toString()??"",usdValue:h?.toString()??""}})):null,d==="bottom"&&_e.createElement(_e.Fragment,null,!s&&!r&&_e.createElement(ng,{size:16}),b))}i(So,"QuoteInfo");import{calculatePendingSwap as sg}from"@rango-dev/queue-manager-rango-preset";import{useEffect as ag}from"react";import{useRef as rg,useState as ig}from"react";function Mn(){let[t,e]=ig(!1),o=rg(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=xa(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&&(da(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=fa(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 Ci(){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}=f(),{connectedWallets:d}=z(),T=f().blockchains(),S=f().tokens(),{features:h}=f().config,{enableNewLiquiditySources:A}=f().config,w=p||l,{fetch:x,cancelFetch:b,loading:C}=Mn();return ag(()=>b,[]),{loading:C,fetch:i(async I=>{let y=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:d,selectedWallets:y,excludeLiquiditySources:A,disabledLiquiditySources:g,slippage:w,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:$});Fo("experimentalRoute",h)&&(N.experimental=!0);let L;try{L=await x(N).then(G=>_n(G)),n(L)}catch(G){return Dn(G)}let k={slippage:w.toString(),disabledSwappersGroups:g},M=sg(o.toString(),L,ca(y),k,!1,{blockchains:T,tokens:S}),E=Op(r??void 0,L,{fromToken:t,toToken:e,meta:{blockchains:T,tokens:S},selectedWallets:y,userSlippage:w});return E.quoteUpdate&&a(!1),{quote:L,swap:M,error:null,warnings:E}},"fetch"),cancelFetch:b}}i(Ci,"useConfirmSwap");var Cg=Gp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),kg=Gp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${zp}`]:{width:"$48",height:"$48"}}),Tg=ki({flexGrow:1,paddingRight:"$10"}),wg=ki({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),xg=ki({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=Sg(),[p,u]=On(""),{connectedWallets:m}=z(),c=!n,[g,d]=On(!1),T=Ae.use.setSelectedSwap(),S=f().disabledLiquiditySources,h=hg(S),{manager:A}=lg(),{fetch:w,loading:x,cancelFetch:b}=Ci(),[C,v]=On({swap:null,error:null,warnings:null}),[I,y]=On(!1),$=i(async({selectedWallets:E,customDestination:G})=>{let J=await w?.({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}),T(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?y(!0):await L()},"onStartConfirmSwap"),M=i(async()=>{v({error:null,swap:null,warnings:null}),w({selectedWallets:o,customDestination:s}).then(E=>{v(E)}).catch(E=>console.error(E))},"onRefresh");return Co(()=>{!!h.current.length&&!S.length&&M(),h.current=S},[S.length]),Co(()=>{c&&b()},[c]),Co(()=>{c&&d(c)},[c]),Co(()=>{c||w({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(()=>yg(d.bind(null,!0))),r(!1))},[C.warnings?.quote,o.length,m.length]),gg(()=>{t||l("../")},[]),ee.createElement(X,{header:{title:Fn.t("Confirm Swap"),onWallet:()=>{let E=`../${_.wallets}`;l(E)},suffix:ee.createElement(mg,{container:O(),side:"bottom",content:Fn.t("Settings")},ee.createElement(Ue,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},ee.createElement(cg,{size:18,color:"black"})))},footer:ee.createElement(kg,null,ee.createElement("div",{className:Tg()},ee.createElement(qp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:x,disabled:!!C.error,onClick:k},Fn.t("Start Swap"))),ee.createElement(zp,{variant:"contained",type:"primary",size:"large",loading:x,onClick:d.bind(null,!0)},ee.createElement(fg,{size:24})))},g&&ee.createElement(Ll,{open:g,onClose:()=>d(!1),onCancel:b,loading:x,onCheckBalance:$}),ee.createElement(Cg,null,ee.createElement("div",{className:xg()},ee.createElement(dg,{variant:"title",size:"small"},Fn.t("You get")),ee.createElement(qp,{style:{padding:"0"},variant:"ghost",disabled:x,onClick:M},ee.createElement("div",{className:wg()},ee.createElement(ug,{size:16})))),p&&ee.createElement(ee.Fragment,null,ee.createElement(Up,{type:"error",variant:"alarm",title:p}),ee.createElement(pg,{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:x,warning:C.warnings?.quote??null,refetchQuote:M,showWarningModal:I,onOpenWarningModal:()=>y(!0),onCloseWarningModal:()=>y(!1),onConfirmWarningModal:async()=>{y(!1),await N()},onChangeSettings:()=>l("../"+_.settings)})))}i(Hp,"ConfirmSwapPage");import{i18n as zn}from"@lingui/core";import{useManager as Ng}from"@rango-dev/queue-manager-react";import{Divider as Lg,NotFound as Pg,styled as Rp}from"@rango-dev/ui";import Tt,{useState as $g}from"react";import{useNavigate as Mg}from"react-router-dom";import{CloseIcon as Ag,IconButton as bg,SearchIcon as Ig,TextField as Eg}from"@rango-dev/ui";import ko from"react";import{styled as vg}from"@rango-dev/ui";var Qp=vg("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(Eg,{prefix:ko.createElement(Qp,null,ko.createElement(Ig,{color:"black"})),suffix:!!a.length&&ko.createElement(bg,{variant:"ghost",onClick:()=>l?.(""),size:"small"},ko.createElement(Ag,{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 Wg,darkTheme as Bg,styled as Un}from"@rango-dev/ui";var qn=Wg(),Ti=Un("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${qn}`]:{$$color:"$colors$neutral600",[`.${Bg} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),wi=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),xi=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),Vp=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function vi(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(Ti,null,Z.createElement(wi,null,Z.createElement(Yp,{variant:"label",size:"medium",className:qn()},jp.t(p.title))),Z.createElement(Xp,{size:4}),Z.createElement(xi,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(Ti,null,Z.createElement(wi,null,Z.createElement(Yp,{variant:"label",size:"medium",className:qn()},jp.t(a.title))),Z.createElement(Xp,{size:4}),Z.createElement(xi,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(vi,"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 _g=Rp("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Dg=Rp("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Fg=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=Mg(),{manager:o,state:n}=Ng(),r=jt(o).map(({swap:c})=>c),[s,a]=$g(""),l=!n.loadedFromPersistor,p=i(c=>{let g=c.target.value;a(g)},"searchHandler"),u=r;s&&(u=r.filter(c=>Ke(c.inputAmount,s)||Ke(c.status,s)||Fg(c.steps,s)||Ke(c.requestId,s)));let m=!u?.length&&!l;return Tt.createElement(X,{header:{title:zn.t("History")}},Tt.createElement(_g,null,Tt.createElement(ut,{setValue:a,fullWidth:!0,variant:"contained",placeholder:zn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),Tt.createElement(Dg,null,m&&Tt.createElement(Vp,null,Tt.createElement(Lg,{size:32}),Tt.createElement(Pg,{title:zn.t("No results found"),description:s?zn.t("Try using different keywords"):""})),!m&&Tt.createElement(vi,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:Zp,isLoading:l}))))}i(eu,"HistoryPage");import{i18n as Ii}from"@lingui/core";import{Button as Qg,styled as Ei,SwapInput as ru,WarningIcon as Vg}from"@rango-dev/ui";import De,{useEffect as jg,useRef as Xg,useState as Kg}from"react";import{useNavigate as Yg}from"react-router-dom";import{ReverseIcon as Og,styled as tu}from"@rango-dev/ui";import Ai from"react";var Ug=tu("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),qg=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 Ai.createElement(Ug,null,Ai.createElement(qg,{onClick:()=>{t()}},Ai.createElement(Og,{size:12})))}i(ou,"SwitchFromAndToButton");import{useCallback as zg,useEffect as Gg,useState as bi}from"react";var Hg=600;function nu(){let{fetch:t,cancelFetch:e}=Mn(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=f().config,s=f().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,resetQuote:m,setQuote:c}=U(),{slippage:g,customSlippage:d,affiliatePercent:T,affiliateRef:S,affiliateWallets:h,disabledLiquiditySources:A}=f(),[w,x]=bi(!1),[b,C]=bi(null),[v,I]=bi(null),y=d??g,N=!a||!l||Pe(a,l)||!no(p),L=i(E=>{x(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(w||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=>{x(!1),c(Xe),_n(Xe);let D=on(Xe,{fromToken:G,toToken:J,userSlippage:y,tokens:s});I(D)}).catch(Xe=>{let{error:D}=Dn(Xe);(D?.type===0||D?.type===1)&&m(),D?.type!==2&&(C(D),x(!1))})}},"fetch"),M=zg(Ns(E=>{N||k(E)},Hg),[N]);return Gg(()=>{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:y,affiliateRef:S,affiliatePercent:T,affiliateWallets:h}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,N,o?.length,n,A.length,y,S,T,JSON.stringify(h)]),{fetch:()=>k({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:A,slippage:y,affiliateRef:S,affiliatePercent:T,affiliateWallets:h}),loading:w,error:b,warning:v}}i(nu,"useSwapInput");var Jg=Ei("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),Zg=Ei("div",{position:"relative"}),Rg=Ei("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function iu(){let t=Yg(),{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:d,quote:T,resetQuoteWallets:S,setQuoteWarningsConfirmed:h}=U(),A=f().fetchStatus,{connectedWallets:w,getBalanceFor:x}=z(),b=Ae.use.setCurrentPage(),[C,v]=Kg(!1),I=Xg(null),y=!!a&&Vs(w,a.name),$=!1,N=!Ir(T,m,c),L=!Ir(T,m,d),k=la({fetchMetaStatus:A,fetchingQuote:o,inputAmount:m,quote:T,anyWalletConnected:w.length>0,error:n,warning:r,needsToWarnEthOnPath:$}),M=s?x(s):null,E=Vo(M)?.amount??"0",G=a&&s?W(M?.amount,M?.decimals):"0";jg(()=>(b(_.home),S(),b.bind(null,"")),[]);let J=!c||!d||!d.gt(0)?null:$e(c.toString(),d.toString());return De.createElement(X,{ref:I,fixedHeight:!1,hasLogo:!0,footer:De.createElement(Qg,{type:"primary",size:"large",disabled:k.disabled,prefix:k.action==="confirm-warning"&&De.createElement(Vg,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:Ii.t("Swap"),suffix:De.createElement(Vr,{layoutRef:I.current,onClickRefresh:T||n?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},De.createElement(Jg,null,De.createElement(Rg,null,De.createElement(Zg,null,De.createElement(ru,{label:Ii.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:y,tooltipContainer:O(),onSelectMaxBalance:()=>{E!=="0"&&u(G.split(",").join(""))}}),De.createElement(ou,null)),De.createElement(ru,{sharpBottomStyle:!!T?.result||o,label:Ii.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:W($e(c,d),2,2),warningLevel:at(J??0),price:{value:W(g,6,6),usdValue:L?void 0:W(d,4,4),realValue:se(g),realUsdValue:L?void 0:se(d),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:T,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:C,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),h(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(iu,"Home");import{i18n as su}from"@lingui/core";import{List as eh,ListItemButton as th,Radio as oh,RadioRoot as nh,Typography as rh}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"}),Wi=Gn("div",{width:80,display:"flex",justifyContent:"flex-end"}),Bi=Gn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Hn(){let{setLanguage:t,language:e}=f();return{activeLanguage:e,languages:Xs,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(rh,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:wt.createElement(oh,{value:s}),start:wt.createElement(l,null)}});return wt.createElement(X,{header:{title:su.t("Language")}},wt.createElement(ct,null,wt.createElement(nh,{value:t},wt.createElement(eh,{type:wt.createElement(th,{title:su.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(au,"LanguagePage");import{i18n as Xt}from"@lingui/core";import{Button as ph,Checkbox as uh,Image as ch,ListItemButton as mh,NotFound as dh,Typography as fh}from"@rango-dev/ui";import ke,{useState as gh}from"react";import{Checkbox as ah,Skeleton as pu}from"@rango-dev/ui";import wo from"react";import{ListItem as ih,styled as sh}from"@rango-dev/ui";var lu=sh(ih,{height:61});var lh=30;function Ni(){return wo.createElement(To,null,Array.from(Array(lh),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(ah,{checked:!1})})))}i(Ni,"LoadingLiquiditySourceList");function Li({sourceType:t}){let e=f().fetchStatus,o=f().swappers(),n=f().disabledLiquiditySources,[r,s]=gh(""),a=f().toggleLiquiditySource,l=Do(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let u=l.filter(S=>p.includes(S.type)),m=u.length===u.filter(S=>S.selected).length,c=i(()=>{u.forEach(S=>{m?a(S.groupTitle):S.selected||a(S.groupTitle)})},"toggleAllSources"),g=u.map(S=>{let{selected:h,groupTitle:A,logo:w}=S;return{start:ke.createElement(ch,{src:w,size:22,type:"circular"}),onClick:()=>a(A),end:ke.createElement(uh,{checked:h}),title:ke.createElement(fh,{variant:"title",size:"xmedium"},Xt.t(A)),...S}}),d=i(S=>{let h=S.target.value;s(h)},"searchHandler"),T=g;return r&&(T=g.filter(S=>Ke(S.groupTitle,r))),ke.createElement(X,{header:{title:Xt.t(t),suffix:ke.createElement(Wi,null,ke.createElement(ph,{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:d}),e==="loading"&&ke.createElement(Ni,null),!T.length&&r?ke.createElement(Bi,null,ke.createElement(dh,{title:Xt.t("No results found"),description:Xt.t("Try using different keywords")})):e==="success"&&ke.createElement(To,null,T.map(S=>ke.createElement(ke.Fragment,{key:S.id},ke.createElement(mh,{style:{height:"61px"},...S,selected:!1,hasDivider:!0}))))))}i(Li,"LiquiditySourcePage");import{i18n as yu}from"@lingui/core";import{Divider as _i,getCountCategories as Ah,SelectableCategoryList as bh}from"@rango-dev/ui";import mt,{useState as Su}from"react";import{i18n as $i}from"@lingui/core";import{Divider as gu,Image as kh,ListItemButton as Th,NotFound as wh,Typography as hu}from"@rango-dev/ui";import Fe,{useEffect as xh,useState as vh}from"react";import{BlockchainCategories as Pi}from"@rango-dev/ui";import{TransactionType as Qn}from"rango-sdk";var hh=i((t,e)=>{switch(e){case Pi.ALL:return!0;case Pi.UTXO:return t.type===Qn.TRANSFER;case Pi.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=>hh(n,o)).filter(n=>At(n.name,e)||At(n.displayName,e)),"filterBlockchains");import{ImageContainer as yh,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",[`& ${yh}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Sh,Skeleton as du}from"@rango-dev/ui";import jn from"react";var Ch=20;function fu(){return jn.createElement(Vn,null,Array.from(Array(Ch),t=>jn.createElement(Sh,{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 Mi(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=vh(e),{fetchStatus:l}=f();xh(()=>{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(wh,{title:$i.t("No results found"),description:$i.t("Try using different keywords")})):Fe.createElement(Vn,{key:`${r}-${o}`},s.map(u=>Fe.createElement(Th,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Fe.createElement(kh,{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"},$i.t("Select Blockchain")),Fe.createElement(gu,{size:4}),l==="loading"&&Fe.createElement(fu,null),l==="success"&&p())}i(Mi,"BlockchainList");function Di(t){let{type:e}=t,o=St(),[n,r]=Su(""),[s,a]=Su("ALL"),l=U.use.setToBlockchain(),p=U.use.setFromBlockchain(),u=f().fetchStatus,m=f().blockchains({type:e}),g=Ah(m)!==1;return mt.createElement(X,{header:{title:yu.t("Select Blockchain")}},mt.createElement(_i,{size:12}),g&&mt.createElement(mt.Fragment,null,mt.createElement(bh,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),mt.createElement(_i,{size:24})),mt.createElement(ut,{value:n,autoFocus:!0,placeholder:yu.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),mt.createElement(_i,{size:16}),mt.createElement(Mi,{list:m,searchedFor:n,blockchainCategory:s,onChange:d=>{e==="source"?p(d):l(d),o()}}))}i(Di,"SelectBlockchainPage");import{i18n as Fu}from"@lingui/core";import{Divider as Ou}from"@rango-dev/ui";import Jt,{useState as Hh}from"react";import{useNavigate as Qh}from"react-router-dom";import{i18n as Ui}from"@lingui/core";import{BlockchainsChip as Xn,Divider as wu,Image as xu,Skeleton as Nh,Tooltip as Lh,Typography as qi}from"@rango-dev/ui";import le from"react";import{useEffect as Wh}from"react";var Cu=["ETH","COSMOS","OSMOSIS"];function Fi(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Ih),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(Eh(a)),r=n.splice(s)}return{list:n,more:r}}i(Fi,"prepare");function Ih(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(Ih,"sortByMostUsedBlockchains");function Eh(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(Eh,"generateSortByPreferredBlockchainsFor");function ku(t,e){return!!e.list.find(o=>o.name===t)}i(ku,"isInVisibleList");function Oi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=f();Wh(()=>{if(e?.selected){let s=Fi(t,o,e);ku(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Fi(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Oi,"usePrepareBlockchainList");import{styled as Bh}from"@rango-dev/ui";var Tu=Bh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Ph=12;function zi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=Oi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=f(),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(qi,{variant:"label",size:"large"},Ui.t("Select Blockchain")),le.createElement(wu,{size:12}),le.createElement(Tu,null,l==="loading"&&Array.from(Array(Ph),d=>le.createElement(Nh,{key:d,variant:"rounded",height:50})),l==="success"&&le.createElement(le.Fragment,null,le.createElement(Xn,{selected:!n,onClick:()=>{o==="from"?u():p()}},le.createElement(qi,{variant:"body",size:"xsmall",color:"secondary500"},Ui.t("All"))),a.list.map(d=>le.createElement(Lh,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:O()},le.createElement(Xn,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},le.createElement(xu,{src:d.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(qi,{variant:"body",size:"xsmall",color:"secondary500"},Ui._("More +{count}",{count:a.more.length}))):null)))}i(zi,"BlockchainsSection");import{i18n as Zi}from"@lingui/core";import{darkTheme as Pu,Divider as Yt,ExternalLinkIcon as _h,Image as Dh,ListItemButton as Fh,NotFound as Oh,PinIcon as Uh,Skeleton as $u,Typography as Jn,VirtualizedList as qh}from"@rango-dev/ui";import F,{forwardRef as zh,useEffect as Mu,useState as _u}from"react";import{Divider as Nu,ListItem as Mh,Skeleton as xo}from"@rango-dev/ui";import Ve from"react";import{css as Kt,darkTheme as vu,ImageContainer as $h,styled as Qe,Typography as Au}from"@rango-dev/ui";var Gi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Hi=Kt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Qi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Vi=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"}}),ji=Kt({}),Xi=Kt(),bu=Qe("div",{display:"flex",flexDirection:"column",flexGrow:1}),Ki=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":{[`& .${Hi}`]:{[`& .${Vi}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ji}`]:{bottom:"-15px"},[`& .${Gi}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Qi}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Yi=Qe("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ji=Qe(Au,{}),Iu=Qe("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Xi}`]:{$$color:"$colors$neutral600",[`.${vu} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yn=Qe("div",{display:"flex",alignItems:"end",flexDirection:"column"}),fN=Qe("div",{display:"flex",alignItems:"center"}),Eu=Qe("div",{position:"relative",[`& ${$h}`]:{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(Mh,{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 Ri=20,Gh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return F.createElement("div",{className:Hi()},o?F.createElement("div",{className:Gi()},o):F.createElement(Ki,{className:Qi()},F.createElement(Jn,{variant:"title",size:"xmedium"},r.symbol),F.createElement(Yt,{direction:"horizontal",size:4}),F.createElement(Yi,{css:s},F.createElement(Ji,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&F.createElement("div",{className:`${Vi()} ${!o&&ji()}`},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(_h,{color:"gray",size:12}))))},"renderDesc");function Du(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=_u(e),l=f().fetchStatus,p=f().blockchains(),[u,m]=_u(!0),{getBalanceFor:c,loading:g}=z(),{isTokenPinned:d}=f(),T=zh((A,w)=>F.createElement("div",{...A,ref:w,style:{...A.style,height:`${parseFloat(A.style?.height)+8*2}px`}})),S=i(()=>{a(e.slice(0,s.length+Ri))},"loadNextPage");Mu(()=>{m(e.length>s.length)},[s.length]),Mu(()=>{a(e.slice(0,Ri))},[e]);let h=i(()=>!s.length&&o?F.createElement(F.Fragment,null,F.createElement(Yt,{size:32}),F.createElement(Oh,{title:Zi.t("No results found"),description:Zi.t("Try using different keywords")})):F.createElement(qh,{Item:({index:A,style:w})=>{let x=s[A],b=Vo(c(x)),C=x.address||"",v=p.find(N=>N.name===x.blockchain),I=yn(x.symbol,v?.color||""),y={$$color:I[`${x.symbol}100`],[`.${Pu} &`]:{$$color:I[`${x.symbol}900`]},backgroundColor:"$$color"},$={$$color:I[`${x.symbol}700`],[`.${Pu} &`]:{$$color:I[`${x.symbol}100`]},color:"$$color"};return F.createElement("div",{style:{...w,paddingRight:5}},F.createElement(Fh,{style:{height:w?.height,width:"100%",overflow:"hidden"},"tab-index":A,key:`${x.symbol}${x.address}`,id:`${x.symbol}${x.address}`,hasDivider:!0,onClick:()=>n(s[A]),start:F.createElement(Eu,null,F.createElement(Dh,{src:x.image,size:30}),d(x,t.type)&&F.createElement(Wu,null,F.createElement(Uh,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||x.name||!x.name&&!C?F.createElement(Ki,null,F.createElement(Jn,{variant:"title",size:"xmedium"},x.symbol),F.createElement(Yt,{direction:"horizontal",size:4}),F.createElement(Yi,{css:y},F.createElement(Ji,{variant:"body",size:"xsmall",css:$},x.blockchain))):void 0,description:v?.info&&C&&v.type!=="COSMOS"?Gh({address:C,token:s[A],customCssForTag:y,customCssForTagTitle:$,name:x.name,url:v.info.addressUrl.split("{wallet}").join(C)}):x.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:Xi(),size:"xsmall"},`$${b.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:S,innerElementType:T,size:60,key:`${r}-${o}`}),"renderList");return F.createElement(bu,null,F.createElement(Jn,{variant:"label",size:"large"},Zi.t("Select Token")),F.createElement(Yt,{size:4}),l==="loading"&&F.createElement(Lu,{size:Ri}),l==="success"&&F.createElement(Kn,null,h()))}i(Du,"TokenList");function es(t){let{type:e}=t,o=Qh(),n=St(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=z.use.getBalanceFor(),[c,g]=Hh(""),{isTokenPinned:d}=f(),S=(e==="source"?r:s)?.name??"",h=f().blockchains({type:e}),A=f().tokens({type:e,blockchain:S,searchFor:c}),x=Gs(A,m,i(v=>d(v,e),"checkIsTokenPinned")),b=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),C=i(v=>{e==="source"?a({token:v,meta:{blockchains:h,tokens:A}}):l({token:v,meta:{blockchains:h,tokens:A}})},"updateToken");return Jt.createElement(X,{header:{title:Fu.t("Swap {type}",{type:e})}},Jt.createElement(zi,{blockchains:h,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:x,selectedBlockchain:S,searchedFor:c,type:e,onChange:v=>{C(v);let I=h.find(y=>v.blockchain===y.name);I&&b(I),n()}}))}i(es,"SelectSwapItemsPage");import{i18n as Pt}from"@lingui/core";import{ChevronRightIcon as ns,Divider as rs,InfoIcon as Rh,List as ey,ListItemButton as ty,Skeleton as oy,Switch as ny,Tooltip as ry,Typography as $t}from"@rango-dev/ui";import V from"react";import{useNavigate as iy}from"react-router-dom";import{i18n as Qu}from"@lingui/core";import{Divider as Kh,InfoIcon as Yh,TextField as Jh,Tooltip as Zh,Typography as Vu}from"@rango-dev/ui";import Ne from"react";import{Chip as Vh,styled as vo,TextField as jh}from"@rango-dev/ui";var Uu=vo("div",{paddingTop:"$5",padding:"$10 $5"}),qu=vo("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${jh}`]:{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(Vh,{width:"61px",flexShrink:0});import{i18n as ts}from"@lingui/core";import{Typography as Xh}from"@rango-dev/ui";import Ao from"react";function Hu(){return Ao.createElement(Zn,null,Ao.createElement(Xh,{variant:"label",size:"medium",color:"neutral700"},ts.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,ts.t("Warning")),":",ts.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 os(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=f();return Ne.createElement(Uu,null,Ne.createElement(zu,null,Ne.createElement(Vu,{variant:"title",size:"xmedium"},Qu.t("Slippage tolerance per swap")),Ne.createElement(Kh,{direction:"horizontal",size:4}),Ne.createElement(Zh,{container:O(),side:"top",sideOffset:4,content:Ne.createElement(Hu,null)},Ne.createElement(Yh,{color:"gray"}))),Ne.createElement(qu,null,Ks.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(Jh,{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>=Rs&&s<=Zs)&&n(s)},suffix:o&&Ne.createElement(Vu,{variant:"body",size:"small"},"%"),placeholder:Qu.t("Custom")})))}i(os,"Slippage");function ju(){let t=iy(),{theme:e}=f().config,o=f().fetchStatus,n=f().swappers(),r=f().disabledLiquiditySources,{config:{features:s}}=f(),a=Le("theme",s),l=Le("liquiditySource",s),p=Le("language",s),u=f().infiniteApprove,m=f().toggleInfiniteApprove,c=Do(n,r),g=c.filter(y=>y.type==="BRIDGE"||y.type==="AGGREGATOR"),d=g.length,T=g.filter(y=>y.selected).length,S=c.filter(y=>y.type==="DEX"),h=S.length,A=S.filter(y=>y.selected).length,w=i((y,$)=>{switch(o){case"loading":return V.createElement(oy,{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"},`${y} / ${$}`)}},"handleEndItem"),x={id:"bridge-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled bridges")),end:V.createElement(V.Fragment,null,w(T,d),V.createElement(rs,{direction:"horizontal",size:8}),V.createElement(ns,{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,w(A,h),V.createElement(rs,{direction:"horizontal",size:8}),V.createElement(ns,{color:"gray"})),onClick:()=>t(_.exchanges)},C={id:"theme-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Theme")),end:V.createElement(ns,{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(rs,{direction:"horizontal",size:4}),V.createElement(ry,{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(Rh,{color:"gray"}))),end:V.createElement(ny,{checked:u}),onClick:m},I=l?[]:[x,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(os,null),V.createElement(ey,{type:V.createElement(ty,{title:"_",id:"_",onClick:()=>console.log()}),items:I})))}i(ju,"SettingsPage");import{cancelSwap as Xy}from"@rango-dev/queue-manager-rango-preset";import{useManager as Ky}from"@rango-dev/queue-manager-react";import bc from"react";import{i18n as dt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Wy,getCurrentStep as By,getRelatedWalletOrNull as Ny}from"@rango-dev/queue-manager-rango-preset";import{Button as Sc,CopyIcon as Ly,Divider as Py,IconButton as $y,QuoteCost as My,StepDetails as _y,Typography as eo,useCopyToClipboard as Dy}from"@rango-dev/ui";import{useWallets as Fy}from"@rango-dev/wallets-react";import Cc from"bignumber.js";import{PendingSwapNetworkStatus as ur}from"rango-types";import K,{useEffect as kc,useRef as Oy,useState as Tc}from"react";import{useNavigate as Uy}from"react-router-dom";import{i18n as xt}from"@lingui/core";var sy=[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"):`${sy[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 dy}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 is,MessageBox as ay,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(is,{size:20}),nt.createElement(ay,{type:"error",title:Rn.t("Cancel Swap"),description:Rn.t("Are you sure you want to cancel this swap?")}),nt.createElement(is,{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(is,{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 ss,MessageBox as ly,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(ss,{size:20}),rt.createElement(ly,{type:"error",title:er.t("Delete Transaction"),description:er.t("Are you sure you want to delete this swap?")}),rt.createElement(ss,{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(ss,{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 as}from"@lingui/core";import{PendingSwapNetworkStatus as ls}from"rango-types";var ps={[ls.WaitingForNetworkChange]:{type:"loading",title:as.t("Change Network")},[ls.WaitingForConnectingWallet]:{type:"warning",title:as.t("Connect Wallet")},[ls.NetworkChanged]:{type:"success",title:as.t("Network Changed")}};import{MessageBox as uy,Wallet as cy}from"@rango-dev/ui";import{useWallets as my}from"@rango-dev/wallets-react";import bo from"react";import{styled as py}from"@rango-dev/ui";var oc=py("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}=my(),u=n?.walletType,m=u?kr(p(u)):null,c=u?l(u):null;return bo.createElement(bo.Fragment,null,bo.createElement(uy,{type:e,title:o,description:r}),s&&!!u&&!!m&&!!c&&bo.createElement(oc,null,bo.createElement(cy,{container:O(),title:c.name,image:c.img,type:u,state:m,link:c.installLink,onClick:async()=>a(u)})))},"WalletStateContent");function us(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(dy,{open:!!e,onClose:o,container:document.getElementById(Te)||document.body},l&&or.createElement(nc,{type:ps[e].type,title:ps[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(us,"SwapDetailsModal");import{i18n as Io}from"@lingui/core";import{Button as cs,Divider as nr,MessageBox as rc,Modal as fy,TokenAmount as gy,Typography as rr}from"@rango-dev/ui";import me from"react";import{useNavigate as hy}from"react-router-dom";function ms(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,d=hy();return me.createElement(fy,{open:e,onClose:o,container:document.getElementById(Te)||document.body},n==="success"?me.createElement(rc,{type:"success",title:Io.t("Swap Successful")},me.createElement(gy,{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(cs,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},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(cs,{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(cs,{variant:"outlined",type:"primary",size:"large",onClick:o},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Io.t("See Details"))))}i(ms,"SwapDetailsCompleteModal");import Iy from"react";import{i18n as xy}from"@lingui/core";import{Alert as uc,IconButton as vy,LinkIcon as Ay}from"@rango-dev/ui";import vt,{Fragment as by}from"react";import{Alert as yy,ChevronDownIcon as Sy,ChevronUpIcon as Cy,IconButton as ky}from"@rango-dev/ui";import ir,{useState as Ty}from"react";function ic(t){let{message:e}=t,[o,n]=Ty(!1);return ir.createElement(yy,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&ir.createElement(ky,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?ir.createElement(Cy,{size:12,color:"gray"}):ir.createElement(Sy,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(ic,"FailedAlert");import{styled as wy}from"@rango-dev/ui";var sc=wy("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as ac}from"@lingui/core";import{Alert as ds,Button as lc}from"@rango-dev/ui";import{PendingSwapNetworkStatus as fs}from"rango-types";import Eo from"react";function pc(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Eo.createElement(ds,{type:"warning",title:n.shortMessage,action:Eo.createElement(lc,{size:"xxsmall",type:"warning",onClick:()=>{o(fs.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},ac.t("Change"))}):r===fs.WaitingForConnectingWallet?Eo.createElement(ds,{type:"warning",title:n.shortMessage,action:Eo.createElement(lc,{size:"xxsmall",type:"warning",onClick:()=>{o(fs.WaitingForConnectingWallet)}},ac.t("Connect"))}):Eo.createElement(ds,{type:"warning",title:n.shortMessage})}i(pc,"WarningAlert");function gs(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 d=c+m.url,T=c===g.length-1,S=T&&u||p,h=T&&s.status==="failed";return vt.createElement(by,{key:d},vt.createElement(uc,{type:S&&"loading"||h&&"error"||"success",title:m.description?`${m.description} Tx`:xy.t("View transaction"),action:m.url&&vt.createElement(vy,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},vt.createElement(Ay,{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(gs,"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:Iy.createElement(gs,{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 Ey,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"}),RP=Zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),gc=Zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),e$=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",[`.${Ey} &`]:{$$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 hs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Fy(),p=f().blockchains(),u=f().tokens(),m=U.use.retry(),c=Uy(),[g,d]=Dy(cc),T=Oy(null),[S,h]=Tc(null),[A,w]=Tc(null),x=i(()=>{r(),h(null)},"onCancel"),b=Me.use.getUnreadNotifications(),C=Me.use.setAsRead(),v=b(),I=By(e),y=I?.networkStatus;kc(()=>{v.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(w(e.status),C(e.requestId))},[e.status]),kc(()=>{G?h(ur.WaitingForNetworkChange):y===ur.WaitingForConnectingWallet||y===ur.NetworkChanged?h(y):h(null)},[y]);let $=ya(e),N=I?Wy(e,I):null,L=I?Ny(e,I):null,k=Ku(e),M=Sa(e),E=i(ue=>!!l(ue)?.mobileWallet,"isMobileWallet"),G=y===ur.WaitingForNetworkChange&&!!N&&!!L?.walletType&&(E(L.walletType)||s(L.walletType,N)),J=G?a.bind(null,L.walletType,N):void 0,te=ha(e,I),H=mc({swap:e,switchNetwork:J,showNetworkModal:y,setNetworkModal:h,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"?()=>h("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Gt,null,K.createElement(Sc,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>h("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($y,{variant:"ghost",onClick:d.bind(null,o||"")},K.createElement(Ly,{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(My,{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(Py,{size:8}),K.createElement(fc,{ref:T},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(_y,{key:$o,step:ue,type:"swap-progress",ref:T,state:st,hasSeparator:de!==0,tabIndex:$o,isFocused:Gc,tooltipContainer:O()})}))),K.createElement(us,{state:S,onClose:()=>h(null),onCancel:x,onDelete:n,message:te.detailedMessage.content,currentStepWallet:L}),K.createElement(ms,{open:!!A,diagnosisUrl:oo,onClose:()=>w(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(hs,"SwapDetails");import{i18n as Bo}from"@lingui/core";import{CopyIcon as Qy,IconButton as Vy,NotFound as jy,Skeleton as vc,Typography as mr}from"@rango-dev/ui";import pe from"react";import{i18n as qy}from"@lingui/core";import{Divider as zy,Skeleton as Gy,Typography as Hy}from"@rango-dev/ui";import ie from"react";import{css as je,styled as ys}from"@rango-dev/ui";var wc=ys("div",{width:"100%",height:"100%",padding:"$10 $20"}),Wo=ys("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),cr=ys("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),N$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),L$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),P$=je({paddingTop:"$15",display:"flex"}),$$=je({padding:"$15 $0"}),M$=je({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),_$=je({paddingBottom:"$10"}),D$=je({display:"flex",justifyContent:"start",alignItems:"center"}),F$=je({paddingTop:"$5",display:"flex",alignItems:"center"}),O$=je({display:"flex",alignItems:"center"}),U$=je({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),xc=je({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Ss(){return ie.createElement(wc,null,ie.createElement(fo,{type:"swap-preview"}),ie.createElement("div",{className:"swaps-steps"},ie.createElement(Hy,{variant:"title",size:"small"},qy.t("Swaps steps"))),ie.createElement(ie.Fragment,null,ie.createElement(Wo,null,ie.createElement(tt,{separator:!1}),ie.createElement("div",{className:xc()},ie.createElement(zy,{direction:"horizontal",size:20}),ie.createElement(Gy,{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(Ss,"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(Vy,{variant:"ghost"},pe.createElement(Qy,{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(Ss,null)),!o&&pe.createElement(gc,null,pe.createElement(jy,{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}=Ky(),o=!e.loadedFromPersistor,n=jt(t),r=Ae.use.selectedSwapRequestId(),s=St(),{fetchStatus:a}=f(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Xy(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(hs,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Ic,"SwapDetailsPage");import{i18n as No}from"@lingui/core";import{AutoThemeIcon as Yy,DarkModeIcon as Jy,LightModeIcon as Zy,List as Ry,ListItemButton as eS,Radio as Cs,RadioRoot as tS,Typography as ks}from"@rango-dev/ui";import be from"react";function Ec(){let{setTheme:t,theme:e}=f(),o=[{id:"light",value:"light",title:be.createElement(ks,{variant:"title",size:"xmedium"},No.t("Light")),onClick:()=>t("light"),start:be.createElement(Zy,{color:"gray"}),end:be.createElement(Cs,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(ks,{variant:"title",size:"xmedium"},No.t("Dark")),onClick:()=>t("dark"),start:be.createElement(Jy,{color:"gray"}),end:be.createElement(Cs,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(ks,{variant:"title",size:"xmedium"},No.t("Auto")),onClick:()=>t("auto"),start:be.createElement(Yy,{color:"gray"}),end:be.createElement(Cs,{value:"auto"})}];return be.createElement(X,{header:{title:No.t("Theme")}},be.createElement(ct,null,be.createElement(tS,{onValueChange:n=>t(n),value:e},be.createElement(Ry,{type:be.createElement(eS,{title:No.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Ec,"ThemePage");function Wc(){return oS([{path:_.home,element:Ie.createElement(iu,null)},{path:_.fromSwap,children:[{index:!0,element:Ie.createElement(es,{type:"source"})},{path:_.blockchains,element:Ie.createElement(Di,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ie.createElement(es,{type:"destination"})},{path:_.blockchains,element:Ie.createElement(Di,{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(Li,{sourceType:"Exchanges"})},{path:_.bridges,element:Ie.createElement(Li,{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 nS,MainEvents as Nc,RouteEventType as Lc,StepEventType as to,StepExecutionEventStatus as rS,useEvents as iS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Pc}from"react";import{StepExecutionBlockedEventStatus as Ts}from"@rango-dev/queue-manager-rango-preset";var Bc=[Ts.WAITING_FOR_CHANGE_WALLET_ACCOUNT,Ts.WAITING_FOR_NETWORK_CHANGE,Ts.WAITING_FOR_WALLET_CONNECT];function $c(){let t=f().tokens(),e=z.use.connectedWallets(),o=z.use.getWalletsDetails(),n=Me.use.setNotification(),r=Me.use.setAsRead(),s=iS();return Pc(()=>(s.on(Nc.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===to.TX_EXECUTION&&l.status===rS.TX_SENT&&!nS(p)||l.type===to.SUCCEEDED){let c=e.find(d=>d.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(d=>d.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 sS}from"@rango-dev/ui";var Mc=i(()=>sS({"@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 aS}from"@rango-dev/ui";var _c=aS("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}=f(),{activeTheme:e}=Sn(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Hn(),[r,s]=Fc(""),[a,l]=Fc(),p=pS(pn);return Dc(()=>{Me.persist.rehydrate(),p.onConnectWallet(s)},[]),Dc(()=>{n(t?.language)},[t?.language]),Lo.createElement(lS,{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 xs,{useMemo as IS}from"react";import{checkWaitingForNetworkChange as uS,makeQueueDefinition as cS}from"@rango-dev/queue-manager-rango-preset";import{Provider as mS}from"@rango-dev/queue-manager-react";import{useWallets as dS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as fS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as gS}from"rango-types";import hS,{useMemo as yS}from"react";function SS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=dS(),l=yS(()=>cS({API_KEY:t.apiKey||_t("API_KEY"),BASE_URL:_t("BASE_URL")}),[t.apiKey]),p=f().blockchains(),m={blockchains:z.use.connectedWallets().map(w=>({accounts:[w],name:w.chain}))},c=i(async(w,x)=>{if(s(w,x))return r(w,x)},"switchNetwork"),g=i(w=>!!a(w).mobileWallet,"isMobileWallet"),d=p.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),T=p.filter(gS),S=i(w=>{let{supportedChains:x}=a(w);return Go(x)},"getSupportedChainNames"),h=e(),A={meta:{blockchains:d,evmBasedChains:T,evmNetworkChainInfo:fS(T),getSupportedChainNames:S},getSigners:o,wallets:m,providers:h,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return hS.createElement(mS,{queuesDefs:[l],context:A,onPersistedDataLoaded:w=>{uS(w)},isPaused:!1},t.children)}i(SS,"QueueManager");var Oc=SS;import{useManager as xS}from"@rango-dev/queue-manager-react";import vS,{createContext as AS,useContext as bS}from"react";import{cancelSwap as CS,getCurrentBlockchainOfOrNull as kS,getCurrentStep as TS,getRelatedWalletOrNull as wS}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&&CS(o)}getCurrentStepInfo(e){let o=TS(e);return{step:o,wallet:o?wS(e,o):null,network:o?kS(e,o):null}}};i(Po,"WidgetHistory");var Uc=AS(void 0);function ws(t){let{manager:e}=xS(),o=U.use.retry(),n=new Po(e,{retrySwap:o}),r=z.use.connectedWallets(),s=z.use.loading(),a=zs(r),l=z.use.getWalletsDetails(),p=f().blockchains(),u=f().tokens(),m=f().swappers(),c=f().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:u,swappers:m,loadingStatus:c}};return vS.createElement(Uc.Provider,{value:g},t.children)}i(ws,"WidgetInfo");function qc(){let t=bS(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 IS(()=>{Is({API_KEY:o?.apiKey||Mo,BASE_URL:o?.apiUrl||bs})},[o]),xs.createElement(un,{config:o,onUpdateState:e},xs.createElement(Oc,{apiKey:o.apiKey},xs.createElement(ws,null,t.children)))}i(fr,"WidgetProvider");function zc(t){return t.config?.externalWallets?vs.createElement(dr,null):vs.createElement(fr,{config:t.config??gr},vs.createElement(dr,null))}i(zc,"Widget");export{uD as MainEvents,kD as Networks,xD as PendingSwapNetworkStatus,cD as RouteEventType,mD as StepEventType,dD as StepExecutionBlockedEventStatus,fD as StepExecutionEventStatus,SD as WalletEvents,TD as WalletTypes,zc as Widget,fr as WidgetProvider,un as WidgetWallets,Or as customizedThemeTokens,yD as readAccountAddress,Wl as useWallets,qc as useWidget,gD 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 Ye}from"@rango-dev/ui";import{readAccountAddress as Xc}from"@rango-dev/wallets-react";import{detectInstallLink as Kc,getCosmosExperimentalChainInfo as Yc,isEvmAddress as Jc,KEPLR_COMPATIBLE_WALLETS as VS,Networks as Ls}from"@rango-dev/wallets-shared";import hr from"bignumber.js";import{isCosmosBlockchain as Zc}from"rango-types";import Vc from"bignumber.js";var We=new Vc(0);import{WalletTypes as jc}from"@rango-dev/wallets-shared";var Ws=[jc.LEAP];import{BigNumber as Ns}from"bignumber.js";var Do=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),W=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ns(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ns(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Fo=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Ke=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),no=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function se(t){return W(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(se,"formatTooltipNumbers");function yr(t){switch(!0){case t.connected:return Ye.CONNECTED;case t.connecting:return Ye.CONNECTING;case!t.installed:return Ye.NOT_INSTALLED;default:return Ye.DISCONNECTED}}i(yr,"mapStatusToWalletState");function Ps(t,e,o,n){return o.filter(r=>!Ws.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(m=>m.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l}=e(r),p=yr(t(r));return{title:s,image:a,link:Kc(l),state:p,type:r}})}i(Ps,"mapWalletTypesToWalletInfo");function qo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(qo,"walletAndSupportedChainsNames");function $s(t,e,o,n,r){let s=[];function a(p,u){if(!!!s.find(c=>c.chain===p)){let c={address:u,chain:p,walletType:t};s.push(c)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:m}=Xc(p),c=l.length>0,g=l.includes(m),f=m===Ls.Unknown;if(c&&!g&&!f)return;let h=m===Ls.Unknown&&Jc(u);if(f&&!h)return;o.includes(m)||h?r?a(m,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{a(T,u.toLowerCase())}):a(m,u)}),s}i($s,"prepareAccountsForWalletStore");function Ms(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(s=>{let a=s.from.blockchain,l=s.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}i(Ms,"getRequiredChains");function zo(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(zo,"isAccountAndWalletMatched");function _s(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new hr(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:em(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(_s,"makeBalanceFor");function Ds(t){return{...t,loading:!1,error:!0}}i(Ds,"resetConnectedWalletState");var Fs=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=W(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new hr(s?.amount||We).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),We)||We).toString();return Rc(r)},"calculateWalletUsdValue");function Rc(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Rc,"numberWithThousandSeparator");var em=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),Go=i((t,e)=>{let o=Yc(Object.entries(t).map(([,n])=>n).filter(Zc));return o&&o[e]?.experimental},"isExperimentalChain");function Ho(t){return t?{...t,amount:W(t.amount,8,8),usdValue:W(t.usdValue,4,4)}:null}i(Ho,"formatBalance");function tm(t,e){return t?.usdValue&&e?.usdValue?parseFloat(e.usdValue)-parseFloat(t.usdValue):!t?.usdValue&&e?.usdValue?1:t?.usdValue&&!e?.usdValue?-1:!t?.usdValue&&!e?.usdValue?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(tm,"sortTokensByBalance");function om(t,e,o){let n=o(t),r=o(e);return n===r?0:n?-1:1}i(om,"sortTokensByPinnedToken");function Os(t,e,o){return t.sort((n,r)=>{let s=e(n),a=e(r),l=om(n,r,o);return l!==0?l:tm(s,a)}),t}i(Os,"sortTokens");function Le(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Le,"tokensAreEqual");function Us(t){return t.sort((e,o)=>+(o.state===Ye.CONNECTED)-+(e.state===Ye.CONNECTED)||+(o.state===Ye.DISCONNECTED||o.state===Ye.CONNECTING)-+(e.state===Ye.DISCONNECTED||e.state===Ye.CONNECTING))}i(Us,"sortWalletsBasedOnConnectionState");function Qo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Qo,"getConciseAddress");function qs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(qs,"getAddress");function Sr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Sr,"createTokenHash");function Vo(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new hr(o?.usdPrice??We).multipliedBy(o?.amount).toString():""},r=o?Sr({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(Vo,"makeTokensBalance");var zs=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var Cr={API_KEY:_o};function _t(t){return Cr[t]||""}i(_t,"getConfig");function Gs(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Cr=e,Cr}i(Gs,"initConfig");var Hs=20,Qs=25,Vs="Roboto",kr="theme-widget",ro=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Le(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Le(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Tr=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig");var jo,Dt=i(()=>jo||(jo=new nm(_t("API_KEY"),_t("BASE_URL")),jo),"httpService");function Ft(t){return Array.from(new Set(t))}i(Ft,"removeDuplicateFrom");function wr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wr,"areEqual");function js(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(js,"debounce");function At(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(At,"containsText");var O=i(()=>document.getElementById(Te),"getContainer");function Xo(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Ft(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Xo,"getUniqueSwappersGroups");function Xs(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Xs,"sortLiquiditySourcesByGroupTitle");function Pe(t,e){return e?.[t]==="hidden"}i(Pe,"isFeatureHidden");function Ko(t,e){return e?.[t]==="enabled"}i(Ko,"isFeatureEnabled");var Ks=i((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.tokens:r.to?.tokens)??{},a=e().blockchains({type:o.type});return n.filter(p=>s&&ro(p,s)||o.blockchain&&p.blockchain!==o.blockchain||!a.some(u=>u.name===p.blockchain)?!1:o.searchFor?!!(At(p.symbol,o.searchFor)||At(p.address||"",o.searchFor)||At(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p,o.type)?-1:e().isTokenPinned(u,o.type)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Le(a,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(Xs)},fetch:async()=>{try{let o=await Dt().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],s=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,u)=>p.sort-u.sort),t({_blockchains:n,_tokens:r,_popularTokens:s,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{English as rm,French as im,Japanese as sm,Spanish as am}from"@rango-dev/ui";var Ys=[{title:"English",label:"English",local:"en",SVGFlag:rm},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:am},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:im},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:sm}],Ot="en";var Js=[.5,1,3],Zs=1,Rs=5,ea=100,ta=0;var oa=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Ot,preferredBlockchains:[],slippage:Zs,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=10-1;return p&&u}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let s=Ft(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n}=o,r=Pe("theme",n),s=Pe("language",n),a=Pe("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:Ot},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function na(t){return lm()(pm((...e)=>({...Ks(...e),...oa(...e),...Is(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(na,"createAppStore");var ra=cm(null);function d(){let t=mm(ra);if(dm(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function ia(t){let e=fm();return e.current||(e.current=na(t.config)),um.createElement(ra.Provider,{value:e.current},t.children)}i(ia,"AppStoreProvider");import yt from"bignumber.js";import{create as Tm}from"zustand";import{subscribeWithSelector as wm}from"zustand/middleware";import{getLastSuccessfulStep as Cm}from"@rango-dev/queue-manager-rango-preset";import Ak from"bignumber.js";var ft=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(ft||{});function sa(t,e){return e.find(o=>o.name===t)?.displayName}i(sa,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"getBlockchainShortNameFor");function aa(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(aa,"getSwapperDisplayName");function vr(t,e){return e.find(o=>Le(o,t))??null}i(vr,"findToken");function Ar(t,e){return e.find(o=>o.name===t)??null}i(Ar,"findBlockchain");import{i18n as Oe}from"@lingui/core";import ve from"bignumber.js";import{PendingSwapNetworkStatus as Ro}from"rango-types";function Yo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(Yo,"getRequiredWallets");function Jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Jo,"isValidAddress");import{i18n as fe}from"@lingui/core";var Q=i(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:fe.t("No Routes Found."),description:fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function la(t){switch(t.type){case 0:return t.diagnosisMessage??Q().noResultError.title;case 1:return Q().genericServerError;default:return""}}i(la,"getQuoteErrorMessage");import{i18n as Zo}from"@lingui/core";var bt=i(()=>({connectWallet:Zo.t("Connect Wallet"),swap:Zo.t("Swap"),swapAnyway:Zo.t("Swap anyway"),ethWarning:Zo.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function pa(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ve(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ve(1e3)))??!1}i(pa,"hasHighValueLoss");function br(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(br,"hasLimitError");function Ir(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ve(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new ve(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=Oe.t({id:"Required: >= {min} {symbol}",values:{min:W(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Oe.t({id:"Required: > {min} {symbol}",values:{min:W(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Oe.t({id:"Required: <= {max} {symbol}",values:{max:W(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Oe.t({id:"Required: < {max} {symbol}",values:{max:W(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(Ir,"getLimitErrorMessage");function ua(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:bt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:bt().swap,action:"confirm-swap",disabled:!0}:a?{title:bt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:bt().ethWarning,action:"confirm-warning",disabled:!1}:{title:bt().swap,action:"confirm-swap",disabled:!1}:{title:bt().connectWallet,action:"connect-wallet",disabled:!1}}i(ua,"getSwapButtonState");function Er(t,e,o){return!((!o||o.lte(We))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(Er,"canComputePriceImpact");function gm(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(gm,"requiredWallets");var hm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function ym(t,e){let o=We;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=hm(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ve(r.amount).multipliedBy(s||0))}return o}i(ym,"getUsdFeeOfStep");function en(t,e){return t.reduce((o,n)=>o.plus(ym(n,e)),We)}i(en,"getTotalFeeInUsd");function Wr(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Wr,"checkSlippageErrors");function ca(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(ca,"checkSlippageWarnings");function tn(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(tn,"getMinRequiredSlippage");function ma(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ma,"hasProperSlippage");function on(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:g,initialQuote:f,destination:x}=t,h=s?.reduce((b,S)=>(b[S.chain]=S.address,b),{}),y=[];r?.forEach(b=>{let S=y.find(v=>v.blockchain===b.chain);S?S.addresses.push(b.address):y.push({blockchain:b.chain,addresses:[b.address]})});let A=!!f,T=Ft((f?.result?.swaps||[]).reduce((b,S)=>(b.push(S.from.blockchain,S.to.blockchain),S.internalSwaps&&Array.isArray(S.internalSwaps)&&S.internalSwaps.map(v=>{b.push(v.from.blockchain,v.to.blockchain)}),b),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:g??void 0,checkPrerequisites:A,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:h??{},slippage:u.toString(),...x&&{destination:x},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(b=>!a.includes(b)),swappersGroupsExclude:!1},...A&&{blockchains:T}}}i(on,"createQuoteRequestBody");function da(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(da,"getWalletsForNewSwap");function Ut(t){return t.result?.outputAmount||null}i(Ut,"getQuoteOutputAmount");function fa(t,e){return new ve(e).div(new ve(t)).minus(1).multipliedBy(100).toNumber()}i(fa,"getPercentageChange");function ga(t,e){let o=Ut(t),n=Ut(e);if(!o||!n)return!1;let r=$e(o,n);return r?r<=-1:!0}i(ga,"isOutputAmountChangedALot");function ha(t,e,o){let n=t.validationStatus,r=Ms(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>wa(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=W(new ve(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=W(new ve(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Oe.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Oe.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Oe.t(" for input and network fee")),Oe.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Je(a.asset.blockchain,o)}})})}i(ha,"generateBalanceWarnings");function ya(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(ya,"calcOutputUsdValue");function io(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ro.NetworkChanged}i(io,"isNetworkStatusInWarningState");function Sa(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),io(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Ro.WaitingForConnectingWallet:n=n||Oe.t("Waiting for connecting wallet");break;case Ro.WaitingForQueue:n=n||Oe.t("Waiting for other running tasks to be finished");break;case Ro.WaitingForNetworkChange:n=n||Oe.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(Sa,"getSwapMessages");function Ca(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Ca,"getLastConvertedTokenInFailedSwap");function ka(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(ka,"shouldRetrySwap");function Ta(t,e,o,n,r,s){return t||!e&&!gm(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Jo(s,o)}i(Ta,"confirmSwapDisabled");function Br(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Br,"searchParamsToToken");function va(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(va,"getQuoteToTokenUsdPrice");function Nr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Nr,"isNumberOfSwapsChanged");function Lr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!wr(o,n)}i(Lr,"isQuoteSwappersUpdated");function Pr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!wr(o,n)}i(Pr,"isQuoteInternalCoinsUpdated");function Aa(t,e){return Nr(t,e)||Lr(t,e)||Pr(t,e)}i(Aa,"isQuoteChanged");function wa(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(wa,"getRequiredBalanceOfWallet");function at(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(at,"getPriceImpactLevel");function ba(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=Cm(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ar(s?s.toBlockchain:n.fromBlockchain,e),p=Ar(r.toBlockchain,e),u=vr(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=vr(a,o),c=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}i(ba,"createRetryQuote");function nn(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=It(o,t.requestAmount),l=It(n,t.result?.outputAmount??"");if(t.result&&a&&l){let m=$e(a.toString(),l.toString());if(!!m&&pa(a,m)){let g=en(t.result.swaps,r),f=at(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=tn(t),u=s>Rs;if(ma(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:ca(t,s),minRequiredSlippage:p};return null}i(nn,"generateQuoteWarnings");function $e(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:fa(t.toString(),e.toString());return n&&n<0?n:null}i($e,"getPriceImpact");var km=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),ht=km;var It=i((t,e)=>t?.usdPrice?new yt(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=ht(Tm()(wm(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new yt(0),outputUsdValue:new yt(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=We;return no(o.inputAmount)?(e&&(n=e.result?.outputAmount?new yt(e.result?.outputAmount):null,r=ya(e.result?.outputAmount,va(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new yt(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:It(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new yt(0),outputUsdValue:new yt(0),quote:null},...!!o.fromToken&&{inputUsdValue:It(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=ba(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:It(a??null,u),outputUsdValue:new yt(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:It(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Ea(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=U(),u=d().config,m=d().fetchStatus,c=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:x,setAffiliateWallets:h}=d(),y=u?.from?.tokens,A=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,b=sn(void 0),S=sn(void 0),v=sn(void 0),I=sn(void 0);rn(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Ia(()=>{if(m==="success"){let C=c.find(N=>N.name===u?.from?.blockchain),$=g.find(N=>Le(N,u?.from?.token||null));(C||!C&&v.current)&&n(C??null),$?r({token:$,meta:{blockchains:c,tokens:g}}):!$&&b.current&&r({token:null}),v.current=u?.from?.blockchain,b.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),rn(()=>{ro(s,y)&&r({token:null}),Tr(l,A)&&n(null)},[y,A]),rn(()=>{ro(a,T)&&r({token:null}),Tr(p,w)&&o(null)},[T,w]),Ia(()=>{if(m==="success"){let C=c.find(N=>N.name===u?.to?.blockchain),$=g.find(N=>Le(N,u?.to?.token||null));(C||!C&&I.current)&&o(C??null),$?e({token:$,meta:{blockchains:c,tokens:g}}):!$&&S.current&&e({token:null}),I.current=u?.to?.blockchain,S.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),rn(()=>{f(u?.affiliate?.ref??null),x(u?.affiliate?.percent??null),h(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ea,"useSyncStoresWithConfig");import{useEffect as bm}from"react";import{create as xm}from"zustand";import{subscribeWithSelector as vm}from"zustand/middleware";var z=ht(xm()(vm((t,e)=>({connectedWallets:[],balances:{},customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Vo(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>zo(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),p=(await Dt().getWalletsDetails(a)).wallets;if(p)t(u=>{let m=u.connectedWallets.map(g=>{let f=o.find(h=>zo(h,g)),x=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return x?.failed&&f&&r&&s([f],n,!1),f&&x?{...g,explorerUrl:x.explorerUrl,balances:_s(x,n),loading:!1}:g});return{loading:!1,balances:Vo(m),connectedWallets:m}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(m=>o.find(c=>zo(c,m))?Ds(m):m);return{loading:!1,balances:Vo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Sr(o);return n[r]??null}}))));import{allProviders as Am}from"@rango-dev/provider-all";function an(t,e){let o=Am({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(an,"matchAndGenerateProviders");function Wa(t,e){return an(t,e).map(r=>r.config.type)}i(Wa,"configWalletsToWalletName");function Ba(t,e){let o=z.use.clearConnectedWallet(),n=an(void 0,e);return bm(()=>{o(),n=an(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Ba,"useWalletProviders");var pn=Wm({onConnectWallet:()=>{}});function Lm(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},[l,p]=Nm([]),{providers:u}=Ba(t.config.wallets,a),{connectWallet:m,disconnectWallet:c}=z(),g=Bm();Ea(),Mr(()=>{n().catch(console.log)},[]),Mr(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let f=r.filter(Em).map(h=>h.name),x=i((h,y,A,T,w)=>{if(y===$r.ACCOUNTS)if(A){let b=qo(w.supportedBlockchains),S=$s(h,A,f,b,w.isContractWallet);p(S)}else c(h);if(y===$r.ACCOUNTS&&T.connected){let b=`${h}-${T.network}-${A}`;T.connected&&(g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(y===$r.NETWORK&&T.network){let b=`${h}-${T.network}`;g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,y,A,T,w)},"onUpdateState");return Mr(()=>{l.length&&m(l,s)},[l,s]),ln.createElement(pn.Provider,{value:{onConnectWallet:h=>{g.current=h}}},ln.createElement(Im,{allBlockChains:r,providers:u,onUpdateState:x,autoConnect:!0},t.children))}i(Lm,"Main");function un(t){let{config:e,...o}=t;return ln.createElement(ia,{config:e},ln.createElement(Lm,{...o,config:e}))}i(un,"WidgetWallets");import bs from"react";import{I18nManager as uS}from"@rango-dev/ui";import Po,{useContext as cS,useEffect as Fc,useState as Oc}from"react";import{useQueueManager as qm}from"@rango-dev/queue-manager-rango-preset";import{useWallets as zm}from"@rango-dev/wallets-react";import{isEvmBlockchain as Gm}from"rango-types";import cn,{Fragment as Hm}from"react";import{MemoryRouter as Qm,useInRouterContext as Vm}from"react-router";import{useWallets as $m}from"@rango-dev/wallets-react";import{useEffect as Mm,useRef as _m}from"react";function Na(){let{connect:t,state:e}=$m(),o=_m({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Mm(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(Na,"useForceAutoConnect");import{useEffect as _r,useRef as Dr}from"react";import{createSearchParams as Fm,useLocation as Om,useSearchParams as Um}from"react-router-dom";var _={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",themes:"themes",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId"};import{create as Dm}from"zustand";var Ae=ht(Dm()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function La(){let t=Dr(!0),[e,o]=Um(),n=Om(),r=Dr(n.search),s=Dr({}),a=U.use.fromBlockchain(),l=U.use.toBlockchain(),p=U.use.fromToken(),u=U.use.toToken(),m=U.use.setFromBlockchain(),c=U.use.setFromToken(),g=U.use.setToBlockchain(),f=U.use.setToToken(),x=U.use.inputAmount(),h=U.use.setInputAmount(),y=d().fetchStatus,A=d().blockchains(),T=d().tokens(),w=Ae.use.setSelectedSwap();return _r(()=>{let b={};Fm(r.current).forEach((v,I)=>{b[I]=v}),s.current=b;let S=n.pathname.split(_.swaps+"/")[1]||null;S&&w(S)},[]),_r(()=>{if(!t.current){let b="",S="",v="",I="",C="",$=s.current["autoConnect"];y!=="success"?(b=s.current["fromBlockchain"],S=s.current["fromToken"],v=s.current["toBlockchain"],I=s.current["toToken"],C=s.current["fromAmount"]||x):(b=a?.name||"",S=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),v=l?.name||"",I=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),C=x),o({...b&&{["fromBlockchain"]:b},...S&&{["fromToken"]:S},...v&&{["toBlockchain"]:v},...I&&{["toToken"]:I},...C&&{["fromAmount"]:C.toString()},...$&&{["autoConnect"]:$}},{replace:!0})}t.current=!1},[n.pathname,x,a,p,l,u]),_r(()=>{if(y==="success"){let b=e.get("fromBlockchain"),S=e.get("fromToken"),v=e.get("toBlockchain"),I=e.get("toToken"),C=e.get("fromAmount"),$=A.find(M=>M.name===b),N=Br(T,S,$||null),L=A.find(M=>M.name===v),k=Br(T,I,L||null);$&&(m($),N&&c({token:N,meta:{blockchains:A,tokens:T}})),L&&(g(L),k&&f({token:k,meta:{blockchains:A,tokens:T}})),C&&h(C)}},[y]),null}i(La,"UpdateUrl");function Pa({children:t,...e}){let o=Vm(),n=o?Hm:Qm,r=d().blockchains(),{canSwitchNetworkTo:s}=zm();Na();let a=r.filter(Gm);return qm({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),cn.createElement(cn.Fragment,null,cn.createElement(n,null,t),o&&cn.createElement(La,null))}i(Pa,"AppRouter");import Ie from"react";import{useRoutes as rS}from"react-router-dom";import{i18n as Fn}from"@lingui/core";import{useManager as ug}from"@rango-dev/queue-manager-react";import{Alert as qp,Button as zp,css as wi,Divider as cg,IconButton as Gp,RefreshIcon as mg,SettingsIcon as dg,styled as Hp,Tooltip as fg,Typography as gg,WalletIcon as hg}from"@rango-dev/ui";import ee,{useEffect as ko,useLayoutEffect as yg,useRef as Sg,useState as On}from"react";import{flushSync as Cg}from"react-dom";import{useNavigate as kg}from"react-router-dom";import{i18n as lt}from"@lingui/core";import{Alert as oi,BalanceErrors as uf,Button as Nl,ChevronDownIcon as cf,ChevronLeftIcon as mf,Divider as Qt,MessageBox as df,Modal as Ll,Typography as En,WalletIcon as ff}from"@rango-dev/ui";import P,{useEffect as gf,useLayoutEffect as hf,useRef as yf,useState as Bt}from"react";import{useNavigate as Sf}from"react-router-dom";import{i18n as mn}from"@lingui/core";function dn(t){switch(t.type){case 0:return mn.t("Route has been updated.");case 3:return mn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return mn.t("Route swappers has been updated.");case 2:return mn.t("Route internal coins has been updated.");default:return""}}i(dn,"getQuoteUpdateWarningMessage");import*as zt from"@radix-ui/react-collapsible";import{Button as Xm,css as $a,darkTheme as qt,IconButton as Km,keyframes as Ma,styled as ge,TextField as Ym}from"@rango-dev/ui";var so=300,Jm=Ma({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Zm=Ma({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_a=ge("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Da=ge("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Rm=ge("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Fa=ge(Rm,{alignSelf:"stretch",minHeight:"93px"}),Oa=ge(zt.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),Ua=ge("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),qa=ge(Km,{position:"absolute",left:"$20"}),za=ge("div",{paddingTop:"$20"}),Ga=$a({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ha=ge(zt.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Qa=ge(Xm,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${qt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Va=ge("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),ja=$a({paddingTop:"5px"}),Xa=ge("div",{transition:`all ${so}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Ka=ge("div",{display:"flex"}),Ya=ge(Ym,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),fn=ge(zt.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${Jm} ${so}ms ease-out`},false:{animation:`${Zm} ${so}ms ease-out`}}}}),Ja=ge("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as af,Divider as ei,Image as lf,MessageBox as In,Modal as bl,SelectableWallet as pf,Typography as Il,WalletState as El}from"@rango-dev/ui";import R,{useEffect as Wl,useState as lo}from"react";import{WalletState as Fr}from"@rango-dev/ui";import{useWallets as ed}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as td,WalletTypes as gn}from"@rango-dev/wallets-shared";import{useEffect as od,useState as nd}from"react";var rd=Object.values(gn);function hn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=ed(),{connectedWallets:u}=z(),m=d().blockchains(),c=Wa(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||rd,g=Ps(s,l,c,o),f=Us(g),[x,h]=nd(""),y=i(S=>!u.find(v=>v.walletType===S&&v.chain===o),"isExperimentalChainNotAdded"),A=i(async S=>{let v=s(S);try{if(x&&h(""),v.connected)await a(S);else{let I=!!g.find(C=>C.state===Fr.CONNECTED);if(!e?.multiWallets&&I)return;n?.(S),await p(S),r?.(S)}}catch(I){h("Error: "+I?.message)}},"handleClick"),T=i(()=>{let S=g?.filter(v=>v.state===Fr.CONNECTING)||[];for(let v of S)a(v.type)},"disconnectConnectingWallets");od(()=>()=>{T()},[]);let w=i(S=>S.filter(I=>I.state!=Fr.NOT_INSTALLED&&![gn.DEFAULT,gn.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(C=>C.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),b=i((S,v,I)=>Go(I,v)&&y(S)&&!td.includes(S)||S==gn.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(S=>!b(S.type,o??"",m)),error:x,handleClick:A}}i(hn,"useWalletList");import{i18n as Cl}from"@lingui/core";import{styled as Tl,Typography as Zd,Wallet as Rd,WalletState as ef}from"@rango-dev/ui";import Wt,{Fragment as tf,useState as kl}from"react";import{BottomLogo as zd,Divider as Gd,Header as Hd}from"@rango-dev/ui";import he from"react";import{useNavigate as id}from"react-router-dom";function St(){let t=id();return()=>t(-1)}i(St,"useNavigateBack");import{createTheme as zr,darkTheme as ud,lightTheme as cd}from"@rango-dev/ui";import{useEffect as el,useState as md}from"react";import{theme as ld,darkColors as pd}from"@rango-dev/ui";var Za=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[s,a,l]=t.match(/.{2}/g);[s,a,l]=[parseInt(s,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],s=Math.max(Math.min(255,s),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(s.length<2?"0":"")+s,u=(a.length<2?"0":"")+a,m=(l.length<2?"0":"")+l;return`#${p}${u}${m}`},"colorShade"),yn=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:Za(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:Za(e,-((l-5)*25))});return a},"generateRangeColors"),Or=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];if(a&&a!==t[s])if(n=!0,s==="background"||s==="foreground")r={...r,[s]:a};else if(s==="neutral"&&e){let l=yn(s,a);r={...r,[`${s}100`]:l[`${s}900`],[`${s}200`]:l[`${s}800`],[`${s}300`]:l[`${s}700`],[`${s}400`]:l[`${s}600`],[`${s}500`]:l[`${s}500`],[`${s}600`]:l[`${s}400`],[`${s}700`]:l[`${s}300`],[`${s}800`]:l[`${s}200`],[`${s}900`]:l[`${s}100`]}}else r={...r,...yn(s,a)}}return n?r:{}},"generateColors");var Ra=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),sd=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Ra(o%52)+e;return Ra(o%52)+e},"toAlphabeticName"),ad=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ur=i(t=>sd(ad(5381,JSON.stringify(t))>>>0),"toHash");function qr(t){let e=ld.colors,o=Or({...e,...pd},!0,t?.dark),n=Or(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${kr}-light-${Ur(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${kr}-dark-${Ur(p)}`,tokens:p}}return{light:a,dark:l}}i(qr,"customizedThemeTokens");function Sn(t){let{colors:e,fontFamily:o=Vs,borderRadius:n=Hs,secondaryBorderRadius:r=Qs,mode:s="auto"}=t,[a,l]=md("light"),{setTheme:p,theme:u}=d(),{dark:m,light:c}=qr(e),g=zr({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,cd.className],x=[g.className,ud.className];if(c){let y=zr(c.id,c.tokens);f.push(y.className)}if(m){let y=zr(m.id,m.tokens);x.push(y.className)}return el(()=>{let y=i(A=>{A.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",y),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",y)}},[]),el(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let y=f.join(" "),A=x.join(" ");return u==="auto"?a==="dark"?A:y:u==="dark"?A:y},"getActiveTheme")}}i(Sn,"useTheme");import{ChevronLeftIcon as gd}from"@rango-dev/ui";import nl from"react";import{darkTheme as dd,IconButton as fd,styled as Cn}from"@rango-dev/ui";var Ue=Cn(fd,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),tl=Cn("div",{position:"absolute",background:"$secondary500",[`.${dd} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=Cn("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),ol=Cn("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function Gr(t){return nl.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},nl.createElement(gd,{color:"black",size:16}))}i(Gr,"BackButton");import{i18n as hd}from"@lingui/core";import{Button as yd,Typography as Sd}from"@rango-dev/ui";import Hr from"react";function Qr(t){return Hr.createElement(Gt,null,Hr.createElement(yd,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Hr.createElement(Sd,{variant:"label",size:"medium",color:"error500"},hd.t("Cancel"))))}i(Qr,"CancelButton");import{i18n as Cd}from"@lingui/core";import{Tooltip as kd,WalletIcon as Td}from"@rango-dev/ui";import kn from"react";function Vr(t){return kn.createElement(kd,{container:t.container,side:"top",content:Cd.t("Connect Wallet")},kn.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&kn.createElement(tl,null),kn.createElement(Td,{size:18,color:"black"})))}i(Vr,"WalletButton");import{i18n as xn}from"@lingui/core";import{NotificationsIcon as _d,Popover as Dd,RefreshIcon as Fd,SettingsIcon as Od,Tooltip as vn,TransactionIcon as Ud}from"@rango-dev/ui";import ce from"react";import{i18n as Wd}from"@lingui/core";import{ChainToken as pl,ChevronRightIcon as Bd,ListItemButton as Nd,Typography as Ld}from"@rango-dev/ui";import qe from"react";import{useNavigate as Pd}from"react-router-dom";import{create as wd}from"zustand";import{persist as xd,subscribeWithSelector as vd}from"zustand/middleware";var Me=ht(wd()(xd(vd((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:s.toBlockchain,tokenSymbol:s.toSymbol,tokenAddress:s.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{styled as Tn}from"@rango-dev/ui";var rl=Tn("div",{padding:"$10",width:"350px",minHeight:"150px"}),il=Tn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),sl=Tn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),al=Tn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Ad}from"@lingui/core";import{Divider as bd,NoNotificationIcon as Id,Typography as Ed}from"@rango-dev/ui";import wn from"react";function ll(){return wn.createElement(al,null,wn.createElement(Id,{color:"secondary",size:26}),wn.createElement(bd,{size:12}),wn.createElement(Ed,{variant:"body",size:"medium",color:"neutral700"},Ad.t("You have no notification")))}i(ll,"NotificationNotFound");var $d=4;function jr(){let t=Pd(),e=Ae.use.setSelectedSwap(),{getUnreadNotifications:o}=Me(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,$d),l=i(p=>{e(p),t(`${_.swaps}/${p}`)},"handleOnClick");return qe.createElement(rl,null,a.length?qe.createElement(il,null,a.map(p=>{let u=s.find(f=>f.address===p.route.from.tokenAddress&&f.blockchain===p.route.from.blockchain&&f.symbol===p.route.from.tokenSymbol),m=r.find(f=>f.name===p.route.from.blockchain),c=s.find(f=>f.address===p.route.to.tokenAddress&&f.blockchain===p.route.to.blockchain&&f.symbol===p.route.to.tokenSymbol),g=r.find(f=>f.name===p.route.to.blockchain);return qe.createElement(Nd,{key:p.requestId,onClick:()=>l(p.requestId),title:qe.createElement(Ld,{variant:"body",size:"small",color:"$neutral700"},Wd.t(p.event.message)),id:p.requestId,start:qe.createElement(sl,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(pl,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(pl,{tokenImage:c?c.image:"",chainImage:g?g.logo:"",size:"small"}))),end:qe.createElement(Bd,{size:12,color:"gray"})})})):qe.createElement(ll,null))}i(jr,"NotificationContent");import{Typography as Md}from"@rango-dev/ui";import ul from"react";function cl(){let{getUnreadNotifications:t}=Me(),e=t().length;return e?ul.createElement(ol,null,ul.createElement(Md,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(cl,"UnreadNotificationsBadge");function Xr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:s}=t,{config:{features:a}}=d(),l=Pe("notification",a);return ce.createElement(ce.Fragment,null,ce.createElement(vn,{container:O(),side:"top",content:xn.t("Refresh")},ce.createElement(Ue,{variant:"ghost",size:"small",onClick:o,disabled:!o},ce.createElement(Fd,{size:16,color:o?"black":"gray"}))),!l&&ce.createElement(vn,{container:O(),side:"top",content:xn.t("Notifications")},ce.createElement(Dd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:ce.createElement(jr,null)},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:s},ce.createElement(_d,{size:18,color:"black"}),ce.createElement(cl,null)))),ce.createElement(vn,{container:O(),side:"top",content:xn.t("Settings")},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:r},ce.createElement(Od,{size:18,color:"black"}))),ce.createElement(vn,{container:O(),side:"top",content:xn.t("Transactions History")},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:n},ce.createElement(Ud,{size:18,color:"black"}))))}i(Xr,"HomeButtons");import{darkTheme as qd,styled as Kr}from"@rango-dev/ui";var ml=Kr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"100vw",minWidth:"300px",maxWidth:"390px",maxHeight:"700px",textAlign:"left",$$color:"$colors$neutral100",[`.${qd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"100vh"},false:{height:"auto !important"}}}}),dl=Kr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),fl=Kr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Qd(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=z.use.connectedWallets(),{config:{features:u,theme:m}}=d(),{activeTheme:c}=Sn(m||{}),g=Pe("connectWalletButton",u),f=Ae.use.connectWalletsButtonDisabled(),x=St(),h=i(()=>{!f&&n.onWallet&&n.onWallet()},"onConnectWallet"),y=typeof n.hasBackButton>"u"||n.hasBackButton;return he.createElement(ml,{ref:e,fixedHeight:l,id:Te,className:c()},he.createElement(Hd,{prefix:he.createElement(he.Fragment,null,y&&he.createElement(Gr,{onClick:x})),title:n.title,suffix:he.createElement(he.Fragment,null,n.suffix,n.onWallet&&!g&&he.createElement(Vr,{container:O(),onClick:h,isConnected:!!p?.length}),n.onCancel&&he.createElement(Qr,{onClick:n.onCancel}))}),he.createElement(dl,{noPadding:s},o),(a||r)&&he.createElement(fl,null,he.createElement("div",{className:"footer__content"},r),a&&he.createElement("div",{className:"footer__logo"},he.createElement(Gd,{size:12}),he.createElement(zd,null))))}i(Qd,"LayoutComponent");var X=he.forwardRef(Qd);X.displayName="Layout";import{Divider as Yd,Modal as Jd}from"@rango-dev/ui";import Jr from"react";import{i18n as Ht}from"@lingui/core";import{Image as Xd,MessageBox as Yr,WalletState as Kd}from"@rango-dev/ui";import Et from"react";import{keyframes as Vd,styled as An}from"@rango-dev/ui";var yv=An("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),gl=An("div",{position:"relative"}),jd=Vd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),hl=An("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${jd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),yl=An("div",{"& img":{borderRadius:"50%"}});function Sl(t){let{state:e,image:o,error:n}=t;return e===Kd.CONNECTED?Et.createElement(Yr,{type:"success",title:Ht.t("Wallet Connected"),description:Ht.t("Your wallet is connected, you can use it to swap.")}):n?Et.createElement(Yr,{type:"error",title:Ht.t("Failed to Connect"),description:n||Ht.t("Your wallet is not connected. Please try again.")}):Et.createElement(Yr,{type:"loading",title:Ht.t("Connecting to your wallet"),description:Ht.t("Click connect in your wallet popup."),icon:Et.createElement(gl,null,Et.createElement(yl,null,Et.createElement(Xd,{src:o,size:45})),Et.createElement(hl,null))})}i(Sl,"ModalContent");function ao(t){let{open:e,onClose:o,...n}=t;return Jr.createElement(Jd,{open:e,onClose:o,container:document.getElementById(Te)||document.body},Jr.createElement(Sl,{...n}),Jr.createElement(Yd,{direction:"vertical",size:32}))}i(ao,"WalletModal");var of=Tl("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),nf=Tl("div",{textAlign:"center"}),bn=3e3,Zr=300;function wl(){let{config:t,fetchStatus:e}=d(),[o,n]=kl(!1),[r,s]=kl(""),a=null,{list:l,handleClick:p,error:u}=hn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},Zr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},bn)}}),m=l.find(f=>f.type===r),c=m?.image||"",g=m?.state||ef.NOT_INSTALLED;return Wt.createElement(X,{header:{title:Cl.t("Connect Wallets")}},Wt.createElement(nf,null,Wt.createElement(Zd,{variant:"title",size:"xmedium",align:"center"},Cl.t("Choose a wallet to connect.")),Wt.createElement(of,null,l.map((f,x)=>{let h=`wallet-${x}-${f.type}`;return Wt.createElement(tf,{key:h},Wt.createElement(Rd,{...f,container:O(),onClick:y=>{p(y)},isLoading:e==="loading"}))}),Wt.createElement(ao,{open:!!o,onClose:()=>n(!1),image:c,state:g,error:u}))))}i(wl,"WalletsPage");import{keyframes as rf,styled as Rr}from"@rango-dev/ui";var xl=Rr("div",{position:"relative"}),sf=rf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),vl=Rr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${sf} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Al=Rr("div",{"& img":{borderRadius:"50%"}});function ti(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=z.use.connectedWallets(),{blockchains:p}=d(),[u,m]=lo(""),[c,g]=lo(null),[f,x]=lo(!1),[h,y]=lo(null),{suggestAndConnect:A}=Bl(),T=null,{list:w,error:b,handleClick:S}=hn({config:a,chain:e,onBeforeConnect:k=>{T=setTimeout(()=>{m(k)},Zr)},onConnect:()=>{T&&clearTimeout(T),setTimeout(()=>{m("")},bn)}}),[v,I]=lo(w),C=w.length,$=r&&C-r>0,N=i(async k=>{x(!1),y("in-progress");try{await A(k.walletType,k.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Wl(()=>{I(k=>{let M=w.findIndex(E=>o(E.type,e));return $&&M>1?[w[M]].concat(w.filter((E,G)=>G!==M)):k.map(E=>w.find(G=>G.type===E.type)??E)})},[JSON.stringify(w)]);let L=document.getElementById(Te);return Wl(()=>{let k=null;return(h==="completed"||h==="rejected")&&(k=setTimeout(()=>y(null),bn)),()=>{k&&clearTimeout(k)}},[h]),R.createElement(R.Fragment,null,v.slice(0,r).map(k=>{let M=qs({connectedWallets:l,walletType:k.type,chain:e}),E=M?Qo(M):"",G=Go(p(),e),J=!l.find(Se=>Se.walletType===k.type&&Se.chain===e),te=G&&J&&k.state===El.CONNECTED,H=te?ze.t({id:"Add {chain} chain",values:{chain:e}}):E,re=i(()=>{k.state===El.DISCONNECTED?S(k.type):te?(g({walletType:k.type,chain:e,address:M??""}),x(!0)):n({walletType:k.type,chain:e,address:M??""})},"onClick"),ye=c?.chain?sa(c.chain,p()):void 0;return R.createElement(R.Fragment,null,R.createElement(ao,{open:u===k.type,onClose:()=>m(""),image:k.image,state:k.state,error:b}),!!c&&R.createElement(bl,{open:!!c&&f,container:L,onClose:()=>{g(null)}},R.createElement(In,{title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),type:"warning",description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}})},R.createElement(ei,{size:18}),R.createElement(ei,{size:32}),R.createElement(af,{onClick:N.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),h&&R.createElement(bl,{open:!!h,onClose:y.bind(null,null),container:L},h==="in-progress"&&R.createElement(In,{type:"loading",title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}}),icon:R.createElement(xl,null,R.createElement(Al,null,R.createElement(lf,{src:k.image,size:45})),R.createElement(vl,null))}),h==="completed"&&R.createElement(In,{type:"success",title:ze.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ye}}),description:ze.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ye}})}),h==="rejected"&&R.createElement(In,{type:"error",title:ze.t("Request Rejected"),description:ze.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ye}})}),R.createElement(ei,{direction:"vertical",size:32})),R.createElement(pf,{key:k.type,description:H,onClick:re,selected:o(k.type,e),...k}))}),$&&R.createElement(Fa,{selected:!1,onClick:s},R.createElement(Il,{variant:"label",size:"medium"},ze.t("Show more wallets"),R.createElement(Il,{variant:"label",size:"medium",color:"$primary"},"\xA0+",C-(r??0)))))}i(ti,"WalletList");var Cf=2;function Pl(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:g,setCustomDestination:f}=U(),{connectedWallets:x,selectWallets:h}=z(),[y,A]=Bt(""),[T,w]=Bt([]),[b,S]=Bt(""),[v,I]=Bt(null),[C,$]=Bt(g),[N,L]=Bt(!!g),k=yf(null),M=Yo(p),E=l.find(D=>D.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),G=i(D=>!!p?.result?.swaps.find(Y=>Y.from.blockchain===D),"isWalletRequiredFor"),[J,te]=Bt(x.filter(D=>D.selected&&M.includes(D.chain))),H=l.find(D=>D.name===E?.name),re=i((D,Y)=>!!J.find(j=>j.walletType===D&&j.chain===Y&&j.selected&&(G(Y)||!G(Y)&&!C)),"isSelected"),ye=!!C&&N&&H&&!Jo(H,C),Se=i(()=>{L(!1),$(""),te(D=>{let Y=!1;return D.map(j=>!Y&&j.chain===E?.name?(Y=!0,{...j,selected:!0}):j)})},"resetCustomDestination"),Ce=i(D=>{if(y&&A(""),re(D.walletType,D.chain))return;let j=x.find(Ee=>Ee.walletType===D.walletType&&Ee.chain===D.chain);j&&(n(),D.chain===E?.name&&N&&(L(!1),$("")),te(Ee=>Ee.filter(ue=>ue.chain!==D.chain).concat({...j,selected:!0})))},"onChange"),Mt=i(()=>{let D=J.filter(Y=>Y.selected);h(D),u(D),f(C),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{w([]),S(""),I(null);let D=x.filter(Ee=>J.find(ue=>ue.chain===Ee.chain&&ue.walletType===Ee.walletType)),Y=await r?.({selectedWallets:D,customDestination:C}),j=Y.warnings;j?.balance?.messages&&w(j.balance.messages),j?.quoteUpdate&&I(j.quoteUpdate),Y.error&&S(la(Y.error)),!Y.error&&(!j?.balance?.messages.length||0>0)?Mt():w(j?.balance?.messages??[])},"onConfirmWallets");gf(()=>{te(D=>D.concat(x.filter(Y=>!!!D.find(Ee=>Ee.chain===Y.chain)&&Y.selected&&M.includes(Y.chain))))},[x.length]),hf(()=>{N&&k.current&&setTimeout(()=>{k?.current?.scrollIntoView({behavior:"smooth"})},so)},[N]);let it=document.getElementById(Te),Xe=Sf();return P.createElement(Ll,{open:e,onClose:()=>{m||Xe("../",{replace:!0}),o()},dismissible:!y,container:it,...!y&&{footer:P.createElement(Ka,null,P.createElement(Nl,{loading:s,disabled:Ta(s,N,C,p,J,E),onClick:oo,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...y&&{containerStyle:{padding:"$0"},header:P.createElement(Ua,null,P.createElement(qa,{variant:"ghost",onClick:A.bind(null,"")},P.createElement(mf,{size:16})),P.createElement(En,{variant:"headline",size:"small"},lt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(y,l)}})))},anchor:"center"},P.createElement(Ll,{open:T.length>0,onClose:w.bind(null,[]),container:it},P.createElement(df,{title:lt.t("Insufficient account balance"),type:"error",description:P.createElement(uf,{messages:T??[]})},P.createElement(Nl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Mt},lt.t("Proceed anyway")))),y&&P.createElement(za,null,P.createElement("div",{className:Ga()},P.createElement(ti,{chain:y,isSelected:re,selectWallet:Ce,onShowMore:A.bind(null,y)}))),!y&&P.createElement(P.Fragment,null,b&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"error",title:lt.t(b)}),P.createElement(Qt,{size:12})),v&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"warning",title:dn(v)}),P.createElement(Qt,{size:12})),P.createElement(Ja,null,M.map((D,Y)=>{let j=l.find(de=>de.name===D),Ee=`wallet-${Y}`,ue=Y===M.length-1;return P.createElement("div",{key:Ee},P.createElement(_a,null,P.createElement(En,{variant:"title",size:"xmedium"},lt.t({id:"Your {blockchainName} wallets",values:{blockchainName:j?.shortName}})),P.createElement(En,{variant:"label",color:"$neutral700",size:"medium"},lt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:j?.shortName}}))),P.createElement(Qt,{size:24}),P.createElement(Da,null,P.createElement(ti,{chain:D,isSelected:re,selectWallet:Ce,limit:Cf,onShowMore:()=>A(j?.name??"")})),!ue&&P.createElement(Qt,{size:32}),ue&&a?.customDestination&&P.createElement(Va,null,P.createElement(Ha,{ref:k,selected:N,open:N,onOpenChange:de=>{de?G(E?.name??"")||te(Mo=>Mo.map(st=>st.chain===E?.name?{...st,selected:!1}:st)):Se()}},P.createElement(Oa,{onClick:()=>L(de=>!de)},P.createElement(Qa,{fullWidth:!0,variant:"default",suffix:P.createElement(Xa,{orientation:N?"up":"down"},P.createElement(cf,{size:10,color:"gray"}))},P.createElement("div",{className:"button__content"},P.createElement(ff,{size:18,color:"info"}),P.createElement(Qt,{size:4,direction:"horizontal"}),P.createElement(En,{variant:"label",size:"medium"},lt.t("Send to a different address"))))),P.createElement(fn,{open:N},P.createElement(P.Fragment,null,P.createElement(Qt,{size:4}),P.createElement(Ya,{autoFocus:!0,placeholder:lt.t("Your destination address"),value:C,onChange:de=>{$(de.target.value)}})))),ye&&P.createElement("div",{className:ja()},P.createElement(oi,{variant:"alarm",type:"error",title:lt.t({values:{destination:C},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Pl,"ConfirmWalletsModal");import{Divider as ig}from"@rango-dev/ui";import _e from"react";import{i18n as pi}from"@lingui/core";import{Alert as xf,ChevronDownIcon as vf,ChevronRightIcon as Af,Divider as ui,Image as Zl,InfoIcon as bf,QuoteCost as If,StepDetails as Ef,TokenAmount as Wf,Tooltip as Nn,Typography as co}from"@rango-dev/ui";import Rl from"bignumber.js";import B,{useLayoutEffect as Bf,useRef as ep,useState as Nf}from"react";import{styled as po}from"@rango-dev/ui";var $l=po("div",{paddingBottom:"$10"}),ni=po("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ml=po("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),_l=po("div",{paddingBottom:"$15"}),Dl=po("div",{width:"100%",display:"flex"});import*as Wn from"@radix-ui/react-collapsible";import{css as ri,darkTheme as Ze,Image as Fl,styled as Ge,Typography as kf}from"@rango-dev/ui";var ii=300,Ol=Ge(Wn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Ze} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ze} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Ul=ri({padding:"$10 $15"}),ql=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Ze} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Ze} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Ze} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Ze} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}]}),zl=ri({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),Gl=ri({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ze} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hl=Ge(Wn.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Fl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Fl}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Ze} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ze} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),si=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",border:"1.5px transparent solid",display:"flex",justifyContent:"center",alignItems:"center",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Ql=Ge(fn,{width:"100%",background:"inherit"}),ai=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ii}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),EA=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Vl=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ze} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),jl=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),li=Ge(kf,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Xl=Ge("div",{display:"flex",flexWrap:"wrap"});import{TokenAmount as Jl}from"@rango-dev/ui";import Bn from"react";import{css as Tf,styled as wf}from"@rango-dev/ui";var Kl=wf("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Yl=Tf({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function uo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Bn.createElement(Kl,null,Bn.createElement(Jl,{direction:"horizontal",label:"Swap input",type:"input",tooltipContainer:O(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Bn.createElement("div",{className:Yl()}),Bn.createElement(Jl,{direction:"horizontal",label:"Estimated output",tooltipContainer:O(),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(uo,"QuoteSummary");function ci(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=d().tokens(),u=d().blockchains(),m=d().swappers(),[c,g]=Nf(t.expanded),f=ep(null),x=ep(c),h=W(en(e.result?.swaps??[],p),2,2),y=Do(Fo(e.result?.swaps)),A=W(o.value,6,6),T=W(n.value,6,6),w=n.usdValue?W(n.usdValue,4,4):"",b=$e(o.usdValue,n.usdValue??null),S=W(b,2,2),v=at(b??0),C=i(L=>L.map((k,M)=>{let E,G=r?.type===3&&r.swap.swapperId===k.swapperId||r?.type===4&&r.recommendedSlippages?.has(M),J=s?.type===2&&s.recommendedSlippages?.has(M);return G?E="error":J&&(E="warning"),{swapper:{displayName:aa(k.swapperId,m),image:k.swapperLogo},from:{token:{displayName:k.from.symbol,image:k.from.logo},chain:{displayName:Je(k.from.blockchain,u),image:k.from.blockchainLogo},price:{value:M===0?W(o.value,6,6):W(k.fromAmount,6,6),usdValue:W((k.from.usdPrice??0)*parseFloat(k.fromAmount),4,4),realValue:se(M===0?o.value:k.fromAmount),realUsdValue:se(new Rl(k.from.usdPrice??0).multipliedBy(k.fromAmount))}},to:{token:{displayName:k.to.symbol,image:k.to.logo},chain:{displayName:Je(k.to.blockchain,u),image:k.to.blockchainLogo},price:{value:W(k.toAmount,6,6),usdValue:W((k.to.usdPrice??0)*parseFloat(k.toAmount),4,4),realValue:se(k.toAmount),realUsdValue:se(new Rl(k.to.usdPrice??0).multipliedBy(k.toAmount))}},state:E,alerts:G||J?B.createElement(_l,null,B.createElement(xf,{type:G?"error":"warning",title:r?.type===3?r?.recommendation:pi.t("Slippage Error:"),footer:B.createElement(Dl,null,r?.type===3&&B.createElement(B.Fragment,null,B.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),B.createElement(ui,{direction:"horizontal",size:8}),B.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},"|"),B.createElement(ui,{direction:"horizontal",size:8}),B.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Yours: {amount} {symbol}",values:{amount:W(k.fromAmount,6,6),symbol:k?.from.symbol}}))),(r?.type===4||s?.type===2)&&B.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(M)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(M)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),$=C.length,N=O();return Bf(()=>{c&&!x.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},ii),x.current=c},[c,x]),B.createElement(B.Fragment,null,B.createElement(ql,{recommended:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:zl()},B.createElement(If,{fee:h,time:y,steps:$}),a==="basic"&&B.createElement("div",{className:Gl()},B.createElement(jl,null,B.createElement(bf,{size:12,color:"gray"})),B.createElement(Xl,null,B.createElement(li,{size:"small",variant:"body"},`${A} ${C[0].from.token.displayName} = `),B.createElement(Nn,{content:se(n.value),container:N,open:n.value?void 0:!1},B.createElement(li,{size:"small",variant:"body"},"\xA0",`${T} ${C[C.length-1].to.token.displayName}`))),B.createElement(Nn,{content:se(n.usdValue),container:N,style:{display:"flex"}},B.createElement(co,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${w})`))),a==="list-item"&&B.createElement(Wf,{type:"output",direction:"vertical",tooltipContainer:N,price:{value:T,usdValue:w,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:C[$-1].to.token.displayName,image:C[$-1].to.token.image},chain:{image:C[$-1].to.chain.image},percentageChange:S,warningLevel:v}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(uo,{from:C[0].from,to:C[$-1].to,percentageChange:S,warningLevel:v}),B.createElement(ui,{size:4}))),B.createElement(Ol,{recommended:l,open:c,onOpenChange:g},B.createElement(Hl,{ref:L=>f.current=L,recommended:l,onClick:()=>g(L=>!L)},B.createElement("div",null,C.map((L,k)=>{let M=`item-${k}`,E=B.createElement(ai,null,B.createElement(Af,{size:12,color:"black",...L.state&&{color:L.state==="error"?"error":"warning"}}));return B.createElement(B.Fragment,{key:M},B.createElement(Nn,{container:N,side:"bottom",sideOffset:4,content:L.from.chain.displayName},B.createElement(si,{state:L.state||C[k-1]?.state},B.createElement(Zl,{src:L.from.chain.image,size:16}))),k===$-1&&B.createElement(B.Fragment,null,E,B.createElement(Nn,{container:N,side:"bottom",sideOffset:4,content:L.to.chain.displayName},B.createElement(si,{state:L.state},B.createElement(Zl,{src:L.to.chain.image,size:16})))),k!==$-1&&B.createElement(B.Fragment,null,E))})),B.createElement(ai,{orientation:c?"up":"down"},B.createElement(vf,{size:12,color:"black"}))),B.createElement(Ql,{open:c},B.createElement(Vl,null),B.createElement("div",{className:Ul()},C.map((L,k)=>{let M=`item-${k}`;return B.createElement(Ef,{type:"quote-details",key:M,step:L,hasSeparator:k!==C.length-1,state:L.state,tooltipContainer:N})}))))))}i(ci,"Quote");import{Divider as $f,Skeleton as Mf}from"@rango-dev/ui";import pt from"react";import{darkTheme as Lf,styled as Ln}from"@rango-dev/ui";var tp=Ln("div",{$$color:"$colors$neutral100",[`.${Lf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),op=Ln("div",{paddingTop:"$2"}),np=Ln("div",{paddingLeft:"$8"}),rp=Ln("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as gp,Divider as Nt,Skeleton as et}from"@rango-dev/ui";import q from"react";import{styled as Re}from"@rango-dev/ui";var ip=Re("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),sp=Re("div",{display:"flex"}),ap=Re("div",{padding:"$15 $0 14px $0"}),lp=Re("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),pp=Re("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),up=Re("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),cp=Re("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),mp=Re("div",{width:"65%",display:"flex",justifyContent:"start"}),dp=Re("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),fp=Re("div",{padding:"$15 $0 $15 $0"});function go(t){let{type:e,tag:o=!1}=t,n=q.createElement(up,null,q.createElement(mp,null,q.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(Nt,{size:8,direction:"horizontal"}),q.createElement(dp,null,q.createElement(et,{height:10,width:60,variant:"rounded"}),q.createElement(Nt,{size:4}),q.createElement(et,{height:15,variant:"rounded"}))),q.createElement(et,{height:12,width:64,variant:"rounded"}));return q.createElement("div",null,q.createElement(ip,null,q.createElement(sp,null,q.createElement(et,{width:60,height:10,variant:"rounded"}),q.createElement(Nt,{size:4,direction:"horizontal"}),q.createElement(et,{width:60,height:10,variant:"rounded"}),q.createElement(Nt,{size:4,direction:"horizontal"}),q.createElement(et,{width:60,height:10,variant:"rounded"})),o&&q.createElement(et,{height:22,width:100,variant:"rounded"})),e==="basic"&&q.createElement(ap,null,q.createElement(et,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(lp,null,q.createElement(pp,null,q.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(Nt,{direction:"horizontal",size:4}),q.createElement(et,{height:15,width:150,variant:"rounded"})),q.createElement(Nt,{size:4}),q.createElement(et,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(Nt,{size:4}),q.createElement(fp,null,n,q.createElement(cp,null),n)))}i(go,"QuoteSummarySkeleton");import{ChainToken as kp,Divider as di,NextIcon as Pf,Skeleton as Pn}from"@rango-dev/ui";import ae from"react";import{styled as ho}from"@rango-dev/ui";var hp=ho("div",{display:"flex",alignItems:"start"}),yp=ho("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),mi=ho("div",{display:"flex",alignItems:"center",flexGrow:1}),Sp=ho("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Cp=ho("div",{display:"flex",alignItems:"center"});function tt(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(Cp,null,ae.createElement(Pn,{height:22,width:22,variant:"circular"}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:15,width:148,variant:"rounded"})),ae.createElement(hp,null,ae.createElement(rp,{hideSeparator:!e}),ae.createElement(yp,null,ae.createElement(mi,null,ae.createElement(kp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})),ae.createElement(Sp,null,ae.createElement(Pf,{color:"gray",size:16})),ae.createElement(mi,null,ae.createElement(kp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})))))}i(tt,"StepSkeleton");function fi(t){let{type:e,expanded:o,tag:n=!1}=t;return pt.createElement(tp,{rounded:e!=="basic"},pt.createElement(go,{type:e,tag:n}),pt.createElement(op,null,pt.createElement(Mf,{height:15,variant:"rounded"})),o&&pt.createElement(np,null,pt.createElement($f,{size:20}),pt.createElement(tt,null),pt.createElement(tt,null),pt.createElement(tt,{separator:!1})))}i(fi,"QuoteSkeleton");import{i18n as tg}from"@lingui/core";import{Alert as og,Button as ng,InfoIcon as rg}from"@rango-dev/ui";import Be from"react";import{Alert as _f,Button as Df,Divider as bp,NoRouteIcon as Ff,RefreshIcon as Of,Typography as Ip}from"@rango-dev/ui";import He from"react";import{i18n as Tp}from"@lingui/core";function wp(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:Q().genericServerError,action:{onClick:n,title:Tp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:Q().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Tp.t("Reset")}},description:Q().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:Q().noResultError.description}}i(wp,"makeInfo");import{styled as gi}from"@rango-dev/ui";var xp=gi("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),vp=gi("div",{width:"100%"}),Ap=gi("div",{padding:"$6 $0"});function hi(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=wp(o,n,()=>r(s,!0),e);return He.createElement(xp,null,He.createElement(Ff,{size:24,color:"gray"}),He.createElement(bp,{size:4}),He.createElement(Ip,{variant:"title",size:"small"},Q().noResultError.title),!!a.description&&He.createElement(Ip,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),He.createElement(bp,{size:4}),!!a.alert&&He.createElement(vp,null,He.createElement(_f,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&He.createElement(Df,{size:"xsmall",type:a.alert.type,prefix:He.createElement(Ap,null,He.createElement(Of,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(hi,"NoResult");import{i18n as yo}from"@lingui/core";import{Button as qf,Divider as Pp,MessageBox as zf,Modal as Gf,Typography as Hf,WarningIcon as Qf}from"@rango-dev/ui";import ot from"react";import{Typography as Np}from"@rango-dev/ui";import Si from"react";import{darkTheme as Uf,styled as $n}from"@rango-dev/ui";var Ep=$n("div",{width:"100%",paddingTop:"$10"}),yi=$n("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Wp=$n("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Uf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Bp=$n("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Lp(t){let{title:e,value:o,valueColor:n}=t;return Si.createElement(Wp,null,Si.createElement(Np,{size:"medium",variant:"label",className:"_title"},e),Si.createElement(Np,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Lp,"QuoteErrorsModalItem");function $p(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:yo.t("Swapping"),value:W(r.inputUsdValue,4,4)},{title:yo.t("Gas cost"),value:W(r.totalFee,2,2)},{title:yo.t("Receiving"),value:W(r.outputUsdValue,4,4)},{title:yo.t("Price impact"),value:W(r.priceImpact,2,2),valueColor:`${s}500`}];return ot.createElement(Gf,{open:e,onClose:o,container:O()},ot.createElement(zf,{type:s,title:Q().highValueLossError.impactTitle,description:Q().highValueLossError.description}),ot.createElement(yi,null,ot.createElement(Pp,{size:20}),ot.createElement(Hf,{size:"small",variant:"title"},yo.t("Details")),ot.createElement(yi,null,a.map((l,p)=>ot.createElement(Lp,{key:p,...l})))),ot.createElement(Pp,{size:32}),ot.createElement(qf,{type:"primary",size:"large",prefix:ot.createElement(Qf,null),fullWidth:!0,onClick:n},Q().highValueLossError.confirmMessage))}i($p,"HighValueLossWarningModal");import{i18n as Ci}from"@lingui/core";function Mp(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(at(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=Q().highValueLossError.title),t.type===1&&(o.title=Q().unknownPriceError.title),t.type===2&&(o.title=Ci.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Ci.t("Caution, your slippage is high.")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action="show-info"),e.type===4&&(o.title=Ci.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):null}i(Mp,"makeAlerts");import{i18n as Vt}from"@lingui/core";import{Button as _p,Divider as Dp,MessageBox as Vf,Modal as jf,Typography as Xf}from"@rango-dev/ui";import Lt from"react";import{useNavigate as Kf}from"react-router-dom";function Fp(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=Kf(),p=e??o;return Lt.createElement(jf,{anchor:"bottom",open:n,prefix:Lt.createElement(_p,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},Lt.createElement(Xf,{variant:"label",size:"medium",color:"$neutral900"},Vt.t("Change settings"))),container:O(),onClose:r},Lt.createElement(Vf,{type:"warning",title:a.type===3?Vt.t("High slippage"):Vt.t("Low slippage"),description:a.type===3?Vt.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Vt.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Lt.createElement(Dp,{size:18}),Lt.createElement(Dp,{size:32}),Lt.createElement(_p,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Vt.t("Confirm anyway"))))}i(Fp,"SlippageWarningModal");import{Button as Yf,Divider as Jf,MessageBox as Zf,Modal as Rf,WarningIcon as eg}from"@rango-dev/ui";import So from"react";function Op(t){let{open:e,onClose:o,onConfirm:n}=t;return So.createElement(Rf,{open:e,onClose:o,container:O()},So.createElement(Zf,{type:"warning",title:Q().unknownPriceError.impactTitle,description:Q().unknownPriceError.description}),So.createElement(Jf,{size:32}),So.createElement(Yf,{type:"primary",size:"large",prefix:So.createElement(eg,null),fullWidth:!0,onClick:n},Q().unknownPriceError.confirmMessage))}i(Op,"UnknownPriceWarningModal");function ki(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:s,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,u={open:r,onClose:a,onConfirm:l},m=o?.type===0||o?.type===1,c=Mp(e,o?.type===3||o?.type===4?o:null);return Be.createElement(Be.Fragment,null,m&&Be.createElement(hi,{error:o,fetch:n}),!!c&&Be.createElement(Ep,null,Be.createElement(og,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Be.createElement(Bp,{onClick:s},Be.createElement(rg,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Be.createElement(ng,{size:"xxsmall",type:c.alertType,onClick:p},tg.t("Change"))}})),e&&Be.createElement(Be.Fragment,null,e.type===0&&Be.createElement($p,{...u,warning:e}),(e.type===3||e.type===2)&&Be.createElement(Fp,{...u,warning:e}),e.type===1&&Be.createElement(Op,{...u,warning:e})))}i(ki,"QuoteWarningsAndErrors");function Co(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:x,inputUsdValue:h,outputUsdValue:y,outputAmount:A}=U(),w=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,b=(s||r)&&_e.createElement(ki,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c});return _e.createElement(_e.Fragment,null,n&&_e.createElement(ni,null,_e.createElement(Ml,{paddingTop:f==="top"},_e.createElement(fi,{type:o,expanded:g}))),f==="top"&&_e.createElement($l,null,b),w?_e.createElement(ni,null,_e.createElement(ci,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:x,usdValue:h?.toString()??""},output:{value:A?.toString()??"",usdValue:y?.toString()??""}})):null,f==="bottom"&&_e.createElement(_e.Fragment,null,!s&&!r&&_e.createElement(ig,{size:16}),b))}i(Co,"QuoteInfo");import{calculatePendingSwap as lg}from"@rango-dev/queue-manager-rango-preset";import{useEffect as pg}from"react";import{useRef as sg,useState as ag}from"react";function Mn(){let[t,e]=ag(!1),o=sg(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Dt().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(Mn,"useFetchQuote");function _n(t){if(!t.result)throw new Error(Q().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(br(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=Ir(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=Wr(t);if(o){let n=tn(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(_n,"throwErrorIfResponseIsNotValid");function Up(t,e,o){let n=!1;t&&(n=Aa(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=nn(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(ga(t,e)?r.quoteUpdate={type:3,newOutputAmount:W(Ut(e)),percentageChange:W($e(Ut(t)??"",Ut(e)??""),null,2)}:Nr(t,e)?r.quoteUpdate={type:0}:Lr(t,e)?r.quoteUpdate={type:1}:Pr(t,e)&&(r.quoteUpdate={type:2}));let a=ha(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Up,"generateWarnings");function Dn(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Dn,"handleQuoteErrors");function Ti(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=U(),{slippage:l,customSlippage:p,affiliatePercent:u,affiliateRef:m,affiliateWallets:c,disabledLiquiditySources:g}=d(),{connectedWallets:f}=z(),x=d().blockchains(),h=d().tokens(),{features:y}=d().config,{enableNewLiquiditySources:A}=d().config,T=p||l,{fetch:w,cancelFetch:b,loading:S}=Mn();return pg(()=>b,[]),{loading:S,fetch:i(async I=>{let C=I.selectedWallets,$=I?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=on({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:C,excludeLiquiditySources:A,disabledLiquiditySources:g,slippage:T,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:$});Ko("experimentalRoute",y)&&(N.experimental=!0);let L;try{L=await w(N).then(G=>_n(G)),n(L)}catch(G){return Dn(G)}let k={slippage:T.toString(),disabledSwappersGroups:g},M=lg(o.toString(),L,da(C),k,!1,{blockchains:x,tokens:h}),E=Up(r??void 0,L,{fromToken:t,toToken:e,meta:{blockchains:x,tokens:h},selectedWallets:C,userSlippage:T});return E.quoteUpdate&&a(!1),{quote:L,swap:M,error:null,warnings:E}},"fetch"),cancelFetch:b}}i(Ti,"useConfirmSwap");var Tg=Hp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),wg=Hp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Gp}`]:{width:"$48",height:"$48"}}),xg=wi({flexGrow:1,paddingRight:"$10"}),vg=wi({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Ag=wi({display:"flex",justifyContent:"space-between",alignItems:"center"});function Qp(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=U(),l=kg(),[p,u]=On(""),{connectedWallets:m}=z(),c=!n,[g,f]=On(!1),x=Ae.use.setSelectedSwap(),h=d().disabledLiquiditySources,y=Sg(h),{manager:A}=ug(),{fetch:T,loading:w,cancelFetch:b}=Ti(),[S,v]=On({swap:null,error:null,warnings:null}),[I,C]=On(!1),$=i(async({selectedWallets:E,customDestination:G})=>{let J=await T?.({selectedWallets:E,customDestination:G});return v(J),J},"onConfirmSwap"),N=i(async()=>{if(S.swap&&n)try{await A?.create("swap",{swapDetails:S.swap},{id:S.swap.requestId}),x(S.swap.requestId);let E=`../${_.swaps}/${S.swap.requestId}`;l(E,{replace:!0}),setTimeout(()=>{e("")},0)}catch(E){u("Error: "+E?.message)}},"addNewSwap"),L=i(async()=>{await N()},"onConfirm"),k=i(async()=>{S?.warnings?.quote&&!a?C(!0):await L()},"onStartConfirmSwap"),M=i(async()=>{v({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:s}).then(E=>{v(E)}).catch(E=>console.error(E))},"onRefresh");return ko(()=>{!!y.current.length&&!h.length&&M(),y.current=h},[h.length]),ko(()=>{c&&b()},[c]),ko(()=>{c&&f(c)},[c]),ko(()=>{c||T({selectedWallets:o,customDestination:s}).then(E=>v(E)).catch(E=>console.error(E))},[]),ko(()=>{let E=S.warnings?.quote?.type&&Object.values(ft).includes(S.warnings?.quote?.type),G=o.length<1||!o.every(te=>m.find(H=>te.address===H.address&&te.walletType===H.walletType&&te.chain===H.chain)),J=!1;if(E){let te=Yo(t),H=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(Se=>Se.from.blockchain===H)||(te=te.slice(-te.length,te.length-1)),te.every(Se=>o.find(Ce=>Ce.chain===Se))||(J=!0)}t&&(G||J)&&(queueMicrotask(()=>Cg(f.bind(null,!0))),r(!1))},[S.warnings?.quote,o.length,m.length]),yg(()=>{t||l("../")},[]),ee.createElement(X,{header:{title:Fn.t("Confirm Swap"),onWallet:()=>{let E=`../${_.wallets}`;l(E)},suffix:ee.createElement(fg,{container:O(),side:"bottom",content:Fn.t("Settings")},ee.createElement(Ue,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},ee.createElement(dg,{size:18,color:"black"})))},footer:ee.createElement(wg,null,ee.createElement("div",{className:xg()},ee.createElement(zp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w,disabled:!!S.error,onClick:k},Fn.t("Start Swap"))),ee.createElement(Gp,{variant:"contained",type:"primary",size:"large",loading:w,onClick:f.bind(null,!0)},ee.createElement(hg,{size:24})))},g&&ee.createElement(Pl,{open:g,onClose:()=>f(!1),onCancel:b,loading:w,onCheckBalance:$}),ee.createElement(Tg,null,ee.createElement("div",{className:Ag()},ee.createElement(gg,{variant:"title",size:"small"},Fn.t("You get")),ee.createElement(zp,{style:{padding:"0"},variant:"ghost",disabled:w,onClick:M},ee.createElement("div",{className:vg()},ee.createElement(mg,{size:16})))),p&&ee.createElement(ee.Fragment,null,ee.createElement(qp,{type:"error",variant:"alarm",title:p}),ee.createElement(cg,{size:12})),S.warnings?.quoteUpdate&&ee.createElement("div",{className:"quote-update__alert"},ee.createElement(qp,{variant:"alarm",type:"warning",title:S.warnings.quoteUpdate&&dn(S.warnings.quoteUpdate)})),ee.createElement(Co,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:S.error,loading:w,warning:S.warnings?.quote??null,refetchQuote:M,showWarningModal:I,onOpenWarningModal:()=>C(!0),onCloseWarningModal:()=>C(!1),onConfirmWarningModal:async()=>{C(!1),await N()},onChangeSettings:()=>l("../"+_.settings)})))}i(Qp,"ConfirmSwapPage");import{i18n as zn}from"@lingui/core";import{useManager as Pg}from"@rango-dev/queue-manager-react";import{Divider as $g,NotFound as Mg,styled as eu}from"@rango-dev/ui";import Tt,{useState as _g}from"react";import{useNavigate as Dg}from"react-router-dom";import{CloseIcon as Ig,IconButton as Eg,SearchIcon as Wg,TextField as Bg}from"@rango-dev/ui";import To from"react";import{styled as bg}from"@rango-dev/ui";var Vp=bg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function ut(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return To.createElement(Bg,{prefix:To.createElement(Vp,null,To.createElement(Wg,{color:"black"})),suffix:!!a.length&&To.createElement(Eg,{variant:"ghost",onClick:()=>l?.(""),size:"small"},To.createElement(Ig,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(ut,"SearchInput");import{i18n as Xp}from"@lingui/core";import{Divider as Kp,SwapListItem as Yp,Typography as Jp}from"@rango-dev/ui";import Z from"react";import{css as Ng,darkTheme as Lg,styled as Un}from"@rango-dev/ui";var qn=Ng(),xi=Un("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${qn}`]:{$$color:"$colors$neutral600",[`.${Lg} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vi=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Ai=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),jp=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function bi(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return Z.createElement(Z.Fragment,null,[{title:"Today",swaps:a},{title:"This month",swaps:a}].map(p=>Z.createElement(Z.Fragment,{key:p.title},Z.createElement(xi,null,Z.createElement(vi,null,Z.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(p.title))),Z.createElement(Kp,{size:4}),Z.createElement(Ai,null,p.swaps.map((u,m)=>{let c=m+p.title;return Z.createElement(Z.Fragment,{key:c},Z.createElement(Yp,{isLoading:!0}))}))))))}return Z.createElement(Z.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>Z.createElement(Z.Fragment,{key:a.title},Z.createElement(xi,null,Z.createElement(vi,null,Z.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(a.title))),Z.createElement(Kp,{size:4}),Z.createElement(Ai,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return Z.createElement(Z.Fragment,{key:l.requestId},Z.createElement(Yp,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",tooltipContainer:O(),swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:l.inputAmount},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:W(u.outputAmount||u.expectedOutputAmountHumanReadable||""),realAmount:se(u.outputAmount||u.expectedOutputAmountHumanReadable)}}}))}))))))}i(bi,"SwapsGroup");import Zp from"dayjs";var Rp=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}]]);function o(r,s){e.has(r)||e.set(r,{title:r,swaps:[]}),e.get(r)?.swaps.push(s)}i(o,"addYearsToOutput");let n=Zp();return t.forEach(r=>{let s=Number(r.creationTime),a=Zp(s);if(n.isSame(a,"day"))e.get("today")?.swaps.push(r);else if(n.isSame(a,"week"))e.get("week")?.swaps.push(r);else if(n.isSame(a,"month"))e.get("month")?.swaps.push(r);else if(n.isSame(a,"year"))e.get("year")?.swaps.push(r);else{let l=new Date(s).getFullYear().toString();o(l,r)}}),Array.from(e.values())},"groupSwapsByDate");var jt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");var Fg=eu("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Og=eu("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Ug=i((t,e)=>t?.length?t.filter(o=>Ke(o.fromBlockchain,e)||Ke(o.toBlockchain,e)||Ke(o.toSymbol,e)||Ke(o.fromSymbol,e)).length:!1,"isStepContainsText");function tu(){let t=Ae.use.setSelectedSwap(),e=Dg(),{manager:o,state:n}=Pg(),r=jt(o).map(({swap:c})=>c),[s,a]=_g(""),l=!n.loadedFromPersistor,p=i(c=>{let g=c.target.value;a(g)},"searchHandler"),u=r;s&&(u=r.filter(c=>Ke(c.inputAmount,s)||Ke(c.status,s)||Ug(c.steps,s)||Ke(c.requestId,s)));let m=!u?.length&&!l;return Tt.createElement(X,{header:{title:zn.t("History")}},Tt.createElement(Fg,null,Tt.createElement(ut,{setValue:a,fullWidth:!0,variant:"contained",placeholder:zn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),Tt.createElement(Og,null,m&&Tt.createElement(jp,null,Tt.createElement($g,{size:32}),Tt.createElement(Mg,{title:zn.t("No results found"),description:s?zn.t("Try using different keywords"):""})),!m&&Tt.createElement(bi,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:Rp,isLoading:l}))))}i(tu,"HistoryPage");import{i18n as Wi}from"@lingui/core";import{Button as jg,styled as Bi,SwapInput as iu,WarningIcon as Xg}from"@rango-dev/ui";import De,{useEffect as Kg,useRef as Yg,useState as Jg}from"react";import{useNavigate as Zg}from"react-router-dom";import{ReverseIcon as qg,styled as ou}from"@rango-dev/ui";import Ii from"react";var zg=ou("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gg=ou("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function nu(){let t=U.use.switchFromAndTo();return Ii.createElement(zg,null,Ii.createElement(Gg,{onClick:()=>{t()}},Ii.createElement(qg,{size:12})))}i(nu,"SwitchFromAndToButton");import{useCallback as Hg,useEffect as Qg,useState as Ei}from"react";var Vg=600;function ru(){let{fetch:t,cancelFetch:e}=Mn(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,resetQuote:m,setQuote:c}=U(),{slippage:g,customSlippage:f,affiliatePercent:x,affiliateRef:h,affiliateWallets:y,disabledLiquiditySources:A}=d(),[T,w]=Ei(!1),[b,S]=Ei(null),[v,I]=Ei(null),C=f??g,N=!a||!l||Le(a,l)||!no(p),L=i(E=>{w(E),S(null),I(null)},"resetState"),k=i(E=>{let{fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:ye,slippage:Se,affiliateRef:Ce,affiliatePercent:Mt,affiliateWallets:oo}=E;if(T||L(!0),!N&&G&&J){m();let it=on({fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:ye,slippage:Se,affiliateRef:Ce,affiliatePercent:Mt,affiliateWallets:oo});Ko("experimentalRoute",r)&&(it.experimental=!0),t(it).then(Xe=>{w(!1),c(Xe),_n(Xe);let D=nn(Xe,{fromToken:G,toToken:J,userSlippage:C,tokens:s});I(D)}).catch(Xe=>{let{error:D}=Dn(Xe);(D?.type===0||D?.type===1)&&m(),D?.type!==2&&(S(D),w(!1))})}},"fetch"),M=Hg(js(E=>{N||k(E)},Vg),[N]);return Qg(()=>{if(!no(p)||u?.eq(0)){L(!1),e();return}if(!N)return m(),L(!0),M({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:A,slippage:C,affiliateRef:h,affiliatePercent:x,affiliateWallets:y}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,N,o?.length,n,A.length,C,h,x,JSON.stringify(y)]),{fetch:()=>k({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:A,slippage:C,affiliateRef:h,affiliatePercent:x,affiliateWallets:y}),loading:T,error:b,warning:v}}i(ru,"useSwapInput");var Rg=Bi("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),eh=Bi("div",{position:"relative"}),th=Bi("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function su(){let t=Zg(),{fetch:e,loading:o,error:n,warning:r}=ru(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:g,outputUsdValue:f,quote:x,resetQuoteWallets:h,setQuoteWarningsConfirmed:y}=U(),A=d().fetchStatus,{connectedWallets:T,getBalanceFor:w}=z(),b=Ae.use.setCurrentPage(),[S,v]=Jg(!1),I=Yg(null),C=!!a&&zs(T,a.name),$=!1,N=!Er(x,m,c),L=!Er(x,m,f),k=ua({fetchMetaStatus:A,fetchingQuote:o,inputAmount:m,quote:x,anyWalletConnected:T.length>0,error:n,warning:r,needsToWarnEthOnPath:$}),M=s?w(s):null,E=Ho(M)?.amount??"0",G=a&&s?W(M?.amount,M?.decimals):"0";Kg(()=>(b(_.home),h(),b.bind(null,"")),[]);let J=!c||!f||!f.gt(0)?null:$e(c.toString(),f.toString());return De.createElement(X,{ref:I,fixedHeight:!1,hasLogo:!0,footer:De.createElement(jg,{type:"primary",size:"large",disabled:k.disabled,prefix:k.action==="confirm-warning"&&De.createElement(Xg,null),fullWidth:!0,onClick:()=>{k.action==="connect-wallet"?t(_.wallets):k.action==="confirm-warning"?v(!0):t(_.confirmSwap)}},k.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:Wi.t("Swap"),suffix:De.createElement(Xr,{layoutRef:I.current,onClickRefresh:x||n?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},De.createElement(Rg,null,De.createElement(th,null,De.createElement(eh,null,De.createElement(iu,{label:Wi.t("From"),mode:"From",onInputChange:u,balance:E,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:N?void 0:W(c,4,4),realUsdValue:N?void 0:se(c),error:N?Q().unknownPriceError.impactTitle:void 0},disabled:A==="failed",loading:A==="loading",loadingBalance:C,tooltipContainer:O(),onSelectMaxBalance:()=>{E!=="0"&&u(G.split(",").join(""))}}),De.createElement(nu,null)),De.createElement(iu,{sharpBottomStyle:!!x?.result||o,label:Wi.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:W($e(c,f),2,2),warningLevel:at(J??0),price:{value:W(g,6,6),usdValue:L?void 0:W(f,4,4),realValue:se(g),realUsdValue:L?void 0:se(f),error:L?Q().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(_.toSwap),disabled:A==="failed",loading:A==="loading",tooltipContainer:O()})),De.createElement("div",{className:"quote__container"},De.createElement(Co,{quote:x,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:S,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),y(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(su,"Home");import{i18n as au}from"@lingui/core";import{List as oh,ListItemButton as nh,Radio as rh,RadioRoot as ih,Typography as sh}from"@rango-dev/ui";import wt from"react";import{styled as Gn}from"@rango-dev/ui";var ct=Gn("div",{height:"100%",overflow:"hidden"}),wo=Gn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),Ni=Gn("div",{width:80,display:"flex",justifyContent:"flex-end"}),Li=Gn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Hn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:Ys,defaultLanguage:Ot,changeLanguage:r=>t(r||Ot)}}i(Hn,"useLanguage");function lu(){let{activeLanguage:t,changeLanguage:e,languages:o}=Hn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:wt.createElement(sh,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:wt.createElement(rh,{value:s}),start:wt.createElement(l,null)}});return wt.createElement(X,{header:{title:au.t("Language")}},wt.createElement(ct,null,wt.createElement(ih,{value:t},wt.createElement(oh,{type:wt.createElement(nh,{title:au.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(lu,"LanguagePage");import{i18n as Xt}from"@lingui/core";import{Button as ch,Checkbox as mh,Image as dh,ListItemButton as fh,NotFound as gh,Typography as hh}from"@rango-dev/ui";import ke,{useState as yh}from"react";import{Checkbox as ph,Skeleton as uu}from"@rango-dev/ui";import xo from"react";import{ListItem as ah,styled as lh}from"@rango-dev/ui";var pu=lh(ah,{height:61});var uh=30;function Pi(){return xo.createElement(wo,null,Array.from(Array(uh),t=>xo.createElement(pu,{hasDivider:!0,key:t,start:xo.createElement(uu,{variant:"circular",width:35,height:35}),title:xo.createElement(uu,{variant:"text",size:"large",width:90}),end:xo.createElement(ph,{checked:!1})})))}i(Pi,"LoadingLiquiditySourceList");function $i({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=yh(""),a=d().toggleLiquiditySource,l=Xo(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let u=l.filter(h=>p.includes(h.type)),m=u.length===u.filter(h=>h.selected).length,c=i(()=>{u.forEach(h=>{m?a(h.groupTitle):h.selected||a(h.groupTitle)})},"toggleAllSources"),g=u.map(h=>{let{selected:y,groupTitle:A,logo:T}=h;return{start:ke.createElement(dh,{src:T,size:22,type:"circular"}),onClick:()=>a(A),end:ke.createElement(mh,{checked:y}),title:ke.createElement(hh,{variant:"title",size:"xmedium"},Xt.t(A)),...h}}),f=i(h=>{let y=h.target.value;s(y)},"searchHandler"),x=g;return r&&(x=g.filter(h=>Ke(h.groupTitle,r))),ke.createElement(X,{header:{title:Xt.t(t),suffix:ke.createElement(Ni,null,ke.createElement(ch,{variant:"ghost",size:"xsmall",onClick:c},Xt.t(m?"Deselect all":"Select all")))}},ke.createElement(ct,null,ke.createElement(ut,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&ke.createElement(Pi,null),!x.length&&r?ke.createElement(Li,null,ke.createElement(gh,{title:Xt.t("No results found"),description:Xt.t("Try using different keywords")})):e==="success"&&ke.createElement(wo,null,x.map(h=>ke.createElement(ke.Fragment,{key:h.id},ke.createElement(fh,{style:{height:"61px"},...h,selected:!1,hasDivider:!0}))))))}i($i,"LiquiditySourcePage");import{i18n as Su}from"@lingui/core";import{Divider as Fi,getCountCategories as Ih,SelectableCategoryList as Eh}from"@rango-dev/ui";import mt,{useState as Cu}from"react";import{i18n as _i}from"@lingui/core";import{Divider as hu,Image as wh,ListItemButton as xh,NotFound as vh,Typography as yu}from"@rango-dev/ui";import Fe,{useEffect as Ah,useState as bh}from"react";import{BlockchainCategories as Mi}from"@rango-dev/ui";import{TransactionType as Qn}from"rango-sdk";var Sh=i((t,e)=>{switch(e){case Mi.ALL:return!0;case Mi.UTXO:return t.type===Qn.TRANSFER;case Mi.OTHER:return t.type!==Qn.TRANSFER&&t.type!==Qn.COSMOS&&t.type!==Qn.EVM;default:return t.type===e}},"filterByType"),cu=i((t,e,o)=>t.filter(n=>Sh(n,o)).filter(n=>At(n.name,e)||At(n.displayName,e)),"filterBlockchains");import{ImageContainer as Ch,styled as mu}from"@rango-dev/ui";var du=mu("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vn=mu("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${Ch}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as kh,Skeleton as fu}from"@rango-dev/ui";import jn from"react";var Th=20;function gu(){return jn.createElement(Vn,null,Array.from(Array(Th),t=>jn.createElement(kh,{key:t,hasDivider:!0,start:jn.createElement(fu,{variant:"circular",width:35,height:35}),title:jn.createElement(fu,{variant:"text",size:"large",width:90})})))}i(gu,"LoadingBlockchainList");function Di(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=bh(e),{fetchStatus:l}=d();Ah(()=>{a([...cu(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Fe.createElement(Fe.Fragment,null,Fe.createElement(hu,{size:32}),Fe.createElement(vh,{title:_i.t("No results found"),description:_i.t("Try using different keywords")})):Fe.createElement(Vn,{key:`${r}-${o}`},s.map(u=>Fe.createElement(xh,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Fe.createElement(wh,{src:u.logo,size:30}),title:Fe.createElement(yu,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Fe.createElement(du,null,Fe.createElement(yu,{variant:"label",size:"large"},_i.t("Select Blockchain")),Fe.createElement(hu,{size:4}),l==="loading"&&Fe.createElement(gu,null),l==="success"&&p())}i(Di,"BlockchainList");function Oi(t){let{type:e}=t,o=St(),[n,r]=Cu(""),[s,a]=Cu("ALL"),l=U.use.setToBlockchain(),p=U.use.setFromBlockchain(),u=d().fetchStatus,m=d().blockchains({type:e}),g=Ih(m)!==1;return mt.createElement(X,{header:{title:Su.t("Select Blockchain")}},mt.createElement(Fi,{size:12}),g&&mt.createElement(mt.Fragment,null,mt.createElement(Eh,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),mt.createElement(Fi,{size:24})),mt.createElement(ut,{value:n,autoFocus:!0,placeholder:Su.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),mt.createElement(Fi,{size:16}),mt.createElement(Di,{list:m,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(Oi,"SelectBlockchainPage");import{i18n as Ou}from"@lingui/core";import{Divider as Uu}from"@rango-dev/ui";import Jt,{useState as Vh}from"react";import{useNavigate as jh}from"react-router-dom";import{i18n as zi}from"@lingui/core";import{BlockchainsChip as Xn,Divider as xu,Image as vu,Skeleton as Ph,Tooltip as $h,Typography as Gi}from"@rango-dev/ui";import le from"react";import{useEffect as Nh}from"react";var ku=["ETH","COSMOS","OSMOSIS"];function Ui(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Wh),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];a=a.filter(m=>u.name!==m)}}n.sort(Bh(a)),r=n.splice(s)}return{list:n,more:r}}i(Ui,"prepare");function Wh(t,e){let o=ku,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(Wh,"sortByMostUsedBlockchains");function Bh(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Bh,"generateSortByPreferredBlockchainsFor");function Tu(t,e){return!!e.list.find(o=>o.name===t)}i(Tu,"isInVisibleList");function qi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();Nh(()=>{if(e?.selected){let s=Ui(t,o,e);Tu(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Ui(t,o,e);return{list:r.list,more:r.more,history:[]}}i(qi,"usePrepareBlockchainList");import{styled as Lh}from"@rango-dev/ui";var wu=Lh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Mh=12;function Hi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=qi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=a.more.length>0,c=a.more.length===1,g=!c&&m;return le.createElement(le.Fragment,null,le.createElement(xu,{size:12}),le.createElement(Gi,{variant:"label",size:"large"},zi.t("Select Blockchain")),le.createElement(xu,{size:12}),le.createElement(wu,null,l==="loading"&&Array.from(Array(Mh),f=>le.createElement(Ph,{key:f,variant:"rounded",height:50})),l==="success"&&le.createElement(le.Fragment,null,le.createElement(Xn,{selected:!n,onClick:()=>{o==="from"?u():p()}},le.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi.t("All"))),a.list.map(f=>le.createElement($h,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:O()},le.createElement(Xn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},le.createElement(vu,{src:f.logo,size:30})))),c?le.createElement(Xn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},le.createElement(vu,{src:a.more[0].logo,size:30})):null,g?le.createElement(Xn,{onClick:s,key:"more-blockchains"},le.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi._("More +{count}",{count:a.more.length}))):null)))}i(Hi,"BlockchainsSection");import{i18n as es}from"@lingui/core";import{darkTheme as $u,Divider as Yt,ExternalLinkIcon as Fh,Image as Oh,ListItemButton as Uh,NotFound as qh,PinIcon as zh,Skeleton as Mu,Typography as Jn,VirtualizedList as Gh}from"@rango-dev/ui";import F,{forwardRef as Hh,useEffect as _u,useState as Du}from"react";import{Divider as Lu,ListItem as Dh,Skeleton as vo}from"@rango-dev/ui";import Ve from"react";import{css as Kt,darkTheme as Au,ImageContainer as _h,styled as Qe,Typography as bu}from"@rango-dev/ui";var Qi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vi=Kt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ji=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Xi=Kt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Au} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ki=Kt({}),Yi=Kt(),Iu=Qe("div",{display:"flex",flexDirection:"column",flexGrow:1}),Ji=Qe("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kn=Qe("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Vi}`]:{[`& .${Xi}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ki}`]:{bottom:"-15px"},[`& .${Qi}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ji}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Zi=Qe("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ri=Qe(bu,{}),Eu=Qe("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Yi}`]:{$$color:"$colors$neutral600",[`.${Au} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yn=Qe("div",{display:"flex",alignItems:"end",flexDirection:"column"}),CN=Qe("div",{display:"flex",alignItems:"center"}),Wu=Qe("div",{position:"relative",[`& ${_h}`]:{borderRadius:"$xm",overflow:"hidden"}}),Bu=Qe("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Nu=Qe(bu,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Pu(t){return Ve.createElement(Kn,null,Array.from(Array(t.size),e=>Ve.createElement(Dh,{key:e,hasDivider:!0,start:Ve.createElement(vo,{variant:"circular",width:35,height:35}),end:Ve.createElement(Yn,null,Ve.createElement(vo,{variant:"text",size:"large",width:70}),Ve.createElement(Lu,{size:4}),Ve.createElement(vo,{variant:"text",size:"medium",width:50})),title:Ve.createElement("div",null,Ve.createElement(vo,{variant:"text",size:"large",width:90}),Ve.createElement(Lu,{size:4}),Ve.createElement(vo,{variant:"text",size:"medium",width:90}))})))}i(Pu,"LoadingTokenList");var ts=20,Qh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return F.createElement("div",{className:Vi()},o?F.createElement("div",{className:Qi()},o):F.createElement(Ji,{className:ji()},F.createElement(Jn,{variant:"title",size:"xmedium"},r.symbol),F.createElement(Yt,{direction:"horizontal",size:4}),F.createElement(Zi,{css:s},F.createElement(Ri,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&F.createElement("div",{className:`${Xi()} ${!o&&Ki()}`},F.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",F.createElement(Yt,{size:4,direction:"horizontal"}),F.createElement(Fh,{color:"gray",size:12}))))},"renderDesc");function Fu(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=Du(e),l=d().fetchStatus,p=d().blockchains(),[u,m]=Du(!0),{getBalanceFor:c,loading:g}=z(),{isTokenPinned:f}=d(),x=Hh((A,T)=>F.createElement("div",{...A,ref:T,style:{...A.style,height:`${parseFloat(A.style?.height)+8*2}px`}})),h=i(()=>{a(e.slice(0,s.length+ts))},"loadNextPage");_u(()=>{m(e.length>s.length)},[s.length]),_u(()=>{a(e.slice(0,ts))},[e]);let y=i(()=>!s.length&&o?F.createElement(F.Fragment,null,F.createElement(Yt,{size:32}),F.createElement(qh,{title:es.t("No results found"),description:es.t("Try using different keywords")})):F.createElement(Gh,{Item:({index:A,style:T})=>{let w=s[A],b=Ho(c(w)),S=w.address||"",v=p.find(N=>N.name===w.blockchain),I=yn(w.symbol,v?.color||""),C={$$color:I[`${w.symbol}100`],[`.${$u} &`]:{$$color:I[`${w.symbol}900`]},backgroundColor:"$$color"},$={$$color:I[`${w.symbol}700`],[`.${$u} &`]:{$$color:I[`${w.symbol}100`]},color:"$$color"};return F.createElement("div",{style:{...T,paddingRight:5}},F.createElement(Uh,{style:{height:T?.height,width:"100%",overflow:"hidden"},"tab-index":A,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,hasDivider:!0,onClick:()=>n(s[A]),start:F.createElement(Wu,null,F.createElement(Oh,{src:w.image,size:30}),f(w,t.type)&&F.createElement(Bu,null,F.createElement(zh,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||w.name||!w.name&&!S?F.createElement(Ji,null,F.createElement(Jn,{variant:"title",size:"xmedium"},w.symbol),F.createElement(Yt,{direction:"horizontal",size:4}),F.createElement(Zi,{css:C},F.createElement(Ri,{variant:"body",size:"xsmall",css:$},w.blockchain))):void 0,description:v?.info&&S&&v.type!=="COSMOS"?Qh({address:S,token:s[A],customCssForTag:C,customCssForTagTitle:$,name:w.name,url:v.info.addressUrl.split("{wallet}").join(S)}):w.name||void 0,end:g?F.createElement(Yn,null,F.createElement(Mu,{variant:"text",size:"large",width:70}),F.createElement(Yt,{size:4}),F.createElement(Mu,{variant:"text",size:"medium",width:50})):b&&F.createElement(Eu,null,F.createElement(Nu,{variant:"title",size:"small"},b.amount),F.createElement("div",null),b.usdValue&&F.createElement(Jn,{variant:"body",className:Yi(),size:"xsmall"},`$${b.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:h,innerElementType:x,size:60,key:`${r}-${o}`}),"renderList");return F.createElement(Iu,null,F.createElement(Jn,{variant:"label",size:"large"},es.t("Select Token")),F.createElement(Yt,{size:4}),l==="loading"&&F.createElement(Pu,{size:ts}),l==="success"&&F.createElement(Kn,null,y()))}i(Fu,"TokenList");function os(t){let{type:e}=t,o=jh(),n=St(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=z.use.getBalanceFor(),[c,g]=Vh(""),{isTokenPinned:f}=d(),h=(e==="source"?r:s)?.name??"",y=d().blockchains({type:e}),A=d().tokens({type:e,blockchain:h,searchFor:c}),w=Os(A,m,i(v=>f(v,e),"checkIsTokenPinned")),b=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),S=i(v=>{e==="source"?a({token:v,meta:{blockchains:y,tokens:A}}):l({token:v,meta:{blockchains:y,tokens:A}})},"updateToken");return Jt.createElement(X,{header:{title:Ou.t("Swap {type}",{type:e})}},Jt.createElement(Hi,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(_.blockchains),onChange:v=>{b(v)}}),Jt.createElement(Uu,{size:24}),Jt.createElement(ut,{value:c,autoFocus:!0,placeholder:Ou.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:v=>g(v.target.value)}),Jt.createElement(Uu,{size:16}),Jt.createElement(Fu,{list:w,selectedBlockchain:h,searchedFor:c,type:e,onChange:v=>{S(v);let I=y.find(C=>v.blockchain===C.name);I&&b(I),n()}}))}i(os,"SelectSwapItemsPage");import{i18n as Pt}from"@lingui/core";import{ChevronRightIcon as is,Divider as ss,InfoIcon as ty,List as oy,ListItemButton as ny,Skeleton as ry,Switch as iy,Tooltip as sy,Typography as $t}from"@rango-dev/ui";import V from"react";import{useNavigate as ay}from"react-router-dom";import{i18n as Vu}from"@lingui/core";import{Divider as Jh,InfoIcon as Zh,TextField as Rh,Tooltip as ey,Typography as ju}from"@rango-dev/ui";import Ne from"react";import{Chip as Xh,styled as Ao,TextField as Kh}from"@rango-dev/ui";var qu=Ao("div",{paddingTop:"$5",padding:"$10 $5"}),zu=Ao("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Kh}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Gu=Ao("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Zn=Ao("div",{maxWidth:"280px",padding:"$10"}),Hu=Ao(Xh,{width:"61px",flexShrink:0});import{i18n as ns}from"@lingui/core";import{Typography as Yh}from"@rango-dev/ui";import bo from"react";function Qu(){return bo.createElement(Zn,null,bo.createElement(Yh,{variant:"label",size:"medium",color:"neutral700"},ns.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),bo.createElement("br",null),bo.createElement("br",null),bo.createElement("b",null,ns.t("Warning")),":",ns.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Qu,"SlippageTooltipContent");function rs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Ne.createElement(qu,null,Ne.createElement(Gu,null,Ne.createElement(ju,{variant:"title",size:"xmedium"},Vu.t("Slippage tolerance per swap")),Ne.createElement(Jh,{direction:"horizontal",size:4}),Ne.createElement(ey,{container:O(),side:"top",sideOffset:4,content:Ne.createElement(Qu,null)},Ne.createElement(Zh,{color:"gray"}))),Ne.createElement(zu,null,Js.map((r,s)=>{let a=`slippage-${s}`;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Hu,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Ne.createElement(Rh,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=parseFloat(r.target.value);(!s||s>=ta&&s<=ea)&&n(s)},suffix:o&&Ne.createElement(ju,{variant:"body",size:"small"},"%"),placeholder:Vu.t("Custom")})))}i(rs,"Slippage");function Xu(){let t=ay(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=Pe("theme",s),l=Pe("liquiditySource",s),p=Pe("language",s),u=d().infiniteApprove,m=d().toggleInfiniteApprove,c=Xo(n,r),g=c.filter(C=>C.type==="BRIDGE"||C.type==="AGGREGATOR"),f=g.length,x=g.filter(C=>C.selected).length,h=c.filter(C=>C.type==="DEX"),y=h.length,A=h.filter(C=>C.selected).length,T=i((C,$)=>{switch(o){case"loading":return V.createElement(ry,{variant:"text",size:"medium",width:50});case"failed":return V.createElement($t,{variant:"body",size:"medium",color:"$error500"},Pt.t("Loading failed"));default:return V.createElement($t,{variant:"body",size:"medium"},`${C} / ${$}`)}},"handleEndItem"),w={id:"bridge-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled bridges")),end:V.createElement(V.Fragment,null,T(x,f),V.createElement(ss,{direction:"horizontal",size:8}),V.createElement(is,{color:"black"})),onClick:()=>t(_.bridges)},b={id:"exchange-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled exchanges")),end:V.createElement(V.Fragment,null,T(A,y),V.createElement(ss,{direction:"horizontal",size:8}),V.createElement(is,{color:"gray"})),onClick:()=>t(_.exchanges)},S={id:"theme-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Theme")),end:V.createElement(is,{color:"gray"}),onClick:()=>t(_.themes)},v={id:"infinite-approval-item",title:V.createElement(V.Fragment,null,V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Infinite approval")),V.createElement(ss,{direction:"horizontal",size:4}),V.createElement(sy,{side:"top",sideOffset:4,container:O(),content:V.createElement(Zn,null,V.createElement($t,{variant:"label",size:"medium",color:"neutral700"},Pt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},V.createElement(ty,{color:"gray"}))),end:V.createElement(iy,{checked:u}),onClick:m},I=l?[]:[w,b];return!e?.singleTheme&&!a&&I.push(S),I.push(v),V.createElement(X,{header:{title:Pt.t("Settings")}},V.createElement(ct,null,V.createElement(rs,null),V.createElement(oy,{type:V.createElement(ny,{title:"_",id:"_",onClick:()=>console.log()}),items:I})))}i(Xu,"SettingsPage");import{cancelSwap as Yy}from"@rango-dev/queue-manager-rango-preset";import{useManager as Jy}from"@rango-dev/queue-manager-react";import Ic from"react";import{i18n as dt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Ny,getCurrentStep as Ly,getRelatedWalletOrNull as Py}from"@rango-dev/queue-manager-rango-preset";import{Button as Cc,CopyIcon as $y,Divider as My,IconButton as _y,QuoteCost as Dy,StepDetails as Fy,Typography as eo,useCopyToClipboard as Oy}from"@rango-dev/ui";import{useWallets as Uy}from"@rango-dev/wallets-react";import kc from"bignumber.js";import{PendingSwapNetworkStatus as ur}from"rango-types";import K,{useEffect as Tc,useRef as qy,useState as wc}from"react";import{useNavigate as zy}from"react-router-dom";import{i18n as xt}from"@lingui/core";var ly=[xt.t("Sunday"),xt.t("Monday"),xt.t("Tuesday"),xt.t("Wednesday"),xt.t("Thursday"),xt.t("Friday"),xt.t("Saturday")];function Ku(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?xt.t("Today"):`${ly[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ku,"timeSince");function Yu(t){return t.finishTime?Ku(parseInt(t.finishTime)):Ku(parseInt(t.creationTime))}i(Yu,"getSwapDate");import{Modal as gy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as tr}from"rango-types";import or from"react";import{i18n as Rn}from"@lingui/core";import{Button as Ju,Divider as as,MessageBox as py,Typography as Zu}from"@rango-dev/ui";import nt from"react";var Ru=i(({onCancel:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(as,{size:20}),nt.createElement(py,{type:"error",title:Rn.t("Cancel Swap"),description:Rn.t("Are you sure you want to cancel this swap?")}),nt.createElement(as,{size:32}),nt.createElement(Ju,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(Zu,{variant:"title",size:"medium",color:"neutral100"},Rn.t("Yes, Cancel it"))),nt.createElement(as,{size:12}),nt.createElement(Ju,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(Zu,{variant:"title",size:"medium",color:"primary"},Rn.t("No, Continue")))),"CancelContent");import{i18n as er}from"@lingui/core";import{Button as ec,Divider as ls,MessageBox as uy,Typography as tc}from"@rango-dev/ui";import rt from"react";var oc=i(({onDelete:t,onClose:e})=>rt.createElement(rt.Fragment,null,rt.createElement(ls,{size:20}),rt.createElement(uy,{type:"error",title:er.t("Delete Transaction"),description:er.t("Are you sure you want to delete this swap?")}),rt.createElement(ls,{size:32}),rt.createElement(ec,{variant:"contained",type:"primary",size:"large",onClick:t},rt.createElement(tc,{variant:"title",size:"medium",color:"neutral100"},er.t("Yes, Delete it"))),rt.createElement(ls,{size:12}),rt.createElement(ec,{variant:"outlined",type:"primary",size:"large",onClick:e},rt.createElement(tc,{variant:"title",size:"medium",color:"primary"},er.t("No, Cancel")))),"DeleteContent");import{i18n as ps}from"@lingui/core";import{PendingSwapNetworkStatus as us}from"rango-types";var cs={[us.WaitingForNetworkChange]:{type:"loading",title:ps.t("Change Network")},[us.WaitingForConnectingWallet]:{type:"warning",title:ps.t("Connect Wallet")},[us.NetworkChanged]:{type:"success",title:ps.t("Network Changed")}};import{MessageBox as my,Wallet as dy}from"@rango-dev/ui";import{useWallets as fy}from"@rango-dev/wallets-react";import Io from"react";import{styled as cy}from"@rango-dev/ui";var nc=cy("div",{display:"flex",justifyContent:"center"});var rc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=fy(),u=n?.walletType,m=u?yr(p(u)):null,c=u?l(u):null;return Io.createElement(Io.Fragment,null,Io.createElement(my,{type:e,title:o,description:r}),s&&!!u&&!!m&&!!c&&Io.createElement(nc,null,Io.createElement(dy,{container:O(),title:c.name,image:c.img,type:u,state:m,link:c.installLink,onClick:async()=>a(u)})))},"WalletStateContent");function ms(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===tr.WaitingForNetworkChange||e===tr.WaitingForConnectingWallet||e===tr.NetworkChanged;return or.createElement(gy,{open:!!e,onClose:o,container:document.getElementById(Te)||document.body},l&&or.createElement(rc,{type:cs[e].type,title:cs[e].title,currentStepWallet:s,message:a,showWalletButton:e!==tr.WaitingForNetworkChange}),e==="delete"&&or.createElement(oc,{onClose:o,onDelete:n}),e==="cancel"&&or.createElement(Ru,{onClose:o,onCancel:r}))}i(ms,"SwapDetailsModal");import{i18n as Eo}from"@lingui/core";import{Button as ds,Divider as nr,MessageBox as ic,Modal as hy,TokenAmount as yy,Typography as rr}from"@rango-dev/ui";import me from"react";import{useNavigate as Sy}from"react-router-dom";function fs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,realUsdValue:a,realValue:l,token:p,chain:u,percentageChange:m,description:c,diagnosisUrl:g}=t,f=Sy();return me.createElement(hy,{open:e,onClose:o,container:document.getElementById(Te)||document.body},n==="success"?me.createElement(ic,{type:"success",title:Eo.t("Swap Successful")},me.createElement(yy,{direction:"vertical",tooltipContainer:O(),type:"output",centerAlign:!0,price:{value:r,usdValue:s,realUsdValue:a,realValue:l},token:p,chain:u,percentageChange:m}),me.createElement(nr,{size:12}),me.createElement(rr,{variant:"body",size:"medium",color:"neutral700",align:"center"},c)):me.createElement(ic,{type:"error",title:Eo.t("Transaction Failed"),description:c}),me.createElement(nr,{size:32}),n==="success"&&me.createElement(ds,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},me.createElement(rr,{variant:"title",size:"medium",color:"neutral100"},Eo.t("Done"))),me.createElement(nr,{size:12}),g&&me.createElement(me.Fragment,null,me.createElement(ds,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Eo.t("Diagnosis"))),me.createElement(nr,{size:12})),me.createElement(ds,{variant:"outlined",type:"primary",size:"large",onClick:o},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Eo.t("See Details"))))}i(fs,"SwapDetailsCompleteModal");import Wy from"react";import{i18n as Ay}from"@lingui/core";import{Alert as cc,IconButton as by,LinkIcon as Iy}from"@rango-dev/ui";import vt,{Fragment as Ey}from"react";import{Alert as Cy,ChevronDownIcon as ky,ChevronUpIcon as Ty,IconButton as wy}from"@rango-dev/ui";import ir,{useState as xy}from"react";function sc(t){let{message:e}=t,[o,n]=xy(!1);return ir.createElement(Cy,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&ir.createElement(wy,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?ir.createElement(Ty,{size:12,color:"gray"}):ir.createElement(ky,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(sc,"FailedAlert");import{styled as vy}from"@rango-dev/ui";var ac=vy("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as lc}from"@lingui/core";import{Alert as gs,Button as pc}from"@rango-dev/ui";import{PendingSwapNetworkStatus as hs}from"rango-types";import Wo from"react";function uc(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Wo.createElement(gs,{type:"warning",title:n.shortMessage,action:Wo.createElement(pc,{size:"xxsmall",type:"warning",onClick:()=>{o(hs.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},lc.t("Change"))}):r===hs.WaitingForConnectingWallet?Wo.createElement(gs,{type:"warning",title:n.shortMessage,action:Wo.createElement(pc,{size:"xxsmall",type:"warning",onClick:()=>{o(hs.WaitingForConnectingWallet)}},lc.t("Connect"))}):Wo.createElement(gs,{type:"warning",title:n.shortMessage})}i(uc,"WarningAlert");function ys(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=io(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l;return vt.createElement(ac,null,s.explorerUrl?.map((m,c,g)=>{let f=c+m.url,x=c===g.length-1,h=x&&u||p,y=x&&s.status==="failed";return vt.createElement(Ey,{key:f},vt.createElement(cc,{type:h&&"loading"||y&&"error"||"success",title:m.description?`${m.description} Tx`:Ay.t("View transaction"),action:m.url&&vt.createElement(by,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},vt.createElement(Iy,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&vt.createElement(cc,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&vt.createElement(uc,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&vt.createElement(sc,{message:r}))}i(ys,"SwapDetailsAlerts");var mc=2e3;var dc=i(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,s)=>{let a=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Je(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:W(a,6,6),realValue:a}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Je(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:W(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6),realValue:r.outputAmount||r.expectedOutputAmountHumanReadable}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Wy.createElement(ys,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function fc(t){if(io(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(fc,"getStepState");import{css as sr,darkTheme as By,styled as Zt}from"@rango-dev/ui";var ar=Zt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1}),lr=Zt("div",{width:"100%"}),gc=Zt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),r$=Zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),hc=Zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),i$=Zt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Rt=sr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${By} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),pr=sr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),yc=sr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Sc=sr({width:"100%",padding:"0 $20 $10"});function Ss(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Uy(),p=d().blockchains(),u=d().tokens(),m=U.use.retry(),c=zy(),[g,f]=Oy(mc),x=qy(null),[h,y]=wc(null),[A,T]=wc(null),w=i(()=>{r(),y(null)},"onCancel"),b=Me.use.getUnreadNotifications(),S=Me.use.setAsRead(),v=b(),I=Ly(e),C=I?.networkStatus;Tc(()=>{v.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),S(e.requestId))},[e.status]),Tc(()=>{G?y(ur.WaitingForNetworkChange):C===ur.WaitingForConnectingWallet||C===ur.NetworkChanged?y(C):y(null)},[C]);let $=Ca(e),N=I?Ny(e,I):null,L=I?Py(e,I):null,k=Yu(e),M=ka(e),E=i(ue=>!!l(ue)?.mobileWallet,"isMobileWallet"),G=C===ur.WaitingForNetworkChange&&!!N&&!!L?.walletType&&(E(L.walletType)||s(L.walletType,N)),J=G?a.bind(null,L.walletType,N):void 0,te=Sa(e,I),H=dc({swap:e,switchNetwork:J,showNetworkModal:C,setNetworkModal:y,message:te,blockchains:p}),re=H.length,[ye,Se]=[e.steps[0],e.steps[re-1]],Ce=Se.outputAmount||Se.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((ue,de)=>ue+parseFloat(de.feeInUsd||""),0),oo=e.steps.find(ue=>ue.diagnosisUrl)?.diagnosisUrl,it=W(parseFloat(W(Ce,6,6))*(Se.toUsdPrice||0),4,4),Xe=W(parseFloat(e.inputAmount)*(ye.fromUsdPrice||0),4,4),D=Ce?se(new kc(Ce).multipliedBy(Se.toUsdPrice||0)):"",Y=se(new kc(e.inputAmount).multipliedBy(ye.fromUsdPrice||0)),j=$e(Xe,it),Ee=e.status==="success"?dt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:W(Ce,6,6),token:H[re-1].to.token.displayName,conciseAddress:Qo(e.wallets[H[re-1].to.chain.displayName]?.address||""),chain:H[re-1].to.chain.displayName}}):`${dt.t("Transaction was not sent.")} ${$?dt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:$.outputAmount,symbol:$.symbol,blockchain:$.blockchain}}):""}`;return K.createElement(X,{noPadding:!0,header:{title:dt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Gt,null,K.createElement(Cc,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},K.createElement(eo,{size:"medium",variant:"label",color:"error"},dt.t("Delete"))))},footer:M&&!A&&K.createElement(Cc,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},dt.t("Try again"))},K.createElement(ar,null,K.createElement(lr,null,K.createElement("div",{className:Rt()},K.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${dt.t("Request ID")}:`),K.createElement("div",{className:pr()},K.createElement(eo,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(_y,{variant:"ghost",onClick:f.bind(null,o||"")},K.createElement($y,{size:16,color:"gray"})))),K.createElement("div",{className:Rt()},K.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${dt.t(e.finishTime?"Finished at":"Created at")}:`),K.createElement(eo,{variant:"label",size:"small",color:"neutral700"},k))),K.createElement("div",{className:yc()},K.createElement(Dy,{fee:W(String(Mt),2,2),time:Do(Fo(e.steps)),steps:re}),K.createElement(uo,{from:{price:{value:W(e.inputAmount,6,6),usdValue:Xe,realUsdValue:Y,realValue:e.inputAmount},token:{displayName:H[0].from.token.displayName,image:H[0].from.token.image},chain:{image:H[0].from.chain.image,displayName:H[0].from.chain.displayName}},to:{price:{value:W(Ce,6,6),usdValue:it,realUsdValue:D,realValue:Ce},token:{displayName:H[re-1].to.token.displayName,image:H[re-1].to.token.image},chain:{image:H[re-1].to.chain.image,displayName:H[re-1].to.chain.displayName}},percentageChange:W(j,2,2),warningLevel:at(j??0)})),K.createElement("div",{className:Sc()},K.createElement(eo,{variant:"title",size:"small"},dt.t("Swaps steps"))),K.createElement(My,{size:8}),K.createElement(gc,{ref:x},H.map((ue,de)=>{let Mo=de,st=fc(e.steps[de]),Hc=st==="error"||st==="in-progress"||st==="warning"||st==="completed"&&de===H.length-1;return K.createElement(Fy,{key:Mo,step:ue,type:"swap-progress",ref:x,state:st,hasSeparator:de!==0,tabIndex:Mo,isFocused:Hc,tooltipContainer:O()})}))),K.createElement(ms,{state:h,onClose:()=>y(null),onCancel:w,onDelete:n,message:te.detailedMessage.content,currentStepWallet:L}),K.createElement(fs,{open:!!A,diagnosisUrl:oo,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:W(Ce,6,6),usdValue:it,realUsdValue:D,realValue:se(Ce),percentageChange:W(j,2,2),token:{displayName:H[re-1].to.token.displayName,image:H[re-1].to.token.image},chain:{image:H[re-1].to.chain.image},description:Ee}))}i(Ss,"SwapDetails");import{i18n as No}from"@lingui/core";import{CopyIcon as jy,IconButton as Xy,NotFound as Ky,Skeleton as Ac,Typography as mr}from"@rango-dev/ui";import pe from"react";import{i18n as Gy}from"@lingui/core";import{Divider as Hy,Skeleton as Qy,Typography as Vy}from"@rango-dev/ui";import ie from"react";import{css as je,styled as Cs}from"@rango-dev/ui";var xc=Cs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Bo=Cs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),cr=Cs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),_$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),D$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),F$=je({paddingTop:"$15",display:"flex"}),O$=je({padding:"$15 $0"}),U$=je({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),q$=je({paddingBottom:"$10"}),z$=je({display:"flex",justifyContent:"start",alignItems:"center"}),G$=je({paddingTop:"$5",display:"flex",alignItems:"center"}),H$=je({display:"flex",alignItems:"center"}),Q$=je({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),vc=je({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ks(){return ie.createElement(xc,null,ie.createElement(go,{type:"swap-preview"}),ie.createElement("div",{className:"swaps-steps"},ie.createElement(Vy,{variant:"title",size:"small"},Gy.t("Swaps steps"))),ie.createElement(ie.Fragment,null,ie.createElement(Bo,null,ie.createElement(tt,{separator:!1}),ie.createElement("div",{className:vc()},ie.createElement(Hy,{direction:"horizontal",size:20}),ie.createElement(Qy,{height:22,variant:"rectangular"}))),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(tt,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(tt,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(tt,{separator:!1}))))}i(ks,"LoadingSwapDetails");function bc(t){let{requestId:e,showSkeleton:o}=t;return pe.createElement(X,{noPadding:!0,header:{title:No.t("Swap and Bridge"),suffix:pe.createElement(Gt,null)}},o&&pe.createElement(ar,null,pe.createElement(lr,null,pe.createElement("div",{className:Rt()},pe.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Request ID")}:`),pe.createElement("div",{className:pr()},pe.createElement(mr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Ac,{width:60,height:10,variant:"rounded"})),pe.createElement(Xy,{variant:"ghost"},pe.createElement(jy,{size:16,color:"gray"})))),pe.createElement("div",{className:Rt()},pe.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Created at")}:`),pe.createElement(mr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Ac,{width:60,height:10,variant:"rounded"})))),pe.createElement(ks,null)),!o&&pe.createElement(hc,null,pe.createElement(Ky,{title:No.t("Not found"),description:No.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(bc,"SwapDetailsPlaceholder");function Ec(){let{manager:t,state:e}=Jy(),o=!e.loadedFromPersistor,n=jt(t),r=Ae.use.selectedSwapRequestId(),s=St(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Yy(g)}},"onCancel"),m=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(g){console.log(g)}},"onDelete"),c=p?.swap;return!c||l?Ic.createElement(bc,{requestId:r||"",showSkeleton:l}):Ic.createElement(Ss,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Ec,"SwapDetailsPage");import{i18n as Lo}from"@lingui/core";import{AutoThemeIcon as Zy,DarkModeIcon as Ry,LightModeIcon as eS,List as tS,ListItemButton as oS,Radio as Ts,RadioRoot as nS,Typography as ws}from"@rango-dev/ui";import be from"react";function Wc(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Light")),onClick:()=>t("light"),start:be.createElement(eS,{color:"gray"}),end:be.createElement(Ts,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Dark")),onClick:()=>t("dark"),start:be.createElement(Ry,{color:"gray"}),end:be.createElement(Ts,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Auto")),onClick:()=>t("auto"),start:be.createElement(Zy,{color:"gray"}),end:be.createElement(Ts,{value:"auto"})}];return be.createElement(X,{header:{title:Lo.t("Theme")}},be.createElement(ct,null,be.createElement(nS,{onValueChange:n=>t(n),value:e},be.createElement(tS,{type:be.createElement(oS,{title:Lo.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Wc,"ThemePage");function Bc(){return rS([{path:_.home,element:Ie.createElement(su,null)},{path:_.fromSwap,children:[{index:!0,element:Ie.createElement(os,{type:"source"})},{path:_.blockchains,element:Ie.createElement(Oi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ie.createElement(os,{type:"destination"})},{path:_.blockchains,element:Ie.createElement(Oi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Ie.createElement(Xu,null)},{path:_.themes,element:Ie.createElement(Wc,null)},{path:_.languages,element:Ie.createElement(lu,null)},{path:_.exchanges,element:Ie.createElement($i,{sourceType:"Exchanges"})},{path:_.bridges,element:Ie.createElement($i,{sourceType:"Bridges"})}]},{path:_.swaps,children:[{index:!0,element:Ie.createElement(tu,null)},{path:_.swapDetails,element:Ie.createElement(Ec,null)}]},{path:_.wallets,element:Ie.createElement(wl,null)},{path:_.confirmSwap,element:Ie.createElement(Qp,null)}])}i(Bc,"AppRoutes");import{isApprovalTX as iS,MainEvents as Lc,RouteEventType as Pc,StepEventType as to,StepExecutionEventStatus as sS,useEvents as aS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as $c}from"react";import{StepExecutionBlockedEventStatus as xs}from"@rango-dev/queue-manager-rango-preset";var Nc=[xs.WAITING_FOR_CHANGE_WALLET_ACCOUNT,xs.WAITING_FOR_NETWORK_CHANGE,xs.WAITING_FOR_WALLET_CONNECT];function Mc(){let t=d().tokens(),e=z.use.connectedWallets(),o=z.use.getWalletsDetails(),n=Me.use.setNotification(),r=Me.use.setAsRead(),s=aS();return $c(()=>(s.on(Lc.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===to.TX_EXECUTION&&l.status===sS.TX_SENT&&!iS(p)||l.type===to.SUCCEEDED){let c=e.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);c&&o([c],t),g&&o([g],t)}l.type===to.TX_EXECUTION_BLOCKED&&Nc.includes(l.status)||l.type===to.FAILED?n(l,u):(l.type===to.TX_EXECUTION||l.type===to.CHECK_STATUS)&&r(u.requestId)}),()=>s.all.clear()),[s,e.length]),$c(()=>(s.on(Lc.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Pc.FAILED||l.type===Pc.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(Mc,"WidgetEvents");import{globalCss as lS}from"@rango-dev/ui";var _c=i(()=>lS({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{styled as pS}from"@rango-dev/ui";var Dc=pS("div",{display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function dr(){_c();let{config:t}=d(),{activeTheme:e}=Sn(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Hn(),[r,s]=Oc(""),[a,l]=Oc(),p=cS(pn);return Fc(()=>{Me.persist.rehydrate(),p.onConnectWallet(s)},[]),Fc(()=>{n(t?.language)},[t?.language]),Po.createElement(uS,{language:o},Po.createElement(Dc,{id:"swap-container",className:e()},Po.createElement(Mc,null),Po.createElement(Pa,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Po.createElement(Bc,null))))}i(dr,"Main");import As,{useMemo as WS}from"react";import{checkWaitingForNetworkChange as mS,makeQueueDefinition as dS}from"@rango-dev/queue-manager-rango-preset";import{Provider as fS}from"@rango-dev/queue-manager-react";import{useWallets as gS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as hS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as yS}from"rango-types";import SS,{useMemo as CS}from"react";function kS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=gS(),l=CS(()=>dS({API_KEY:t.apiKey||_t("API_KEY"),BASE_URL:_t("BASE_URL")}),[t.apiKey]),p=d().blockchains(),m={blockchains:z.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},c=i(async(T,w)=>{if(s(T,w))return r(T,w)},"switchNetwork"),g=i(T=>!!a(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),x=p.filter(yS),h=i(T=>{let{supportedChains:w}=a(T);return qo(w)},"getSupportedChainNames"),y=e(),A={meta:{blockchains:f,evmBasedChains:x,evmNetworkChainInfo:hS(x),getSupportedChainNames:h},getSigners:o,wallets:m,providers:y,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return SS.createElement(fS,{queuesDefs:[l],context:A,onPersistedDataLoaded:T=>{mS(T)},isPaused:!1},t.children)}i(kS,"QueueManager");var Uc=kS;import{useManager as AS}from"@rango-dev/queue-manager-react";import bS,{createContext as IS,useContext as ES}from"react";import{cancelSwap as TS,getCurrentBlockchainOfOrNull as wS,getCurrentStep as xS,getRelatedWalletOrNull as vS}from"@rango-dev/queue-manager-rango-preset";var $o=class{constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return jt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&TS(o)}getCurrentStepInfo(e){let o=xS(e);return{step:o,wallet:o?vS(e,o):null,network:o?wS(e,o):null}}};i($o,"WidgetHistory");var qc=IS(void 0);function vs(t){let{manager:e}=AS(),o=U.use.retry(),n=new $o(e,{retrySwap:o}),r=z.use.connectedWallets(),s=z.use.loading(),a=Fs(r),l=z.use.getWalletsDetails(),p=d().blockchains(),u=d().tokens(),m=d().swappers(),c=d().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:u,swappers:m,loadingStatus:c}};return bS.createElement(qc.Provider,{value:g},t.children)}i(vs,"WidgetInfo");function zc(){let t=ES(qc);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(zc,"useWidget");function fr(t){let{onUpdateState:e,config:o}=t;return WS(()=>{Gs({API_KEY:o?.apiKey||_o,BASE_URL:o?.apiUrl||Es})},[o]),As.createElement(un,{config:o,onUpdateState:e},As.createElement(Uc,{apiKey:o.apiKey},As.createElement(vs,null,t.children)))}i(fr,"WidgetProvider");function Gc(t){return t.config?.externalWallets?bs.createElement(dr,null):bs.createElement(fr,{config:t.config??gr},bs.createElement(dr,null))}i(Gc,"Widget");export{gD as MainEvents,AD as Networks,ED as PendingSwapNetworkStatus,hD as RouteEventType,yD as StepEventType,SD as StepExecutionBlockedEventStatus,CD as StepExecutionEventStatus,xD as WalletEvents,bD as WalletTypes,Gc as Widget,fr as WidgetProvider,un as WidgetWallets,qr as customizedThemeTokens,wD as readAccountAddress,Bl as useWallets,zc as useWidget,kD as useWidgetEvents};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|