@rango-dev/widget-embedded 0.20.1-next.0 → 0.20.1-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/Layout/Layout.d.ts.map +1 -1
- package/dist/components/Quote/Quote.d.ts.map +1 -1
- package/dist/components/Quote/Quote.styles.d.ts +157 -0
- package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
- package/dist/components/Quote/QuoteSummary.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +2 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
- package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
- package/dist/components/WalletModal/WalletModal.d.ts.map +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/routing.d.ts +1 -0
- package/dist/constants/routing.d.ts.map +1 -1
- package/dist/containers/App/App.styles.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/numbers.d.ts +1 -5
- package/dist/utils/numbers.d.ts.map +1 -1
- package/dist/utils/time.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +4 -1
- package/src/components/ConfirmWalletsModal/WalletList.tsx +4 -1
- package/src/components/Layout/Layout.styles.ts +3 -3
- package/src/components/Layout/Layout.tsx +9 -2
- package/src/components/Quote/Quote.styles.ts +5 -1
- package/src/components/Quote/Quote.tsx +53 -15
- package/src/components/Quote/QuoteSummary.tsx +17 -2
- package/src/components/SwapDetails/SwapDetails.helpers.tsx +7 -1
- package/src/components/SwapDetails/SwapDetails.tsx +21 -1
- package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +9 -1
- package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +3 -1
- package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +2 -0
- package/src/components/SwapsGroup/SwapsGroup.tsx +13 -7
- package/src/components/WalletModal/WalletModal.tsx +3 -1
- package/src/constants/index.ts +1 -0
- package/src/constants/routing.ts +2 -0
- package/src/containers/App/App.styles.ts +1 -2
- package/src/pages/Home.tsx +11 -1
- package/src/utils/common.ts +3 -1
- package/src/utils/date.ts +22 -8
- package/src/utils/numbers.ts +8 -58
- package/src/utils/time.ts +25 -69
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Fu=Object.defineProperty;var i=(t,e)=>Fu(t,"name",{value:e,configurable:!0});import{MainEvents as j_,RouteEventType as K_,StepEventType as X_,StepExecutionBlockedEventStatus as Y_,StepExecutionEventStatus as J_,useEvents as Z_}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as eD,useWallets as Tl,Events as tD}from"@rango-dev/wallets-react";import{Networks as nD,WalletTypes as rD}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as sD}from"rango-types";import{Events as Lr,Provider as km}from"@rango-dev/wallets-react";import{isEvmBlockchain as Tm}from"rango-sdk";import rn,{createContext as wm,useEffect as va,useRef as xm}from"react";import{useEffect as en,useLayoutEffect as ka,useMemo as tn,useRef as on}from"react";import nm,{createContext as rm,useContext as im,useEffect as sm,useRef as am}from"react";import{create as tm}from"zustand";import{persist as om}from"zustand/middleware";var mr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0,customDestination:!0},Ts=i((t,e,o)=>({config:{...mr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as Ou}from"rango-sdk";var No="c6381a79-2817-4602-83bf-6a641a409e32",ws="https://api.rango.exchange";var dr={API_KEY:No};function Pt(t){return dr[t]||""}i(Pt,"getConfig");function xs(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),dr=e,dr}i(xs,"initConfig");var vs=20,bs=25,As="Roboto",fr="theme-widget";var Bo,$t=i(()=>Bo||(Bo=new Ou(Pt("API_KEY"),Pt("BASE_URL")),Bo),"httpService");function Mt(t){return Array.from(new Set(t))}i(Mt,"removeDuplicateFrom");function gr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(gr,"areEqual");function Es(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Es,"debounce");function wt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(wt,"containsText");var j=i(()=>document.getElementById("swap-box"),"getContainer");function Po(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Mt(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(Po,"getUniqueSwappersGroups");function Is(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Is,"sortLiquiditySourcesByGroupTitle");function We(t,e){return e?.[t]==="hidden"}i(We,"isFeatureHidden");function $o(t,e){return e?.[t]==="enabled"}i($o,"isFeatureEnabled");import{WalletState as Ke}from"@rango-dev/ui";import{readAccountAddress as zu}from"@rango-dev/wallets-react";import{detectInstallLink as Gu,getCosmosExperimentalChainInfo as Hu,isEvmAddress as Qu,KEPLR_COMPATIBLE_WALLETS as eC,Networks as Ns}from"@rango-dev/wallets-shared";import hr from"bignumber.js";import{isCosmosBlockchain as Vu}from"rango-types";import Uu from"bignumber.js";var Ae=new Uu(0);import{WalletTypes as qu}from"@rango-dev/wallets-shared";var Ws=[qu.LEAP];import{BigNumber as Ls}from"bignumber.js";var Mo=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 Ls(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ls(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 _o=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var je=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),eo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Do(t,e=4){let o=parseFloat(t);if(isNaN(o))return t;let n=Math.pow(10,e);return(Math.round(o*n)/n).toString()}i(Do,"limitDecimalPlaces");function yr(t){switch(!0){case t.connected:return Ke.CONNECTED;case t.connecting:return Ke.CONNECTING;case!t.installed:return Ke.NOT_INSTALLED;default:return Ke.DISCONNECTED}}i(yr,"mapStatusToWalletState");function Bs(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(u=>u.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l}=e(r),p=yr(t(r));return{title:s,image:a,link:Gu(l),state:p,type:r}})}i(Bs,"mapWalletTypesToWalletInfo");function Uo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Uo,"walletAndSupportedChainsNames");function Ps(t,e,o,n,r){let s=[];function a(p,c){if(!!!s.find(m=>m.chain===p)){let m={address:c,chain:p,walletType:t};s.push(m)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:c,network:u}=zu(p),m=l.length>0,g=l.includes(u),f=u===Ns.Unknown;if(m&&!g&&!f)return;let S=u===Ns.Unknown&&Qu(c);if(f&&!S)return;o.includes(u)||S?r?a(u,c.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{a(T,c.toLowerCase())}):a(u,c)}),s}i(Ps,"prepareAccountsForWalletStore");function $s(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($s,"getRequiredChains");function qo(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(qo,"isAccountAndWalletMatched");function Ms(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:Ku(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Ms,"makeBalanceFor");function _s(t){return{...t,loading:!1,error:!0}}i(_s,"resetConnectedWalletState");var Ds=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||Ae).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),Ae)||Ae).toString();return ju(r)},"calculateWalletUsdValue");function ju(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ju,"numberWithThousandSeparator");var Ku=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),zo=i((t,e)=>{let o=Hu(Object.entries(t).map(([,n])=>n).filter(Vu));return o&&o[e]?.experimental},"isExperimentalChain");function Go(t){return t?{...t,amount:W(t.amount,8,8),usdValue:W(t.usdValue,4,4)}:null}i(Go,"formatBalance");function Xu(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(Xu,"sortTokensByBalance");function Yu(t,e,o){let n=o(t),r=o(e);return n===r?0:n?-1:1}i(Yu,"sortTokensByPinnedToken");function Fs(t,e,o){return t.sort((n,r)=>{let s=e(n),a=e(r),l=Yu(n,r,o);return l!==0?l:Xu(s,a)}),t}i(Fs,"sortTokens");function Le(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Le,"tokensAreEqual");function Os(t){return t.sort((e,o)=>+(o.state===Ke.CONNECTED)-+(e.state===Ke.CONNECTED)||+(o.state===Ke.DISCONNECTED||o.state===Ke.CONNECTING)-+(e.state===Ke.DISCONNECTED||e.state===Ke.CONNECTING))}i(Os,"sortWalletsBasedOnConnectionState");function Ho(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(Ho,"getConciseAddress");function Us({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Us,"getAddress");function Sr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Sr,"createTokenHash");function Qo(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??Ae).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(Qo,"makeTokensBalance");var qs=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var zs=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(c=>Le(c,p))||o.blockchain&&p.blockchain!==o.blockchain||!a.some(c=>c.name===p.blockchain)?!1:o.searchFor?!!(wt(p.symbol,o.searchFor)||wt(p.address||"",o.searchFor)||wt(p.name||"",o.searchFor)):!0).sort((p,c)=>e().isTokenPinned(p,o.type)?-1:e().isTokenPinned(c,o.type)||p.isSecondaryCoin?1:c.isSecondaryCoin||!p.address&&c.address?-1:p.address&&!c.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(Is)},fetch:async()=>{try{let o=await $t().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,c)=>p.sort-c.sort),t({_blockchains:n,_tokens:r,_popularTokens:s,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{English as Ju,French as Zu,Japanese as Ru,Spanish as em}from"@rango-dev/ui";var Gs=[{title:"English",label:"English",local:"en",SVGFlag:Ju},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:em},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Zu},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Ru}],_t="en";var Hs=[.5,1,3],Qs=1,Vs=5,js=100,Ks=0;var Xs=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:_t,preferredBlockchains:[],slippage:Qs,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,c=l<=10-1;return p&&c}))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=Mt(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=We("theme",n),s=We("language",n),a=We("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:_t},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function Ys(t){return tm()(om((...e)=>({...zs(...e),...Xs(...e),...Ts(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(Ys,"createAppStore");var Js=rm(null);function d(){let t=im(Js);if(sm(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function Zs(t){let e=am();return e.current||(e.current=Ys(t.config)),nm.createElement(Js.Provider,{value:e.current},t.children)}i(Zs,"AppStoreProvider");import gt from"bignumber.js";import{create as fm}from"zustand";import{subscribeWithSelector as gm}from"zustand/middleware";import{getLastSuccessfulStep as mm}from"@rango-dev/queue-manager-rango-preset";import Sk from"bignumber.js";var mt=(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))(mt||{});function Rs(t,e){return e.find(o=>o.name===t)?.displayName}i(Rs,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function ea(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(ea,"getSwapperDisplayName");function kr(t,e){return e.find(o=>Le(o,t))??null}i(kr,"findToken");function Tr(t,e){return e.find(o=>o.name===t)??null}i(Tr,"findBlockchain");import{i18n as De}from"@lingui/core";import ke from"bignumber.js";import{PendingSwapNetworkStatus as Xo}from"rango-types";function Vo(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(Vo,"getRequiredWallets");function jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jo,"isValidAddress");import{i18n as me}from"@lingui/core";var Q=i(()=>({genericServerError:me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:me.t("Please reset your liquidity sources."),description:me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:me.t("No Routes Found."),description:me.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:me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:me.t("High Price Impact"),title:me.t("Price impact is too high!"),description:me.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:me.t("USD Price Unknown"),title:me.t("USD Price Unknown, Cannot calculate Price Impact."),description:me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:me.t("Confirm USD Price Unknown")}}),"errorMessages");function ta(t){switch(t.type){case 0:return t.diagnosisMessage??Q().noResultError.title;case 1:return Q().genericServerError;default:return""}}i(ta,"getQuoteErrorMessage");import{i18n as Ko}from"@lingui/core";var xt=i(()=>({connectWallet:Ko.t("Connect Wallet"),swap:Ko.t("Swap"),swapAnyway:Ko.t("Swap anyway"),ethWarning:Ko.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function oa(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ke(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ke(1e3)))??!1}i(oa,"hasHighValueLoss");function wr(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ke(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(wr,"hasLimitError");function xr(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ke(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new ke(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||c?.lte(l.fromAmount):p?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ke(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=De.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=De.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=De.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=De.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(xr,"getLimitErrorMessage");function na(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:xt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:xt().swap,action:"confirm-swap",disabled:!0}:a?{title:xt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:xt().ethWarning,action:"confirm-warning",disabled:!1}:{title:xt().swap,action:"confirm-swap",disabled:!1}:{title:xt().connectWallet,action:"connect-wallet",disabled:!1}}i(na,"getSwapButtonState");function vr(t,e,o){return!((!o||o.lte(Ae))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(vr,"canComputePriceImpact");function lm(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(lm,"requiredWallets");var pm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function cm(t,e){let o=Ae;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=pm(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ke(r.amount).multipliedBy(s||0))}return o}i(cm,"getUsdFeeOfStep");function Yo(t,e){return t.reduce((o,n)=>o.plus(cm(n,e)),Ae)}i(Yo,"getTotalFeeInUsd");function br(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(br,"checkSlippageErrors");function ra(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(ra,"checkSlippageWarnings");function Jo(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(Jo,"getMinRequiredSlippage");function ia(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ia,"hasProperSlippage");function Zo(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:c,affiliateRef:u,affiliatePercent:m,affiliateWallets:g,initialQuote:f,destination:k}=t,S=s?.reduce((A,C)=>(A[C.chain]=C.address,A),{}),h=[];r?.forEach(A=>{let C=h.find(v=>v.blockchain===A.chain);C?C.addresses.push(A.address):h.push({blockchain:A.chain,addresses:[A.address]})});let b=!!f,T=Mt((f?.result?.swaps||[]).reduce((A,C)=>(A.push(C.from.blockchain,C.to.blockchain),C.internalSwaps&&Array.isArray(C.internalSwaps)&&C.internalSwaps.map(v=>{A.push(v.from.blockchain,v.to.blockchain)}),A),[]));return{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:g??void 0,checkPrerequisites:b,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:c.toString(),...k&&{destination:k},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(A=>!a.includes(A)),swappersGroupsExclude:!1},...b&&{blockchains:T}}}i(Zo,"createQuoteRequestBody");function sa(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(sa,"getWalletsForNewSwap");function Dt(t){return t.result?.outputAmount||null}i(Dt,"getQuoteOutputAmount");function aa(t,e){return new ke(e).div(new ke(t)).minus(1).multipliedBy(100).toNumber()}i(aa,"getPercentageChange");function la(t,e){let o=Dt(t),n=Dt(e);if(!o||!n)return!1;let r=Ne(o,n);return r?r<=-1:!0}i(la,"isOutputAmountChangedALot");function pa(t,e,o){let n=t.validationStatus,r=$s(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>ga(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=W(new ke(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),c=W(new ke(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),u="";return a.reason==="FEE"&&(u=De.t(" for network fee")),a.reason==="INPUT_ASSET"&&(u=De.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(u=De.t(" for input and network fee")),De.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:c,symbol:l,reason:u,currentAmount:p,blockchain:Xe(a.asset.blockchain,o)}})})}i(pa,"generateBalanceWarnings");function ca(t,e){return(t?new ke(t):Ae).multipliedBy(e||0)}i(ca,"calcOutputUsdValue");function to(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Xo.NetworkChanged}i(to,"isNetworkStatusInWarningState");function ua(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),to(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Xo.WaitingForConnectingWallet:n=n||De.t("Waiting for connecting wallet");break;case Xo.WaitingForQueue:n=n||De.t("Waiting for other running tasks to be finished");break;case Xo.WaitingForNetworkChange:n=n||De.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(ua,"getSwapMessages");function ma(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(ma,"getLastConvertedTokenInFailedSwap");function da(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(da,"shouldRetrySwap");function fa(t,e,o,n,r,s){return t||!e&&!lm(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!jo(s,o)}i(fa,"confirmSwapDisabled");function Ar(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(Ar,"searchParamsToToken");function ya(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(ya,"getQuoteToTokenUsdPrice");function Er(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Er,"isNumberOfSwapsChanged");function Ir(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!gr(o,n)}i(Ir,"isQuoteSwappersUpdated");function Wr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!gr(o,n)}i(Wr,"isQuoteInternalCoinsUpdated");function Sa(t,e){return Er(t,e)||Ir(t,e)||Wr(t,e)}i(Sa,"isQuoteChanged");function ga(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(ga,"getRequiredBalanceOfWallet");function it(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(it,"getPriceImpactLevel");function Ca(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=mm(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Tr(s?s.toBlockchain:n.fromBlockchain,e),p=Tr(r.toBlockchain,e),c=kr(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),u=kr(a,o),m=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:c,toBlockchain:p,toToken:u,inputAmount:m}}i(Ca,"createRetryQuote");function Ro(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=vt(o,t.requestAmount),l=vt(n,t.result?.outputAmount??"");if(t.result&&a&&l){let u=Ne(a.toString(),l.toString());if(!!u&&oa(a,u)){let g=Yo(t.result.swaps,r),f=it(u);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:u,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=Jo(t),c=s>Vs;if(ia(e.userSlippage.toString(),p)){if(c&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:ra(t,s),minRequiredSlippage:p};return null}i(Ro,"generateQuoteWarnings");function Ne(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:aa(t.toString(),e.toString());return n&&n<0?n:null}i(Ne,"getPriceImpact");var dm=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"),ft=dm;var vt=i((t,e)=>t?.usdPrice?new gt(e||Ae).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=ft(fm()(gm(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new gt(0),outputUsdValue:new gt(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=Ae;return eo(o.inputAmount)?(e&&(n=e.result?.outputAmount?new gt(e.result?.outputAmount):null,r=ca(e.result?.outputAmount,ya(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new gt(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:vt(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 gt(0),outputUsdValue:new gt(0),quote:null},...!!o.fromToken&&{inputUsdValue:vt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:c}=Ca(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:c,outputAmount:null,inputUsdValue:vt(a??null,c),outputUsdValue:new gt(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:vt(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 Ta(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=O(),c=d().config,u=d().fetchStatus,m=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:k,setAffiliateWallets:S}=d(),h=tn(()=>c?.from?.tokens,[c?.from?.tokens]),b=tn(()=>c?.from?.blockchains,[c?.from?.blockchains]),T=tn(()=>c?.to?.tokens,[c?.to?.tokens]),w=tn(()=>c?.to?.blockchains,[c?.to?.blockchains]),A=on(void 0),C=on(void 0),v=on(void 0),E=on(void 0);en(()=>{t(c?.amount?.toString()||"")},[c?.amount]),ka(()=>{if(u==="success"){let y=m.find($=>$.name===c?.from?.blockchain),P=g.find($=>Le($,c?.from?.token||null));(y||!y&&v.current)&&n(y??null),P?r({token:P,meta:{blockchains:m,tokens:g}}):!P&&A.current&&r({token:null}),v.current=c?.from?.blockchain,A.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,u]),en(()=>{s&&h&&(h.some(y=>Le(y,s))||r({token:null})),l&&b&&(b.includes(l.name)||n(null))},[h,b]),en(()=>{a&&T&&(T.some(y=>Le(y,a))||e({token:null})),p&&w&&(w.includes(p.name)||o(null))},[T,w]),ka(()=>{if(u==="success"){let y=m.find($=>$.name===c?.to?.blockchain),P=g.find($=>Le($,c?.to?.token||null));(y||!y&&E.current)&&o(y??null),P?e({token:P,meta:{blockchains:m,tokens:g}}):!P&&C.current&&e({token:null}),E.current=c?.to?.blockchain,C.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,u]),en(()=>{f(c?.affiliate?.ref??null),k(c?.affiliate?.percent??null),S(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Ta,"useSyncStoresWithConfig");import{useEffect as Cm}from"react";import{create as hm}from"zustand";import{subscribeWithSelector as ym}from"zustand/middleware";var z=ft(hm()(ym((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:Qo(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=>qo(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:c,chain:u})=>({address:c,blockchain:u})),p=(await $t().getWalletsDetails(a)).wallets;if(p)t(c=>{let u=c.connectedWallets.map(g=>{let f=o.find(S=>qo(S,g)),k=p.find(S=>S.address===g.address&&S.blockChain===g.chain);return k?.failed&&f&&r&&s([f],n,!1),f&&k?{...g,explorerUrl:k.explorerUrl,balances:Ms(k,n),loading:!1}:g});return{loading:!1,balances:Qo(u),connectedWallets:u}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(u=>o.find(m=>qo(m,u))?_s(u):u);return{loading:!1,balances:Qo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Sr(o);return n[r]??null}}))));import{allProviders as Sm}from"@rango-dev/provider-all";function nn(t,e){let o=Sm({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(nn,"matchAndGenerateProviders");function wa(t,e){return nn(t,e).map(r=>r.config.type)}i(wa,"configWalletsToWalletName");function xa(t,e){let o=z.use.clearConnectedWallet(),n=nn(void 0,e);return Cm(()=>{o(),n=nn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(xa,"useWalletProviders");var sn=wm({onConnectWallet:()=>{}});function vm(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:l}=xa(t.config.wallets,a),{connectWallet:p,disconnectWallet:c}=z(),u=xm();Ta(),va(()=>{n().catch(console.log)},[]),va(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let m=r.filter(Tm).map(f=>f.name),g=i((f,k,S,h,b)=>{if(k===Lr.ACCOUNTS)if(S){let T=Uo(b.supportedBlockchains),w=Ps(f,S,m,T,b.isContractWallet);p(w,s)}else c(f);if(k===Lr.ACCOUNTS&&h.connected){let T=`${f}-${h.network}-${S}`;h.connected&&(u.current?u.current(T):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===Lr.NETWORK&&h.network){let T=`${f}-${h.network}`;u.current?u.current(T):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(f,k,S,h,b)},"onUpdateState");return rn.createElement(sn.Provider,{value:{onConnectWallet:f=>{u.current=f}}},rn.createElement(km,{allBlockChains:r,providers:l,onUpdateState:g,autoConnect:!0},t.children))}i(vm,"Main");function an(t){let{config:e,...o}=t;return rn.createElement(Zs,{config:e},rn.createElement(vm,{...o,config:e}))}i(an,"WidgetWallets");import ks from"react";import{I18nManager as aS}from"@rango-dev/ui";import Wo,{useContext as lS,useEffect as Bu,useState as Pu}from"react";import{useQueueManager as Pm}from"@rango-dev/queue-manager-rango-preset";import{useWallets as $m}from"@rango-dev/wallets-react";import{isEvmBlockchain as Mm}from"rango-types";import ln,{Fragment as _m}from"react";import{MemoryRouter as Dm,useInRouterContext as Fm}from"react-router";import{useWallets as Am}from"@rango-dev/wallets-react";import{useEffect as Em,useRef as Im}from"react";function ba(){let{connect:t,state:e}=Am(),o=Im({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Em(()=>{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 Nr,useRef as Br}from"react";import{createSearchParams as Lm,useLocation as Nm,useSearchParams as Bm}from"react-router-dom";var M={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 Wm}from"zustand";var Te=ft(Wm()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function Aa(){let t=Br(!0),[e,o]=Bm(),n=Nm(),r=Br(n.search),s=Br({}),a=O.use.fromBlockchain(),l=O.use.toBlockchain(),p=O.use.fromToken(),c=O.use.toToken(),u=O.use.setFromBlockchain(),m=O.use.setFromToken(),g=O.use.setToBlockchain(),f=O.use.setToToken(),k=O.use.inputAmount(),S=O.use.setInputAmount(),h=d().fetchStatus,b=d().blockchains(),T=d().tokens(),w=Te.use.setSelectedSwap();return Nr(()=>{let A={};Lm(r.current).forEach((v,E)=>{A[E]=v}),s.current=A;let C=n.pathname.split(M.swaps+"/")[1]||null;C&&w(C)},[]),Nr(()=>{if(!t.current){let A="",C="",v="",E="",y="",P=s.current["autoConnect"];h!=="success"?(A=s.current["fromBlockchain"],C=s.current["fromToken"],v=s.current["toBlockchain"],E=s.current["toToken"],y=s.current["fromAmount"]||k):(A=a?.name||"",C=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),v=l?.name||"",E=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),y=k),o({...A&&{["fromBlockchain"]:A},...C&&{["fromToken"]:C},...v&&{["toBlockchain"]:v},...E&&{["toToken"]:E},...y&&{["fromAmount"]:y.toString()},...P&&{["autoConnect"]:P}},{replace:!0})}t.current=!1},[n.pathname,k,a,p,l,c]),Nr(()=>{if(h==="success"){let A=e.get("fromBlockchain"),C=e.get("fromToken"),v=e.get("toBlockchain"),E=e.get("toToken"),y=e.get("fromAmount"),P=b.find(_=>_.name===A),$=Ar(T,C,P||null),N=b.find(_=>_.name===v),x=Ar(T,E,N||null);P&&(u(P),$&&m({token:$,meta:{blockchains:b,tokens:T}})),N&&(g(N),x&&f({token:x,meta:{blockchains:b,tokens:T}})),y&&S(y)}},[h]),null}i(Aa,"UpdateUrl");function Ea({children:t,...e}){let o=Fm(),n=o?_m:Dm,r=d().blockchains(),{canSwitchNetworkTo:s}=$m();ba();let a=r.filter(Mm);return Pm({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),ln.createElement(ln.Fragment,null,ln.createElement(n,null,t),o&&ln.createElement(Aa,null))}i(Ea,"AppRouter");import ve from"react";import{useRoutes as Ky}from"react-router-dom";import{i18n as Bn}from"@lingui/core";import{useManager as Xf}from"@rango-dev/queue-manager-react";import{Alert as Bp,Button as Pp,css as mi,Divider as Yf,IconButton as $p,RefreshIcon as Jf,SettingsIcon as Zf,styled as Mp,Tooltip as Rf,Typography as eg,WalletIcon as tg}from"@rango-dev/ui";import ee,{useEffect as ho,useLayoutEffect as og,useRef as ng,useState as Pn}from"react";import{flushSync as rg}from"react-dom";import{useNavigate as ig}from"react-router-dom";import{i18n as st}from"@lingui/core";import{Alert as jr,BalanceErrors as Kd,Button as wl,ChevronDownIcon as Xd,ChevronLeftIcon as Yd,Divider as zt,MessageBox as Jd,Modal as xl,Typography as xn,WalletIcon as Zd}from"@rango-dev/ui";import L,{useEffect as Rd,useLayoutEffect as ef,useRef as tf,useState as Et}from"react";import{useNavigate as of}from"react-router-dom";import{i18n as pn}from"@lingui/core";function cn(t){switch(t.type){case 0:return pn.t("Route has been updated.");case 3:return pn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return pn.t("Route swappers has been updated.");case 2:return pn.t("Route internal coins has been updated.");default:return""}}i(cn,"getQuoteUpdateWarningMessage");import*as Ot from"@radix-ui/react-collapsible";import{Button as Um,css as Ia,darkTheme as Ft,IconButton as qm,keyframes as Wa,styled as de,TextField as zm}from"@rango-dev/ui";var oo=300,Gm=Wa({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Hm=Wa({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),La=de("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Na=de("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Qm=de("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Ft} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${Ft} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${Ft} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Ba=de(Qm,{alignSelf:"stretch",minHeight:"93px"}),Pa=de(Ot.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),$a=de("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Ma=de(qm,{position:"absolute",left:"$20"}),_a=de("div",{paddingTop:"$20"}),Da=Ia({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Fa=de(Ot.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Oa=de(Um,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Ft} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${Ft} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${Ft} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Ua=de("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),qa=Ia({paddingTop:"5px"}),za=de("div",{transition:`all ${oo}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Ga=de("div",{display:"flex"}),Ha=de(zm,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),un=de(Ot.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${Gm} ${oo}ms ease-out`},false:{animation:`${Hm} ${oo}ms ease-out`}}}}),Qa=de("div",{overflow:"visible",width:"100%"});import{i18n as Ue}from"@lingui/core";import{Button as Qd,Divider as Qr,Image as Vd,MessageBox as wn,Modal as yl,SelectableWallet as jd,Typography as Sl,WalletState as Cl}from"@rango-dev/ui";import R,{useEffect as kl,useState as ro}from"react";import{WalletState as Pr}from"@rango-dev/ui";import{useWallets as Vm}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as jm,WalletTypes as mn}from"@rango-dev/wallets-shared";import{useEffect as Km,useState as Xm}from"react";var Ym=Object.values(mn);function dn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=Vm(),{connectedWallets:c}=z(),u=d().blockchains(),m=wa(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||Ym,g=Bs(s,l,m,o),f=Os(g),[k,S]=Xm(""),h=i(C=>!c.find(v=>v.walletType===C&&v.chain===o),"isExperimentalChainNotAdded"),b=i(async C=>{let v=s(C);try{if(k&&S(""),v.connected)await a(C);else{let E=!!g.find(y=>y.state===Pr.CONNECTED);if(!e?.multiWallets&&E)return;n?.(C),await p(C),r?.(C)}}catch(E){S("Error: "+E?.message)}},"handleClick"),T=i(()=>{let C=g?.filter(v=>v.state===Pr.CONNECTING)||[];for(let v of C)a(v.type)},"disconnectConnectingWallets");Km(()=>()=>{T()},[]);let w=i(C=>C.filter(E=>E.state!=Pr.NOT_INSTALLED&&![mn.DEFAULT,mn.WALLET_CONNECT_2].includes(E.type)&&l(E.type).supportedChains.filter(y=>y.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),A=i((C,v,E)=>zo(E,v)&&h(C)&&!jm.includes(C)||C==mn.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(C=>!A(C.type,o??"",u)),error:k,handleClick:b}}i(dn,"useWalletList");import{i18n as cl}from"@lingui/core";import{styled as ml,Typography as Dd,Wallet as Fd,WalletState as Od}from"@rango-dev/ui";import At,{Fragment as Ud,useState as ul}from"react";import{BottomLogo as Ed,Divider as Id,Header as Wd}from"@rango-dev/ui";import fe from"react";import{useNavigate as Jm}from"react-router-dom";function ht(){let t=Jm();return()=>t(-1)}i(ht,"useNavigateBack");import{ChevronLeftIcon as ed}from"@rango-dev/ui";import Ka from"react";import{darkTheme as Zm,IconButton as Rm,styled as fn}from"@rango-dev/ui";var Fe=fn(Rm,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),Va=fn("div",{position:"absolute",background:"$secondary500",[`.${Zm} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ut=fn("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),ja=fn("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function $r(t){return Ka.createElement(Fe,{variant:"ghost",size:"small",onClick:t.onClick},Ka.createElement(ed,{color:"black",size:16}))}i($r,"BackButton");import{i18n as td}from"@lingui/core";import{Button as od,Typography as nd}from"@rango-dev/ui";import Mr from"react";function _r(t){return Mr.createElement(Ut,null,Mr.createElement(od,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Mr.createElement(nd,{variant:"label",size:"medium",color:"error500"},td.t("Cancel"))))}i(_r,"CancelButton");import{i18n as rd}from"@lingui/core";import{Tooltip as id,WalletIcon as sd}from"@rango-dev/ui";import gn from"react";function Dr(t){return gn.createElement(id,{container:t.container,side:"top",content:rd.t("Connect Wallet")},gn.createElement(Fe,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&gn.createElement(Va,null),gn.createElement(sd,{size:18,color:"black"})))}i(Dr,"WalletButton");import{i18n as Sn}from"@lingui/core";import{NotificationsIcon as Td,Popover as wd,RefreshIcon as xd,SettingsIcon as vd,Tooltip as Cn,TransactionIcon as bd}from"@rango-dev/ui";import ce from"react";import{i18n as fd}from"@lingui/core";import{ChainToken as el,ChevronRightIcon as gd,ListItemButton as hd,Typography as yd}from"@rango-dev/ui";import Oe from"react";import{useNavigate as Sd}from"react-router-dom";import{create as ad}from"zustand";import{persist as ld,subscribeWithSelector as pd}from"zustand/middleware";var Be=ft(ad()(ld(pd((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 hn}from"@rango-dev/ui";var Xa=hn("div",{padding:"$10",width:"350px",minHeight:"150px"}),Ya=hn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),Ja=hn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),Za=hn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as cd}from"@lingui/core";import{Divider as ud,NoNotificationIcon as md,Typography as dd}from"@rango-dev/ui";import yn from"react";function Ra(){return yn.createElement(Za,null,yn.createElement(md,{color:"secondary",size:26}),yn.createElement(ud,{size:12}),yn.createElement(dd,{variant:"body",size:"medium",color:"neutral700"},cd.t("You have no notification")))}i(Ra,"NotificationNotFound");var Cd=4;function Fr(){let t=Sd(),e=Te.use.setSelectedSwap(),{getUnreadNotifications:o}=Be(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,c)=>c.creationTime-p.creationTime).slice(0,Cd),l=i(p=>{e(p),t(`${M.swaps}/${p}`)},"handleOnClick");return Oe.createElement(Xa,null,a.length?Oe.createElement(Ya,null,a.map(p=>{let c=s.find(f=>f.address===p.route.from.tokenAddress&&f.blockchain===p.route.from.blockchain&&f.symbol===p.route.from.tokenSymbol),u=r.find(f=>f.name===p.route.from.blockchain),m=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 Oe.createElement(hd,{key:p.requestId,onClick:()=>l(p.requestId),title:Oe.createElement(yd,{variant:"body",size:"small",color:"$neutral700"},fd.t(p.event.message)),id:p.requestId,start:Oe.createElement(Ja,null,Oe.createElement("div",{className:"from-chain-token"},Oe.createElement(el,{tokenImage:c?c.image:"",chainImage:u?u.logo:"",size:"small"})),Oe.createElement("div",{className:"to-chain-token"},Oe.createElement(el,{tokenImage:m?m.image:"",chainImage:g?g.logo:"",size:"small"}))),end:Oe.createElement(gd,{size:12,color:"gray"})})})):Oe.createElement(Ra,null))}i(Fr,"NotificationContent");import{Typography as kd}from"@rango-dev/ui";import tl from"react";function ol(){let{getUnreadNotifications:t}=Be(),e=t().length;return e?tl.createElement(ja,null,tl.createElement(kd,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(ol,"UnreadNotificationsBadge");function Or(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:s}=t,{config:{features:a}}=d(),l=We("notification",a);return ce.createElement(ce.Fragment,null,ce.createElement(Cn,{container:j(),side:"top",content:Sn.t("Refresh")},ce.createElement(Fe,{variant:"ghost",size:"small",onClick:o,disabled:!o},ce.createElement(xd,{size:16,color:o?"black":"gray"}))),!l&&ce.createElement(Cn,{container:j(),side:"top",content:Sn.t("Notifications")},ce.createElement(wd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:j(),content:ce.createElement(Fr,null)},ce.createElement(Fe,{size:"small",variant:"ghost",onClick:s},ce.createElement(Td,{size:18,color:"black"}),ce.createElement(ol,null)))),ce.createElement(Cn,{container:j(),side:"top",content:Sn.t("Settings")},ce.createElement(Fe,{size:"small",variant:"ghost",onClick:r},ce.createElement(vd,{size:18,color:"black"}))),ce.createElement(Cn,{container:j(),side:"top",content:Sn.t("Transactions History")},ce.createElement(Fe,{size:"small",variant:"ghost",onClick:n},ce.createElement(bd,{size:18,color:"black"}))))}i(Or,"HomeButtons");import{darkTheme as Ad,styled as Ur}from"@rango-dev/ui";var nl=Ur("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"95vw",minWidth:"300px",maxWidth:"390px",maxHeight:"700px",textAlign:"left",$$color:"$colors$neutral100",[`.${Ad} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"95vh"},false:{height:"auto"}}}}),rl=Ur("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"}}}}),il=Ur("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Ld(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=z.use.connectedWallets(),{config:{features:c}}=d(),u=We("connectWalletButton",c),m=Te.use.connectWalletsButtonDisabled(),g=ht(),f=i(()=>{!m&&n.onWallet&&n.onWallet()},"onConnectWallet"),k=typeof n.hasBackButton>"u"||n.hasBackButton;return fe.createElement(nl,{ref:e,fixedHeight:l,id:"swap-box"},fe.createElement(Wd,{prefix:fe.createElement(fe.Fragment,null,k&&fe.createElement($r,{onClick:g})),title:n.title,suffix:fe.createElement(fe.Fragment,null,n.suffix,n.onWallet&&!u&&fe.createElement(Dr,{container:j(),onClick:f,isConnected:!!p?.length}),n.onCancel&&fe.createElement(_r,{onClick:n.onCancel}))}),fe.createElement(rl,{noPadding:s},o),(a||r)&&fe.createElement(il,null,fe.createElement("div",{className:"footer__content"},r),a&&fe.createElement("div",{className:"footer__logo"},fe.createElement(Id,{size:12}),fe.createElement(Ed,null))))}i(Ld,"LayoutComponent");var K=fe.forwardRef(Ld);K.displayName="Layout";import{Divider as Md,Modal as _d}from"@rango-dev/ui";import zr from"react";import{i18n as qt}from"@lingui/core";import{Image as Pd,MessageBox as qr,WalletState as $d}from"@rango-dev/ui";import bt from"react";import{keyframes as Nd,styled as kn}from"@rango-dev/ui";var Hx=kn("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),sl=kn("div",{position:"relative"}),Bd=Nd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),al=kn("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Bd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ll=kn("div",{"& img":{borderRadius:"50%"}});function pl(t){let{state:e,image:o,error:n}=t;return e===$d.CONNECTED?bt.createElement(qr,{type:"success",title:qt.t("Wallet Connected"),description:qt.t("Your wallet is connected, you can use it to swap.")}):n?bt.createElement(qr,{type:"error",title:qt.t("Failed to Connect"),description:n||qt.t("Your wallet is not connected. Please try again.")}):bt.createElement(qr,{type:"loading",title:qt.t("Connecting to your wallet"),description:qt.t("Click connect in your wallet popup."),icon:bt.createElement(sl,null,bt.createElement(ll,null,bt.createElement(Pd,{src:o,size:45})),bt.createElement(al,null))})}i(pl,"ModalContent");function no(t){let{open:e,onClose:o,...n}=t;return zr.createElement(_d,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},zr.createElement(pl,{...n}),zr.createElement(Md,{direction:"vertical",size:32}))}i(no,"WalletModal");var qd=ml("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),zd=ml("div",{textAlign:"center"}),Tn=3e3,Gr=300;function dl(){let{config:t,fetchStatus:e}=d(),[o,n]=ul(!1),[r,s]=ul(""),a=null,{list:l,handleClick:p,error:c}=dn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},Gr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},Tn)}}),u=l.find(f=>f.type===r),m=u?.image||"",g=u?.state||Od.NOT_INSTALLED;return At.createElement(K,{header:{title:cl.t("Connect Wallets")}},At.createElement(zd,null,At.createElement(Dd,{variant:"title",size:"xmedium",align:"center"},cl.t("Choose a wallet to connect.")),At.createElement(qd,null,l.map((f,k)=>{let S=`wallet-${k}-${f.type}`;return At.createElement(Ud,{key:S},At.createElement(Fd,{...f,container:j(),onClick:h=>{p(h)},isLoading:e==="loading"}))}),At.createElement(no,{open:!!o,onClose:()=>n(!1),image:m,state:g,error:c}))))}i(dl,"WalletsPage");import{keyframes as Gd,styled as Hr}from"@rango-dev/ui";var fl=Hr("div",{position:"relative"}),Hd=Gd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),gl=Hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Hd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),hl=Hr("div",{"& img":{borderRadius:"50%"}});function Vr(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=z.use.connectedWallets(),{blockchains:p}=d(),[c,u]=ro(""),[m,g]=ro(null),[f,k]=ro(!1),[S,h]=ro(null),{suggestAndConnect:b}=Tl(),T=null,{list:w,error:A,handleClick:C}=dn({config:a,chain:e,onBeforeConnect:x=>{T=setTimeout(()=>{u(x)},Gr)},onConnect:()=>{T&&clearTimeout(T),setTimeout(()=>{u("")},Tn)}}),[v,E]=ro(w),y=w.length,P=r&&y-r>0,$=i(async x=>{k(!1),h("in-progress");try{await b(x.walletType,x.chain),h("completed")}catch{h("rejected")}},"addExperimentalChain");kl(()=>{E(x=>{let _=w.findIndex(I=>o(I.type,e));return P&&_>1?[w[_]].concat(w.filter((I,G)=>G!==_)):x.map(I=>w.find(G=>G.type===I.type)??I)})},[JSON.stringify(w)]);let N=document.querySelector("#swap-box");return kl(()=>{let x=null;return(S==="completed"||S==="rejected")&&(x=setTimeout(()=>h(null),Tn)),()=>{x&&clearTimeout(x)}},[S]),R.createElement(R.Fragment,null,v.slice(0,r).map(x=>{let _=Us({connectedWallets:l,walletType:x.type,chain:e}),I=_?Ho(_):"",G=zo(p(),e),J=!l.find(ye=>ye.walletType===x.type&&ye.chain===e),te=G&&J&&x.state===Cl.CONNECTED,H=te?Ue.t({id:"Add {chain} chain",values:{chain:e}}):I,re=i(()=>{x.state===Cl.DISCONNECTED?C(x.type):te?(g({walletType:x.type,chain:e,address:_??""}),k(!0)):n({walletType:x.type,chain:e,address:_??""})},"onClick"),he=m?.chain?Rs(m.chain,p()):void 0;return R.createElement(R.Fragment,null,R.createElement(no,{open:c===x.type,onClose:()=>u(""),image:x.image,state:x.state,error:A}),!!m&&R.createElement(yl,{open:!!m&&f,container:N,onClose:()=>{g(null)}},R.createElement(wn,{title:Ue.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:he}}),type:"warning",description:Ue.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:he}})},R.createElement(Qr,{size:18}),R.createElement(Qr,{size:32}),R.createElement(Qd,{onClick:$.bind(null,m),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ue.t("Confirm")))),S&&R.createElement(yl,{open:!!S,onClose:h.bind(null,null),container:N},S==="in-progress"&&R.createElement(wn,{type:"loading",title:Ue.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:he}}),description:Ue.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:he}}),icon:R.createElement(fl,null,R.createElement(hl,null,R.createElement(Vd,{src:x.image,size:45})),R.createElement(gl,null))}),S==="completed"&&R.createElement(wn,{type:"success",title:Ue.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:he}}),description:Ue.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:he}})}),S==="rejected"&&R.createElement(wn,{type:"error",title:Ue.t("Request Rejected"),description:Ue.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:he}})}),R.createElement(Qr,{direction:"vertical",size:32})),R.createElement(jd,{key:x.type,description:H,onClick:re,selected:o(x.type,e),...x}))}),P&&R.createElement(Ba,{selected:!1,onClick:s},R.createElement(Sl,{variant:"label",size:"medium"},Ue.t("Show more wallets"),R.createElement(Sl,{variant:"label",size:"medium",color:"$primary"},"\xA0+",y-(r??0)))))}i(Vr,"WalletList");var nf=2;function vl(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:c,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:g,setCustomDestination:f}=O(),{connectedWallets:k,selectWallets:S}=z(),[h,b]=Et(""),[T,w]=Et([]),[A,C]=Et(""),[v,E]=Et(null),[y,P]=Et(g),[$,N]=Et(!!g),x=tf(null),_=Vo(p),I=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]=Et(k.filter(D=>D.selected&&_.includes(D.chain))),H=l.find(D=>D.name===I?.name),re=i((D,Y)=>!!J.find(U=>U.walletType===D&&U.chain===Y&&U.selected&&(G(Y)||!G(Y)&&!y)),"isSelected"),he=!!y&&$&&H&&!jo(H,y),ye=i(()=>{N(!1),P(""),te(D=>{let Y=!1;return D.map(U=>!Y&&U.chain===I?.name?(Y=!0,{...U,selected:!0}):U)})},"resetCustomDestination"),_e=i(D=>{if(h&&b(""),re(D.walletType,D.chain))return;let U=k.find(ie=>ie.walletType===D.walletType&&ie.chain===D.chain);U&&(n(),D.chain===I?.name&&$&&(N(!1),P("")),te(ie=>ie.filter(Ve=>Ve.chain!==D.chain).concat({...U,selected:!0})))},"onChange"),Bt=i(()=>{let D=J.filter(Y=>Y.selected);S(D),c(D),f(y),m(!0),o()},"onConfirmBalance"),Rt=i(async()=>{w([]),C(""),E(null);let D=k.filter(ie=>J.find(Ve=>Ve.chain===ie.chain&&Ve.walletType===ie.walletType)),Y=await r?.({selectedWallets:D,customDestination:y}),U=Y.warnings;U?.balance?.messages&&w(U.balance.messages),U?.quoteUpdate&&E(U.quoteUpdate),Y.error&&C(ta(Y.error)),!Y.error&&(!U?.balance?.messages.length||0>0)?Bt():w(U?.balance?.messages??[])},"onConfirmWallets");Rd(()=>{te(D=>D.concat(k.filter(Y=>!!!D.find(ie=>ie.chain===Y.chain)&&Y.selected&&_.includes(Y.chain))))},[k.length]),ef(()=>{$&&x.current&&setTimeout(()=>{x?.current?.scrollIntoView({behavior:"smooth"})},oo)},[$]);let rt=document.querySelector("#swap-box"),Qe=of();return L.createElement(xl,{open:e,onClose:()=>{u||Qe("../",{replace:!0}),o()},dismissible:!h,container:rt,...!h&&{footer:L.createElement(Ga,null,L.createElement(wl,{loading:s,disabled:fa(s,$,y,p,J,I),onClick:Rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...h&&{containerStyle:{padding:"$0"},header:L.createElement($a,null,L.createElement(Ma,{variant:"ghost",onClick:b.bind(null,"")},L.createElement(Yd,{size:16})),L.createElement(xn,{variant:"headline",size:"small"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(h,l)}})))},anchor:"center"},L.createElement(xl,{open:T.length>0,onClose:w.bind(null,[]),container:rt},L.createElement(Jd,{title:st.t("Insufficient account balance"),type:"error",description:L.createElement(Kd,{messages:T??[]})},L.createElement(wl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Bt},st.t("Proceed anyway")))),h&&L.createElement(_a,null,L.createElement("div",{className:Da()},L.createElement(Vr,{chain:h,isSelected:re,selectWallet:_e,onShowMore:b.bind(null,h)}))),!h&&L.createElement(L.Fragment,null,A&&L.createElement(L.Fragment,null,L.createElement(jr,{variant:"alarm",type:"error",title:st.t(A)}),L.createElement(zt,{size:12})),v&&L.createElement(L.Fragment,null,L.createElement(jr,{variant:"alarm",type:"warning",title:cn(v)}),L.createElement(zt,{size:12})),L.createElement(Qa,null,_.map((D,Y)=>{let U=l.find(be=>be.name===D),ie=`wallet-${Y}`,Ve=Y===_.length-1;return L.createElement("div",{key:ie},L.createElement(La,null,L.createElement(xn,{variant:"title",size:"xmedium"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:U?.shortName}})),L.createElement(xn,{variant:"label",color:"$neutral700",size:"medium"},st.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:U?.shortName}}))),L.createElement(zt,{size:24}),L.createElement(Na,null,L.createElement(Vr,{chain:D,isSelected:re,selectWallet:_e,limit:nf,onShowMore:()=>b(U?.name??"")})),!Ve&&L.createElement(zt,{size:32}),Ve&&a?.customDestination&&L.createElement(Ua,null,L.createElement(Fa,{ref:x,selected:$,open:$,onOpenChange:be=>{be?G(I?.name??"")||te(cr=>cr.map(ur=>ur.chain===I?.name?{...ur,selected:!1}:ur)):ye()}},L.createElement(Pa,{onClick:()=>N(be=>!be)},L.createElement(Oa,{fullWidth:!0,variant:"default",suffix:L.createElement(za,{orientation:$?"up":"down"},L.createElement(Xd,{size:10,color:"gray"}))},L.createElement("div",{className:"button__content"},L.createElement(Zd,{size:18,color:"info"}),L.createElement(zt,{size:4,direction:"horizontal"}),L.createElement(xn,{variant:"label",size:"medium"},st.t("Send to a different address"))))),L.createElement(un,{open:$},L.createElement(L.Fragment,null,L.createElement(zt,{size:4}),L.createElement(Ha,{autoFocus:!0,placeholder:st.t("Your destination address"),value:y,onChange:be=>{P(be.target.value)}})))),he&&L.createElement("div",{className:qa()},L.createElement(jr,{variant:"alarm",type:"error",title:st.t({values:{destination:y},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(vl,"ConfirmWalletsModal");import{Divider as Hf}from"@rango-dev/ui";import Pe from"react";import{i18n as Rr}from"@lingui/core";import{Alert as lf,ChevronDownIcon as pf,ChevronRightIcon as cf,Divider as ei,Image as Gl,InfoIcon as uf,QuoteCost as mf,StepDetails as df,TokenAmount as ff,Tooltip as Hl,Typography as ao}from"@rango-dev/ui";import B,{useLayoutEffect as gf,useRef as Ql,useState as hf}from"react";import{styled as io}from"@rango-dev/ui";var bl=io("div",{paddingBottom:"$10"}),Kr=io("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Al=io("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),El=io("div",{paddingBottom:"$15"}),Il=io("div",{width:"100%",display:"flex"});import*as vn from"@radix-ui/react-collapsible";import{css as Xr,darkTheme as Ye,Image as Wl,styled as Je,Typography as rf}from"@rango-dev/ui";var Yr=300,Ll=Je(vn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Ye} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ye} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Nl=Xr({padding:"$10 $15"}),Bl=Je("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",[`.${Ye} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Ye} &`]:{$$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",[`.${Ye} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Ye} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}]}),Pl=Xr({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),$l=Xr({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ye} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ml=Je(vn.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:{[`& ${Wl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Wl}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Ye} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ye} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),Jr=Je("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"}}}}),_l=Je(un,{width:"100%",background:"inherit"}),Zr=Je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Yr}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Zv=Je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Dl=Je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ye} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Fl=Je("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ol=Je(rf,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4});import{TokenAmount as zl}from"@rango-dev/ui";import bn from"react";import{css as sf,styled as af}from"@rango-dev/ui";var Ul=af("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ql=sf({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function so(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return bn.createElement(Ul,null,bn.createElement(zl,{direction:"horizontal",label:"Swap input",type:"input",price:{value:e.price.value,usdValue:e.price.usdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),bn.createElement("div",{className:ql()}),bn.createElement(zl,{direction:"horizontal",label:"Estimated output",type:"output",price:{value:o.price.value,usdValue:o.price.usdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(so,"QuoteSummary");function ti(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=d().tokens(),c=d().blockchains(),u=d().swappers(),[m,g]=hf(t.expanded),f=Ql(null),k=Ql(m),S=W(Yo(e.result?.swaps??[],p),2,2),h=Mo(_o(e.result?.swaps)),b=W(o.value,6,6),T=W(n.value,6,6),w=n.usdValue?W(n.usdValue,4,4):"",A=Ne(o.usdValue,n.usdValue??null),C=W(A,2,2),v=it(A??0),y=i(N=>N.map((x,_)=>{let I,G=r?.type===3&&r.swap.swapperId===x.swapperId||r?.type===4&&r.recommendedSlippages?.has(_),J=s?.type===2&&s.recommendedSlippages?.has(_);return G?I="error":J&&(I="warning"),{swapper:{displayName:ea(x.swapperId,u),image:x.swapperLogo},from:{token:{displayName:x.from.symbol,image:x.from.logo},chain:{displayName:Xe(x.from.blockchain,c),image:x.from.blockchainLogo},price:{value:_===0?W(o.value,6,6):W(x.fromAmount,6,6),usdValue:W((x.from.usdPrice??0)*parseFloat(x.fromAmount),4,4)}},to:{token:{displayName:x.to.symbol,image:x.to.logo},chain:{displayName:Xe(x.to.blockchain,c),image:x.to.blockchainLogo},price:{value:W(x.toAmount,6,6),usdValue:W((x.to.usdPrice??0)*parseFloat(x.toAmount),4,4)}},state:I,alerts:G||J?B.createElement(El,null,B.createElement(lf,{type:G?"error":"warning",title:r?.type===3?r?.recommendation:Rr.t("Slippage Error:"),footer:B.createElement(Il,null,r?.type===3&&B.createElement(B.Fragment,null,B.createElement(ao,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),B.createElement(ei,{direction:"horizontal",size:8}),B.createElement(ao,{size:"xsmall",variant:"body",color:"neutral900"},"|"),B.createElement(ei,{direction:"horizontal",size:8}),B.createElement(ao,{size:"xsmall",variant:"body",color:"neutral900"},Rr.t({id:"Yours: {amount} {symbol}",values:{amount:W(x.fromAmount,6,6),symbol:x?.from.symbol}}))),(r?.type===4||s?.type===2)&&B.createElement(ao,{size:"xsmall",variant:"body",color:"neutral900"},Rr.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(_)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(_)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),P=y.length,$=j();return gf(()=>{m&&!k.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},Yr),k.current=m},[m,k]),B.createElement(B.Fragment,null,B.createElement(Bl,{recommended:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:Pl()},B.createElement(mf,{fee:S,time:h,steps:P}),a==="basic"&&B.createElement("div",{className:$l()},B.createElement(Fl,null,B.createElement(uf,{size:12,color:"gray"})),B.createElement(Ol,{size:"small",variant:"body"},`${b} ${y[0].from.token.displayName} = ${T} ${y[y.length-1].to.token.displayName}`),B.createElement(ao,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${w})`)),a==="list-item"&&B.createElement(ff,{type:"output",direction:"vertical",price:{value:T,usdValue:w},token:{displayName:y[P-1].to.token.displayName,image:y[P-1].to.token.image},chain:{image:y[P-1].to.chain.image},percentageChange:C,warningLevel:v}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(so,{from:y[0].from,to:y[P-1].to,percentageChange:C,warningLevel:v}),B.createElement(ei,{size:4}))),B.createElement(Ll,{recommended:l,open:m,onOpenChange:g},B.createElement(Ml,{ref:N=>f.current=N,recommended:l,onClick:()=>g(N=>!N)},B.createElement("div",null,y.map((N,x)=>{let _=`item-${x}`,I=B.createElement(Zr,null,B.createElement(cf,{size:12,color:"black",...N.state&&{color:N.state==="error"?"error":"warning"}}));return B.createElement(B.Fragment,{key:_},B.createElement(Hl,{container:$,side:"bottom",sideOffset:4,content:N.from.chain.displayName},B.createElement(Jr,{state:N.state||y[x-1]?.state},B.createElement(Gl,{src:N.from.chain.image,size:16}))),x===P-1&&B.createElement(B.Fragment,null,I,B.createElement(Hl,{container:$,side:"bottom",sideOffset:4,content:N.to.chain.displayName},B.createElement(Jr,{state:N.state},B.createElement(Gl,{src:N.to.chain.image,size:16})))),x!==P-1&&B.createElement(B.Fragment,null,I))})),B.createElement(Zr,{orientation:m?"up":"down"},B.createElement(pf,{size:12,color:"black"}))),B.createElement(_l,{open:m},B.createElement(Dl,null),B.createElement("div",{className:Nl()},y.map((N,x)=>{let _=`item-${x}`;return B.createElement(df,{type:"quote-details",key:_,step:N,hasSeparator:x!==y.length-1,state:N.state})}))))))}i(ti,"Quote");import{Divider as Cf,Skeleton as kf}from"@rango-dev/ui";import at from"react";import{darkTheme as yf,styled as An}from"@rango-dev/ui";var Vl=An("div",{$$color:"$colors$neutral100",[`.${yf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),jl=An("div",{paddingTop:"$2"}),Kl=An("div",{paddingLeft:"$8"}),Xl=An("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as sp,Divider as It,Skeleton as Re}from"@rango-dev/ui";import q from"react";import{styled as Ze}from"@rango-dev/ui";var Yl=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),Jl=Ze("div",{display:"flex"}),Zl=Ze("div",{padding:"$15 $0 14px $0"}),Rl=Ze("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),ep=Ze("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),tp=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),op=Ze("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),np=Ze("div",{width:"65%",display:"flex",justifyContent:"start"}),rp=Ze("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),ip=Ze("div",{padding:"$15 $0 $15 $0"});function co(t){let{type:e,tag:o=!1}=t,n=q.createElement(tp,null,q.createElement(np,null,q.createElement(sp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(It,{size:8,direction:"horizontal"}),q.createElement(rp,null,q.createElement(Re,{height:10,width:60,variant:"rounded"}),q.createElement(It,{size:4}),q.createElement(Re,{height:15,variant:"rounded"}))),q.createElement(Re,{height:12,width:64,variant:"rounded"}));return q.createElement("div",null,q.createElement(Yl,null,q.createElement(Jl,null,q.createElement(Re,{width:60,height:10,variant:"rounded"}),q.createElement(It,{size:4,direction:"horizontal"}),q.createElement(Re,{width:60,height:10,variant:"rounded"}),q.createElement(It,{size:4,direction:"horizontal"}),q.createElement(Re,{width:60,height:10,variant:"rounded"})),o&&q.createElement(Re,{height:22,width:100,variant:"rounded"})),e==="basic"&&q.createElement(Zl,null,q.createElement(Re,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(Rl,null,q.createElement(ep,null,q.createElement(sp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(It,{direction:"horizontal",size:4}),q.createElement(Re,{height:15,width:150,variant:"rounded"})),q.createElement(It,{size:4}),q.createElement(Re,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(It,{size:4}),q.createElement(ip,null,n,q.createElement(op,null),n)))}i(co,"QuoteSummarySkeleton");import{ChainToken as up,Divider as ni,NextIcon as Sf,Skeleton as En}from"@rango-dev/ui";import ae from"react";import{styled as uo}from"@rango-dev/ui";var ap=uo("div",{display:"flex",alignItems:"start"}),lp=uo("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),oi=uo("div",{display:"flex",alignItems:"center",flexGrow:1}),pp=uo("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),cp=uo("div",{display:"flex",alignItems:"center"});function et(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(cp,null,ae.createElement(En,{height:22,width:22,variant:"circular"}),ae.createElement(ni,{direction:"horizontal",size:8}),ae.createElement(En,{height:15,width:148,variant:"rounded"})),ae.createElement(ap,null,ae.createElement(Xl,{hideSeparator:!e}),ae.createElement(lp,null,ae.createElement(oi,null,ae.createElement(up,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(ni,{direction:"horizontal",size:8}),ae.createElement(En,{height:12,variant:"rounded"})),ae.createElement(pp,null,ae.createElement(Sf,{color:"gray",size:16})),ae.createElement(oi,null,ae.createElement(up,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(ni,{direction:"horizontal",size:8}),ae.createElement(En,{height:12,variant:"rounded"})))))}i(et,"StepSkeleton");function ri(t){let{type:e,expanded:o,tag:n=!1}=t;return at.createElement(Vl,{rounded:e!=="basic"},at.createElement(co,{type:e,tag:n}),at.createElement(jl,null,at.createElement(kf,{height:15,variant:"rounded"})),o&&at.createElement(Kl,null,at.createElement(Cf,{size:20}),at.createElement(et,null),at.createElement(et,null),at.createElement(et,{separator:!1})))}i(ri,"QuoteSkeleton");import{i18n as Uf}from"@lingui/core";import{Alert as qf,Button as zf,InfoIcon as Gf}from"@rango-dev/ui";import Ee from"react";import{Alert as Tf,Button as wf,Divider as yp,NoRouteIcon as xf,RefreshIcon as vf,Typography as Sp}from"@rango-dev/ui";import qe from"react";import{i18n as mp}from"@lingui/core";function dp(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:Q().genericServerError,action:{onClick:n,title:mp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:Q().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:mp.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(dp,"makeInfo");import{styled as ii}from"@rango-dev/ui";var fp=ii("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),gp=ii("div",{width:"100%"}),hp=ii("div",{padding:"$6 $0"});function si(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=dp(o,n,()=>r(s,!0),e);return qe.createElement(fp,null,qe.createElement(xf,{size:24,color:"gray"}),qe.createElement(yp,{size:4}),qe.createElement(Sp,{variant:"title",size:"small"},Q().noResultError.title),!!a.description&&qe.createElement(Sp,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),qe.createElement(yp,{size:4}),!!a.alert&&qe.createElement(gp,null,qe.createElement(Tf,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&qe.createElement(wf,{size:"xsmall",type:a.alert.type,prefix:qe.createElement(hp,null,qe.createElement(vf,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(si,"NoResult");import{i18n as mo}from"@lingui/core";import{Button as Af,Divider as vp,MessageBox as Ef,Modal as If,Typography as Wf,WarningIcon as Lf}from"@rango-dev/ui";import tt from"react";import{Typography as wp}from"@rango-dev/ui";import li from"react";import{darkTheme as bf,styled as In}from"@rango-dev/ui";var Cp=In("div",{width:"100%",paddingTop:"$10"}),ai=In("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),kp=In("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${bf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tp=In("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function xp(t){let{title:e,value:o,valueColor:n}=t;return li.createElement(kp,null,li.createElement(wp,{size:"medium",variant:"label",className:"_title"},e),li.createElement(wp,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(xp,"QuoteErrorsModalItem");function bp(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:mo.t("Swapping"),value:W(r.inputUsdValue,4,4)},{title:mo.t("Gas cost"),value:W(r.totalFee,2,2)},{title:mo.t("Receiving"),value:W(r.outputUsdValue,4,4)},{title:mo.t("Price impact"),value:W(r.priceImpact,2,2),valueColor:`${s}500`}];return tt.createElement(If,{open:e,onClose:o,container:j()},tt.createElement(Ef,{type:s,title:Q().highValueLossError.impactTitle,description:Q().highValueLossError.description}),tt.createElement(ai,null,tt.createElement(vp,{size:20}),tt.createElement(Wf,{size:"small",variant:"title"},mo.t("Details")),tt.createElement(ai,null,a.map((l,p)=>tt.createElement(xp,{key:p,...l})))),tt.createElement(vp,{size:32}),tt.createElement(Af,{type:"primary",size:"large",prefix:tt.createElement(Lf,null),fullWidth:!0,onClick:n},Q().highValueLossError.confirmMessage))}i(bp,"HighValueLossWarningModal");import{i18n as pi}from"@lingui/core";function Ap(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(it(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=Q().highValueLossError.title),t.type===1&&(o.title=Q().unknownPriceError.title),t.type===2&&(o.title=pi.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=pi.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=pi.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(Ap,"makeAlerts");import{i18n as Gt}from"@lingui/core";import{Button as Ep,Divider as Ip,MessageBox as Nf,Modal as Bf,Typography as Pf}from"@rango-dev/ui";import Wt from"react";import{useNavigate as $f}from"react-router-dom";function Wp(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=$f(),p=e??o;return Wt.createElement(Bf,{anchor:"bottom",open:n,prefix:Wt.createElement(Ep,{size:"small",variant:"ghost",onClick:()=>l("../"+M.settings)},Wt.createElement(Pf,{variant:"label",size:"medium",color:"$neutral900"},Gt.t("Change settings"))),container:j(),onClose:r},Wt.createElement(Nf,{type:"warning",title:a.type===3?Gt.t("High slippage"):Gt.t("Low slippage"),description:a.type===3?Gt.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Gt.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Wt.createElement(Ip,{size:18}),Wt.createElement(Ip,{size:32}),Wt.createElement(Ep,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Gt.t("Confirm anyway"))))}i(Wp,"SlippageWarningModal");import{Button as Mf,Divider as _f,MessageBox as Df,Modal as Ff,WarningIcon as Of}from"@rango-dev/ui";import fo from"react";function Lp(t){let{open:e,onClose:o,onConfirm:n}=t;return fo.createElement(Ff,{open:e,onClose:o,container:j()},fo.createElement(Df,{type:"warning",title:Q().unknownPriceError.impactTitle,description:Q().unknownPriceError.description}),fo.createElement(_f,{size:32}),fo.createElement(Mf,{type:"primary",size:"large",prefix:fo.createElement(Of,null),fullWidth:!0,onClick:n},Q().unknownPriceError.confirmMessage))}i(Lp,"UnknownPriceWarningModal");function ci(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:s,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,c={open:r,onClose:a,onConfirm:l},u=o?.type===0||o?.type===1,m=Ap(e,o?.type===3||o?.type===4?o:null);return Ee.createElement(Ee.Fragment,null,u&&Ee.createElement(si,{error:o,fetch:n}),!!m&&Ee.createElement(Cp,null,Ee.createElement(qf,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ee.createElement(Tp,{onClick:s},Ee.createElement(Gf,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:Ee.createElement(zf,{size:"xxsmall",type:m.alertType,onClick:p},Uf.t("Change"))}})),e&&Ee.createElement(Ee.Fragment,null,e.type===0&&Ee.createElement(bp,{...c,warning:e}),(e.type===3||e.type===2)&&Ee.createElement(Wp,{...c,warning:e}),e.type===1&&Ee.createElement(Lp,{...c,warning:e})))}i(ci,"QuoteWarningsAndErrors");function go(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:m,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:k,inputUsdValue:S,outputUsdValue:h,outputAmount:b}=O(),w=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,A=(s||r)&&Pe.createElement(ci,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:m});return Pe.createElement(Pe.Fragment,null,n&&Pe.createElement(Kr,null,Pe.createElement(Al,{paddingTop:f==="top"},Pe.createElement(ri,{type:o,expanded:g}))),f==="top"&&Pe.createElement(bl,null,A),w?Pe.createElement(Kr,null,Pe.createElement(ti,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:k,usdValue:S?.toString()??""},output:{value:b?.toString()??"",usdValue:h?.toString()??""}})):null,f==="bottom"&&Pe.createElement(Pe.Fragment,null,!s&&!r&&Pe.createElement(Hf,{size:16}),A))}i(go,"QuoteInfo");import{calculatePendingSwap as jf}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Kf}from"react";import{useRef as Qf,useState as Vf}from"react";function Wn(){let[t,e]=Vf(!1),o=Qf(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await $t().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(Wn,"useFetchQuote");function Ln(t){if(!t.result)throw new Error(Q().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(wr(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=xr(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=br(t);if(o){let n=Jo(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(Ln,"throwErrorIfResponseIsNotValid");function Np(t,e,o){let n=!1;t&&(n=Sa(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=Ro(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(la(t,e)?r.quoteUpdate={type:3,newOutputAmount:W(Dt(e)),percentageChange:W(Ne(Dt(t)??"",Dt(e)??""),null,2)}:Er(t,e)?r.quoteUpdate={type:0}:Ir(t,e)?r.quoteUpdate={type:1}:Wr(t,e)&&(r.quoteUpdate={type:2}));let a=pa(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Np,"generateWarnings");function Nn(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(Nn,"handleQuoteErrors");function ui(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=O(),{slippage:l,customSlippage:p,affiliatePercent:c,affiliateRef:u,affiliateWallets:m,disabledLiquiditySources:g}=d(),{connectedWallets:f}=z(),k=d().blockchains(),S=d().tokens(),{features:h}=d().config,{enableNewLiquiditySources:b}=d().config,T=p||l,{fetch:w,cancelFetch:A,loading:C}=Wn();return Kf(()=>A,[]),{loading:C,fetch:i(async E=>{let y=E.selectedWallets,P=E?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let $=Zo({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:y,excludeLiquiditySources:b,disabledLiquiditySources:g,slippage:T,affiliateRef:u,affiliatePercent:c,affiliateWallets:m,initialQuote:r??void 0,destination:P});$o("experimentalRoute",h)&&($.experimental=!0);let N;try{N=await w($).then(G=>Ln(G)),n(N)}catch(G){return Nn(G)}let x={slippage:T.toString(),disabledSwappersGroups:g},_=jf(o.toString(),N,sa(y),x,!1,{blockchains:k,tokens:S}),I=Np(r??void 0,N,{fromToken:t,toToken:e,meta:{blockchains:k,tokens:S},selectedWallets:y,userSlippage:T});return I.quoteUpdate&&a(!1),{quote:N,swap:_,error:null,warnings:I}},"fetch"),cancelFetch:A}}i(ui,"useConfirmSwap");var sg=Mp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),ag=Mp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${$p}`]:{width:"$48",height:"$48"}}),lg=mi({flexGrow:1,paddingRight:"$10"}),pg=mi({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),cg=mi({display:"flex",justifyContent:"space-between",alignItems:"center"});function _p(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=O(),l=ig(),[p,c]=Pn(""),{connectedWallets:u}=z(),m=!n,[g,f]=Pn(!1),k=Te.use.setSelectedSwap(),S=d().disabledLiquiditySources,h=ng(S),{manager:b}=Xf(),{fetch:T,loading:w,cancelFetch:A}=ui(),[C,v]=Pn({swap:null,error:null,warnings:null}),[E,y]=Pn(!1),P=i(async({selectedWallets:I,customDestination:G})=>{let J=await T?.({selectedWallets:I,customDestination:G});return v(J),J},"onConfirmSwap"),$=i(async()=>{if(C.swap&&n)try{await b?.create("swap",{swapDetails:C.swap},{id:C.swap.requestId}),k(C.swap.requestId);let I=`../${M.swaps}/${C.swap.requestId}`;l(I,{replace:!0}),setTimeout(()=>{e("")},0)}catch(I){c("Error: "+I?.message)}},"addNewSwap"),N=i(async()=>{await $()},"onConfirm"),x=i(async()=>{C?.warnings?.quote&&!a?y(!0):await N()},"onStartConfirmSwap"),_=i(async()=>{v({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:s}).then(I=>{v(I)}).catch(I=>console.error(I))},"onRefresh");return ho(()=>{!!h.current.length&&!S.length&&_(),h.current=S},[S.length]),ho(()=>{m&&A()},[m]),ho(()=>{m&&f(m)},[m]),ho(()=>{m||T({selectedWallets:o,customDestination:s}).then(I=>v(I)).catch(I=>console.error(I))},[]),ho(()=>{let I=C.warnings?.quote?.type&&Object.values(mt).includes(C.warnings?.quote?.type),G=o.length<1||!o.every(te=>u.find(H=>te.address===H.address&&te.walletType===H.walletType&&te.chain===H.chain)),J=!1;if(I){let te=Vo(t),H=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(ye=>ye.from.blockchain===H)||(te=te.slice(-te.length,te.length-1)),te.every(ye=>o.find(_e=>_e.chain===ye))||(J=!0)}t&&(G||J)&&(queueMicrotask(()=>rg(f.bind(null,!0))),r(!1))},[C.warnings?.quote,o.length,u.length]),og(()=>{t||l("../")},[]),ee.createElement(K,{header:{title:Bn.t("Confirm Swap"),onWallet:()=>{let I=`../${M.wallets}`;l(I)},suffix:ee.createElement(Rf,{container:j(),side:"bottom",content:Bn.t("Settings")},ee.createElement(Fe,{size:"small",variant:"ghost",onClick:()=>l("../"+M.settings)},ee.createElement(Zf,{size:18,color:"black"})))},footer:ee.createElement(ag,null,ee.createElement("div",{className:lg()},ee.createElement(Pp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w,disabled:!!C.error,onClick:x},Bn.t("Start Swap"))),ee.createElement($p,{variant:"contained",type:"primary",size:"large",loading:w,onClick:f.bind(null,!0)},ee.createElement(tg,{size:24})))},g&&ee.createElement(vl,{open:g,onClose:()=>f(!1),onCancel:A,loading:w,onCheckBalance:P}),ee.createElement(sg,null,ee.createElement("div",{className:cg()},ee.createElement(eg,{variant:"title",size:"small"},Bn.t("You get")),ee.createElement(Pp,{style:{padding:"0"},variant:"ghost",disabled:w,onClick:_},ee.createElement("div",{className:pg()},ee.createElement(Jf,{size:16})))),p&&ee.createElement(ee.Fragment,null,ee.createElement(Bp,{type:"error",variant:"alarm",title:p}),ee.createElement(Yf,{size:12})),C.warnings?.quoteUpdate&&ee.createElement("div",{className:"quote-update__alert"},ee.createElement(Bp,{variant:"alarm",type:"warning",title:C.warnings.quoteUpdate&&cn(C.warnings.quoteUpdate)})),ee.createElement(go,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:C.error,loading:w,warning:C.warnings?.quote??null,refetchQuote:_,showWarningModal:E,onOpenWarningModal:()=>y(!0),onCloseWarningModal:()=>y(!1),onConfirmWarningModal:async()=>{y(!1),await $()},onChangeSettings:()=>l("../"+M.settings)})))}i(_p,"ConfirmSwapPage");import{i18n as _n}from"@lingui/core";import{useManager as Sg}from"@rango-dev/queue-manager-react";import{Divider as Cg,NotFound as kg,styled as Qp}from"@rango-dev/ui";import Ct,{useState as Tg}from"react";import{useNavigate as wg}from"react-router-dom";import{CloseIcon as mg,IconButton as dg,SearchIcon as fg,TextField as gg}from"@rango-dev/ui";import yo from"react";import{styled as ug}from"@rango-dev/ui";var Dp=ug("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return yo.createElement(gg,{prefix:yo.createElement(Dp,null,yo.createElement(fg,{color:"black"})),suffix:!!a.length&&yo.createElement(dg,{variant:"ghost",onClick:()=>l?.(""),size:"small"},yo.createElement(mg,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(lt,"SearchInput");import{i18n as Op}from"@lingui/core";import{Divider as Up,SwapListItem as qp,Typography as zp}from"@rango-dev/ui";import Z from"react";import{css as hg,darkTheme as yg,styled as $n}from"@rango-dev/ui";var Mn=hg(),di=$n("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${Mn}`]:{$$color:"$colors$neutral600",[`.${yg} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fi=$n("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),gi=$n("div",{gap:"$10",display:"flex",flexDirection:"column"}),Fp=$n("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function hi(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:"Last month",swaps:a}].map(p=>Z.createElement(Z.Fragment,{key:p.title},Z.createElement(di,null,Z.createElement(fi,null,Z.createElement(zp,{variant:"label",size:"medium",className:Mn()},Op.t(p.title))),Z.createElement(Up,{size:4}),Z.createElement(gi,null,p.swaps.map((c,u)=>{let m=u+p.title;return Z.createElement(Z.Fragment,{key:m},Z.createElement(qp,{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(di,null,Z.createElement(fi,null,Z.createElement(zp,{variant:"label",size:"medium",className:Mn()},Op.t(a.title))),Z.createElement(Up,{size:4}),Z.createElement(gi,null,a.swaps.map(l=>{let p=l.steps[0],c=l.steps[l.steps.length-1];return Z.createElement(Z.Fragment,{key:l.requestId},Z.createElement(qp,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:Do(l.inputAmount)},to:{token:{image:c.toLogo,displayName:c.toSymbol},blockchain:{image:c.toBlockchainLogo||""},amount:Do(c.outputAmount||""),estimatedAmount:Do(c.expectedOutputAmountHumanReadable||"")}}}))}))))))}i(hi,"SwapsGroup");import Gp from"dayjs";var Hp=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["month",{title:"Last month",swaps:[]}],["year",{title:"Last year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=Gp();return t.forEach(n=>{let r=Gp(Number(n.creationTime));o.isSame(r,"day")?e.get("today")?.swaps.push(n):o.isSame(r,"month")?e.get("month")?.swaps.push(n):o.isSame(r,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");var Ht=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 xg=Qp("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),vg=Qp("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),bg=i((t,e)=>t?.length?t.filter(o=>je(o.fromBlockchain,e)||je(o.toBlockchain,e)||je(o.toSymbol,e)||je(o.fromSymbol,e)).length:!1,"isStepContainsText");function Vp(){let t=Te.use.setSelectedSwap(),e=wg(),{manager:o,state:n}=Sg(),r=Ht(o).map(({swap:m})=>m),[s,a]=Tg(""),l=!n.loadedFromPersistor,p=i(m=>{let g=m.target.value;a(g)},"searchHandler"),c=r;s&&(c=r.filter(m=>je(m.inputAmount,s)||je(m.status,s)||bg(m.steps,s)||je(m.requestId,s)));let u=!c?.length&&!l;return Ct.createElement(K,{header:{title:_n.t("History")}},Ct.createElement(xg,null,Ct.createElement(lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:_n.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),Ct.createElement(vg,null,u&&Ct.createElement(Fp,null,Ct.createElement(Cg,{size:32}),Ct.createElement(kg,{title:_n.t("No results found"),description:s?_n.t("Try using different keywords"):""})),!u&&Ct.createElement(hi,{list:c,onSwapClick:m=>{t(m),e(m)},groupBy:Hp,isLoading:l}))))}i(Vp,"HistoryPage");import{i18n as Ci}from"@lingui/core";import{Button as Bg,styled as ki,SwapInput as Yp,WarningIcon as Pg}from"@rango-dev/ui";import $e,{useEffect as $g,useRef as Mg,useState as _g}from"react";import{useNavigate as Dg}from"react-router-dom";import{ReverseIcon as Ag,styled as jp}from"@rango-dev/ui";import yi from"react";var Eg=jp("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ig=jp("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 Kp(){let t=O.use.switchFromAndTo();return yi.createElement(Eg,null,yi.createElement(Ig,{onClick:()=>{t()}},yi.createElement(Ag,{size:12})))}i(Kp,"SwitchFromAndToButton");import{useCallback as Wg,useEffect as Lg,useState as Si}from"react";var Ng=600;function Xp(){let{fetch:t,cancelFetch:e}=Wn(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:c,resetQuote:u,setQuote:m}=O(),{slippage:g,customSlippage:f,affiliatePercent:k,affiliateRef:S,affiliateWallets:h,disabledLiquiditySources:b}=d(),[T,w]=Si(!1),[A,C]=Si(null),[v,E]=Si(null),y=f??g,$=!a||!l||Le(a,l)||!eo(p),N=i(I=>{w(I),C(null),E(null)},"resetState"),x=i(I=>{let{fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:he,slippage:ye,affiliateRef:_e,affiliatePercent:Bt,affiliateWallets:Rt}=I;if(T||N(!0),!$&&G&&J){u();let rt=Zo({fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:he,slippage:ye,affiliateRef:_e,affiliatePercent:Bt,affiliateWallets:Rt});$o("experimentalRoute",r)&&(rt.experimental=!0),t(rt).then(Qe=>{w(!1),m(Qe),Ln(Qe);let D=Ro(Qe,{fromToken:G,toToken:J,userSlippage:y,tokens:s});E(D)}).catch(Qe=>{let{error:D}=Nn(Qe);(D?.type===0||D?.type===1)&&u(),D?.type!==2&&(C(D),w(!1))})}},"fetch"),_=Wg(Es(I=>{$||x(I)},Ng),[$]);return Lg(()=>{if(!eo(p)||c?.eq(0)){N(!1),e();return}if(!$)return u(),N(!0),_({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:b,slippage:y,affiliateRef:S,affiliatePercent:k,affiliateWallets:h}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,$,o?.length,n,b.length,y,S,k,JSON.stringify(h)]),{fetch:()=>x({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:b,slippage:y,affiliateRef:S,affiliatePercent:k,affiliateWallets:h}),loading:T,error:A,warning:v}}i(Xp,"useSwapInput");var Fg=ki("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),Og=ki("div",{position:"relative"}),Ug=ki("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function Jp(){let t=Dg(),{fetch:e,loading:o,error:n,warning:r}=Xp(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:c,inputAmount:u,inputUsdValue:m,outputAmount:g,outputUsdValue:f,quote:k,resetQuoteWallets:S,setQuoteWarningsConfirmed:h}=O(),b=d().fetchStatus,{connectedWallets:T,getBalanceFor:w}=z(),A=Te.use.setCurrentPage(),[C,v]=_g(!1),E=Mg(null),y=!!a&&qs(T,a.name),P=!1,$=!vr(k,u,m),N=!vr(k,u,f),x=na({fetchMetaStatus:b,fetchingQuote:o,inputAmount:u,quote:k,anyWalletConnected:T.length>0,error:n,warning:r,needsToWarnEthOnPath:P}),_=s?w(s):null,I=Go(_)?.amount??"0",G=a&&s?W(_?.amount,_?.decimals):"0";$g(()=>(A(M.home),S(),A.bind(null,"")),[]);let J=!m||!f||!f.gt(0)?null:Ne(m.toString(),f.toString());return $e.createElement(K,{ref:E,fixedHeight:!1,hasLogo:!0,footer:$e.createElement(Bg,{type:"primary",size:"large",disabled:x.disabled,prefix:x.action==="confirm-warning"&&$e.createElement(Pg,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?t(M.wallets):x.action==="confirm-warning"?v(!0):t(M.confirmSwap)}},x.title),header:{onWallet:()=>{t(M.wallets)},hasBackButton:!1,title:Ci.t("Swap"),suffix:$e.createElement(Or,{layoutRef:E.current,onClickRefresh:k||n?e:void 0,onClickHistory:()=>t(M.swaps),onClickSettings:()=>t(M.settings)})}},$e.createElement(Fg,null,$e.createElement(Ug,null,$e.createElement(Og,null,$e.createElement(Yp,{label:Ci.t("From"),mode:"From",onInputChange:c,balance:I,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(M.fromSwap),price:{value:u,usdValue:$?void 0:W(m,4,4),error:$?Q().unknownPriceError.impactTitle:void 0},disabled:b==="failed",loading:b==="loading",loadingBalance:y,onSelectMaxBalance:()=>{I!=="0"&&c(G.split(",").join(""))}}),$e.createElement(Kp,null)),$e.createElement(Yp,{sharpBottomStyle:!!k?.result||o,label:Ci.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:W(Ne(m,f),2,2),warningLevel:it(J??0),price:{value:W(g,6,6),usdValue:N?void 0:W(f,4,4),error:N?Q().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(M.toSwap),disabled:b==="failed",loading:b==="loading"})),$e.createElement("div",{className:"quote__container"},$e.createElement(go,{quote:k,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:C,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),h(!0),t(M.confirmSwap)},onChangeSettings:()=>t(M.settings)}))))}i(Jp,"Home");import{i18n as Zp}from"@lingui/core";import{List as qg,ListItemButton as zg,Radio as Gg,RadioRoot as Hg,Typography as Qg}from"@rango-dev/ui";import kt from"react";import{styled as Dn}from"@rango-dev/ui";var pt=Dn("div",{height:"100%",overflow:"hidden"}),So=Dn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),Ti=Dn("div",{width:80,display:"flex",justifyContent:"flex-end"}),wi=Dn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Fn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:Gs,defaultLanguage:_t,changeLanguage:r=>t(r||_t)}}i(Fn,"useLanguage");function Rp(){let{activeLanguage:t,changeLanguage:e,languages:o}=Fn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:kt.createElement(Qg,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:kt.createElement(Gg,{value:s}),start:kt.createElement(l,null)}});return kt.createElement(K,{header:{title:Zp.t("Language")}},kt.createElement(pt,null,kt.createElement(Hg,{value:t},kt.createElement(qg,{type:kt.createElement(zg,{title:Zp.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(Rp,"LanguagePage");import{i18n as Qt}from"@lingui/core";import{Button as Yg,Checkbox as Jg,Image as Zg,ListItemButton as Rg,NotFound as eh,Typography as th}from"@rango-dev/ui";import ge,{useState as oh}from"react";import{Checkbox as Kg,Skeleton as tc}from"@rango-dev/ui";import Co from"react";import{ListItem as Vg,styled as jg}from"@rango-dev/ui";var ec=jg(Vg,{height:61});var Xg=30;function xi(){return Co.createElement(So,null,Array.from(Array(Xg),t=>Co.createElement(ec,{hasDivider:!0,key:t,start:Co.createElement(tc,{variant:"circular",width:35,height:35}),title:Co.createElement(tc,{variant:"text",size:"large",width:90}),end:Co.createElement(Kg,{checked:!1})})))}i(xi,"LoadingLiquiditySourceList");function vi({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=oh(""),a=d().toggleLiquiditySource,l=Po(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let c=l.filter(S=>p.includes(S.type)),u=c.length===c.filter(S=>S.selected).length,m=i(()=>{c.forEach(S=>{u?a(S.groupTitle):S.selected||a(S.groupTitle)})},"toggleAllSources"),g=c.map(S=>{let{selected:h,groupTitle:b,logo:T}=S;return{start:ge.createElement(Zg,{src:T,size:22,type:"circular"}),onClick:()=>a(b),end:ge.createElement(Jg,{checked:h}),title:ge.createElement(th,{variant:"title",size:"xmedium"},Qt.t(b)),...S}}),f=i(S=>{let h=S.target.value;s(h)},"searchHandler"),k=g;return r&&(k=g.filter(S=>je(S.groupTitle,r))),ge.createElement(K,{header:{title:Qt.t(t),suffix:ge.createElement(Ti,null,ge.createElement(Yg,{variant:"ghost",size:"xsmall",onClick:m},Qt.t(u?"Deselect all":"Select all")))}},ge.createElement(pt,null,ge.createElement(lt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Qt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&ge.createElement(xi,null),!k.length&&r?ge.createElement(wi,null,ge.createElement(eh,{title:Qt.t("No results found"),description:Qt.t("Try using different keywords")})):e==="success"&&ge.createElement(So,null,k.map(S=>ge.createElement(ge.Fragment,{key:S.id},ge.createElement(Rg,{style:{height:"61px"},...S,selected:!1,hasDivider:!0}))))))}i(vi,"LiquiditySourcePage");import{i18n as pc}from"@lingui/core";import{Divider as Ii,getCountCategories as mh,SelectableCategoryList as dh}from"@rango-dev/ui";import ct,{useState as cc}from"react";import{i18n as Ai}from"@lingui/core";import{Divider as ac,Image as ah,ListItemButton as lh,NotFound as ph,Typography as lc}from"@rango-dev/ui";import Me,{useEffect as ch,useState as uh}from"react";import{BlockchainCategories as bi}from"@rango-dev/ui";import{TransactionType as On}from"rango-sdk";var nh=i((t,e)=>{switch(e){case bi.ALL:return!0;case bi.UTXO:return t.type===On.TRANSFER;case bi.OTHER:return t.type!==On.TRANSFER&&t.type!==On.COSMOS&&t.type!==On.EVM;default:return t.type===e}},"filterByType"),oc=i((t,e,o)=>t.filter(n=>nh(n,o)).filter(n=>wt(n.name,e)||wt(n.displayName,e)),"filterBlockchains");import{ImageContainer as rh,styled as nc}from"@rango-dev/ui";var rc=nc("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Un=nc("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${rh}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as ih,Skeleton as ic}from"@rango-dev/ui";import qn from"react";var sh=20;function sc(){return qn.createElement(Un,null,Array.from(Array(sh),t=>qn.createElement(ih,{key:t,hasDivider:!0,start:qn.createElement(ic,{variant:"circular",width:35,height:35}),title:qn.createElement(ic,{variant:"text",size:"large",width:90})})))}i(sc,"LoadingBlockchainList");function Ei(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=uh(e),{fetchStatus:l}=d();ch(()=>{a([...oc(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Me.createElement(Me.Fragment,null,Me.createElement(ac,{size:32}),Me.createElement(ph,{title:Ai.t("No results found"),description:Ai.t("Try using different keywords")})):Me.createElement(Un,{key:`${r}-${o}`},s.map(c=>Me.createElement(lh,{key:`${c.name}-${c.chainId}`,hasDivider:!0,onClick:()=>n(c),start:Me.createElement(ah,{src:c.logo,size:30}),title:Me.createElement(lc,{variant:"title",size:"medium"},c.displayName),id:c.chainId}))),"renderList");return Me.createElement(rc,null,Me.createElement(lc,{variant:"label",size:"large"},Ai.t("Select Blockchain")),Me.createElement(ac,{size:4}),l==="loading"&&Me.createElement(sc,null),l==="success"&&p())}i(Ei,"BlockchainList");function Wi(t){let{type:e}=t,o=ht(),[n,r]=cc(""),[s,a]=cc("ALL"),l=O.use.setToBlockchain(),p=O.use.setFromBlockchain(),c=d().fetchStatus,u=d().blockchains({type:e}),g=mh(u)!==1;return ct.createElement(K,{header:{title:pc.t("Select Blockchain")}},ct.createElement(Ii,{size:12}),g&&ct.createElement(ct.Fragment,null,ct.createElement(dh,{setCategory:a,category:s,blockchains:u,isLoading:c==="loading"}),ct.createElement(Ii,{size:24})),ct.createElement(lt,{value:n,autoFocus:!0,placeholder:pc.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),ct.createElement(Ii,{size:16}),ct.createElement(Ei,{list:u,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(Wi,"SelectBlockchainPage");import{i18n as Nc}from"@lingui/core";import{Divider as Bc}from"@rango-dev/ui";import Kt,{useState as Nh}from"react";import{useNavigate as Bh}from"react-router-dom";import{i18n as Bi}from"@lingui/core";import{BlockchainsChip as zn,Divider as fc,Image as gc,Skeleton as Sh,Tooltip as Ch,Typography as Pi}from"@rango-dev/ui";import le from"react";import{useEffect as hh}from"react";var uc=["ETH","COSMOS","OSMOSIS"];function Li(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(fh),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let c=n[p];a=a.filter(u=>c.name!==u)}}n.sort(gh(a)),r=n.splice(s)}return{list:n,more:r}}i(Li,"prepare");function fh(t,e){let o=uc,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(fh,"sortByMostUsedBlockchains");function gh(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(gh,"generateSortByPreferredBlockchainsFor");function mc(t,e){return!!e.list.find(o=>o.name===t)}i(mc,"isInVisibleList");function Ni(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();hh(()=>{if(e?.selected){let s=Li(t,o,e);mc(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Li(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Ni,"usePrepareBlockchainList");import{styled as yh}from"@rango-dev/ui";var dc=yh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var kh=12;function $i(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=Ni(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=O.use.resetToBlockchain(),c=O.use.resetFromBlockchain(),u=a.more.length>0,m=a.more.length===1,g=!m&&u;return le.createElement(le.Fragment,null,le.createElement(fc,{size:12}),le.createElement(Pi,{variant:"label",size:"large"},Bi.t("Select Blockchain")),le.createElement(fc,{size:12}),le.createElement(dc,null,l==="loading"&&Array.from(Array(kh),f=>le.createElement(Sh,{key:f,variant:"rounded",height:50})),l==="success"&&le.createElement(le.Fragment,null,le.createElement(zn,{selected:!n,onClick:()=>{o==="from"?c():p()}},le.createElement(Pi,{variant:"body",size:"xsmall",color:"secondary500"},Bi.t("All"))),a.list.map(f=>le.createElement(Ch,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:j()},le.createElement(zn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},le.createElement(gc,{src:f.logo,size:30})))),m?le.createElement(zn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},le.createElement(gc,{src:a.more[0].logo,size:30})):null,g?le.createElement(zn,{onClick:s,key:"more-blockchains"},le.createElement(Pi,{variant:"body",size:"xsmall",color:"secondary500"},Bi._("More +{count}",{count:a.more.length}))):null)))}i($i,"BlockchainsSection");import{i18n as Qi}from"@lingui/core";import{darkTheme as Ac,Divider as jt,ExternalLinkIcon as xh,Image as vh,ListItemButton as bh,NotFound as Ah,PinIcon as Eh,Skeleton as Ec,Typography as Vn,VirtualizedList as Ih}from"@rango-dev/ui";import F,{forwardRef as Wh,useEffect as Ic,useState as Wc}from"react";var hc=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,c=(a.length<2?"0":"")+a,u=(l.length<2?"0":"")+l;return`#${p}${c}${u}`},"colorShade"),Gn=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:hc(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:hc(e,-((l-5)*25))});return a},"generateRangeColors"),Mi=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=Gn(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,...Gn(s,a)}}return n?r:{}},"generateColors");import{Divider as vc,ListItem as wh,Skeleton as ko}from"@rango-dev/ui";import Ge from"react";import{css as Vt,darkTheme as yc,ImageContainer as Th,styled as ze,Typography as Sc}from"@rango-dev/ui";var _i=Vt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Di=Vt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Fi=Vt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Oi=Vt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${yc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ui=Vt({}),qi=Vt(),Cc=ze("div",{display:"flex",flexDirection:"column",flexGrow:1}),zi=ze("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Hn=ze("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Di}`]:{[`& .${Oi}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ui}`]:{bottom:"-15px"},[`& .${_i}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Fi}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Gi=ze("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Hi=ze(Sc,{}),kc=ze("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${qi}`]:{$$color:"$colors$neutral600",[`.${yc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Qn=ze("div",{display:"flex",alignItems:"end",flexDirection:"column"}),qL=ze("div",{display:"flex",alignItems:"center"}),Tc=ze("div",{position:"relative",[`& ${Th}`]:{borderRadius:"$xm",overflow:"hidden"}}),wc=ze("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),xc=ze(Sc,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function bc(t){return Ge.createElement(Hn,null,Array.from(Array(t.size),e=>Ge.createElement(wh,{key:e,hasDivider:!0,start:Ge.createElement(ko,{variant:"circular",width:35,height:35}),end:Ge.createElement(Qn,null,Ge.createElement(ko,{variant:"text",size:"large",width:70}),Ge.createElement(vc,{size:4}),Ge.createElement(ko,{variant:"text",size:"medium",width:50})),title:Ge.createElement("div",null,Ge.createElement(ko,{variant:"text",size:"large",width:90}),Ge.createElement(vc,{size:4}),Ge.createElement(ko,{variant:"text",size:"medium",width:90}))})))}i(bc,"LoadingTokenList");var Vi=20,Lh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return F.createElement("div",{className:Di()},o?F.createElement("div",{className:_i()},o):F.createElement(zi,{className:Fi()},F.createElement(Vn,{variant:"title",size:"xmedium"},r.symbol),F.createElement(jt,{direction:"horizontal",size:4}),F.createElement(Gi,{css:s},F.createElement(Hi,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&F.createElement("div",{className:`${Oi()} ${!o&&Ui()}`},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(jt,{size:4,direction:"horizontal"}),F.createElement(xh,{color:"gray",size:12}))))},"renderDesc");function Lc(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=Wc(e),l=d().fetchStatus,p=d().blockchains(),[c,u]=Wc(!0),{getBalanceFor:m,loading:g}=z(),{isTokenPinned:f}=d(),k=Wh((b,T)=>F.createElement("div",{...b,ref:T,style:{...b.style,height:`${parseFloat(b.style?.height)+8*2}px`}})),S=i(()=>{a(e.slice(0,s.length+Vi))},"loadNextPage");Ic(()=>{u(e.length>s.length)},[s.length]),Ic(()=>{a(e.slice(0,Vi))},[e]);let h=i(()=>!s.length&&o?F.createElement(F.Fragment,null,F.createElement(jt,{size:32}),F.createElement(Ah,{title:Qi.t("No results found"),description:Qi.t("Try using different keywords")})):F.createElement(Ih,{Item:({index:b,style:T})=>{let w=s[b],A=Go(m(w)),C=w.address||"",v=p.find($=>$.name===w.blockchain),E=Gn(w.symbol,v?.color||""),y={$$color:E[`${w.symbol}100`],[`.${Ac} &`]:{$$color:E[`${w.symbol}900`]},backgroundColor:"$$color"},P={$$color:E[`${w.symbol}700`],[`.${Ac} &`]:{$$color:E[`${w.symbol}100`]},color:"$$color"};return F.createElement("div",{style:{...T,paddingRight:5}},F.createElement(bh,{style:{height:T?.height,width:"100%",overflow:"hidden"},"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,hasDivider:!0,onClick:()=>n(s[b]),start:F.createElement(Tc,null,F.createElement(vh,{src:w.image,size:30}),f(w,t.type)&&F.createElement(wc,null,F.createElement(Eh,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||w.name||!w.name&&!C?F.createElement(zi,null,F.createElement(Vn,{variant:"title",size:"xmedium"},w.symbol),F.createElement(jt,{direction:"horizontal",size:4}),F.createElement(Gi,{css:y},F.createElement(Hi,{variant:"body",size:"xsmall",css:P},w.blockchain))):void 0,description:v?.info&&C&&v.type!=="COSMOS"?Lh({address:C,token:s[b],customCssForTag:y,customCssForTagTitle:P,name:w.name,url:v.info.addressUrl.split("{wallet}").join(C)}):w.name||void 0,end:g?F.createElement(Qn,null,F.createElement(Ec,{variant:"text",size:"large",width:70}),F.createElement(jt,{size:4}),F.createElement(Ec,{variant:"text",size:"medium",width:50})):A&&F.createElement(kc,null,F.createElement(xc,{variant:"title",size:"small"},A.amount),F.createElement("div",null),A.usdValue&&F.createElement(Vn,{variant:"body",className:qi(),size:"xsmall"},`$${A.usdValue}`))}))},hasNextPage:c,itemCount:s.length,loadNextPage:S,innerElementType:k,size:60,key:`${r}-${o}`}),"renderList");return F.createElement(Cc,null,F.createElement(Vn,{variant:"label",size:"large"},Qi.t("Select Token")),F.createElement(jt,{size:4}),l==="loading"&&F.createElement(bc,{size:Vi}),l==="success"&&F.createElement(Hn,null,h()))}i(Lc,"TokenList");function ji(t){let{type:e}=t,o=Bh(),n=ht(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:c}=O(),u=z.use.getBalanceFor(),[m,g]=Nh(""),{isTokenPinned:f}=d(),S=(e==="source"?r:s)?.name??"",h=d().blockchains({type:e}),b=d().tokens({type:e,blockchain:S,searchFor:m}),w=Fs(b,u,i(v=>f(v,e),"checkIsTokenPinned")),A=i(v=>{e==="source"?p(v):c(v)},"updateBlockchain"),C=i(v=>{e==="source"?a({token:v,meta:{blockchains:h,tokens:b}}):l({token:v,meta:{blockchains:h,tokens:b}})},"updateToken");return Kt.createElement(K,{header:{title:Nc.t("Swap {type}",{type:e})}},Kt.createElement($i,{blockchains:h,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(M.blockchains),onChange:v=>{A(v)}}),Kt.createElement(Bc,{size:24}),Kt.createElement(lt,{value:m,autoFocus:!0,placeholder:Nc.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:v=>g(v.target.value)}),Kt.createElement(Bc,{size:16}),Kt.createElement(Lc,{list:w,selectedBlockchain:S,searchedFor:m,type:e,onChange:v=>{C(v);let E=h.find(y=>v.blockchain===y.name);E&&A(E),n()}}))}i(ji,"SelectSwapItemsPage");import{i18n as Lt}from"@lingui/core";import{ChevronRightIcon as Yi,Divider as Ji,InfoIcon as Uh,List as qh,ListItemButton as zh,Skeleton as Gh,Switch as Hh,Tooltip as Qh,Typography as Nt}from"@rango-dev/ui";import V from"react";import{useNavigate as Vh}from"react-router-dom";import{i18n as Fc}from"@lingui/core";import{Divider as _h,InfoIcon as Dh,TextField as Fh,Tooltip as Oh,Typography as Oc}from"@rango-dev/ui";import Ie from"react";import{Chip as Ph,styled as To,TextField as $h}from"@rango-dev/ui";var Pc=To("div",{paddingTop:"$5",padding:"$10 $5"}),$c=To("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${$h}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Mc=To("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),jn=To("div",{maxWidth:"280px",padding:"$10"}),_c=To(Ph,{width:"61px",flexShrink:0});import{i18n as Ki}from"@lingui/core";import{Typography as Mh}from"@rango-dev/ui";import wo from"react";function Dc(){return wo.createElement(jn,null,wo.createElement(Mh,{variant:"label",size:"medium",color:"neutral700"},Ki.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),wo.createElement("br",null),wo.createElement("br",null),wo.createElement("b",null,Ki.t("Warning")),":",Ki.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Dc,"SlippageTooltipContent");function Xi(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Ie.createElement(Pc,null,Ie.createElement(Mc,null,Ie.createElement(Oc,{variant:"title",size:"xmedium"},Fc.t("Slippage tolerance per swap")),Ie.createElement(_h,{direction:"horizontal",size:4}),Ie.createElement(Oh,{container:j(),side:"top",sideOffset:4,content:Ie.createElement(Dc,null)},Ie.createElement(Dh,{color:"gray"}))),Ie.createElement($c,null,Hs.map((r,s)=>{let a=`slippage-${s}`;return Ie.createElement(Ie.Fragment,null,Ie.createElement(_c,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Ie.createElement(Fh,{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>=Ks&&s<=js)&&n(s)},suffix:o&&Ie.createElement(Oc,{variant:"body",size:"small"},"%"),placeholder:Fc.t("Custom")})))}i(Xi,"Slippage");function Uc(){let t=Vh(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=We("theme",s),l=We("liquiditySource",s),p=We("language",s),c=d().infiniteApprove,u=d().toggleInfiniteApprove,m=Po(n,r),g=m.filter(y=>y.type==="BRIDGE"||y.type==="AGGREGATOR"),f=g.length,k=g.filter(y=>y.selected).length,S=m.filter(y=>y.type==="DEX"),h=S.length,b=S.filter(y=>y.selected).length,T=i((y,P)=>{switch(o){case"loading":return V.createElement(Gh,{variant:"text",size:"medium",width:50});case"failed":return V.createElement(Nt,{variant:"body",size:"medium",color:"$error500"},Lt.t("Loading failed"));default:return V.createElement(Nt,{variant:"body",size:"medium"},`${y} / ${P}`)}},"handleEndItem"),w={id:"bridge-item",title:V.createElement(Nt,{variant:"title",size:"xmedium"},Lt.t("Enabled bridges")),end:V.createElement(V.Fragment,null,T(k,f),V.createElement(Ji,{direction:"horizontal",size:8}),V.createElement(Yi,{color:"black"})),onClick:()=>t(M.bridges)},A={id:"exchange-item",title:V.createElement(Nt,{variant:"title",size:"xmedium"},Lt.t("Enabled exchanges")),end:V.createElement(V.Fragment,null,T(b,h),V.createElement(Ji,{direction:"horizontal",size:8}),V.createElement(Yi,{color:"gray"})),onClick:()=>t(M.exchanges)},C={id:"theme-item",title:V.createElement(Nt,{variant:"title",size:"xmedium"},Lt.t("Theme")),end:V.createElement(Yi,{color:"gray"}),onClick:()=>t(M.themes)},v={id:"infinite-approval-item",title:V.createElement(V.Fragment,null,V.createElement(Nt,{variant:"title",size:"xmedium"},Lt.t("Infinite approval")),V.createElement(Ji,{direction:"horizontal",size:4}),V.createElement(Qh,{side:"top",sideOffset:4,container:j(),content:V.createElement(jn,null,V.createElement(Nt,{variant:"label",size:"medium",color:"neutral700"},Lt.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(Uh,{color:"gray"}))),end:V.createElement(Hh,{checked:c}),onClick:u},E=l?[]:[w,A];return!e?.singleTheme&&!a&&E.push(C),E.push(v),V.createElement(K,{header:{title:Lt.t("Settings")}},V.createElement(pt,null,V.createElement(Xi,null),V.createElement(qh,{type:V.createElement(zh,{title:"_",id:"_",onClick:()=>console.log()}),items:E})))}i(Uc,"SettingsPage");import{cancelSwap as Uy}from"@rango-dev/queue-manager-rango-preset";import{useManager as qy}from"@rango-dev/queue-manager-react";import Su from"react";import{i18n as ut}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Ty,getCurrentStep as wy,getRelatedWalletOrNull as xy}from"@rango-dev/queue-manager-rango-preset";import{Button as uu,CopyIcon as vy,Divider as by,IconButton as Ay,QuoteCost as Ey,StepDetails as Iy,Typography as Jt,useCopyToClipboard as Wy}from"@rango-dev/ui";import{useWallets as Ly}from"@rango-dev/wallets-react";import{PendingSwapNetworkStatus as ir}from"rango-types";import X,{useEffect as mu,useRef as Ny,useState as du}from"react";import{useNavigate as By}from"react-router-dom";import{i18n as we}from"@lingui/core";var jh=1e3,Kh=31536e3,Xh=2592e3,Yh=86400,Jh=3600,Zh=60;function qc(t){let e=Math.floor((Date.now()-t)/jh),n=[{turningPoint:Kh,label:we.t("year"),pluralLabel:we.t("years")},{turningPoint:Xh,label:we.t("month"),pluralLabel:we.t("months")},{turningPoint:Yh,label:we.t("day"),pluralLabel:we.t("days")},{turningPoint:Jh,label:we.t("hour"),pluralLabel:we.t("hours")},{turningPoint:Zh,label:we.t("minute"),pluralLabel:we.t("minutes")}].sort((r,s)=>s.turningPoint-r.turningPoint);for(let r of n){let{turningPoint:s,label:a,pluralLabel:l}=r,p=Math.floor(e/s);if(p>1)return`${p} ${l}`;if(p===1)return`${p} ${a}`}return e>1?`${e} ${we.t("seconds")}`:`${e} ${we.t("second")}`}i(qc,"timeSince");function zc(t){return t.finishTime?we.t({id:"{time} ago",values:{time:qc(parseInt(t.finishTime))}}):we.t({id:"{time} ago",values:{time:qc(parseInt(t.creationTime))}})}i(zc,"getSwapDate");import{Modal as iy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Yn}from"rango-types";import Jn from"react";import{i18n as Kn}from"@lingui/core";import{Button as Gc,Divider as Zi,MessageBox as Rh,Typography as Hc}from"@rango-dev/ui";import ot from"react";var Qc=i(({onCancel:t,onClose:e})=>ot.createElement(ot.Fragment,null,ot.createElement(Zi,{size:20}),ot.createElement(Rh,{type:"error",title:Kn.t("Cancel Swap"),description:Kn.t("Are you sure you want to cancel this swap?")}),ot.createElement(Zi,{size:32}),ot.createElement(Gc,{variant:"contained",type:"primary",size:"large",onClick:t},ot.createElement(Hc,{variant:"title",size:"medium",color:"neutral100"},Kn.t("Yes, Cancel it"))),ot.createElement(Zi,{size:12}),ot.createElement(Gc,{variant:"outlined",type:"primary",size:"large",onClick:e},ot.createElement(Hc,{variant:"title",size:"medium",color:"primary"},Kn.t("No, Continue")))),"CancelContent");import{i18n as Xn}from"@lingui/core";import{Button as Vc,Divider as Ri,MessageBox as ey,Typography as jc}from"@rango-dev/ui";import nt from"react";var Kc=i(({onDelete:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(Ri,{size:20}),nt.createElement(ey,{type:"error",title:Xn.t("Delete Transaction"),description:Xn.t("Are you sure you want to delete this swap?")}),nt.createElement(Ri,{size:32}),nt.createElement(Vc,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(jc,{variant:"title",size:"medium",color:"neutral100"},Xn.t("Yes, Delete it"))),nt.createElement(Ri,{size:12}),nt.createElement(Vc,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(jc,{variant:"title",size:"medium",color:"primary"},Xn.t("No, Cancel")))),"DeleteContent");import{i18n as es}from"@lingui/core";import{PendingSwapNetworkStatus as ts}from"rango-types";var os={[ts.WaitingForNetworkChange]:{type:"loading",title:es.t("Change Network")},[ts.WaitingForConnectingWallet]:{type:"warning",title:es.t("Connect Wallet")},[ts.NetworkChanged]:{type:"success",title:es.t("Network Changed")}};import{MessageBox as oy,Wallet as ny}from"@rango-dev/ui";import{useWallets as ry}from"@rango-dev/wallets-react";import xo from"react";import{styled as ty}from"@rango-dev/ui";var Xc=ty("div",{display:"flex",justifyContent:"center"});var Yc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=ry(),c=n?.walletType,u=c?yr(p(c)):null,m=c?l(c):null;return xo.createElement(xo.Fragment,null,xo.createElement(oy,{type:e,title:o,description:r}),s&&!!c&&!!u&&!!m&&xo.createElement(Xc,null,xo.createElement(ny,{container:j(),title:m.name,image:m.img,type:c,state:u,link:m.installLink,onClick:async()=>a(c)})))},"WalletStateContent");function ns(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===Yn.WaitingForNetworkChange||e===Yn.WaitingForConnectingWallet||e===Yn.NetworkChanged;return Jn.createElement(iy,{open:!!e,onClose:o,container:document.getElementById("swap-box")||document.body},l&&Jn.createElement(Yc,{type:os[e].type,title:os[e].title,currentStepWallet:s,message:a,showWalletButton:e!==Yn.WaitingForNetworkChange}),e==="delete"&&Jn.createElement(Kc,{onClose:o,onDelete:n}),e==="cancel"&&Jn.createElement(Qc,{onClose:o,onCancel:r}))}i(ns,"SwapDetailsModal");import{i18n as vo}from"@lingui/core";import{Button as rs,Divider as Zn,MessageBox as Jc,Modal as sy,TokenAmount as ay,Typography as Rn}from"@rango-dev/ui";import ue from"react";import{useNavigate as ly}from"react-router-dom";function is(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,token:a,chain:l,percentageChange:p,description:c,diagnosisUrl:u}=t,m=ly();return ue.createElement(sy,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},n==="success"?ue.createElement(Jc,{type:"success",title:vo.t("Swap Successful")},ue.createElement(ay,{direction:"vertical",type:"output",centerAlign:!0,price:{value:r,usdValue:s},token:a,chain:l,percentageChange:p}),ue.createElement(Zn,{size:12}),ue.createElement(Rn,{variant:"body",size:"medium",color:"neutral700",align:"center"},c)):ue.createElement(Jc,{type:"error",title:vo.t("Transaction Failed"),description:c}),ue.createElement(Zn,{size:32}),n==="success"&&ue.createElement(rs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},ue.createElement(Rn,{variant:"title",size:"medium",color:"neutral100"},vo.t("Done"))),ue.createElement(Zn,{size:12}),u&&ue.createElement(ue.Fragment,null,ue.createElement(rs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(u,"_blank")},ue.createElement(Rn,{variant:"title",size:"medium",color:"primary"},vo.t("Diagnosis"))),ue.createElement(Zn,{size:12})),ue.createElement(rs,{variant:"outlined",type:"primary",size:"large",onClick:o},ue.createElement(Rn,{variant:"title",size:"medium",color:"primary"},vo.t("See Details"))))}i(is,"SwapDetailsCompleteModal");import Cy from"react";import{i18n as gy}from"@lingui/core";import{Alert as nu,IconButton as hy,LinkIcon as yy}from"@rango-dev/ui";import Tt,{Fragment as Sy}from"react";import{Alert as py,ChevronDownIcon as cy,ChevronUpIcon as uy,IconButton as my}from"@rango-dev/ui";import er,{useState as dy}from"react";function Zc(t){let{message:e}=t,[o,n]=dy(!1);return er.createElement(py,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&er.createElement(my,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?er.createElement(uy,{size:12,color:"gray"}):er.createElement(cy,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(Zc,"FailedAlert");import{styled as fy}from"@rango-dev/ui";var Rc=fy("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as eu}from"@lingui/core";import{Alert as ss,Button as tu}from"@rango-dev/ui";import{PendingSwapNetworkStatus as as}from"rango-types";import bo from"react";function ou(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?bo.createElement(ss,{type:"warning",title:n.shortMessage,action:bo.createElement(tu,{size:"xxsmall",type:"warning",onClick:()=>{o(as.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},eu.t("Change"))}):r===as.WaitingForConnectingWallet?bo.createElement(ss,{type:"warning",title:n.shortMessage,action:bo.createElement(tu,{size:"xxsmall",type:"warning",onClick:()=>{o(as.WaitingForConnectingWallet)}},eu.t("Connect"))}):bo.createElement(ss,{type:"warning",title:n.shortMessage})}i(ou,"WarningAlert");function ls(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=to(s),p=s.status==="waitingForApproval"&&!l,c=s.status==="running"&&!l;return Tt.createElement(Rc,null,s.explorerUrl?.map((u,m,g)=>{let f=m+u.url,k=m===g.length-1,S=k&&c||p,h=k&&s.status==="failed";return Tt.createElement(Sy,{key:f},Tt.createElement(nu,{type:S&&"loading"||h&&"error"||"success",title:u.description?`${u.description} Tx`:gy.t("View transaction"),action:u.url&&Tt.createElement(hy,{variant:"ghost",size:"xsmall",onClick:()=>window.open(u.url,"_blank")},Tt.createElement(yy,{size:16}))}))}),(c&&!a||p&&!s.explorerUrl?.length)&&Tt.createElement(nu,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&Tt.createElement(ou,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&Tt.createElement(Zc,{message:r}))}i(ls,"SwapDetailsAlerts");var ru=2e3;var iu=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;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Xe(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:W(a,6,6)}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Xe(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:W(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6)}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Cy.createElement(ls,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function su(t){if(to(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(su,"getStepState");import{css as tr,darkTheme as ky,styled as Xt}from"@rango-dev/ui";var or=Xt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1}),nr=Xt("div",{width:"100%"}),au=Xt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),xP=Xt("div",{display:"flex",flexDirection:"column",gap:"$10"}),lu=Xt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),vP=Xt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Yt=tr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ky} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),rr=tr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pu=tr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),cu=tr({width:"100%",padding:"0 $20 $10"});function ps(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Ly(),p=d().blockchains(),c=d().tokens(),u=O.use.retry(),m=By(),[g,f]=Wy(ru),k=Ny(null),[S,h]=du(null),[b,T]=du(null),w=i(()=>{r(),h(null)},"onCancel"),A=Be.use.getUnreadNotifications(),C=Be.use.setAsRead(),v=A(),E=wy(e),y=E?.networkStatus;mu(()=>{v.find(ie=>ie.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),C(e.requestId))},[e.status]),mu(()=>{G?h(ir.WaitingForNetworkChange):y===ir.WaitingForConnectingWallet||y===ir.NetworkChanged?h(y):h(null)},[y]);let P=ma(e),$=E?Ty(e,E):null,N=E?xy(e,E):null,x=zc(e),_=da(e),I=i(U=>!!l(U)?.mobileWallet,"isMobileWallet"),G=y===ir.WaitingForNetworkChange&&!!$&&!!N?.walletType&&(I(N.walletType)||s(N.walletType,$)),J=G?a.bind(null,N.walletType,$):void 0,te=ua(e,E),H=iu({swap:e,switchNetwork:J,showNetworkModal:y,setNetworkModal:h,message:te,blockchains:p}),re=H.length,[he,ye]=[e.steps[0],e.steps[re-1]],_e=ye.outputAmount||ye.expectedOutputAmountHumanReadable,Bt=e.steps.reduce((U,ie)=>U+parseFloat(ie.feeInUsd||""),0),Rt=e.steps.find(U=>U.diagnosisUrl)?.diagnosisUrl,rt=W(parseFloat(W(_e,6,6))*(ye.toUsdPrice||0),4,4),Qe=W(parseFloat(e.inputAmount)*(he.fromUsdPrice||0),4,4),D=Ne(Qe,rt),Y=e.status==="success"?ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:W(_e,6,6),token:H[re-1].to.token.displayName,conciseAddress:Ho(e.wallets[H[re-1].to.chain.displayName]?.address||""),chain:H[re-1].to.chain.displayName}}):`${ut.t("Transaction was not sent.")} ${P?ut.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}}):""}`;return X.createElement(K,{noPadding:!0,header:{title:ut.t("Swap and Bridge"),onCancel:e.status==="running"?()=>h("cancel"):void 0,suffix:e.status!=="running"&&X.createElement(Ut,null,X.createElement(uu,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>h("delete")},X.createElement(Jt,{size:"medium",variant:"label",color:"error"},ut.t("Delete"))))},footer:_&&!b&&X.createElement(uu,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{u(e,{blockchains:p,tokens:c}),setTimeout(()=>{m("../../")},0)}},ut.t("Try again"))},X.createElement(or,null,X.createElement(nr,null,X.createElement("div",{className:Yt()},X.createElement(Jt,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Request ID")}:`),X.createElement("div",{className:rr()},X.createElement(Jt,{variant:"label",size:"small",color:"neutral700"},o),X.createElement(Ay,{variant:"ghost",onClick:f.bind(null,o||"")},X.createElement(vy,{size:16,color:"gray"})))),X.createElement("div",{className:Yt()},X.createElement(Jt,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Created at")}:`),X.createElement(Jt,{variant:"label",size:"small",color:"neutral700"},x))),X.createElement("div",{className:pu()},X.createElement(Ey,{fee:W(String(Bt),2,2),time:Mo(_o(e.steps)),steps:re}),X.createElement(so,{from:{price:{value:W(e.inputAmount,6,6),usdValue:Qe},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(_e,6,6),usdValue:rt},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(D,2,2),warningLevel:it(D??0)})),X.createElement("div",{className:cu()},X.createElement(Jt,{variant:"title",size:"small"},ut.t("Swaps steps"))),X.createElement(by,{size:8}),X.createElement(au,{ref:k},H.map((U,ie)=>{let Ve=ie,be=su(e.steps[ie]),cr=be==="error"||be==="in-progress"||be==="warning"||be==="completed"&&ie===H.length-1;return X.createElement(Iy,{key:Ve,step:U,type:"swap-progress",ref:k,state:be,hasSeparator:ie!==0,tabIndex:Ve,isFocused:cr})}))),X.createElement(ns,{state:S,onClose:()=>h(null),onCancel:w,onDelete:n,message:te.detailedMessage.content,currentStepWallet:N}),X.createElement(is,{open:!!b,diagnosisUrl:Rt,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:W(_e,6,6),usdValue:rt,percentageChange:W(D,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:Y}))}i(ps,"SwapDetails");import{i18n as Eo}from"@lingui/core";import{CopyIcon as Dy,IconButton as Fy,NotFound as Oy,Skeleton as hu,Typography as ar}from"@rango-dev/ui";import pe from"react";import{i18n as Py}from"@lingui/core";import{Divider as $y,Skeleton as My,Typography as _y}from"@rango-dev/ui";import se from"react";import{css as He,styled as cs}from"@rango-dev/ui";var fu=cs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Ao=cs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),sr=cs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),RP=He({display:"flex",justifyContent:"space-between",alignItems:"center"}),e$=He({display:"flex",justifyContent:"space-between",alignItems:"center"}),t$=He({paddingTop:"$15",display:"flex"}),o$=He({padding:"$15 $0"}),n$=He({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),r$=He({paddingBottom:"$10"}),i$=He({display:"flex",justifyContent:"start",alignItems:"center"}),s$=He({paddingTop:"$5",display:"flex",alignItems:"center"}),a$=He({display:"flex",alignItems:"center"}),l$=He({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),gu=He({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function us(){return se.createElement(fu,null,se.createElement(co,{type:"swap-preview"}),se.createElement("div",{className:"swaps-steps"},se.createElement(_y,{variant:"title",size:"small"},Py.t("Swaps steps"))),se.createElement(se.Fragment,null,se.createElement(Ao,null,se.createElement(et,{separator:!1}),se.createElement("div",{className:gu()},se.createElement($y,{direction:"horizontal",size:20}),se.createElement(My,{height:22,variant:"rectangular"}))),se.createElement(sr,null),se.createElement(Ao,null,se.createElement(et,{separator:!1})),se.createElement(sr,null),se.createElement(Ao,null,se.createElement(et,{separator:!1})),se.createElement(sr,null),se.createElement(Ao,null,se.createElement(et,{separator:!1}))))}i(us,"LoadingSwapDetails");function yu(t){let{requestId:e,showSkeleton:o}=t;return pe.createElement(K,{noPadding:!0,header:{title:Eo.t("Swap and Bridge"),suffix:pe.createElement(Ut,null)}},o&&pe.createElement(or,null,pe.createElement(nr,null,pe.createElement("div",{className:Yt()},pe.createElement(ar,{variant:"label",size:"large",color:"neutral700"},`${Eo.t("Request ID")}:`),pe.createElement("div",{className:rr()},pe.createElement(ar,{variant:"label",size:"small",color:"neutral700"},pe.createElement(hu,{width:60,height:10,variant:"rounded"})),pe.createElement(Fy,{variant:"ghost"},pe.createElement(Dy,{size:16,color:"gray"})))),pe.createElement("div",{className:Yt()},pe.createElement(ar,{variant:"label",size:"large",color:"neutral700"},`${Eo.t("Created at")}:`),pe.createElement(ar,{variant:"label",size:"small",color:"neutral700"},pe.createElement(hu,{width:60,height:10,variant:"rounded"})))),pe.createElement(us,null)),!o&&pe.createElement(lu,null,pe.createElement(Oy,{title:Eo.t("Not found"),description:Eo.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(yu,"SwapDetailsPlaceholder");function Cu(){let{manager:t,state:e}=qy(),o=!e.loadedFromPersistor,n=Ht(t),r=Te.use.selectedSwapRequestId(),s=ht(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),c=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Uy(g)}},"onCancel"),u=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(g){console.log(g)}},"onDelete"),m=p?.swap;return!m||l?Su.createElement(yu,{requestId:r||"",showSkeleton:l}):Su.createElement(ps,{swap:m,requestId:r||"",onCancel:c,onDelete:u})}i(Cu,"SwapDetailsPage");import{i18n as Io}from"@lingui/core";import{AutoThemeIcon as zy,DarkModeIcon as Gy,LightModeIcon as Hy,List as Qy,ListItemButton as Vy,Radio as ms,RadioRoot as jy,Typography as ds}from"@rango-dev/ui";import xe from"react";function ku(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:xe.createElement(ds,{variant:"title",size:"xmedium"},Io.t("Light")),onClick:()=>t("light"),start:xe.createElement(Hy,{color:"gray"}),end:xe.createElement(ms,{value:"light"})},{id:"dark",value:"dark",title:xe.createElement(ds,{variant:"title",size:"xmedium"},Io.t("Dark")),onClick:()=>t("dark"),start:xe.createElement(Gy,{color:"gray"}),end:xe.createElement(ms,{value:"dark"})},{id:"auto",value:"auto",title:xe.createElement(ds,{variant:"title",size:"xmedium"},Io.t("Auto")),onClick:()=>t("auto"),start:xe.createElement(zy,{color:"gray"}),end:xe.createElement(ms,{value:"auto"})}];return xe.createElement(K,{header:{title:Io.t("Theme")}},xe.createElement(pt,null,xe.createElement(jy,{onValueChange:n=>t(n),value:e},xe.createElement(Qy,{type:xe.createElement(Vy,{title:Io.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(ku,"ThemePage");function Tu(){return Ky([{path:M.home,element:ve.createElement(Jp,null)},{path:M.fromSwap,children:[{index:!0,element:ve.createElement(ji,{type:"source"})},{path:M.blockchains,element:ve.createElement(Wi,{type:"source"})}]},{path:M.toSwap,children:[{index:!0,element:ve.createElement(ji,{type:"destination"})},{path:M.blockchains,element:ve.createElement(Wi,{type:"destination"})}]},{path:M.settings,children:[{index:!0,element:ve.createElement(Uc,null)},{path:M.themes,element:ve.createElement(ku,null)},{path:M.languages,element:ve.createElement(Rp,null)},{path:M.exchanges,element:ve.createElement(vi,{sourceType:"Exchanges"})},{path:M.bridges,element:ve.createElement(vi,{sourceType:"Bridges"})}]},{path:M.swaps,children:[{index:!0,element:ve.createElement(Vp,null)},{path:M.swapDetails,element:ve.createElement(Cu,null)}]},{path:M.wallets,element:ve.createElement(dl,null)},{path:M.confirmSwap,element:ve.createElement(_p,null)}])}i(Tu,"AppRoutes");import{isApprovalTX as Xy,MainEvents as xu,RouteEventType as vu,StepEventType as Zt,StepExecutionEventStatus as Yy,useEvents as Jy}from"@rango-dev/queue-manager-rango-preset";import{useEffect as bu}from"react";import{StepExecutionBlockedEventStatus as fs}from"@rango-dev/queue-manager-rango-preset";var wu=[fs.WAITING_FOR_CHANGE_WALLET_ACCOUNT,fs.WAITING_FOR_NETWORK_CHANGE,fs.WAITING_FOR_WALLET_CONNECT];function Au(){let t=d().tokens(),e=z.use.connectedWallets(),o=z.use.getWalletsDetails(),n=Be.use.setNotification(),r=Be.use.setAsRead(),s=Jy();return bu(()=>(s.on(xu.StepEvent,a=>{let{event:l,step:p,route:c}=a;if(l.type===Zt.TX_EXECUTION&&l.status===Yy.TX_SENT&&!Xy(p)||l.type===Zt.SUCCEEDED){let m=e.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);m&&o([m],t),g&&o([g],t)}l.type===Zt.TX_EXECUTION_BLOCKED&&wu.includes(l.status)||l.type===Zt.FAILED?n(l,c):(l.type===Zt.TX_EXECUTION||l.type===Zt.CHECK_STATUS)&&r(c.requestId)}),()=>s.all.clear()),[s,e.length]),bu(()=>(s.on(xu.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===vu.FAILED||l.type===vu.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(Au,"WidgetEvents");import{globalCss as Zy}from"@rango-dev/ui";var Eu=i(()=>Zy({"@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{createTheme as ys,darkTheme as nS,lightTheme as rS}from"@rango-dev/ui";import{useEffect as Wu,useState as iS}from"react";import{theme as tS,darkColors as oS}from"@rango-dev/ui";var Iu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ry=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Iu(o%52)+e;return Iu(o%52)+e},"toAlphabeticName"),eS=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),gs=i(t=>Ry(eS(5381,JSON.stringify(t))>>>0),"toHash");function hs(t){let e=tS.colors,o=Mi({...e,...oS},!0,t?.dark),n=Mi(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:`${fr}-light-${gs(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${fr}-dark-${gs(p)}`,tokens:p}}return{light:a,dark:l}}i(hs,"customizedThemeTokens");function Lu(t){let{colors:e,fontFamily:o=As,borderRadius:n=vs,secondaryBorderRadius:r=bs,mode:s="auto"}=t,[a,l]=iS("light"),{setTheme:p,theme:c}=d(),{dark:u,light:m}=hs(e),g=ys({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,rS.className],k=[g.className,nS.className];if(m){let h=ys(m.id,m.tokens);f.push(h.className)}if(u){let h=ys(u.id,u.tokens);k.push(h.className)}return Wu(()=>{let h=i(b=>{b.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)}},[]),Wu(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let h=f.join(" "),b=k.join(" ");return c==="auto"?a==="dark"?b:h:c==="dark"?b:h},"getActiveTheme")}}i(Lu,"useTheme");import{styled as sS}from"@rango-dev/ui";var Nu=sS("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit",listStyleType:"none"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"}});function lr(){Eu();let{config:t}=d(),{activeTheme:e}=Lu(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Fn(),[r,s]=Pu(""),[a,l]=Pu(),p=lS(sn);return Bu(()=>{Be.persist.rehydrate(),p.onConnectWallet(s)},[]),Bu(()=>{n(t?.language)},[t?.language]),Wo.createElement(aS,{language:o},Wo.createElement(Nu,{id:"swap-container",className:e()},Wo.createElement(Au,null),Wo.createElement(Ea,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Wo.createElement(Tu,null))))}i(lr,"Main");import Cs,{useMemo as AS}from"react";import{checkWaitingForNetworkChange as pS,makeQueueDefinition as cS}from"@rango-dev/queue-manager-rango-preset";import{Provider as uS}from"@rango-dev/queue-manager-react";import{useWallets as mS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as dS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as fS}from"rango-types";import gS,{useMemo as hS}from"react";function yS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=mS(),l=hS(()=>cS({API_KEY:t.apiKey||Pt("API_KEY"),BASE_URL:Pt("BASE_URL")}),[t.apiKey]),p=d().blockchains(),u={blockchains:z.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},m=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),{}),k=p.filter(fS),S=i(T=>{let{supportedChains:w}=a(T);return Uo(w)},"getSupportedChainNames"),h=e(),b={meta:{blockchains:f,evmBasedChains:k,evmNetworkChainInfo:dS(k),getSupportedChainNames:S},getSigners:o,wallets:u,providers:h,switchNetwork:m,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return gS.createElement(uS,{queuesDefs:[l],context:b,onPersistedDataLoaded:T=>{pS(T)},isPaused:!1},t.children)}i(yS,"QueueManager");var $u=yS;import{useManager as wS}from"@rango-dev/queue-manager-react";import xS,{createContext as vS,useContext as bS}from"react";import{cancelSwap as SS,getCurrentBlockchainOfOrNull as CS,getCurrentStep as kS,getRelatedWalletOrNull as TS}from"@rango-dev/queue-manager-rango-preset";var Lo=class{constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ht(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&&SS(o)}getCurrentStepInfo(e){let o=kS(e);return{step:o,wallet:o?TS(e,o):null,network:o?CS(e,o):null}}};i(Lo,"WidgetHistory");var Mu=vS(void 0);function Ss(t){let{manager:e}=wS(),o=O.use.retry(),n=new Lo(e,{retrySwap:o}),r=z.use.connectedWallets(),s=z.use.loading(),a=Ds(r),l=z.use.getWalletsDetails(),p=d().blockchains(),c=d().tokens(),u=d().swappers(),m=d().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:c,swappers:u,loadingStatus:m}};return xS.createElement(Mu.Provider,{value:g},t.children)}i(Ss,"WidgetInfo");function _u(){let t=bS(Mu);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(_u,"useWidget");function pr(t){let{onUpdateState:e,config:o}=t;return AS(()=>{xs({API_KEY:o?.apiKey||No,BASE_URL:o?.apiUrl||ws})},[o]),Cs.createElement(an,{config:o,onUpdateState:e},Cs.createElement($u,{apiKey:o.apiKey},Cs.createElement(Ss,null,t.children)))}i(pr,"WidgetProvider");function Du(t){return t.config?.externalWallets?ks.createElement(lr,null):ks.createElement(pr,{config:t.config??mr},ks.createElement(lr,null))}i(Du,"Widget");export{j_ as MainEvents,nD as Networks,sD as PendingSwapNetworkStatus,K_ as RouteEventType,X_ as StepEventType,Y_ as StepExecutionBlockedEventStatus,J_ as StepExecutionEventStatus,tD as WalletEvents,rD as WalletTypes,Du as Widget,pr as WidgetProvider,an as WidgetWallets,hs as customizedThemeTokens,eD as readAccountAddress,Tl as useWallets,_u as useWidget,Z_ as useWidgetEvents};
|
|
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};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|