@rango-dev/widget-embedded 0.28.3-next.0 → 0.28.3-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/HeaderButtons/HeaderButtons.d.ts.map +1 -1
- package/dist/components/HeaderButtons/NotificationsBadge.d.ts +3 -0
- package/dist/components/HeaderButtons/NotificationsBadge.d.ts.map +1 -0
- package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
- package/dist/components/NotificationContent/NotificationContent.styles.d.ts +769 -0
- package/dist/components/NotificationContent/NotificationContent.styles.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/hooks/useBootstrap/useBootstrap.d.ts.map +1 -1
- package/dist/hooks/useSyncNotifications/index.d.ts +2 -0
- package/dist/hooks/useSyncNotifications/index.d.ts.map +1 -0
- package/dist/hooks/useSyncNotifications/useSyncNotifications.d.ts +2 -0
- package/dist/hooks/useSyncNotifications/useSyncNotifications.d.ts.map +1 -0
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/store/notification.d.ts +27 -7
- package/dist/store/notification.d.ts.map +1 -1
- package/dist/types/notification.d.ts +0 -1
- package/dist/types/notification.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +2 -0
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -0
- package/package.json +2 -2
- package/src/components/HeaderButtons/HeaderButtons.tsx +3 -2
- package/src/components/HeaderButtons/{UnreadNotificationsBadge.tsx → NotificationsBadge.tsx} +3 -3
- package/src/components/NotificationContent/NotificationContent.styles.ts +17 -2
- package/src/components/NotificationContent/NotificationContent.tsx +28 -3
- package/src/components/SwapDetails/SwapDetails.tsx +5 -6
- package/src/containers/WidgetInfo/WidgetInfo.tsx +1 -1
- package/src/hooks/useBootstrap/useBootstrap.ts +2 -0
- package/src/hooks/useSyncNotifications/index.ts +1 -0
- package/src/hooks/useSyncNotifications/useSyncNotifications.ts +25 -0
- package/src/hooks/useWalletList.ts +7 -4
- package/src/store/notification.ts +62 -17
- package/src/types/notification.ts +0 -1
- package/src/utils/swap.ts +12 -0
- package/dist/components/HeaderButtons/UnreadNotificationsBadge.d.ts +0 -3
- package/dist/components/HeaderButtons/UnreadNotificationsBadge.d.ts.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var Uf=Object.defineProperty;var i=(t,e)=>Uf(t,"name",{value:e,configurable:!0});import{EventSeverity as TV,MainEvents as kV,RouteEventType as wV,StepEventType as vV,StepExecutionBlockedEventStatus as xV,StepExecutionEventStatus as bV,useEvents as IV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as AV,useWallets as Sr,Events as NV}from"@rango-dev/wallets-react";import{Networks as MV,WalletTypes as LV}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as _V}from"rango-types";import{UI_ID as zf}from"@rango-dev/ui";var Tn="c6381a79-2817-4602-83bf-6a641a409e32",ol="https://api.rango.exchange",nl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...zf};var rl="Roboto",Si=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as _i,Provider as Bg}from"@rango-dev/wallets-react";import{isEvmBlockchain as _g}from"rango-sdk";import Pn,{createContext as Pg,useEffect as Jl,useMemo as $g,useRef as Rl}from"react";import{useEffect as ag}from"react";import{create as ng}from"zustand";import{subscribeWithSelector as rg}from"zustand/middleware";import{RangoClient as tg}from"rango-sdk";import{BlockchainCategories as Xf,WalletState as dt}from"@rango-dev/ui";import{readAccountAddress as jf}from"@rango-dev/wallets-react";import{detectInstallLink as Kf,getCosmosExperimentalChainInfo as Yf,isEvmAddress as Zf,KEPLR_COMPATIBLE_WALLETS as $v,Networks as hl}from"@rango-dev/wallets-shared";import vi from"bignumber.js";import{isCosmosBlockchain as Jf}from"rango-types";import qf from"bignumber.js";var Be=new qf(0);import{WalletTypes as Qf}from"@rango-dev/wallets-shared";var il=[Qf.LEAP];import{BlockchainCategories as Ci}from"@rango-dev/ui";import{TransactionType as kn}from"rango-sdk";function lo(t){return Array.from(new Set(t))}i(lo,"removeDuplicateFrom");function wi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wi,"areEqual");function ul(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ul,"debounce");function Tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Tt,"containsText");function ll(t,e){return t.toLowerCase()===e.toLowerCase()}i(ll,"exactText");function pl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(pl,"startWithText");var B=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function cl(t,e,o){let n=!!e&&ll(e,t),r=!!o&&ll(o,t);return n!==r?n?-1:1:0}i(cl,"compareExactMatchText");function Ti(t,e,o){let n=!!e&&Tt(e,t),r=!!o&&Tt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ti,"compareContainsText");function ki(t,e,o){let n=!!e&&pl(e,t),r=!!o&&pl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ki,"compareStartWithText");function ml(t,e,o){if(!o)return 0;let n=cl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=cl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ki(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ti(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ki(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ti(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ki(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ti(o,t.address,e.address);if(r!==0)return r}return 0}i(ml,"compareWithSearchFor");var wn=i((t,e)=>{switch(e){case Ci.ALL:return!0;case Ci.UTXO:return t===kn.TRANSFER;case Ci.OTHER:return t!==kn.TRANSFER&&t!==kn.COSMOS&&t!==kn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),dl=i(t=>Si.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as gl}from"bignumber.js";var _o=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new gl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var vn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Po=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pe(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(pe,"formatTooltipNumbers");function xi(t){switch(!0){case t.connected:return dt.CONNECTED;case t.connecting:return dt.CONNECTING;case!t.installed:return dt.NOT_INSTALLED;default:return dt.DISCONNECTED}}i(xi,"mapStatusToWalletState");function yl(t,e,o,n){return o.filter(r=>!il.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:d}=e(r),m=lo(d.map(g=>g.type)),f=xi(t(r));return{title:a,image:s,link:Kf(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(yl,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function Sl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(d=>d.chain===p)){let d={address:u,chain:p,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=jf(p),d=l.length>0,m=l.includes(c),f=c===hl.Unknown;if(d&&!m&&!f)return;let S=c===hl.Unknown&&Zf(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Sl,"prepareAccountsForWalletStore");function Xt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let d=u.from.blockchain,m=u.to.blockchain,f=a===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(m)})}e==="all"&&n.add(l)}),Array.from(n)}i(Xt,"getQuoteWallets");function En(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(En,"isAccountAndWalletMatched");function Cl(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 vi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:eg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Cl,"makeBalanceFor");function Tl(t){return{...t,loading:!1,error:!0}}i(Tl,"resetConnectedWalletState");var kl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new vi(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return Rf(r)},"calculateWalletUsdValue");function Rf(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Rf,"numberWithThousandSeparator");var eg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),An=i((t,e)=>{let o=Yf(Object.entries(t).map(([,n])=>n).filter(Jf));return o&&o[e]?.experimental},"isExperimentalChain");function Nn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Nn,"formatBalance");function wl(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(wl,"compareTokenBalance");function _e(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(_e,"areTokensEqual");function vl(t){return t.sort((e,o)=>+(o.state===dt.CONNECTED)-+(e.state===dt.CONNECTED)||+(o.state===dt.DISCONNECTED||o.state===dt.CONNECTING)-+(e.state===dt.DISCONNECTED||e.state===dt.CONNECTING))}i(vl,"sortWalletsBasedOnConnectionState");function Wn(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(Wn,"getConciseAddress");function xl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(xl,"getAddress");function bi(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(bi,"createTokenHash");function Mn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new vi(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?bi({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Mn,"makeTokensBalance");var bl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Il(t){return t.map(e=>e.state).join("-")}i(Il,"hashWalletsState");function El(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(El,"filterBlockchainsByWalletTypes");function Al(t,e){return e===Xf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(Al,"filterWalletsByCategory");var Ii={API_KEY:Tn};function kt(t){return Ii[t]||""}i(kt,"getConfig");function Nl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ii=e,Ii}i(Nl,"initConfig");var Wl=20,Ml=25,Ei="theme-widget",$o=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>_e(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>_e(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ai=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Ll=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Ln,_t=i(()=>Ln||(Ln=new tg(kt("API_KEY"),kt("BASE_URL")),Ln),"httpService");var og=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"),Pt=og;var R=Pt(ng()(rg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.find(p=>p.chain===s.chain&&p.selected);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.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),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Mn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>En(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await _t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(m=>{let f=o.find(S=>En(S,m)),g=p.find(S=>S.address===m.address&&S.blockChain===m.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...m,explorerUrl:g.explorerUrl,balances:Cl(g,n),loading:!1}:m});return{loading:!1,balances:Mn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(d=>En(d,c))?Tl(c):c);return{loading:!1,balances:Mn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=bi(o);return n[r]??null}}))));import{allProviders as ig}from"@rango-dev/provider-all";function Bn(t,e){let o=ig({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Bn,"matchAndGenerateProviders");function Bl(t,e){return Bn(t,e).map(r=>r.config.type)}i(Bl,"configWalletsToWalletName");function _l(t,e){let o=R.use.clearConnectedWallet(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId});return ag(()=>{o(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(_l,"useWalletProviders");import Ig,{createContext as Eg,useContext as Ag,useEffect as Ng,useRef as Wg}from"react";import{create as xg}from"zustand";import{persist as bg}from"zustand/middleware";var Ni={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},sg={clientUrl:void 0},lg={liquiditySources:void 0},Pl=i((t,e,o)=>({config:{...Ni,...t},iframe:sg,campaignMode:lg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function $l(t,e){return e.find(o=>o.name===t)?.displayName}i($l,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function Do(t,e){return e.find(o=>o.id===t)?.title}i(Do,"getSwapperDisplayName");function Wi(t,e){return e.find(o=>_e(o,t))??null}i(Wi,"findToken");function Mi(t,e){return e.find(o=>o.name===t)??null}i(Mi,"findBlockchain");function Li(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Li,"isTokenNative");function _n(t,e){let o=t.map(a=>a.swapperGroup),n=[];return lo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(_n,"getUniqueSwappersGroups");function Dl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Dl,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Fl(t,e){return e?.[t]==="enabled"}i(Fl,"isFeatureEnabled");var Ol=i((t,e)=>({_blockchainsMapByName:new Map,_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let a=e().config,s=(o.type==="source"?a.from?.tokens:a.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(u=>s&&$o(u,s)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(Tt(u.symbol,o.searchFor)||Tt(u.address||"",o.searchFor)||Tt(u.name||"",o.searchFor)):!0).sort((u,c)=>{let d=e().isTokenPinned(u,o.type),m=e().isTokenPinned(c,o.type);if(d!==m)return d?-1:1;if(o.getBalanceFor){let y=o.getBalanceFor(u),T=o.getBalanceFor(c),k=wl(y,T);if(k!==0)return k}let f=r.get(u.blockchain),g=r.get(c.blockchain),S=Li(u,f),C=Li(c,g);if(S!==C)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let y=ml(u,c,o.searchFor);if(y)return y}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>_e(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Dl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await _t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=[],s=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(c=>{p.add(c.blockchain),a.push(c)}),n.blockchains.sort((c,d)=>c.sort-d.sort).forEach(c=>{c.enabled&&p.has(c.name)&&r.set(c.name,c)}),t({_blockchainsMapByName:r,_tokens:a,_popularTokens:s,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as pg,English as cg,Finland as ug,French as mg,German as dg,Greece as fg,Italian as gg,Japanese as hg,Netherlands as yg,Poland as Sg,Portuguese as Cg,Russian as Tg,Spanish as kg,Swedish as wg,Ukrainian as vg}from"@rango-dev/ui";var Ul=[{title:"English",label:"English",local:"en",SVGFlag:cg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:kg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:mg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:hg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Cg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:pg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Tg},{title:"German",label:"Deutsch",local:"de",SVGFlag:dg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:vg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:wg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:ug},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:yg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:fg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:gg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Sg}],Fo="en";var zl=[.5,1,3],ql=1,Ql=5,Hl=100,Gl=0;var Vl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ql,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},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 a=lo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),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,theme:r}=o,a=Ze("theme",n),s=Ze("language",n),l=Ze("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Fo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Xl(t){return xg()(bg((...e)=>({...Ol(...e),...Vl(...e),...Pl(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(Xl,"createAppStore");var jl=Eg(null);function h(){let t=Ag(jl);if(Ng(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Kl(t){let e=Wg();return e.current||(e.current=Xl(t.config)),Ig.createElement(jl.Provider,{value:e.current},t.children)}i(Kl,"AppStoreProvider");import{create as Lg}from"zustand";var Yl="rango-widget";var Oo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Yl),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ne=Pt(Lg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),jt=new Oo({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});var $n=Pg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Dg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),a=h().tokens(),s=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:p}=_l(s.wallets,l),{connectWallet:u,disconnectWallet:c}=R(),d=Rl(),m=Rl();Jl(()=>{n().catch(console.log)},[]),Jl(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(_g).map(y=>y.name),g=i((y,T,k,v,E)=>{if(T===_i.ACCOUNTS)if(k){let b=In(E.supportedBlockchains),x=Sl(y,k,f,b,E.isContractWallet);x.length&&u(x,a)}else c(y),m.current?m.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===_i.ACCOUNTS&&v.connected){let b=`${y}-${v.network}-${k}`;v.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===_i.NETWORK&&v.network){let b=`${y}-${v.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,E)},"onUpdateState"),S=ne.use.isActiveTab(),C=$g(()=>({onConnectWallet:y=>{d.current=y},onDisconnectWallet:y=>{m.current=y}}),[]);return Pn.createElement($n.Provider,{value:C},Pn.createElement(Bg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Dg,"Main");function Dn(t){let{config:e,...o}=t;return Pn.createElement(Kl,{config:e},Pn.createElement(Dg,{...o,config:e}))}i(Dn,"WidgetWallets");import yi from"react";import Fg,{Fragment as Og}from"react";import{MemoryRouter as Ug,useInRouterContext as zg}from"react-router";function ep({children:t}){let o=zg()?Og:Ug;return Fg.createElement(o,null,t)}i(ep,"AppRouter");import{I18nManager as Gw}from"@rango-dev/ui";import Js from"react";import He from"react";import{useRoutes as Mw}from"react-router-dom";var U={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as uo,useRef as Xn}from"react";import vt from"bignumber.js";import{create as Gg}from"zustand";import{subscribeWithSelector as Vg}from"zustand/middleware";import{getLastSuccessfulStep as Hg}from"@rango-dev/queue-manager-rango-preset";import aI from"bignumber.js";import{i18n as Uo}from"@lingui/core";var Pi={"Network Fee":Uo.t("Network Fee"),"Swapper Fee":Uo.t("Protocol Fee"),"Affiliate Fee":Uo.t("Affiliate Fee"),"Outbound network fee":Uo.t("Outbound Fee"),"Rango Fee":Uo.t("Rango Fee")},$i=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],tp=30;import{i18n as rt}from"@lingui/core";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Un}from"rango-types";function Fn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Fn,"isValidAddress");import{i18n as We}from"@lingui/core";var ee=i(()=>({genericServerError:We.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:We.t("Please reset your liquidity sources."),description:We.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:We.t("No Routes Found."),description:We.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:We.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:We.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:We.t("High Price Impact"),title:We.t("Price impact is too high!"),description:We.t("The price impact is significantly higher than the allowed amount."),confirmMessage:We.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:We.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:We.t("USD Price Unknown"),title:We.t("USD Price Unknown, Cannot calculate Price Impact."),description:We.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:We.t("Confirm USD Price Unknown")}}),"errorMessages");function op(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(op,"getQuoteErrorMessage");import{i18n as On}from"@lingui/core";var Kt=i(()=>({connectWallet:On.t("Connect Wallet"),swap:On.t("Swap"),swapAnyway:On.t("Swap anyway"),ethWarning:On.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function np(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(np,"hasHighValueLoss");function rp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(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(rp,"hasLimitError");function ip(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(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 Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=rt.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=rt.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=rt.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=rt.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(ip,"getLimitErrorMessage");function ap(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Kt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Kt().swap,action:"confirm-swap",disabled:!0}:s?{title:Kt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Kt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Kt().swap,action:"confirm-swap",disabled:!1}:{title:Kt().connectWallet,action:"connect-wallet",disabled:!1}}i(ap,"getSwapButtonState");function Di(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Di,"canComputePriceImpact");var qg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function Fi(t,e){let o=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=qg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(Fi,"getUsdFeeOfStep");function zn(t,e){return t.reduce((o,n)=>o.plus(Fi(n,e)),Be)}i(zn,"getTotalFeeInUsd");function Oi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(Oi,"getUsdFee");function sp(t){return t.reduce((e,o)=>e.plus(Oi(o)),Be)}i(sp,"getTotalFeesInUsd");function lp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(lp,"getFeesGroup");function pp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(pp,"checkSlippageErrors");function cp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(cp,"checkSlippageWarnings");function qn(t){return t.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(qn,"getMinRequiredSlippage");function up(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(up,"hasProperSlippage");function mp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:d,affiliateWallets:m,destination:f,enableCentralizedSwappers:g}=t,S=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:d??void 0,affiliateWallets:m??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(mp,"createQuoteRequestBody");function dp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(dp,"getWalletsForNewSwap");function po(t){return t?.outputAmount||null}i(po,"getQuoteOutputAmount");function fp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(fp,"getPercentageChange");function gp(t,e){let o=po(t),n=po(e);if(!o||!n)return!1;let r=Je(o,n);return r?r<=-1:!0}i(gp,"isOutputAmountChangedALot");function hp(t,e,o){let n=t.validationStatus,r=Xt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>wp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=rt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=rt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=rt.t(" for input and network fee")),rt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Ye(s.asset.blockchain,o)}})})}i(hp,"generateBalanceWarnings");function Qn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Qn,"calcOutputUsdValue");function zo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Un.NetworkChanged}i(zo,"isNetworkStatusInWarningState");function yp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),zo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Un.WaitingForConnectingWallet:n=n||rt.t("Waiting for connecting wallet");break;case Un.WaitingForQueue:n=n||rt.t("Waiting for other running tasks to be finished");break;case Un.WaitingForNetworkChange:n=n||rt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(yp,"getSwapMessages");function Sp(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(Sp,"getLastConvertedTokenInFailedSwap");function Cp(t){return t.status==="failed"}i(Cp,"shouldRetrySwap");function Tp(t,e,o,n,r,a){if(!n||t)return!0;let s=Xt({filter:"all",quote:n}),l=Xt({filter:"required",quote:n}),p=s.every(d=>r.some(m=>m.chain===d)),u=l.every(d=>r.some(m=>m.chain===d)),c=o&&a?Fn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Tp,"isConfirmSwapDisabled");function kp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(kp,"isTokensIdentical");function Gn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Gn,"getQuoteToTokenUsdPrice");function Ui(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ui,"isNumberOfSwapsChanged");function zi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!wi(o,n)}i(zi,"isQuoteSwappersUpdated");function qi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!wi(o,n)}i(qi,"isQuoteInternalCoinsUpdated");function xp(t,e){return Ui(t,e)||zi(t,e)||qi(t,e)}i(xp,"isQuoteChanged");function wp(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(wp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function bp(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Hg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Mi(a?a.toBlockchain:n.fromBlockchain,e),p=Mi(r.toBlockchain,e),u=Wi(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Wi(s,o),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(bp,"createRetryQuote");function co(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Yt(o,t.requestAmount),l=Yt(n,t?.outputAmount??"");if(t&&s&&l){let c=Je(s.toString(),l.toString());if(!!c&&np(s,c)){let m=zn(t?.swaps,r),f=wt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:m,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=qn(t.swaps),u=a>Ql;if(up(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:cp(t,a),minRequiredSlippage:p};return null}i(co,"generateQuoteWarnings");function Je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:fp(t.toString(),e.toString());return n&&n<0?n:null}i(Je,"getPriceImpact");var Ip=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Vn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Ep=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Ap=i(t=>{let e=i((o,n)=>{let r=$i.indexOf(o.value),a=$i.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Yt=i((t,e)=>t?.usdPrice?new vt(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Pt(Gg()(Vg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new vt(0),outputUsdValue:new vt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Be;return Po(o.inputAmount)?(e&&(n=e?.outputAmount?new vt(e?.outputAmount):null,r=Qn(e?.outputAmount,Gn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new vt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote: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:Yt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote: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 vt(0),outputUsdValue:new vt(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Yt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=bp(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Yt(s??null,u),outputUsdValue:new vt(0),toBlockchain:l,toToken:p,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Yt(e.toToken,e.outputAmount?.toString()||""):new vt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Np(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,d=h().fetchStatus,m=h().blockchains(),f=h().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:C}=h(),y=c?.from?.tokens,T=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=Xn(void 0),b=Xn(void 0),x=Xn(void 0),w=Xn(void 0);uo(()=>{t(c?.amount?.toString()||"")},[c?.amount]),uo(()=>{if(d==="success"){r();let I=m.find(L=>L.name===c?.from?.blockchain),W=f.find(L=>_e(L,c?.from?.token||null));(I||!I&&x.current)&&n(I??null),W?a({token:W,meta:{blockchains:m,tokens:f}}):!W&&E.current&&a({token:null}),x.current=c?.from?.blockchain,E.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,d]),uo(()=>{$o(s,y)&&a({token:null}),Ai(p,T)&&n(null)},[y,T]),uo(()=>{$o(l,k)&&a({token:null}),Ai(u,v)&&o(null)},[k,v]),uo(()=>{if(d==="success"){r();let I=m.find(L=>L.name===c?.to?.blockchain),W=f.find(L=>_e(L,c?.to?.token||null));(I||!I&&w.current)&&o(I??null),W?e({token:W,meta:{blockchains:m,tokens:f}}):!W&&b.current&&e({token:null}),w.current=c?.to?.blockchain,b.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,d]),uo(()=>{g(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),C(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Np,"useSyncStoresWithConfig");import{useEffect as Gi,useRef as Xg}from"react";import{useInRouterContext as jg,useLocation as Kg,useSearchParams as Yg}from"react-router-dom";function Qi(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(Qi,"searchParamToToken");function Hi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Hi,"tokenToSearchParam");function Vi(){let t=Kg(),[e,o]=Yg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=j(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=jg(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=Xg(),E=i(()=>{let x={};for(let[re,H]of e.entries())re.startsWith("utm_")&&(x[re]=H);let w=e.get("fromAmount"),I=e.get("fromBlockchain"),W=e.get("fromToken"),L=e.get("toBlockchain"),Q=e.get("toToken"),M=e.get("autoConnect"),V=e.get("clientUrl"),Y=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:W,toBlockchain:L,toToken:Q,autoConnect:M,clientUrl:V,liquiditySources:Y,utmQueryParams:x}},"getUrlSearchParams"),b=i(x=>{for(let w in x)x[w]||delete x[w];o(x,{replace:!0})},"updateUrlSearchParams");Gi(()=>{let{autoConnect:x,clientUrl:w,utmQueryParams:I}=E();C&&f==="success"&&b({fromBlockchain:n?.name,fromToken:Hi(a),toBlockchain:r?.name,toToken:Hi(s),fromAmount:l,autoConnect:x??void 0,clientUrl:w??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Gi(()=>{if(!C)return;let x=E();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&m(x.fromAmount),f==="success"){let w=g.find(Q=>Q.name===x.fromBlockchain),I=Qi(S,x.fromToken,w??null),W=g.find(Q=>Q.name===x.toBlockchain),L=Qi(S,x.toToken,W??null);w&&(p(w),I&&c({token:I,meta:{blockchains:g,tokens:S}})),W&&(u(W),L&&d({token:L,meta:{blockchains:g,tokens:S}}))}},[f]),Gi(()=>{let{clientUrl:x,liquiditySources:w}=E();y("clientUrl",x||void 0),T("liquiditySources",w?.split(",")??void 0)},[])}i(Vi,"useSyncUrlAndStore");import{i18n as Ha}from"@lingui/core";import{useManager as uC}from"@rango-dev/queue-manager-react";import{Alert as pm,Button as mC,css as Va,Divider as Ga,IconButton as cm,styled as dC,Typography as fC,WalletIcon as gC}from"@rango-dev/ui";import ke,{useEffect as Ur,useLayoutEffect as hC,useRef as yC,useState as on}from"react";import{useNavigate as SC}from"react-router-dom";import{i18n as ht}from"@lingui/core";import{Alert as va,BalanceErrors as Ry,Button as Qc,ChevronDownIcon as eS,ChevronLeftIcon as tS,Divider as ko,MessageBox as oS,Typography as Cr,WalletIcon as nS}from"@rango-dev/ui";import O,{useEffect as rS,useState as wo}from"react";import{useNavigate as iS}from"react-router-dom";import{i18n as jn}from"@lingui/core";function Kn(t){switch(t.type){case 0:return jn.t("Route has been updated.");case 3:return jn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return jn.t("Route swappers has been updated.");case 2:return jn.t("Route internal coins has been updated.");default:return""}}i(Kn,"getQuoteUpdateWarningMessage");import{Modal as Jg}from"@rango-dev/ui";import Rg from"react";function oe(t){let{watermark:e}=ne();return Rg.createElement(Jg,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import Rn,{useRef as oh}from"react";import*as mo from"@radix-ui/react-collapsible";import{keyframes as Mp,styled as Yn}from"@rango-dev/ui";var Xi=300,eh=Mp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),th=Mp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Lp=Yn(mo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ji=Yn(mo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Zn=Yn(mo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${eh} ${Xi}ms ease-out`},false:{animation:`${th} ${Xi}ms ease-out`}}}}),Jn=Yn("div",{transition:`all ${Xi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function er(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=oh(null);return Rn.createElement(Lp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Rn.createElement(ji,{className:"collapsible_trigger",onClick:a},s),Rn.createElement(Zn,{className:"collapsible_content",open:e},r),l==="bottom"&&Rn.createElement(ji,{className:"collapsible_trigger",onClick:a},s))}i(er,"CustomCollapsible");import{css as Bp,darkTheme as fo,IconButton as nh,styled as Re,TextField as rh}from"@rango-dev/ui";var _p=Re("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Pp=Re("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ih=Re("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${fo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),$p=Re(ih,{alignSelf:"stretch",minHeight:"93px"}),Dp=Re("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Fp=Re(nh,{position:"absolute",left:"$20"}),Op=Re("div",{paddingTop:"$20"}),Up=Bp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),zp=Re("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),qp=Bp({paddingTop:"$5"}),Qp=Re("div",{display:"flex"}),Hp=Re(rh,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Gp=Re("div",{overflow:"visible",width:"100%"}),Vp=Re("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${fo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$secondary100",[`.${fo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as at}from"@lingui/core";import{Button as Ky,Divider as ka,Image as Yy,MessageBox as yr,SelectableWallet as Zy,Typography as Uc,WalletState as zc}from"@rango-dev/ui";import ce,{useEffect as qc,useState as To}from"react";import{WalletState as tr}from"@rango-dev/ui";import{useWallets as ah}from"@rango-dev/wallets-react";import{detectMobileScreens as sh,KEPLR_COMPATIBLE_WALLETS as lh,WalletTypes as qo}from"@rango-dev/wallets-shared";import{useCallback as ph,useEffect as ch,useState as uh}from"react";var mh=Object.values(qo);function go(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=ah(),{connectedWallets:u}=R(),c=h().blockchains(),d=Bl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId})||mh,m=yl(a,l,d,e);m=sh()?m.filter(b=>b.showOnMobile||a(b.type).installed):m;let f=vl(m),[g,S]=uh(""),C=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),y=i(async(b,x)=>{let w=a(b);try{if(g&&S(""),w.connected)await s(b);else{let I=!!m.find(W=>W.state===tr.CONNECTED);if(r?.multiWallets===!1&&I)return;o?.(b),await p(b,void 0,x),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),T=ph(()=>{let b=m?.filter(x=>x.state===tr.CONNECTING)||[];for(let x of b)s(x.type)},[Il(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");ch(()=>()=>{T()},[]);let v=i(b=>{let x=b.find(I=>I.type===qo.DEFAULT);return!x||x.state===tr.NOT_INSTALLED?!1:b.filter(I=>I.state!=tr.NOT_INSTALLED&&![qo.DEFAULT,qo.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(W=>W.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,x,w)=>An(w,x)&&C(b)&&!lh.includes(b)||b==qo.DEFAULT&&!v(m),"shouldExcludeWallet");return{list:f.filter(b=>!E(b.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:T,disconnectWallet:k}}i(go,"useWalletList");import{i18n as Bc}from"@lingui/core";import{Divider as Uy,getCategoriesCount as zy,SelectableCategoryList as qy,styled as Pc,Typography as Qy,Wallet as Hy,WalletState as _c}from"@rango-dev/ui";import it,{useState as gr}from"react";import{useManager as Sy}from"@rango-dev/queue-manager-react";import{BottomLogo as Cy,Divider as Ic,Header as Ty}from"@rango-dev/ui";import ye,{useEffect as ga,useRef as Ec,useState as ky}from"react";import{useRef as dh}from"react";function or(){return window.self!==window.top}i(or,"isAppLoadedIntoIframe");function Ki(){let t=dh(null),{iframe:e}=h(),o=or()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ki,"useIframe");import{useNavigate as fh}from"react-router-dom";function et(){let t=fh();return()=>t(-1)}i(et,"useNavigateBack");import{createTheme as ta,darkTheme as Th,lightTheme as kh}from"@rango-dev/ui";import{useEffect as wh,useState as vh}from"react";import{theme as Sh,darkColors as Ch}from"@rango-dev/ui";import Ri from"react";function gh(t,e,o){let p=[],u=90;for(let m=0;m<9;m++)p.push(u),m+1===4?u=0:u-=m>=4?6:10;let c=o?p.slice().reverse():p,d={};for(let m=0;m<9;m++){let f=100+m*100,g=c[m],S={[`${e}${f}`]:nr(t,g)};Object.assign(d,S)}return{...d,[e]:t}}i(gh,"generateShades");function nr(t,e){let[o,n,r]=Xp(t);return`#${Yi(o+e)}${Yi(n+e)}${Yi(r+e)}`}i(nr,"generateShade");function Xp(t){let r=parseInt(t.slice(1,3),16),a=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return[r,a,s]}i(Xp,"convertToRGB");function Yi(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Yi,"clamp");function jp(t){let[s,l,p]=Xp(t);return(s*299+l*587+p*114)/1e3>188}i(jp,"isBright");var Zi=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let a in o){let s=o[a];s&&s!==t[a]&&(n=!0,a==="background"||a==="foreground"?r={...r,[a]:s}:r={...r,...gh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Kp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),hh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Kp(o%52)+e;return Kp(o%52)+e},"toAlphabeticName"),yh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ji=i(t=>hh(yh(5381,JSON.stringify(t))>>>0),"toHash");function ea(t){let e=Sh.colors,o=Zi({...e,...Ch},!0,t?.dark),n=Zi(e,!1,t?.light),r=Object.keys(o).length>0,a=Object.keys(n).length>0,s,l;if(a){let p={colors:n};s={id:`${Ei}-light-${Ji(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Ei}-dark-${Ji(p)}`,tokens:p}}return{light:s,dark:l}}i(ea,"customizedThemeTokens");function Yp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ri.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ri.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ri.cloneElement(e,{key:l}))}}),o}i(Yp,"joinList");function rr(t){let{colors:e,fontFamily:o=rl,borderRadius:n=Wl,secondaryBorderRadius:r=Ml}=t,[a,s]=vh("light"),{theme:l}=h(),{dark:p,light:u}=ea(e),c=ta({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,kh.className],m=[c.className,Th.className];if(u){let g=ta(u.id,u.tokens);d.push(g.className)}if(p){let g=ta(p.id,p.tokens);m.push(g.className)}return wh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),S=m.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(rr,"useTheme");var ft=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");import{i18n as Zp}from"@lingui/core";import{Alert as xh,Button as bh}from"@rango-dev/ui";import Jp from"react";function oa(t){return Jp.createElement(xh,{action:Jp.createElement(bh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Zp.t("Activate this tab")),type:"warning",variant:"alarm",title:Zp.t("Another tab is open and handles transactions.")})}i(oa,"ActivateTabAlert");import{i18n as na}from"@lingui/core";import{Button as Ih,Divider as Eh,MessageBox as Ah}from"@rango-dev/ui";import ir from"react";function ra(t){let{open:e,onClose:o,onConfirm:n}=t;return ir.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},ir.createElement(Ah,{title:na.t("Activate current tab"),type:"warning",description:na.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},ir.createElement(Eh,{size:20}),ir.createElement(Ih,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},na.t("Confirm"))))}i(ra,"ActivateTabModal");import{ChevronLeftIcon as Mh}from"@rango-dev/ui";import ic from"react";import{css as Nh,darkTheme as Rp,IconButton as Wh,styled as Zt}from"@rango-dev/ui";var gt=Zt(Wh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Rp} &`]:{backgroundColor:"$neutral"}}}),ec=Zt("div",{position:"absolute",background:"$secondary500",[`.${Rp} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ho=Zt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),tc=Zt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),oc=Zt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),nc=Zt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),rc=Nh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ar=Zt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ia(t){return ic.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},ic.createElement(Mh,{color:"black",size:16}))}i(ia,"BackButton");import{i18n as Lh}from"@lingui/core";import{Button as Bh,Typography as _h}from"@rango-dev/ui";import aa from"react";function sa(t){return aa.createElement(ho,null,aa.createElement(Bh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},aa.createElement(_h,{variant:"label",size:"medium",color:"error500"},Lh.t("Cancel"))))}i(sa,"CancelButton");import{i18n as Ph}from"@lingui/core";import{Image as $h,Tooltip as Dh,WalletIcon as Fh}from"@rango-dev/ui";import Jt from"react";function la(t){let{list:e}=go({}),o=e.filter(r=>r.state==="connected"),n=o.length?Jt.createElement("div",{className:rc()},o.map(r=>Jt.createElement(ar,{key:r.title},Jt.createElement($h,{src:r.image,size:14})))):Ph.t("Connect Wallet");return Jt.createElement(Dh,{container:t.container,side:"bottom",content:n},Jt.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Jt.createElement(ec,null),Jt.createElement(Fh,{size:18,color:"black"})))}i(la,"WalletButton");import{i18n as pr}from"@lingui/core";import{NotificationsIcon as py,Popover as cy,SettingsIcon as uy,Tooltip as cr,TransactionIcon as my}from"@rango-dev/ui";import xe from"react";import{i18n as jh}from"@lingui/core";import{EventSeverity as mc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as dc,ChevronRightIcon as Kh,Divider as Yh,Typography as Zh}from"@rango-dev/ui";import qe from"react";import{useNavigate as Jh}from"react-router-dom";import{create as Oh}from"zustand";import{persist as Uh,subscribeWithSelector as zh}from"zustand/middleware";var ze=Pt(Oh()(Uh(zh((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},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{darkTheme as qh,ListItemButton as Qh,styled as Qo}from"@rango-dev/ui";var ac=Qo("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),sc=Qo("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),lc=Qo(Qh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${qh} &`]:{backgroundColor:"$error600"}}}}}),pc=Qo("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),cc=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Hh}from"@lingui/core";import{Divider as Gh,NoNotificationIcon as Vh,Typography as Xh}from"@rango-dev/ui";import sr from"react";function uc(){return sr.createElement(cc,null,sr.createElement(Vh,{color:"secondary",size:26}),sr.createElement(Gh,{size:12}),sr.createElement(Xh,{variant:"body",size:"medium",color:"neutral700"},Hh.t("There are no notifications.")))}i(uc,"NotificationNotFound");var Rh=4;function pa(){let t=Jh(),{getUnreadNotifications:e}=ze(),o=e(),n=h().blockchains(),r=h().tokens(),a=o.sort((l,p)=>p.creationTime-l.creationTime).slice(0,Rh),s=i(l=>{t(`${U.swaps}/${l}`)},"handleOnClick");return qe.createElement(ac,null,a.length?qe.createElement(sc,null,a.map((l,p)=>{let{route:u,requestId:c,event:d}=l,m=r.find(C=>_e(C,u.from)),f=n.find(C=>C.name===u.from.blockchain),g=r.find(C=>_e(C,u.to)),S=n.find(C=>C.name===u.to.blockchain);return qe.createElement(qe.Fragment,{key:c},p>0&&qe.createElement(Yh,{size:4}),qe.createElement(lc,{onClick:()=>s(c),actionRequired:d.messageSeverity===mc.WARNING,title:qe.createElement(Zh,{variant:"body",size:"small",color:d.messageSeverity===mc.WARNING?"$foreground":"$neutral700"},jh.t(d.message)),id:c,start:qe.createElement(pc,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(dc,{tokenImage:m?m.image:"",chainImage:f?f.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(dc,{tokenImage:g?g.image:"",chainImage:S?S.logo:"",size:"small"}))),end:qe.createElement(Kh,{size:12,color:"gray"})}))})):qe.createElement(uc,null))}i(pa,"NotificationContent");import{useManager as ey}from"@rango-dev/queue-manager-react";import{InProgressIcon as ty}from"@rango-dev/ui";import fc from"react";var oy=i(()=>{let{manager:t}=ey();return ft(t).map(({swap:o})=>o).find(o=>o.status==="running")?fc.createElement(nc,null,fc.createElement(ty,{color:"info",size:6})):null},"InProgressTransactionBadge"),gc=oy;import{RefreshProgressButton as ny}from"@rango-dev/ui";import ca,{useEffect as ry,useState as hc}from"react";var iy=1e3,yc=60,ay=100;function lr({onClick:t}){let[e,o]=hc(0),[n,r]=hc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ry(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===yc&&l()},iy):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ca.createElement(gt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ca.createElement(oc,{onTransitionEnd:()=>r(!1),isRefetched:n},ca.createElement(ny,{size:22,color:t?"black":"gray",progress:e/yc*ay})))}i(lr,"RefreshButton");import{EventSeverity as sy}from"@rango-dev/queue-manager-rango-preset";import{Typography as ly}from"@rango-dev/ui";import Sc from"react";function Cc(){let{getUnreadNotifications:t}=ze(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===sy.WARNING);return o?Sc.createElement(tc,{isSever:n},Sc.createElement(ly,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Cc,"UnreadNotificationsBadge");function Rt(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Ze("notification",s)||r.includes("notifications");return xe.createElement(xe.Fragment,null,!r.includes("refresh")&&xe.createElement(cr,{container:a||B(),side:"top",content:pr.t("Refresh")},xe.createElement(lr,{onClick:e})),!l&&xe.createElement(cy,{align:"end",alignOffset:-88,collisionPadding:{right:20,left:20},container:B(),content:xe.createElement(pa,null)},xe.createElement("div",null,xe.createElement(cr,{container:B(),side:"top",content:pr.t("Notifications")},xe.createElement(gt,{size:"small",variant:"ghost"},xe.createElement(py,{size:18,color:"black"}),xe.createElement(Cc,null))))),!r.includes("settings")&&xe.createElement(cr,{container:B(),side:"top",content:pr.t("Settings")},xe.createElement(gt,{size:"small",variant:"ghost",onClick:n},xe.createElement(uy,{size:18,color:"black"}))),!r.includes("history")&&xe.createElement(cr,{container:B(),side:"top",content:pr.t("Transactions History")},xe.createElement(gt,{size:"small",variant:"ghost",onClick:o},xe.createElement(my,{size:18,color:"black"}),xe.createElement(gc,null))))}i(Rt,"HeaderButtons");import{i18n as ua}from"@lingui/core";import{Divider as kc,MessageBox as gy,RefreshIcon as hy}from"@rango-dev/ui";import yo from"react";import{Button as dy,styled as fy}from"@rango-dev/ui";var Tc=fy(dy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ma(t){let{open:e,onClose:o}=t;return yo.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},yo.createElement(gy,{title:ua.t("Something went wrong"),type:"error",description:ua.t("Something went wrong. Please refresh the app.")},yo.createElement(kc,{size:30}),yo.createElement(Tc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},yo.createElement(hy,{size:20,color:"primary"}),yo.createElement(kc,{size:4,direction:"horizontal"}),ua.t("Refresh"))))}i(ma,"RefreshModal");function da(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(da,"onScrollContentAttachStatusToContainer");import{css as yy,styled as fa}from"@rango-dev/ui";var wc="700px",ur=yy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),vc=fa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:wc},fixed:{height:wc}}}}),xc=fa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),bc=fa("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ki(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=ky(!1),c=R.use.connectedWallets(),{config:{features:d,theme:m}}=h(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:S}=rr(m||{}),C=Ze("connectWalletButton",d),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ne(),b=et(),{manager:x}=Sy(),I=ft(x).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),W=i(()=>E(jt.forceClaim,I),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,M=Ec(null),V=Ec(null);return ga(()=>(or()&&V.current&&e(V.current),()=>{o()}),[]),ga(()=>(M.current?.addEventListener("scroll",da),()=>{M.current?.removeEventListener("scroll",da)}),[]),ga(()=>{u(l==="failed")},[l]),ye.createElement(vc,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${ur()}`,ref:V},ye.createElement(Ty,{prefix:ye.createElement(ye.Fragment,null,Q&&ye.createElement(ia,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:ye.createElement(ye.Fragment,null,r.suffix,r.onWallet&&!C&&ye.createElement(la,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&ye.createElement(sa,{onClick:r.onCancel}))}),ye.createElement(xc,{ref:M},n),ye.createElement(ra,{open:k,onClose:()=>v(!1),onConfirm:W}),ye.createElement(bc,null,ye.createElement("div",{className:"footer__content"},T&&!y&&ye.createElement("div",{className:"footer__alert"},ye.createElement(oa,{onActivateTab:W}),ye.createElement(Ic,{size:10})),a),ye.createElement(Ic,{size:12}),ye.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},ye.createElement(Cy,null))),ye.createElement(ma,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as wy}from"@rango-dev/ui";var Ac="$20 $20 $10 $20",Ho=wy("div",{padding:Ac,overflowY:"auto",flexGrow:1});import{styled as vy}from"@rango-dev/ui";var ue=vy("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as Ay}from"@rango-dev/ui";import ya from"react";import{i18n as So}from"@lingui/core";import{Image as Iy,MessageBox as ha,WalletState as Ey}from"@rango-dev/ui";import eo from"react";import{keyframes as xy,styled as mr}from"@rango-dev/ui";var zN=mr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),dr=mr("div",{position:"relative"}),by=xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fr=mr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${by} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Nc=mr("div",{"& img":{borderRadius:"50%"}});function Wc(t){let{state:e,image:o,error:n}=t;return e===Ey.CONNECTED?eo.createElement(ha,{type:"success",title:So.t("Wallet Connected"),description:So.t("Your wallet is connected, you can use it to swap.")}):n?eo.createElement(ha,{type:"error",title:So.t("Failed to Connect"),description:n||So.t("Your wallet is not connected. Please try again.")}):eo.createElement(ha,{type:"loading",title:So.t("Connecting to your wallet"),description:So.t("Click connect in your wallet popup."),icon:eo.createElement(dr,null,eo.createElement(Nc,null,eo.createElement(Iy,{src:o,size:45})),eo.createElement(fr,null))})}i(Wc,"ModalContent");function Go(t){let{open:e,onClose:o,...n}=t;return ya.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},ya.createElement(Wc,{...n}),ya.createElement(Ay,{direction:"vertical",size:32}))}i(Go,"WalletModal");import{i18n as Sa}from"@lingui/core";import{Button as Wy,Checkbox as My,Image as Lc,ListItemButton as Ly,MessageBox as By,Radio as _y,RadioRoot as Py}from"@rango-dev/ui";import{Namespace as Co}from"@rango-dev/wallets-shared";import Ie,{useMemo as $y,useState as Dy}from"react";import{styled as Ny}from"@rango-dev/ui";var Mc=Ny("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Fy={[Co.Evm]:"ETH",[Co.Solana]:"SOLANA",[Co.Cosmos]:"COSMOS",[Co.Utxo]:"BTC",[Co.Starknet]:"STARKNET",[Co.Tron]:"TRON"},Oy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function to(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Dy([]),a=h().blockchains(),s=$y(()=>o?.map(u=>({name:u,logo:Oy(a,Fy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(d=>d!==u):c.concat(u))},"onSelect"),p=i(u=>e?Ie.createElement(Py,{value:n?.[0]},u):Ie.createElement(Ie.Fragment,null,u),"wrapRadioRoot");return Ie.createElement(oe,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ie.createElement(By,{type:"info",title:Sa.t("Select chain types"),description:Sa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ie.createElement(dr,null,Ie.createElement(ar,null,Ie.createElement(Lc,{src:t.image,size:45})),Ie.createElement(fr,null))}),Ie.createElement(Mc,null,p(Ie.createElement(Ie.Fragment,null,s?.map(u=>Ie.createElement(Ly,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ie.createElement(Lc,{src:u.logo,size:22}),end:e?Ie.createElement(_y,{value:u.name}):Ie.createElement(My,{checked:n.includes(u.name)})}))))),Ie.createElement(Wy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Sa.t("Confirm")))}i(to,"WalletNamespacesModal");var Gy=Pc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Vy=Pc(ue,{textAlign:"center"}),hr=3e3,Ca=300;function $c(){let{fetchStatus:t}=h(),[e,o]=gr("ALL"),n=h().blockchains(),[r,a]=gr(!1),[s,l]=gr(null),[p,u]=gr(""),c=null,d=ne.use.isActiveTab(),{list:m,handleClick:f,error:g,disconnectConnectingWallets:S}=go({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},Ca)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},hr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),y=m.find(w=>w.type===p),T=y?.image||"",k=y?.state||_c.NOT_INSTALLED,v=El(m,n),b=zy(v)!==1,x=Al(m,e);return it.createElement(le,{header:{title:Bc.t("Connect Wallets")}},it.createElement(Vy,null,b&&it.createElement(it.Fragment,null,it.createElement(qy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),it.createElement(Uy,{size:24})),it.createElement(Qy,{variant:"title",size:"xmedium",align:"center"},Bc.t("Choose a wallet to connect.")),it.createElement(Gy,null,x.map((w,I)=>{let W=`wallet-${I}-${w.type}`;return it.createElement(Hy,{key:W,...w,container:B(),onClick:L=>{w.namespaces&&w.state===_c.DISCONNECTED?l({providerType:L,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(L)},isLoading:t==="loading",disabled:!d})}),it.createElement(Go,{open:!!r,onClose:C,image:T,state:k,error:g}),it.createElement(to,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i($c,"WalletsPage");import{keyframes as Xy,styled as Ta}from"@rango-dev/ui";var Dc=Ta("div",{position:"relative"}),jy=Xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Fc=Ta("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${jy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Oc=Ta("div",{"& img":{borderRadius:"50%"}});var Jy=7;function wa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),l=R.use.connectedWallets(),{blockchains:p}=h(),[u,c]=To(""),[d,m]=To(null),[f,g]=To(!1),[S,C]=To(null),[y,T]=To(null),{suggestAndConnect:k}=Sr(),v=null,{list:E,error:b,handleClick:x,disconnectWallet:w,disconnectConnectingWallets:I}=go({chain:e,onBeforeConnect:A=>{v=setTimeout(()=>{c(A)},Ca)},onConnect:()=>{v&&clearTimeout(v),setTimeout(()=>{c("")},hr)}}),[W,L]=To(E),Q=E.length,M=r&&Q-r>0,V=i(async A=>{g(!1),C("in-progress");try{await k(A.walletType,A.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain"),Y=i(A=>{T({providerType:A.type,providerImage:A.image,availableNamespaces:A.namespaces,singleNamespace:A.singleNamespace})},"handleOpenNamespacesModal");qc(()=>{L(A=>{let te=E.findIndex(q=>o(q.type,e));return M&&te>1?[E[te]].concat(E.filter((q,Z)=>Z!==te)):A.map(q=>E.find(Z=>Z.type===q.type)??q)})},[JSON.stringify(E)]);let re=document.getElementById(he.SWAP_BOX_ID);qc(()=>{let A=null;return(S==="completed"||S==="rejected")&&(A=setTimeout(()=>C(null),hr)),()=>{A&&clearTimeout(A)}},[S]);let H=i(()=>{I(),c("")},"handleCloseWalletModal");return ce.createElement(ce.Fragment,null,W.slice(0,r).map(A=>{let te=xl({connectedWallets:l,walletType:A.type,chain:e}),q=te?Wn(te,Jy):"",Z=An(p(),e),me=!l.find(X=>X.walletType===A.type&&X.chain===e),ge=Z&&me&&A.state===zc.CONNECTED,_=ge?at.t({id:"Add {chain} chain",values:{chain:e}}):q,Oe=i(async()=>{A.state===zc.DISCONNECTED?A.namespaces?Y(A):x(A.type):A.namespaces&&!q?(await w(A.type),Y(A)):ge?(m({walletType:A.type,chain:e,address:te??""}),g(!0)):n({walletType:A.type,chain:e,address:te??""})},"onClick"),P=d?.chain?$l(d.chain,p()):void 0;return ce.createElement(ce.Fragment,{key:`${A.title}_${P}`},ce.createElement(Go,{open:u===A.type,onClose:H,image:A.image,state:A.state,error:b}),ce.createElement(to,{open:!!y,onClose:()=>T(null),onConfirm:X=>{x(y?.providerType,X),T(null)},image:y?.providerImage,namespaces:y?.availableNamespaces,singleNamespace:y?.singleNamespace}),!!d&&ce.createElement(oe,{open:!!d&&f,container:re,onClose:()=>{m(null)}},ce.createElement(yr,{title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),type:"warning",description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}})},ce.createElement(ka,{size:18}),ce.createElement(ka,{size:32}),ce.createElement(Ky,{onClick:V.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},at.t("Confirm")))),S&&ce.createElement(oe,{open:!!S,onClose:C.bind(null,null),container:re},S==="in-progress"&&ce.createElement(yr,{type:"loading",title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}}),icon:ce.createElement(Dc,null,ce.createElement(Oc,null,ce.createElement(Yy,{src:A.image,size:45})),ce.createElement(Fc,null))}),S==="completed"&&ce.createElement(yr,{type:"success",title:at.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:P}}),description:at.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:P}})}),S==="rejected"&&ce.createElement(yr,{type:"error",title:at.t("Request Rejected"),description:at.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:P}})}),ce.createElement(ka,{direction:"vertical",size:32})),ce.createElement(Zy,{key:A.type,description:_,onClick:Oe,selected:o(A.type,e),disabled:!s,...A}))}),M&&ce.createElement($p,{selected:!1,onClick:a},ce.createElement(Uc,{variant:"label",size:"medium"},at.t("Show more wallets"),ce.createElement(Uc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",Q-(r??0)))))}i(wa,"WalletList");var aS=2;function Hc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=h().config,l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=j(),{connectedWallets:g,selectWallets:S}=R(),[C,y]=wo(""),[T,k]=wo([]),[v,E]=wo(""),[b,x]=wo(null),[w,I]=wo(!!m),W=Xt({filter:"all",quote:p}),L=Xt({filter:"required",quote:p}),Q=l.find(P=>P.name===p?.swaps[p?.swaps.length-1].to.blockchain),M=i(P=>L.includes(P),"isWalletRequiredFor"),V=i(()=>g.filter(P=>P.selected&&W.includes(P.chain)),"getInitialSelectableWallets"),[Y,re]=wo(V()),H=T.length>0,A=i((P,X)=>!!Y.find(ie=>ie.walletType===P&&ie.chain===X&&ie.selected&&(M(X)||!M(X)&&!m)),"isSelected"),te=!!m&&w&&Q&&!Fn(Q,m),q=i(()=>{I(!1),f(null),re(P=>{let X=!1;return P.map(ie=>!X&&ie.chain===Q?.name?(X=!0,{...ie,selected:!0}):ie)})},"resetCustomDestination"),Z=i(P=>{if(C&&y(""),A(P.walletType,P.chain))return;let ie=g.find(Ee=>Ee.walletType===P.walletType&&Ee.chain===P.chain);ie&&(n(),P.chain===Q?.name&&w&&(I(!1),f(null)),re(Ee=>Ee.filter(Ge=>Ge.chain!==P.chain).concat({...ie,selected:!0})))},"onChange"),me=i(()=>{let P=Y.filter(X=>X.selected);S(P),u(P),d(!0),o()},"onConfirmBalance"),ge=i(async()=>{k([]),E(""),x(null);let P=await r?.({selectedWallets:Y.filter(ie=>ie.selected),customDestination:m}),X=P.warnings;X?.balance?.messages&&k(X.balance.messages),X?.quoteUpdate&&x(X.quoteUpdate),P.error&&E(op(P.error)),!P.error&&!X?.balance?.messages.length?me():k(X?.balance?.messages??[])},"onConfirmWallets");rS(()=>{re(P=>P.concat(g.filter(X=>!!!P.find(Ee=>Ee.chain===X.chain)&&X.selected&&W.includes(X.chain))))},[g.length]);let _=document.getElementById(he.SWAP_BOX_ID),Oe=iS();return O.createElement(oe,{open:e,onClose:()=>{c||Oe("../",{replace:!0}),o()},dismissible:!C,container:_,...!C&&{footer:O.createElement(Qp,null,O.createElement(Qc,{loading:a,disabled:Tp(a,w,m,p,Y,Q),onClick:ge,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ht.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:O.createElement(Dp,null,O.createElement(Fp,{variant:"ghost",onClick:y.bind(null,"")},O.createElement(tS,{size:16})),O.createElement(Cr,{variant:"headline",size:"small"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(C,l)}})))},anchor:"center"},O.createElement(oe,{open:H,onClose:k.bind(null,[]),container:_},O.createElement(oS,{title:ht.t("Insufficient account balance"),type:"error",description:O.createElement(Ry,{messages:T??[]})},O.createElement(Qc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},ht.t("Proceed anyway")))),C&&O.createElement(Op,null,O.createElement("div",{className:Up()},O.createElement(wa,{chain:C,isSelected:A,selectWallet:Z,onShowMore:y.bind(null,C)}))),!C&&O.createElement(O.Fragment,null,v&&O.createElement(O.Fragment,null,O.createElement(va,{variant:"alarm",type:"error",title:ht.t(v)}),O.createElement(ko,{size:12})),b&&O.createElement(O.Fragment,null,O.createElement(va,{variant:"alarm",type:"warning",title:Kn(b)}),O.createElement(ko,{size:12})),O.createElement(Gp,null,W.map((P,X)=>{let ie=l.find(Ae=>Ae.name===P),Ee=`wallet-${X}`,Ge=X===W.length-1;return O.createElement("div",{key:Ee},O.createElement(_p,null,O.createElement(Cr,{variant:"title",size:"xmedium"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:ie?.shortName}})),O.createElement(Cr,{variant:"label",color:"$neutral700",size:"medium"},ht.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:ie?.shortName}}))),O.createElement(ko,{size:24}),O.createElement(Pp,null,O.createElement(wa,{chain:P,isSelected:A,selectWallet:Z,limit:aS,onShowMore:()=>y(ie?.name??"")})),!Ge&&O.createElement(ko,{size:32}),Ge&&s?.customDestination&&O.createElement(zp,null,O.createElement(er,{onOpenChange:Ae=>{Ae?M(Q?.name??"")||re(Le=>Le.map(Ke=>Ke.chain===Q?.name?{...Ke,selected:!1}:Ke)):q()},hasSelected:!0,open:w,triggerAnchor:"top",trigger:O.createElement(Vp,null,O.createElement("div",{className:"button__content"},O.createElement(nS,{size:18,color:"info"}),O.createElement(ko,{size:4,direction:"horizontal"}),O.createElement(Cr,{variant:"label",size:"medium"},ht.t("Send to a different address"))),O.createElement(Jn,{orientation:w?"up":"down"},O.createElement(eS,{size:10,color:"gray"}))),onClickTrigger:()=>I(Ae=>!Ae)},O.createElement(ko,{size:4}),O.createElement(Hp,{placeholder:ht.t("Your destination address"),value:m||"",onChange:Ae=>{let Le=Ae.target.value;Le.length?f(Le.length?Le:null):(I(!1),f(null))},...!m&&{autoFocus:!0}})),te&&O.createElement("div",{className:qp()},O.createElement(va,{variant:"alarm",type:"error",title:ht.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Hc,"ConfirmWalletsModal");import{i18n as bS}from"@lingui/core";import{Alert as IS,Button as ES,InfoIcon as AS}from"@rango-dev/ui";import Xe from"react";import{Alert as pS,Button as cS,Divider as Ia,NoRouteIcon as uS,RefreshIcon as mS,Typography as Zc}from"@rango-dev/ui";import Ve from"react";import{i18n as Gc}from"@lingui/core";var sS=24,lS=60;function Vc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Gc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Gc.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Vc,"makeInfo");var xa=(o=>(o[o.small=sS]="small",o[o.large=lS]="large",o))(xa||{}),ba=(o=>(o.small="small",o.large="medium",o))(ba||{});import{styled as Tr}from"@rango-dev/ui";var Xc=Tr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),jc=Tr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Kc=Tr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Yc=Tr("div",{padding:"$6 $0"});function Vo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Vc(o,r,()=>a(s,!0),e);return Ve.createElement(Xc,null,Ve.createElement(uS,{size:xa[n],color:"gray"}),Ve.createElement(Ia,{size:4}),Ve.createElement(Zc,{variant:"title",size:ba[n]},ee().noResultError.title),n==="large"&&Ve.createElement(Ia,{size:4}),!!l.description&&Ve.createElement(jc,{size:n},Ve.createElement(Zc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ve.createElement(Ia,{size:n==="large"?"24":"4"}),!!l.alert&&Ve.createElement(Kc,{size:n},Ve.createElement(pS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ve.createElement(cS,{size:"xsmall",type:l.alert.type,prefix:Ve.createElement(Yc,null,Ve.createElement(mS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Vo,"NoResult");import{i18n as Xo}from"@lingui/core";import{Button as fS,Divider as gS,MessageBox as hS,Typography as yS,WarningIcon as SS}from"@rango-dev/ui";import xt from"react";import{Typography as tu}from"@rango-dev/ui";import Aa from"react";import{darkTheme as dS,styled as kr}from"@rango-dev/ui";var Jc=kr("div",{width:"100%"}),Ea=kr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Rc=kr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${dS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),eu=kr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function ou(t){let{title:e,value:o,valueColor:n}=t;return Aa.createElement(Rc,null,Aa.createElement(tu,{size:"medium",variant:"label",className:"_title"},e),Aa.createElement(tu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ou,"QuoteErrorsModalItem");function nu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Xo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Xo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Xo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Xo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return xt.createElement(oe,{footer:xt.createElement(fS,{type:"primary",size:"large",prefix:xt.createElement(SS,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},xt.createElement(hS,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),xt.createElement(Ea,null,xt.createElement(gS,{size:"4"}),xt.createElement(yS,{size:"small",variant:"title"},Xo.t("Details")),xt.createElement(Ea,null,l.map((p,u)=>xt.createElement(ou,{key:u,...p})))))}i(nu,"HighValueLossWarningModal");import{i18n as Na}from"@lingui/core";function ru(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Na.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(wt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title),t.type===1&&(o.title=ee().unknownPriceError.title),t.type===2&&(o.title=Na.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=Na.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(ru,"makeAlerts");import{i18n as vo}from"@lingui/core";import{Button as iu,Divider as au,MessageBox as CS,Typography as TS}from"@rango-dev/ui";import oo from"react";import{useNavigate as kS}from"react-router-dom";function su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=kS(),u=e??o;return oo.createElement(oe,{anchor:"bottom",open:n,prefix:oo.createElement(iu,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},oo.createElement(TS,{variant:"label",size:"medium",color:"$neutral900"},vo.t("Change settings"))),container:B(),onClose:r},oo.createElement(CS,{type:"warning",title:s.type===3?vo.t("High slippage"):vo.t("Low slippage"),description:s.type===3?vo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):vo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},oo.createElement(au,{size:18}),oo.createElement(au,{size:32}),oo.createElement(iu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},vo.t("Confirm anyway"))))}i(su,"SlippageWarningModal");import{Button as wS,MessageBox as vS,WarningIcon as xS}from"@rango-dev/ui";import wr from"react";function lu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(oe,{footer:wr.createElement(wS,{type:"primary",size:"large",prefix:wr.createElement(xS,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(vS,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(lu,"UnknownPriceWarningModal");function jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,d={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,f=ru(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),Xe.createElement(Xe.Fragment,null,m&&Xe.createElement(Vo,{error:o,fetch:s}),!!f&&Xe.createElement(Jc,null,Xe.createElement(IS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Xe.createElement(eu,{onClick:l},Xe.createElement(AS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Xe.createElement(ES,{size:"xxsmall",type:f.alertType,onClick:c},bS.t("Change"))}})),e&&Xe.createElement(Xe.Fragment,null,e.type===0&&Xe.createElement(nu,{...d,warning:e}),(e.type===3||e.type===2)&&Xe.createElement(su,{...d,warning:e}),e.type===1&&Xe.createElement(lu,{...d,warning:e})))}i(jo,"QuoteWarningsAndErrors");import iC from"bignumber.js";import $r from"react";import{i18n as no}from"@lingui/core";import{Alert as VS,Divider as bo,FullExpandedQuote as XS,InfoIcon as jS,QuoteTag as KS,StepDetails as YS,TokenAmount as ZS,Tooltip as zu,Typography as Io}from"@rango-dev/ui";import Da from"bignumber.js";import $,{useRef as JS,useState as RS}from"react";import{styled as Wa}from"@rango-dev/ui";var Ma=Wa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),pu=Wa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),cu=Wa("div",{width:"100%",display:"flex"});import*as vr from"@radix-ui/react-collapsible";import{Button as NS,css as Ko,darkTheme as Ce,Image as uu,styled as $e,Typography as WS}from"@rango-dev/ui";var MS=300,mu=$e(vr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Ce} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),du=Ko({padding:"$10 $15"}),fu=$e(NS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${Ce} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${Ce} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ce} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),gu=$e("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Ce} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ce} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ce} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ce} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ce} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ce} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ce} &`]:{backgroundColor:"$neutral400"}}}}]}),hu=Ko({width:"100%",padding:"$15 $15 $10 $15"}),yu=Ko({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),xo=Ko({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Su=Ko({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ce} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cu=$e(vr.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:{[`& ${uu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${uu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Ce} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Tu=$e("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ku=$e(Zn,{width:"100%",background:"inherit"}),La=$e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${MS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),GL=$e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),wu=$e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ce} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),vu=$e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ba=$e(WS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),xu=$e("div",{display:"flex",flexWrap:"wrap"}),_a=$e("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),bu=$e("div",{display:"flex"}),xr=$e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ce} &`]:{borderTopColor:"$neutral800"}});import{i18n as zt}from"@lingui/core";import{ChevronDownIcon as BS,CloseIcon as _S,Divider as Er,IconButton as PS,QuoteCost as $S,Tooltip as DS,Typography as st}from"@rango-dev/ui";import K,{useState as Nu}from"react";import{css as LS,styled as br}from"@rango-dev/ui";var Ir=br("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Pa=br("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Iu=br("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Eu=br("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Au=LS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var FS=i(t=>t.fee.isZero()?null:K.createElement(Ir,null,K.createElement(st,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(st,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Wu(t){let[e,o]=Nu(!1),[n,r]=Nu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=B(),f=lp(d);return K.createElement(K.Fragment,null,K.createElement($S,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?zt.t("View more info"):void 0,tooltipContainer:m}),K.createElement(oe,{container:m,open:e,header:K.createElement(Eu,null,K.createElement(st,{variant:"title",size:"medium"},zt.t("Gas & Fee Explanation")),K.createElement(PS,{onClick:()=>o(!1),variant:"ghost"},K.createElement(_S,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(Iu,null,K.createElement(st,{variant:"title",size:"small"},zt.t("Details")),K.createElement(Er,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Oi(C);return K.createElement(Ir,{key:T},K.createElement(st,{variant:"label",size:"medium",color:"neutral600"},Pi[g]),K.createElement(DS,{content:pe(C.amount),container:m},K.createElement(st,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),K.createElement(Ir,{className:"total_payable_fee"},K.createElement(st,{variant:"label",size:"medium"},zt.t("Total Payable Fee")),K.createElement(st,{variant:"label",size:"medium"},"$",N(l,4,4))),K.createElement(Pa,null),Object.keys(f.nonePayable).length&&K.createElement(er,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:K.createElement("div",{className:Au()},K.createElement(st,{size:"small",variant:"body",color:"neutral700"},n?zt.t("Hide non-payable fees"):zt.t("Show non-payable fees")),K.createElement(Er,{size:4,direction:"horizontal"}),K.createElement(Jn,{orientation:n?"up":"down"},K.createElement(BS,{size:12,color:"gray"}))),open:n},K.createElement(st,{size:"small",variant:"title"},zt.t("Description")),K.createElement(Er,{size:4}),K.createElement(st,{size:"small",variant:"body",color:"neutral700"},zt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),K.createElement(Er,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let y=sp(S),T=Pi[g],k=`non-payable-fee-${C}`;return K.createElement(FS,{key:k,fee:y,label:T})}),K.createElement(Pa,null)))))}i(Wu,"QuoteCostDetails");import{i18n as Bu}from"@lingui/core";import{TokenAmount as _u}from"@rango-dev/ui";import Ar from"react";import{css as OS,styled as US}from"@rango-dev/ui";var Mu=US("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Lu=OS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Yo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ar.createElement(Mu,null,Ar.createElement(_u,{direction:"horizontal",label:Bu.t("Swap input"),type:"input",tooltipContainer:B(),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}}),Ar.createElement("div",{className:Lu()}),Ar.createElement(_u,{direction:"horizontal",tooltipContainer:B(),label:Bu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(Yo,"QuoteSummary");import{i18n as Ou}from"@lingui/core";import{ChevronDownIcon as QS,ChevronRightIcon as HS,Divider as $a,Image as GS,Tooltip as Br,Typography as Wr}from"@rango-dev/ui";import D from"react";import{useLayoutEffect as zS,useState as Zo}from"react";var Pu=480,$u=768,Du=1024,Fu=1200,qS=i(()=>{let[t,e]=Zo(!1),[o,n]=Zo(!1),[r,a]=Zo(!1),[s,l]=Zo(!1),[p,u]=Zo(!1),c=i(()=>{e(window.innerWidth<=Pu),n(window.innerWidth>Pu&&window.innerWidth<=$u),a(window.innerWidth>$u&&window.innerWidth<=Du),l(window.innerWidth>Du&&window.innerWidth<=Fu),u(window.innerWidth>Fu)},"handleResize");return zS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Nr=qS;var Mr=4,Lr=6,Jo=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return D.createElement(Br,{container:l,side:"bottom",sideOffset:4,open:r,content:e},D.createElement(Tu,{className:n,state:a},D.createElement(GS,{src:o,size:16})))},"ImageComponent");function Uu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Ip(r),{isTablet:d,isMobile:m}=Nr();return D.createElement(Cu,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},D.createElement("div",{className:xo()},D.createElement(Wr,{variant:"body",size:"xsmall"},Ou.t("Via:")),D.createElement($a,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=D.createElement(La,null,D.createElement(HS,{size:12,color:"black"}));return m||d?D.createElement(D.Fragment,{key:S},D.createElement(Jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&D.createElement(D.Fragment,null,C)):D.createElement(D.Fragment,{key:S},u<=Mr||u>Mr&&g<Mr-1?D.createElement(D.Fragment,null,D.createElement(Jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&D.createElement(D.Fragment,null,C)):g===Mr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:xo()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&D.createElement(D.Fragment,{key:k},D.createElement(Jo,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&D.createElement(D.Fragment,null,C))}))},D.createElement(_a,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",u-g))))})),D.createElement("div",{className:xo()},D.createElement("div",{className:"blockchains_section"},D.createElement("div",{className:xo()},D.createElement(Wr,{variant:"body",size:"xsmall"},Ou.t("Chains:")),D.createElement($a,{direction:"horizontal",size:4}),c.map((f,g)=>D.createElement(D.Fragment,{key:f.displayName},c.length<=Lr||c.length>Lr&&g<Lr-1?D.createElement(Br,{container:p,side:"bottom",content:f.displayName,sideOffset:4},D.createElement(Jo,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===Lr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:xo()},c.map((S,C)=>C>=g&&D.createElement(Jo,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},D.createElement(_a,{className:"blockchainImage"},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",c.length-g))))),D.createElement($a,{direction:"horizontal",size:32}))),D.createElement(La,{orientation:a?"up":"down"},D.createElement(QS,{size:12,color:"black"}))))}i(Uu,"QuoteTrigger");function Fa(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:d=!1,container:m}=t,f=h().blockchains(),g=h().tokens(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=RS(t.expanded),E=JS(null),b=N(o.value,6,6),x=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",I=Je(o.usdValue,n.usdValue??null),W=N(I,2,2),L=wt(I??0),Q=i((me,ge)=>me.map((_,Oe)=>{let P,X=r?.type===3&&r.swap.swapperId===_.swapperId,ie=r?.type===4&&r.recommendedSlippages?.has(Oe),Ee=a?.type===2&&a.recommendedSlippages?.has(Oe),Ge=X||ie,Ae=Ee;Ge?P="error":Ae&&(P="warning");let Le=Ge?no.t("Slippage Error"):no.t("Slippage Warning");return X&&(Le=no.t("Bridge Limit Error")),{swapper:{displayName:Do(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ye(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Oe===0&&!ge?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:pe(Oe===0?o.value:_.fromAmount),realUsdValue:pe(new Da(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Ye(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:pe(_.toAmount),realUsdValue:pe(new Da(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:P,alerts:Ge||Ae?$.createElement(pu,{dense:d},$.createElement(VS,{variant:"alarm",type:Ge?"error":"warning",title:Le,footer:$.createElement(cu,null,X&&$.createElement("div",null,$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(bo,{direction:"vertical",size:2}),$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(ie||Ee)&&!X&&$.createElement("div",null,$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Oe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Oe)}}})),$.createElement(bo,{direction:"vertical",size:2}),$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:_o(_.estimatedTimeInSeconds),fee:N(Fi(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),M=Q(e?.swaps??[]),V=M.length,Y=m||B(),re=Ap(t.quote.tags||[]),H=!!c,A=_o(vn(e?.swaps)),te=zn(e?.swaps??[],g),q=N(te,2,2),Z=te.gte(new Da(tp));return d?$.createElement(XS,{selected:l,fee:q,time:A,tooltipContainer:Bo(),steps:M,tags:re,feeWarning:Z,percentageChange:W,warningLevel:L,outputPrice:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):$.createElement(gu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:hu()},!p&&re.length?$.createElement($.Fragment,null,$.createElement(bu,null,re.map((me,ge)=>{let _=`${me.value}_${ge}`;return $.createElement($.Fragment,{key:_},$.createElement(KS,{label:me.label,value:me.value}),$.createElement(bo,{size:4,direction:"horizontal"}))})),$.createElement(xr,null),!H&&$.createElement(bo,{size:4})):null,$.createElement("div",{id:"portal-root",className:yu()},$.createElement(Wu,{quote:e,time:A,fee:q,feeWarning:Z,showModalFee:u,steps:V}),H&&$.createElement(fu,{onClick:me=>{me.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Io,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},no.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:Su()},$.createElement(vu,null,$.createElement(jS,{size:12,color:"gray"})),$.createElement(xu,null,$.createElement(Ba,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),$.createElement(zu,{content:pe(n.value),container:Y,open:n.value?void 0:!1},$.createElement(Ba,{size:"small",variant:"body"},"\xA0",`${x} ${M[M.length-1].to.token.displayName}`))),$.createElement(zu,{content:pe(n.usdValue),container:Y},$.createElement(bo,{size:2,direction:"horizontal"}),$.createElement(Io,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(ZS,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)},token:{displayName:M[V-1].to.token.displayName,image:M[V-1].to.token.image},chain:{image:M[V-1].to.chain.image},percentageChange:W,warningLevel:L}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Yo,{from:M[0].from,to:M[V-1].to,percentageChange:W,warningLevel:L}),$.createElement(bo,{size:4}))),$.createElement(mu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Uu,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:M}),$.createElement(ku,{open:k},$.createElement(wu,null),$.createElement("div",{className:du()},M.map((me,ge)=>{let _=`item-${ge}`;return $.createElement(YS,{type:"quote-details",key:_,tooltipContainer:Y,step:me,hasSeparator:ge!==M.length-1,state:me.state})})))))}i(Fa,"Quote");import{Divider as nC,Skeleton as rC}from"@rango-dev/ui";import It from"react";import{darkTheme as eC,styled as _r}from"@rango-dev/ui";var qu=_r("div",{$$color:"$colors$neutral100",[`.${eC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Qu=_r("div",{paddingTop:"$2"}),Hu=_r("div",{paddingLeft:"$8"}),Gu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as tm,Divider as lt,Skeleton as je}from"@rango-dev/ui";import z from"react";import{css as tC,styled as bt}from"@rango-dev/ui";var Oa=bt("div",{display:"flex"}),Vu=bt("div",{padding:"$10 $0 $20"}),Xu=bt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),ju=bt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ku=bt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Yu=bt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Zu=bt("div",{width:"65%",display:"flex",justifyContent:"start"}),Ju=bt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Ru=bt("div",{padding:"$15 $0 $15 $0"}),em=tC({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ro(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(Ku,null,z.createElement(Zu,null,z.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(lt,{size:8,direction:"horizontal"}),z.createElement(Ju,null,z.createElement(je,{height:10,width:60,variant:"rounded"}),z.createElement(lt,{size:4}),z.createElement(je,{height:15,variant:"rounded"}))),z.createElement(je,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(Oa,null,z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"})),z.createElement(xr,null),!r&&z.createElement(lt,{size:4})),z.createElement("div",{className:em()},z.createElement(Oa,null,z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"})),r&&z.createElement(je,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Vu,null,z.createElement(je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Xu,null,z.createElement(ju,null,z.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(lt,{direction:"horizontal",size:4}),z.createElement(je,{height:15,width:150,variant:"rounded"})),z.createElement(lt,{size:10}),z.createElement(je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(lt,{size:4}),z.createElement(Ru,null,n,z.createElement(Yu,null),n),z.createElement(lt,{size:12})))}i(Ro,"QuoteSummarySkeleton");import{ChainToken as am,Divider as za,NextIcon as oC,Skeleton as Pr}from"@rango-dev/ui";import Te from"react";import{styled as en}from"@rango-dev/ui";var om=en("div",{display:"flex",alignItems:"start"}),nm=en("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ua=en("div",{display:"flex",alignItems:"center",flexGrow:1}),rm=en("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),im=en("div",{display:"flex",alignItems:"center"});function yt(t){let{separator:e=!0}=t;return Te.createElement(Te.Fragment,null,Te.createElement(im,null,Te.createElement(Pr,{height:22,width:22,variant:"circular"}),Te.createElement(za,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:15,width:148,variant:"rounded"})),Te.createElement(om,null,Te.createElement(Gu,{hideSeparator:!e}),Te.createElement(nm,{extraSpace:e},Te.createElement(Ua,null,Te.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(za,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:12,variant:"rounded"})),Te.createElement(rm,null,Te.createElement(oC,{color:"gray",size:16})),Te.createElement(Ua,null,Te.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(za,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:12,variant:"rounded"})))))}i(yt,"StepSkeleton");function tn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return It.createElement(qu,{expanded:o,rounded:e!=="basic"},It.createElement(Ro,{type:e,tagHidden:n}),It.createElement(Qu,null,It.createElement(rC,{height:15,variant:"rounded"})),o&&It.createElement(Hu,null,It.createElement(nC,{size:24}),It.createElement(yt,null),It.createElement(yt,null),It.createElement(yt,{separator:!1})))}i(tn,"QuoteSkeleton");function ro(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:d,fullExpandedMode:m=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=j(),y=e?.outputAmount?new iC(e?.outputAmount):null,T=e?.outputAmount?Qn(e?.outputAmount,Gn(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?$r.createElement(Ma,null,$r.createElement(tn,{tagHidden:l,type:o,expanded:s})):v?$r.createElement(Ma,{onClick:()=>p?.(e)},$r.createElement(Fa,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:m,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(ro,"QuoteInfo");import{calculatePendingSwap as pC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as cC}from"react";import{useRef as aC,useState as sC}from"react";var lC=2e3;function Dr({request:t}){let[e,o]=sC(!1),n=aC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,lC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Dr,"useFetch");function sm(){let{fetch:t,loading:e,cancelFetch:o}=Dr({request:async(n,r)=>await _t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(sm,"useFetchConfirmQuote");function Fr(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=qa(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Fr,"throwErrorIfResponseIsNotValid");function qa(t){if(rp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=ip(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=pp(t);if(o){let n=qn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(qa,"getQuoteError");function lm(t,e,o){let n=!1;t&&(n=xp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=co(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(gp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(po(e)),percentageChange:N(Je(po(t)??"",po(e)??""),null,2)}:Ui(t,e)?r.quoteUpdate={type:0}:zi(t,e)?r.quoteUpdate={type:1}:qi(t,e)&&(r.quoteUpdate={type:2}));let s=hp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(lm,"generateWarnings");function Or(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(Or,"handleQuoteErrors");function Qa(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),d=h().blockchains(),m=h().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:C}=sm();return cC(()=>S,[]),{loading:C,fetch:i(async T=>{let k=T.selectedWallets,v=T?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let E=k.reduce((x,w)=>(x[w.chain]=w.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await g(b,!0).then(x=>{let{result:w}=x;Fr({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let I={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(I);let W={slippage:f.toString(),disabledSwappersGroups:c},L=lm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});L.quoteUpdate&&s(!1),l();let Q=!!L.balance,M=pC(o.toString(),w,dp(k),W,!Q,{blockchains:d,tokens:m});return{quote:I,swap:M,error:null,warnings:L}})}catch(x){return Or(x)}},"fetch"),cancelFetch:S}}i(Qa,"useConfirmSwap");var CC=dC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${cm}`]:{width:"$48",height:"$48"}}),TC=Va({flexGrow:1,paddingRight:"$10"}),kC=Va({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),wC=Va({display:"flex",justifyContent:"space-between",alignItems:"center"});function um(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=SC(),[l,p]=on(""),u=!n,[c,d]=on(!1),[m,f]=on(!1),{isActiveTab:g}=ne(),S=h().getDisabledLiquiditySources(),C=yC(S),{manager:y}=uC(),{fetch:T,loading:k,cancelFetch:v}=Qa(),[E,b]=on({swap:null,error:null,warnings:null}),[x,w]=on(!1),I=i(async({selectedWallets:H,customDestination:A})=>{let te=await T?.({selectedWallets:H,customDestination:A});return b(te),te},"onConfirmSwap"),W=i(async()=>{if(E.swap&&n)try{await y?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let H=`../${U.swaps}/${E.swap.requestId}`;s(H,{replace:!0}),setTimeout(()=>{e("")},0)}catch(H){p("Error: "+H?.message)}},"addNewSwap"),L=i(async()=>{f(!0),await W(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await L()},"onStartConfirmSwap"),M=i(async()=>{b({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(H=>{b(H)}).catch(H=>console.error(H))},"onRefresh");Ur(()=>{!!C.current.length&&!S.length&&M(),C.current=S},[S.length]),Ur(()=>{u&&v()},[u]),Ur(()=>{u&&d(u)},[u]),Ur(()=>{u||T({selectedWallets:o,customDestination:r}).then(H=>b(H)).catch(H=>console.error(H))},[]),hC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=E.warnings?.quote??null,Y=E.error,re=[];if(l&&re.push(ke.createElement(pm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&re.push(ke.createElement(pm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Kn(E.warnings.quoteUpdate)})),V||Y){let H=`../${U.settings}`;re.push(ke.createElement(jo,{warning:V,error:Y,couldChangeSettings:!1,refetchQuote:M,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await W()},onChangeSettings:()=>s(H)}))}return ke.createElement(le,{header:{title:Ha.t("Confirm Swap"),onWallet:()=>{let H=`../${U.wallets}`;s(H)}},footer:ke.createElement(CC,null,ke.createElement("div",{className:TC()},ke.createElement(mC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:Q},Ha.t("Start Swap"))),ke.createElement(cm,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},ke.createElement(gC,{size:24})))},c&&ke.createElement(Hc,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),ke.createElement(ue,null,ke.createElement("div",{className:wC()},ke.createElement(fC,{variant:"title",size:"small"},Ha.t("You get")),ke.createElement("div",{className:kC()},ke.createElement(lr,{onClick:!k&&!c&&!x?M:void 0}))),ke.createElement(Ga,{size:"12"}),Yp(re.map((H,A)=>({element:H,key:`alert-${A}`})),ke.createElement(Ga,{size:10})),re.length>0?ke.createElement(Ga,{size:10}):null,ke.createElement(ro,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(um,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as FC}from"@rango-dev/queue-manager-react";import{Divider as wm,NotFound as OC,styled as UC}from"@rango-dev/ui";import At,{useState as zC}from"react";import{useNavigate as qC}from"react-router-dom";import{i18n as bC}from"@lingui/core";import{Divider as hm,GroupedVirtualizedList as IC,Skeleton as EC,SwapListItem as ym,Typography as AC}from"@rango-dev/ui";import De,{useCallback as Sm,useEffect as NC,useRef as WC,useState as MC}from"react";function mm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(mm,"calculateGroupsSoFar");import{css as vC,darkTheme as xC,styled as nn}from"@rango-dev/ui";var Xa=vC(),dm=nn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ja=nn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Xa}`]:{$$color:"$colors$neutral600",[`.${xC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ka=nn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),fm=nn("div",{gap:"$10",display:"flex",flexDirection:"column"}),gm=nn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var LC=10;function Ya(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=MC([]),l=WC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=Sm(mm,[]),m=Sm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,LC),s(d(u,l.current)))},[e.length]);if(NC(()=>{r||m()},[r,m]),r){let f=[1,2];return De.createElement(De.Fragment,null,[f,f].map((S,C)=>De.createElement(ja,{key:C},De.createElement(Ka,null,De.createElement(EC,{variant:"text",width:60,size:"small"}),De.createElement(hm,{size:16})),De.createElement(hm,{size:4}),De.createElement(fm,null,S.map((T,k)=>De.createElement(ym,{isLoading:!0,key:k}))))))}return De.createElement(IC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>De.createElement(ja,null,De.createElement(Ka,null,De.createElement(AC,{variant:"label",size:"medium",className:Xa()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return De.createElement(dm,{key:S.requestId},De.createElement(ym,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===bC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:pe(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(Ya,"HistoryGroupedList");import{CloseIcon as _C,IconButton as PC,SearchIcon as $C,TextField as DC}from"@rango-dev/ui";import rn from"react";import{styled as BC}from"@rango-dev/ui";var Cm=BC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return rn.createElement(DC,{prefix:rn.createElement(Cm,null,rn.createElement($C,{color:"black"})),suffix:!!s.length&&rn.createElement(PC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},rn.createElement(_C,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Et,"SearchInput");import{i18n as zr}from"@lingui/core";import Tm from"dayjs";var km=i(t=>{let e=new Map([["today",{title:zr.t("Today"),swaps:[]}],["week",{title:zr.t("This week"),swaps:[]}],["month",{title:zr.t("This month"),swaps:[]}],["year",{title:zr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Tm();t.forEach(p=>{let u=Number(p.creationTime),c=Tm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let d=new Date(u).getFullYear().toString();o(d,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var QC=UC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),HC=i((t,e)=>t?.length?t.filter(o=>mt(o.fromBlockchain,e)||mt(o.toBlockchain,e)||mt(o.toSymbol,e)||mt(o.fromSymbol,e)).length:!1,"isStepContainsText");function vm(){let t=qC(),{manager:e,state:o}=FC(),n=ft(e).map(({swap:c})=>c),[r,a]=zC(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>mt(c.inputAmount,r)||mt(c.status,r)||HC(c.steps,r)||mt(c.requestId,r)));let u=!p?.length&&!s;return At.createElement(le,{header:{title:qr.t("History")}},At.createElement(ue,null,At.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),At.createElement(wm,{size:"16"}),At.createElement(QC,null,u&&At.createElement(gm,null,At.createElement(wm,{size:32}),At.createElement(OC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&At.createElement(Ya,{list:p,onSwapClick:t,groupBy:km,isLoading:s}))))}i(vm,"HistoryPage");import{i18n as pT}from"@lingui/core";import{Button as cT,Divider as zm,styled as uT,WarningIcon as mT}from"@rango-dev/ui";import dT from"bignumber.js";import Qe,{useEffect as qm,useState as Qm}from"react";import{useNavigate as fT}from"react-router-dom";import{i18n as YC}from"@lingui/core";import{Header as ZC}from"@rango-dev/ui";import qt,{useEffect as JC,useState as RC}from"react";import{i18n as VC}from"@lingui/core";import{Divider as Ja,FullExpandedQuote as XC,Typography as jC}from"@rango-dev/ui";import de from"react";import{styled as Za}from"@rango-dev/ui";var xm=Za("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),bm=Za("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Im=Za("div",{width:"146px"});import{i18n as an}from"@lingui/core";import{Select as GC}from"@rango-dev/ui";import Em from"react";function Qr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:an.t("Smart Routing")},{value:"FEE",label:an.t("Lowest Fee")},{value:"SPEED",label:an.t("Fastest Transfer")},{value:"NET_OUTPUT",label:an.t("Maximum Return")},{value:"PRICE",label:an.t("Maximum Output")}];return Em.createElement(Im,null,Em.createElement(GC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Qr,"SelectStrategy");var Am=3;function sn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:d,toToken:m,sortStrategy:f,error:g}=j(),{slippage:S,customSlippage:C}=h(),y=h().tokens(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(w=>{if(!d||!m||!u)return null;let I={requestAmount:u.requestAmount,...w};return co(I,{fromToken:d,toToken:m,userSlippage:v,tokens:y})},"getQuoteWarning"),b=g?.type===0||g?.type===1,x=u?.results?Vn(f,u?.results):[];return de.createElement(de.Fragment,null,a&&de.createElement(de.Fragment,null,de.createElement(bm,null,de.createElement(jC,{size:"xmedium",variant:"title"},VC.t("Sort by")),de.createElement(Qr,{container:T})),de.createElement(Ja,{size:"10"})),e&&Array.from({length:Am},(w,I)=>de.createElement(de.Fragment,{key:I},s?de.createElement(XC,{loading:!0}):de.createElement(tn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==Am-1&&de.createElement(Ja,{size:16}))),!e&&de.createElement(de.Fragment,null,k?x.map((w,I)=>{let W=E(w),L=qa(w.swaps),Q=x.length-1===I;return de.createElement(de.Fragment,{key:w.requestId},de.createElement(ro,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:L?.options||null,warning:W,fullExpandedMode:s,onClick:M=>{L||c("warning",W),c("error",L?.options||null),o(M)},type:"list-item"}),!Q&&de.createElement(Ja,{size:16}))}):b&&de.createElement(xm,null,de.createElement(Vo,{size:s?"large":"small",error:g,fetch:n}))))}i(sn,"Quotes");import{darkTheme as KC,styled as Nm}from"@rango-dev/ui";var Wm=Nm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${KC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Mm=Nm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var eT=100;function Ra(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=RC(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",d=Bo();return JC(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},eT):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),qt.createElement(Wm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${ur()}`,id:he.EXPANDED_BOX_ID},qt.createElement(ZC,{title:YC.t("Routes"),suffix:qt.createElement(qt.Fragment,null,qt.createElement(Qr,{container:d}),qt.createElement(Rt,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),qt.createElement(Mm,null,qt.createElement(sn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:c})))}i(Ra,"ExpandedQuotes");import{i18n as Fm}from"@lingui/core";import{SwapInput as Om}from"@rango-dev/ui";import ln from"react";import{ReverseIcon as nT}from"@rango-dev/ui";import ts from"react";import{keyframes as tT,styled as Lm}from"@rango-dev/ui";var es=450,oT=tT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Bm=Lm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),_m=Lm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${oT} ${es}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function os(){let t=j.use.switchFromAndTo();return ts.createElement(Bm,null,ts.createElement(_m,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},es),t()}},ts.createElement(nT,{size:12})))}i(os,"SwitchFromAndToButton");import{styled as Pm}from"@rango-dev/ui";var $m=Pm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Dm=Pm("div",{position:"relative"});function ns(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:d,outputAmount:m,outputUsdValue:f,selectedQuote:g}=j(),{connectedWallets:S,getBalanceFor:C}=R(),y=a?C(a):null,T=Nn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",v=!!s&&bl(S,s.name),E=!Di(g,c,d),b=!Di(g,c,f),x=!d||!f||!f.gt(0)?null:Je(d.toString(),f.toString());return ln.createElement($m,null,ln.createElement(Dm,null,ln.createElement(Om,{label:Fm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(d,4,4),realUsdValue:E?void 0:pe(d),error:E?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),ln.createElement(os,null)),ln.createElement(Om,{sharpBottomStyle:!r&&(!!g||e),label:Fm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Je(d,f),2,2),warningLevel:wt(x??0),price:{value:N(m,6,6),usdValue:b?void 0:N(f,4,4),realValue:pe(m),realUsdValue:b?void 0:pe(f),error:b?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ns,"Inputs");import{useCallback as rT,useEffect as iT,useRef as aT,useState as sT}from"react";function Um(){let{fetch:t,loading:e,cancelFetch:o}=Dr({request:async(n,r)=>await _t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Um,"useFetchAllQuotes");var lT=600;function Hr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Um(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=R.use.connectedWallets(),l=h().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:C,setSelectedQuote:y,updateQuotePartialState:T}=j(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=h(),I=h().getLiquiditySources(),W=h().getDisabledLiquiditySources(),L=h().excludeLiquiditySources(),[Q,M]=sT(!0),V=aT(c),Y=v??k,H=!p||!u||_e(p,u)||!Po(c),A=i(Z=>{M(Z)},"resetState"),te=i(Z=>{let{fromToken:me,toToken:ge,inputAmount:_,liquiditySources:Oe,excludeLiquiditySources:P,disabledLiquiditySources:X,slippage:ie,affiliateRef:Ee,affiliatePercent:Ge,affiliateWallets:Ae}=Z;if(Q||A(!0),!H&&me&&ge){g();let Le=mp({fromToken:me,toToken:ge,inputAmount:_,liquiditySources:Oe,excludeLiquiditySources:P,disabledLiquiditySources:X,wallets:s,slippage:ie,affiliateRef:Ee,affiliatePercent:Ge,affiliateWallets:Ae,enableCentralizedSwappers:a});Fl("experimentalRoute",r)&&(Le.experimental=!0),e(Le).then(Ke=>{let Ne=Vn(f,Ke.results),Ue=Ep(m,Ne,Ke.requestAmount);M(!1),T("quotes",Ke),y(Ue),Fr({diagnosisMessages:Ke.diagnosisMessages,requestId:Ue?.requestId||"",swaps:Ue?.swaps});let Cn=Ue&&co(Ue,{fromToken:me,toToken:ge,userSlippage:Y,tokens:l});T("warning",Cn)}).catch(Ke=>{let{error:Ne}=Or(Ke);(Ne?.type===0||Ne?.type===1)&&g(),Ne?.type!==2&&(T("error",Ne),M(!1))})}},"fetch"),q=rT(ul(Z=>{te(Z)},lT),[H]);return iT(()=>{if(!t){M(!1);return}if(w!=="success")return;if(H){M(!1),(m||S||C)&&g();return}if(!Po(c)||d?.eq(0)){A(!1),o();return}g(),A(!0);let Z=te;return V.current&&V.current!=c&&(Z=q),V.current=c,Z({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,H,I?.length,n,W.length,Y,b,E,JSON.stringify(x)]),{fetch:()=>te({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:Q}}i(Hr,"useSwapInput");var gT=uT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),hT=300;function Hm(){let t=fT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:d,updateQuotePartialState:m}=j(),[f,g]=Qm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Nr(),{fetch:y,loading:T}=Hr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:E}=R(),{isActiveTab:b}=ne(),[x,w]=Qm(!1),W=ap({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=Ll(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new dT(n).gt(0)&&!kp(e,o),M=Q&&v==="success"&&T,re=(!L||L&&p?.results.length)&&(l||s);qm(()=>{c(),m("refetchQuote",!0)},[]),qm(()=>{g(Q)},[Q]);let H=(r||s)&&!x?y:void 0,A=i(q=>{L&&f?(g(!1),setTimeout(()=>{t(q)},hT)):t(q)},"onHandleNavigation"),te=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return Qe.createElement(gT,null,Qe.createElement(le,{height:"auto",footer:Qe.createElement(cT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Qe.createElement(mT,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?A(U.wallets):W.action==="confirm-warning"?w(!0):A(U.confirmSwap)}},W.title),header:{onWallet:()=>{A(U.wallets)},hasBackButton:!1,title:k.title||pT.t("Swap"),suffix:Qe.createElement(Rt,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>A(U.swaps),onClickSettings:()=>{A(U.settings)}})}},Qe.createElement(ue,null,Qe.createElement(ns,{fetchingQuote:M,fetchMetaStatus:v,isExpandable:L,onClickToken:q=>{A(q==="from"?U.fromSwap:U.toSwap)}}),Qe.createElement(zm,{size:"2"}),L?null:Qe.createElement(ro,{quote:r,loading:M,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{m("refetchQuote",!1),A(U.routes)}:void 0}),re?Qe.createElement(Qe.Fragment,null,Qe.createElement(zm,{size:"10"}),Qe.createElement(jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),A(U.confirmSwap)},onChangeSettings:()=>A(U.settings)})):null)),L?Qe.createElement(Ra,{loading:M,onClickOnQuote:te,fetch:y,onClickRefresh:H,isVisible:f}):null)}i(Hm,"Home");import{i18n as Gm}from"@lingui/core";import{Alert as yT,Divider as ST,List as CT,ListItemButton as TT,Radio as kT,RadioRoot as wT,Typography as vT}from"@rango-dev/ui";import St from"react";function Qt(){let{setLanguage:t,language:e,config:o}=h(),n=Ul,r=o?.language||Fo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Fo),resetLanguage:()=>t(null)}}i(Qt,"useLanguage");function Vm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Qt(),n=et(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:St.createElement(vT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:St.createElement(kT,{value:s}),start:St.createElement(p,null)}});return St.createElement(le,{header:{title:Gm.t("Language")}},St.createElement(ue,null,St.createElement(yT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),St.createElement(ST,{size:"8"}),St.createElement(wT,{value:t},St.createElement(CT,{type:St.createElement(TT,{title:Gm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Vm,"LanguagePage");import{i18n as Nt}from"@lingui/core";import{Button as AT,Checkbox as NT,Image as WT,ListItemButton as MT,NotFound as LT,Typography as BT}from"@rango-dev/ui";import Fe,{useState as _T}from"react";import{Checkbox as IT,Skeleton as jm}from"@rango-dev/ui";import cn from"react";import{styled as rs}from"@rango-dev/ui";var pn=rs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),is=rs("div",{width:80,display:"flex",justifyContent:"flex-end"}),as=rs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as xT,styled as bT}from"@rango-dev/ui";var Xm=bT(xT,{height:61});var ET=30;function ss(){return cn.createElement(pn,null,Array.from(Array(ET),(t,e)=>cn.createElement(Xm,{hasDivider:!0,key:e,start:cn.createElement(jm,{variant:"circular",width:35,height:35}),title:cn.createElement(jm,{variant:"text",size:"large",width:90}),end:cn.createElement(IT,{checked:!1})})))}i(ss,"LoadingLiquiditySourceList");function ls({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=_T(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=_n(o,n),u={Exchanges:Nt.t("Exchanges"),Bridges:Nt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(y=>c.includes(y.type)),m=d.length===d.filter(y=>y.selected).length,f=i(()=>{d.forEach(y=>{m?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:Fe.createElement(WT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Fe.createElement(NT,{checked:T,disabled:l}),title:Fe.createElement(BT,{variant:"title",size:"xmedium"},Nt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>mt(y.groupTitle,r))),Fe.createElement(le,{header:{title:Nt.t(t),suffix:Fe.createElement(is,null,Fe.createElement(AT,{variant:"ghost",size:"xsmall",onClick:f},m?Nt.t("Deselect all"):Nt.t("Select all")))}},Fe.createElement(ue,{view:!0},Fe.createElement(Et,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Nt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Fe.createElement(ss,null),!C.length&&r?Fe.createElement(as,null,Fe.createElement(LT,{title:Nt.t("No results found"),description:Nt.t("Try using different keywords")})):e==="success"&&Fe.createElement(pn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return Fe.createElement(Fe.Fragment,{key:y.id},Fe.createElement(MT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ls,"LiquiditySourcePage");import{i18n as PT}from"@lingui/core";import Gr from"react";import{useNavigate as $T}from"react-router-dom";function Km(){let t=$T(),e=et(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Hr({refetchQuote:n}),u=i(m=>{r(m),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${U.settings}`,d=`../${U.wallets}`;return Gr.createElement(le,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:PT.t("Routes"),suffix:Gr.createElement(Rt,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Gr.createElement(ue,null,Gr.createElement(sn,{fetch:l,loading:p,onClickOnQuote:u})))}i(Km,"RoutesPage");import{i18n as nd}from"@lingui/core";import{Divider as rd,getCategoriesCount as GT,SelectableCategoryList as VT}from"@rango-dev/ui";import Wt,{useState as id}from"react";import{i18n as ps}from"@lingui/core";import{Divider as td,Image as UT,ListItemButton as zT,NotFound as qT,Typography as od}from"@rango-dev/ui";import tt,{useEffect as QT,useState as HT}from"react";var Ym=i((t,e,o)=>t.filter(n=>wn(n.type,o)).filter(n=>Tt(n.name,e)||Tt(n.displayName,e)),"filterBlockchains");import{ImageContainer as DT,styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vr=Zm(Ho,{padding:0,margin:0,listStyle:"none",[`& ${DT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as FT,Skeleton as Rm}from"@rango-dev/ui";import Xr from"react";var OT=20;function ed(){return Xr.createElement(Vr,null,Array.from(Array(OT),t=>Xr.createElement(FT,{key:t,hasDivider:!0,start:Xr.createElement(Rm,{variant:"circular",width:35,height:35}),title:Xr.createElement(Rm,{variant:"text",size:"large",width:90})})))}i(ed,"LoadingBlockchainList");function cs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=HT(e),{fetchStatus:l}=h();QT(()=>{s([...Ym(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?tt.createElement(tt.Fragment,null,tt.createElement(td,{size:32}),tt.createElement(qT,{title:ps.t("No results found"),description:ps.t("Try using different keywords")})):tt.createElement(Vr,{as:"ul",key:`${r}-${o}`},a.map(u=>tt.createElement(zT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:tt.createElement(UT,{src:u.logo,size:30}),title:tt.createElement(od,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return tt.createElement(Jm,null,tt.createElement(od,{variant:"label",size:"large"},ps.t("Select Blockchain")),tt.createElement(td,{size:4}),l==="loading"&&tt.createElement(ed,null),l==="success"&&p())}i(cs,"BlockchainList");function us(t){let{type:e}=t,o=et(),[n,r]=id(""),[a,s]=id("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),m=GT(c)!==1;return Wt.createElement(le,{header:{title:nd.t("Select Blockchain")}},Wt.createElement(ue,{view:!0},m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(VT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Wt.createElement(rd,{size:24})),Wt.createElement(Et,{value:n,autoFocus:!0,placeholder:nd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Wt.createElement(rd,{size:16}),Wt.createElement(cs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(us,"SelectBlockchainPage");import{i18n as Jr}from"@lingui/core";import{Divider as Id}from"@rango-dev/ui";import io,{useState as pk}from"react";import{useNavigate as ck}from"react-router-dom";import{i18n as fs}from"@lingui/core";import{BlockchainsChip as jr,Divider as pd,Image as cd,Skeleton as ZT,Tooltip as JT,Typography as gs}from"@rango-dev/ui";import be from"react";import{useEffect as KT}from"react";var ad=["ETH","COSMOS","OSMOSIS"];function ms(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(XT),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(jT(s)),r=n.splice(a)}return{list:n,more:r}}i(ms,"prepare");function XT(t,e){let o=ad,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(XT,"sortByMostUsedBlockchains");function jT(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(jT,"generateSortByPreferredBlockchainsFor");function sd(t,e){return!!e.list.find(o=>o.name===t)}i(sd,"isInVisibleList");function ds(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();KT(()=>{if(e?.selected){let a=ms(t,o,e);sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=ms(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ds,"usePrepareBlockchainList");import{styled as YT}from"@rango-dev/ui";var ld=YT("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var RT=12;function hs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ds(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,m=!d&&c;return be.createElement(be.Fragment,null,be.createElement(pd,{size:12}),be.createElement(gs,{variant:"label",size:"large"},fs.t("Select Blockchain")),be.createElement(pd,{size:12}),be.createElement(ld,null,l==="loading"&&Array.from(Array(RT),f=>be.createElement(ZT,{key:f,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(gs,{variant:"body",size:"xsmall",color:"secondary500"},fs.t("All"))),s.list.map(f=>be.createElement(JT,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},be.createElement(jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(cd,{src:f.logo,size:30})))),d?be.createElement(jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},be.createElement(cd,{src:s.more[0].logo,size:30})):null,m?be.createElement(jr,{onClick:a,key:"more-blockchains"},be.createElement(gs,{variant:"body",size:"xsmall",color:"secondary500"},fs._("More +{count}",{count:s.more.length}))):null)))}i(hs,"BlockchainsSection");import{i18n as Is}from"@lingui/core";import{darkTheme as kd,Divider as Ao,ExternalLinkIcon as ok,Image as nk,ListItemButton as rk,NotFound as ik,PinIcon as ak,Skeleton as wd,Typography as Zr,VirtualizedList as sk}from"@rango-dev/ui";import G,{useEffect as vd,useState as xd}from"react";import{Divider as Cd,ListItem as tk,Skeleton as un}from"@rango-dev/ui";import pt from"react";import{css as Eo,darkTheme as ud,ImageContainer as ek,styled as ot,Typography as md}from"@rango-dev/ui";var ys=Eo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ss=Eo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Cs=Eo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ts=Eo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),ks=Eo({}),ws=Eo(),dd=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),vs=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kr=ot("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ss}`]:{[`& .${Ts}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ks}`]:{bottom:"-15px"},[`& .${ys}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Cs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),xs=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),bs=ot(md,{}),fd=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ws}`]:{$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),NO=ot("div",{display:"flex",alignItems:"center"}),gd=ot("div",{position:"relative",[`& ${ek}`]:{borderRadius:"$xm",overflow:"hidden"}}),hd=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),yd=ot(md,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Sd=ot("a",{"& svg:hover":{color:"$colors$info"}});function Td(t){return pt.createElement(Kr,null,Array.from(Array(t.size),e=>pt.createElement(tk,{key:e,hasDivider:!0,start:pt.createElement(un,{variant:"circular",width:35,height:35}),end:pt.createElement(Yr,null,pt.createElement(un,{variant:"text",size:"large",width:70}),pt.createElement(Cd,{size:4}),pt.createElement(un,{variant:"text",size:"medium",width:50})),title:pt.createElement("div",null,pt.createElement(un,{variant:"text",size:"large",width:90}),pt.createElement(Cd,{size:4}),pt.createElement(un,{variant:"text",size:"medium",width:90}))})))}i(Td,"LoadingTokenList");var Es=20,lk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:Ss()},o?G.createElement("div",{className:ys()},o):G.createElement(vs,{className:Cs()},G.createElement(Zr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Ao,{direction:"horizontal",size:4}),G.createElement(xs,{css:a},G.createElement(bs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${Ts()} ${!o&&ks()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Ao,{size:4,direction:"horizontal"}),G.createElement(Sd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(ok,{size:12}))))},"renderDesc");function bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=xd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=xd(!0),{getBalanceFor:d,loading:m}=R(),{isTokenPinned:f}=h(),g=i(()=>{s(e.slice(0,a.length+Es))},"loadNextPage");vd(()=>{c(e.length>a.length)},[a.length]),vd(()=>{s(e.slice(0,Es))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Ao,{size:32}),G.createElement(ik,{title:Is.t("No results found"),description:Is.t("Try using different keywords")})):G.createElement(sk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Nn(d(y)),k=y.address||"",v=p.find(I=>I.name===y.blockchain),E=nr(v?.color||"",jp(v?.color||"")?5:125),b=nr(v?.color||"",-100),x={$$color:E,[`.${kd} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${kd} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(rk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:G.createElement(gd,null,G.createElement(nk,{src:y.image,size:30}),f(y,t.type)&&G.createElement(hd,null,G.createElement(ak,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?G.createElement(vs,null,G.createElement(Zr,{variant:"title",size:"xmedium"},y.symbol),G.createElement(Ao,{direction:"horizontal",size:4}),G.createElement(xs,{css:x},G.createElement(bs,{variant:"body",size:"xsmall",css:w},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?lk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:w,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:m?G.createElement(Yr,null,G.createElement(wd,{variant:"text",size:"large",width:70}),G.createElement(Ao,{size:4}),G.createElement(wd,{variant:"text",size:"medium",width:50})):T&&G.createElement(fd,null,G.createElement(yd,{variant:"title",size:"small"},T.amount),G.createElement("div",null),T.usdValue&&G.createElement(Zr,{variant:"body",className:ws(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(dd,null,G.createElement(Zr,{variant:"label",size:"large"},Is.t("Select Token")),G.createElement(Ao,{size:4}),l==="loading"&&G.createElement(Td,{size:Es}),l==="success"&&G.createElement(Kr,{as:"ul"},S()))}i(bd,"TokenList");function As(t){let{type:e}=t,o=ck(),n=et(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=R.use.getBalanceFor(),[d,m]=pk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:Jr.t("Source"),destination:Jr.t("Destination")};return io.createElement(le,{header:{title:Jr.t("Swap {type}",{type:k[e]})}},io.createElement(ue,null,io.createElement(hs,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(U.blockchains),onChange:v=>{y(v)}}),io.createElement(Id,{size:24}),io.createElement(Et,{value:d,autoFocus:!0,placeholder:Jr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:v=>m(v.target.value)}),io.createElement(Id,{size:16}),io.createElement(bd,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{T(v);let E=S.find(b=>v.blockchain===b.name);E&&y(E),n()}})))}i(As,"SelectSwapItemsPage");import{i18n as Ls}from"@lingui/core";import{Alert as Pk,Button as $k,styled as Dk}from"@rango-dev/ui";import ao from"react";import{useInRouterContext as Fk,useSearchParams as Ok}from"react-router-dom";import{i18n as Ld}from"@lingui/core";import{Divider as fk,InfoIcon as gk,TextField as hk,Tooltip as yk,Typography as Bd}from"@rango-dev/ui";import ct from"react";import{Chip as uk,styled as mn,TextField as mk}from"@rango-dev/ui";var Ed=mn("div",{paddingTop:"$5",padding:"$10 $5"}),Ad=mn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${mk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Nd=mn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Rr=mn("div",{maxWidth:"280px",padding:"$10"}),Wd=mn(uk,{width:"61px",flexShrink:0});import{i18n as Ns}from"@lingui/core";import{Typography as dk}from"@rango-dev/ui";import dn from"react";function Md(){return dn.createElement(Rr,null,dn.createElement(dk,{variant:"label",size:"medium",color:"neutral700"},Ns.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),dn.createElement("br",null),dn.createElement("br",null),dn.createElement("b",null,Ns.t("Warning")),":",Ns.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Md,"SlippageTooltipContent");function Ws(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ct.createElement(Ed,null,ct.createElement(Nd,null,ct.createElement(Bd,{variant:"title",size:"xmedium"},Ld.t("Slippage tolerance per swap")),ct.createElement(fk,{direction:"horizontal",size:4}),ct.createElement(yk,{container:B(),side:"top",sideOffset:4,content:ct.createElement(Md,null)},ct.createElement(gk,{color:"gray"}))),ct.createElement(Ad,null,zl.map((r,a)=>{let s=`slippage-${a}`;return ct.createElement(Wd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ct.createElement(hk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Gl&&s<=Hl?n(s):n(null)},suffix:o&&ct.createElement(Bd,{variant:"body",size:"small"},"%"),placeholder:Ld.t("Custom")})))}i(Ws,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as _d,BridgesIcon as Sk,ChevronRightIcon as Ms,DarkModeIcon as Pd,Divider as ei,ExchangeIcon as Ck,InfinityIcon as Tk,InfoIcon as kk,LanguageIcon as wk,LightModeIcon as $d,List as vk,ListItem as xk,ListItemButton as bk,Skeleton as Ik,styled as Ek,Switch as Ak,Tabs as Nk,Tooltip as Wk,Typography as nt}from"@rango-dev/ui";import F from"react";import{useNavigate as Mk}from"react-router-dom";var Lk=Ek("div",{width:"202px",height:"$40"}),Bk=[{id:"light",icon:F.createElement($d,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:F.createElement(Pd,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:F.createElement(_d,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],_k=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(_d,{...e});case"dark":return F.createElement(Pd,{...e});default:return F.createElement($d,{...e})}},"getThemeIcon");function Dd(){let t=Mk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Qt(),s=a.find(V=>V.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),d=Ze("theme",c),m=Ze("liquiditySource",c),f=Ze("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=_n(p,u),y=C.filter(V=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(V.type)),T=y.length,k=y.filter(V=>V.selected).length,v=C.filter(V=>V.type==="DEX"),E=v.length,b=v.filter(V=>V.selected).length,x=i((V,Y)=>{switch(l){case"loading":return F.createElement(Ik,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return F.createElement(nt,{variant:"body",size:"medium"},`${V} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:F.createElement(F.Fragment,null,x(k,T),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Ms,{color:"black"})),onClick:()=>t(U.bridges),start:F.createElement(Sk,{color:"gray",size:16})},I={id:"exchange-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:F.createElement(F.Fragment,null,x(b,E),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Ms,{color:"black"})),start:F.createElement(Ck,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:F.createElement(wk,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(nt,{variant:"body",size:"medium"},s),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Ms,{color:"black"})),onClick:()=>t(U.languages)},L={id:"infinite-approval-item",title:F.createElement(F.Fragment,null,F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),F.createElement(ei,{direction:"horizontal",size:4}),F.createElement(Wk,{side:"top",sideOffset:4,container:B(),content:F.createElement(Rr,null,F.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},Ct.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.")))},F.createElement(kk,{color:"gray"}))),start:F.createElement(Tk,{color:"gray",size:16}),end:F.createElement(Ak,{checked:g}),onClick:S},Q={id:"theme-item",type:F.createElement(xk,null),title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:F.createElement(Lk,null,F.createElement(Nk,{container:B(),items:Bk,value:n,onChange:V=>o(V.id),type:"primary",borderRadius:"small"})),start:_k(n)},M=m?[]:[w,I];return f||M.push(W),M.push(L),!e?.singleTheme&&!d&&M.push(Q),F.createElement(vk,{type:F.createElement(bk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(Dd,"SettingsLists");var Uk=Dk("div",{paddingLeft:"$8"});function Fd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Ok(),r=Fk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return ao.createElement(le,{header:{title:Ls.t("Settings")}},ao.createElement(ue,null,o&&ao.createElement(Pk,{type:"info",variant:"alarm",title:Ls.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:ao.createElement(Uk,null,ao.createElement($k,{type:"secondary",size:"small",onClick:a},Ls.t("Reset")))}),ao.createElement(Ws,null),ao.createElement(Dd,null)))}i(Fd,"SettingsPage");import{i18n as Iw}from"@lingui/core";import{cancelSwap as Ew}from"@rango-dev/queue-manager-rango-preset";import{useManager as Aw}from"@rango-dev/queue-manager-react";import{Alert as Nw}from"@rango-dev/ui";import Ks from"react";import{useParams as Ww}from"react-router-dom";import{i18n as Bt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as lw,getCurrentStep as pw,getRelatedWalletOrNull as cw}from"@rango-dev/queue-manager-rango-preset";import{Button as hf,CopyIcon as uw,Divider as mw,IconButton as dw,LinkIcon as fw,QuoteCost as gw,StepDetails as hw,Typography as so,useCopyToClipboard as yw}from"@rango-dev/ui";import{useWallets as Sw}from"@rango-dev/wallets-react";import yf from"bignumber.js";import{PendingSwapNetworkStatus as pi}from"rango-types";import J,{useEffect as Sf,useRef as Cw,useState as Cf}from"react";import{useNavigate as Tw}from"react-router-dom";import{i18n as Ht}from"@lingui/core";var zk=[Ht.t("Sunday"),Ht.t("Monday"),Ht.t("Tuesday"),Ht.t("Wednesday"),Ht.t("Thursday"),Ht.t("Friday"),Ht.t("Saturday")];function Od(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Ht.t("Today"):`${zk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Od,"timeSince");function Ud(t){return t.finishTime?Od(parseInt(t.finishTime)):Od(parseInt(t.creationTime))}i(Ud,"getSwapDate");import{PendingSwapNetworkStatus as ni}from"rango-types";import ri from"react";import{i18n as ti}from"@lingui/core";import{Button as zd,Divider as Bs,MessageBox as qk}from"@rango-dev/ui";import Gt from"react";var qd=i(({onCancel:t,onClose:e})=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Bs,{size:20}),Gt.createElement(qk,{type:"error",title:ti.t("Cancel Swap"),description:ti.t("Are you sure you want to cancel this swap?")}),Gt.createElement(Bs,{size:32}),Gt.createElement(zd,{variant:"contained",type:"primary",size:"large",onClick:t},ti.t("Yes, Cancel it")),Gt.createElement(Bs,{size:12}),Gt.createElement(zd,{variant:"outlined",type:"primary",size:"large",onClick:e},ti.t("No, Continue"))),"CancelContent");import{i18n as oi}from"@lingui/core";import{Button as Qd,Divider as _s,MessageBox as Qk,Typography as Hk}from"@rango-dev/ui";import Mt from"react";var Hd=i(({onDelete:t,onClose:e})=>Mt.createElement(Mt.Fragment,null,Mt.createElement(_s,{size:20}),Mt.createElement(Qk,{type:"error",title:oi.t("Delete Transaction"),description:oi.t("Are you sure you want to delete this swap?")}),Mt.createElement(_s,{size:32}),Mt.createElement(Qd,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Delete it")),Mt.createElement(_s,{size:12}),Mt.createElement(Qd,{variant:"outlined",type:"primary",size:"large",onClick:e},Mt.createElement(Hk,{variant:"title",size:"medium",color:"primary"},oi.t("No, Cancel")))),"DeleteContent");import{i18n as Ps}from"@lingui/core";import{PendingSwapNetworkStatus as $s}from"rango-types";var Ds={[$s.WaitingForNetworkChange]:{type:"loading",title:Ps.t("Change Network")},[$s.WaitingForConnectingWallet]:{type:"warning",title:Ps.t("Connect Wallet")},[$s.NetworkChanged]:{type:"success",title:Ps.t("Network Changed")}};import{debug as Xd}from"@rango-dev/logging-core";import{MessageBox as Gk,Wallet as Vk}from"@rango-dev/ui";import{useWallets as Xk}from"@rango-dev/wallets-react";import No,{useState as jk}from"react";import{styled as Gd}from"@rango-dev/ui";var Vd=Gd("div",{display:"flex",justifyContent:"center"}),yz=Gd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var jd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Xk(),[c,d]=jk(null),m=n?.walletType,f=m?xi(u(m)):null,g=m?p(m):null;return No.createElement(No.Fragment,null,No.createElement(Gk,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&No.createElement(Vd,null,No.createElement(Vk,{container:B(),title:g.name,image:g.img,type:m,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?d({providerType:m,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(m).catch(C=>Xd(C))}})),No.createElement(to,{open:!!c,onClose:()=>d(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Xd(y)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Fs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ni.WaitingForNetworkChange||e===ni.WaitingForConnectingWallet||e===ni.NetworkChanged;return ri.createElement(oe,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ri.createElement(jd,{type:Ds[e].type,title:Ds[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ni.WaitingForNetworkChange}),e==="delete"&&ri.createElement(Hd,{onClose:o,onDelete:n}),e==="cancel"&&ri.createElement(qd,{onClose:o,onCancel:r}))}i(Fs,"SwapDetailsModal");import{i18n as fn}from"@lingui/core";import{Button as Os,Divider as ii,MessageBox as Kd,TokenAmount as Kk,Typography as Us}from"@rango-dev/ui";import Me from"react";import{useNavigate as Yk}from"react-router-dom";function zs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:d,diagnosisUrl:m}=t,f=Yk();return Me.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(Kd,{type:"success",title:fn.t("Swap Successful")},Me.createElement(Kk,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(ii,{size:12}),Me.createElement(Us,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Me.createElement(Kd,{type:"error",title:fn.t("Transaction Failed"),description:d}),Me.createElement(ii,{size:32}),n==="success"&&Me.createElement(Os,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Me.createElement(Us,{variant:"title",size:"medium",color:"neutral100"},fn.t("Done"))),Me.createElement(ii,{size:12}),m&&Me.createElement(Me.Fragment,null,Me.createElement(Os,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},fn.t("Diagnosis")),Me.createElement(ii,{size:12})),Me.createElement(Os,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Us,{variant:"title",size:"medium",color:"primary"},fn.t("See Details"))))}i(zs,"SwapDetailsCompleteModal");import sw from"react";import{i18n as nw}from"@lingui/core";import{Alert as mf,IconButton as rw,LinkIcon as iw}from"@rango-dev/ui";import Vt,{Fragment as aw}from"react";import{Alert as Rk,ChevronDownIcon as ew,IconButton as tw}from"@rango-dev/ui";import Mo,{useState as ow}from"react";import{css as gn,darkTheme as Zk,styled as Lt,Typography as Jk}from"@rango-dev/ui";var Yd=Lt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ai=Lt("div",{width:"100%"}),Zd=Lt(Ho,{padding:"$0 $20 $20 $20"}),Rz=Lt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jd=Lt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),eq=Lt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Wo=gn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Zk} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Rd=gn({padding:"$5 0"}),si=gn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),ef=gn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tf=gn({width:"100%",padding:"0 $20 $10"}),of=Lt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nf=Lt("div",{display:"flex",flexDirection:"column",gap:"$5"}),li=Lt(Jk,{wordBreak:"break-word"});import{styled as qs}from"@rango-dev/ui";var rf=qs("div",{display:"flex",flexDirection:"column",gap:"$10"}),af=qs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),sf=qs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function lf(t){let{message:e}=t,[o,n]=ow(!1);return Mo.createElement(Rk,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Mo.createElement(tw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Mo.createElement(af,{rotated:o},Mo.createElement(ew,{size:12,color:"gray"}))),footer:Mo.createElement(sf,{open:o},Mo.createElement(li,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(lf,"FailedAlert");import{i18n as pf}from"@lingui/core";import{Alert as Qs,Button as cf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Hs}from"rango-types";import hn from"react";function uf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?hn.createElement(Qs,{type:"warning",title:n.shortMessage,action:hn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Hs.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},pf.t("Change"))}):r===Hs.WaitingForConnectingWallet?hn.createElement(Qs,{type:"warning",title:n.shortMessage,action:hn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Hs.WaitingForConnectingWallet)}},pf.t("Connect"))}):hn.createElement(Qs,{type:"warning",title:n.shortMessage})}i(uf,"WarningAlert");function Gs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=zo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Vt.createElement(rf,null,a.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Vt.createElement(aw,{key:g},Vt.createElement(mf,{type:S&&(C&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:nw.t("View transaction"),action:d.url&&Vt.createElement(rw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Vt.createElement(iw,{size:12}))}))}),c&&Vt.createElement(mf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Vt.createElement(uf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Vt.createElement(lf,{message:r}))}i(Gs,"SwapDetailsAlerts");var df=2e3;var ff=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Ye(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ye(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Do(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ye(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ye(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Do(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:sw.createElement(Gs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function gf(t){if(zo(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(gf,"getStepState");function Vs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Sw(),p=h().blockchains(),u=h().swappers(),c=h().tokens(),d=j.use.retry(),m=ne.use.isActiveTab(),f=Tw(),[g,S]=yw(df),C=Cw(null),[y,T]=Cf(null),[k,v]=Cf(null),E=i(()=>{r(),T(null)},"onCancel"),b=ze.use.getUnreadNotifications(),x=ze.use.setAsRead(),w=b(),I=pw(e),W=I?.networkStatus;Sf(()=>{w.find(Ue=>Ue.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Sf(()=>{H?T(pi.WaitingForNetworkChange):W===pi.WaitingForConnectingWallet||W===pi.NetworkChanged?T(W):T(null)},[W]);let L=Sp(e),Q=I?lw(e,I):null,M=I?cw(e,I):null,V=Ud(e),Y=Cp(e),re=i(Ne=>!!l(Ne)?.mobileWallet,"isMobileWallet"),H=W===pi.WaitingForNetworkChange&&!!Q&&!!M?.walletType&&(re(M.walletType)||a(M.walletType,Q)),A=H?s.bind(null,M.walletType,Q):void 0,te=yp(e,I),q=ff({swap:e,switchNetwork:A,showNetworkModal:W,setNetworkModal:T,message:te,blockchains:p,swappers:u}),Z=q.length,[me,ge]=[e.steps[0],e.steps[Z-1]],_=ge.outputAmount||ge.expectedOutputAmountHumanReadable,Oe=e.steps.reduce((Ne,Ue)=>Ne+parseFloat(Ue.feeInUsd||""),0),P=e.steps.find(Ne=>Ne.diagnosisUrl)?.diagnosisUrl,X=N(parseFloat(N(_,6,6))*(ge.toUsdPrice||0),4,4),ie=N(parseFloat(e.inputAmount)*(me.fromUsdPrice||0),4,4),Ee=_?pe(new yf(_).multipliedBy(ge.toUsdPrice||0)):"",Ge=pe(new yf(e.inputAmount).multipliedBy(me.fromUsdPrice||0)),Ae=Je(ie,X),Le=te.detailedMessage.content||te.shortMessage,Ke=e.status==="success"?Bt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:q[Z-1].to.token.displayName,conciseAddress:Wn(e.wallets[q[Z-1].to.chain.displayName]?.address||""),chain:q[Z-1].to.chain.displayName}}):J.createElement(nf,null,J.createElement(so,{variant:"body",size:"medium",color:"neutral700",align:"center"},Le?"":Bt.t("Transaction was not sent."),L?`${Bt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),Le&&J.createElement(li,{align:"center",variant:"body",size:"medium",color:"neutral700"},J.createElement("b",null,"Reason:")," ",Le));return J.createElement(le,{header:{title:Bt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&J.createElement(ho,null,J.createElement(hf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},J.createElement(so,{size:"medium",variant:"label",color:"error"},Bt.t("Delete"))))},footer:Y&&!k&&J.createElement(hf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},Bt.t("Try again"))},J.createElement(ue,{compact:!0,view:!0},J.createElement(ai,null,J.createElement("div",{className:Wo()},J.createElement(so,{variant:"label",size:"large",color:"neutral700"},`${Bt.t("Request ID")}:`),J.createElement("div",{className:si()},J.createElement(so,{variant:"label",size:"small",color:"neutral700"},o),J.createElement(dw,{variant:"ghost",onClick:S.bind(null,o||"")},J.createElement(uw,{size:16,color:"gray"})),J.createElement(of,{target:"_blank",href:`${nl}/swap/${o}`},J.createElement(fw,{size:16})))),J.createElement("div",{className:Wo()},J.createElement(so,{variant:"label",size:"large",color:"neutral700"},`${Bt.t(e.finishTime?"Finished at":"Created at")}:`),J.createElement(so,{variant:"label",size:"small",color:"neutral700"},V))),J.createElement("div",{className:ef()},J.createElement(gw,{fee:N(String(Oe),2,2),time:_o(vn(e.steps)),steps:Z}),J.createElement(Yo,{from:{price:{value:N(e.inputAmount,6,6),usdValue:ie,realUsdValue:Ge,realValue:e.inputAmount},token:{displayName:q[0].from.token.displayName,image:q[0].from.token.image},chain:{image:q[0].from.chain.image,displayName:q[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:X,realUsdValue:Ee,realValue:_},token:{displayName:q[Z-1].to.token.displayName,image:q[Z-1].to.token.image},chain:{image:q[Z-1].to.chain.image,displayName:q[Z-1].to.chain.displayName}},percentageChange:N(Ae,2,2),warningLevel:wt(Ae??0)})),J.createElement("div",{className:tf()},J.createElement(so,{variant:"title",size:"small"},Bt.t("Swaps steps"))),J.createElement(mw,{size:8}),J.createElement(Zd,{ref:C},q.map((Ne,Ue)=>{let Cn=Ue,Lo=gf(e.steps[Ue]),Of=Lo==="error"||Lo==="in-progress"||Lo==="warning"||Lo==="completed"&&Ue===q.length-1;return J.createElement(hw,{key:Cn,step:Ne,type:"swap-progress",ref:C,state:Lo,hasSeparator:Ue!==0,tabIndex:Cn,isFocused:Of,tooltipContainer:B()})}))),J.createElement(Fs,{state:y,onClose:()=>T(null),onCancel:E,onDelete:n,message:te.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),J.createElement(zs,{open:!!k,diagnosisUrl:P,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:X,realUsdValue:Ee,realValue:pe(_),percentageChange:N(Ae,2,2),token:{displayName:q[Z-1].to.token.displayName,image:q[Z-1].to.token.image},chain:{image:q[Z-1].to.chain.image},description:Ke}))}i(Vs,"SwapDetails");import{i18n as ui}from"@lingui/core";import{Divider as wf,NotFound as bw,Skeleton as Sn,Typography as mi}from"@rango-dev/ui";import fe from"react";import{i18n as kw}from"@lingui/core";import{Divider as ww,Skeleton as vw,Typography as xw}from"@rango-dev/ui";import Se from"react";import{css as ut,styled as Xs}from"@rango-dev/ui";var Tf=Xs("div",{width:"100%",height:"100%",padding:"$10 $20"}),yn=Xs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ci=Xs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),mQ=ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),dQ=ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),fQ=ut({paddingTop:"$15",display:"flex"}),gQ=ut({padding:"$15 $0"}),hQ=ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),yQ=ut({paddingBottom:"$10"}),SQ=ut({display:"flex",justifyContent:"start",alignItems:"center"}),CQ=ut({paddingTop:"$5",display:"flex",alignItems:"center"}),TQ=ut({display:"flex",alignItems:"center"}),kQ=ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),kf=ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function js(){return Se.createElement(Tf,null,Se.createElement(Ro,{type:"swap-preview"}),Se.createElement("div",{className:"swaps-steps"},Se.createElement(xw,{variant:"title",size:"small"},kw.t("Swaps steps"))),Se.createElement(Se.Fragment,null,Se.createElement(yn,null,Se.createElement(yt,{separator:!1}),Se.createElement("div",{className:kf()},Se.createElement(ww,{direction:"horizontal",size:20}),Se.createElement(vw,{height:22,variant:"rectangular"}))),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1})),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1})),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1}))))}i(js,"LoadingSwapDetails");function vf(t){let{requestId:e,showSkeleton:o}=t;return fe.createElement(le,{header:{title:ui.t("Swap and Bridge"),suffix:fe.createElement(ho,null)}},o&&fe.createElement(Yd,null,fe.createElement(ai,null,fe.createElement("div",{className:Wo()},fe.createElement(mi,{variant:"label",size:"large",color:"neutral700"},`${ui.t("Request ID")}:`),fe.createElement("div",{className:si()},fe.createElement(mi,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})),fe.createElement(wf,{direction:"horizontal",size:4}),fe.createElement(Sn,{width:16,height:16,variant:"rectangular"}),fe.createElement(wf,{direction:"horizontal",size:4}),fe.createElement(Sn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:Wo()},fe.createElement(mi,{className:Rd(),variant:"label",size:"large",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})),fe.createElement(mi,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})))),fe.createElement(js,null)),!o&&fe.createElement(Jd,null,fe.createElement(bw,{title:ui.t("Not found"),description:ui.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(vf,"SwapDetailsPlaceholder");function xf(){let{manager:t,state:e}=Aw(),o=!e.loadedFromPersistor,n=ft(t),{requestId:r}=Ww(),a=et(),{fetchStatus:s}=h();if(!r)return Ks.createElement(Nw,{containerStyles:{margin:"20px"},type:"error",title:Iw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:m})=>m.requestId===r):void 0,u=i(()=>{if(p?.id){let m=t?.get(p.id);m&&Ew(m)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(m){console.log(m)}},"onDelete"),d=p?.swap;return!d||l?Ks.createElement(vf,{requestId:r,showSkeleton:l}):Ks.createElement(Vs,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(xf,"SwapDetailsPage");function bf(){return Np(),Vi(),Mw([{path:U.home,element:He.createElement(Hm,null)},{path:U.routes,element:He.createElement(Km,null)},{path:U.fromSwap,children:[{index:!0,element:He.createElement(As,{type:"source"})},{path:U.blockchains,element:He.createElement(us,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:He.createElement(As,{type:"destination"})},{path:U.blockchains,element:He.createElement(us,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:He.createElement(Fd,null)},{path:U.languages,element:He.createElement(Vm,null)},{path:U.exchanges,element:He.createElement(ls,{sourceType:"Exchanges"})},{path:U.bridges,element:He.createElement(ls,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:He.createElement(vm,null)},{path:U.swapDetails,element:He.createElement(xf,null)}]},{path:U.wallets,element:He.createElement($c,null)},{path:U.confirmSwap,element:He.createElement(um,null)}])}i(bf,"AppRoutes");import{useQueueManager as Ow}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Uw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as zw}from"rango-sdk";import{useContext as qw,useEffect as Qw,useState as Lf}from"react";import{globalCss as Lw}from"@rango-dev/ui";var If=i(()=>Lw({"@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')"})(),"globalFont");function Ef(){let{setWatermark:t}=ne();return{fetchApiConfig:i(async()=>{let o=await fetch(`${kt("BASE_URL")}/meta/dapp/config?apiKey=${kt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Ef,"useFetchApiConfig");import{useWallets as Bw}from"@rango-dev/wallets-react";import{useEffect as _w,useRef as Pw}from"react";function Af(){let{connect:t,state:e}=Bw(),o=Pw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);_w(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Af,"useForceAutoConnect");import{isApprovalTX as $w,MainEvents as di,RouteEventType as Nf,StepEventType as Wf,StepExecutionEventStatus as Dw,useEvents as Fw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Mf}from"react";function Ys(){let t=h().tokens(),e=R.use.connectedWallets(),o=R.use.getWalletsDetails(),n=ze.use.setNotification(),r=Fw();Mf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Wf.TX_EXECUTION&&l.status===Dw.TX_SENT&&!$w(p)||l.type===Wf.SUCCEEDED){let d=e.find(f=>f.chain===p?.fromBlockchain),m=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);d&&o([d],t),m&&o([m],t)}n(l,u)},"handleStepEvent");return r.on(di.StepEvent,a),()=>r.off(di.StepEvent,a)},[r,e.length]),Mf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Nf.FAILED||l.type===Nf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(di.RouteEvent,a),()=>r.off(di.RouteEvent,a)},[r,e.length])}i(Ys,"useSubscribeToWidgetEvents");function Zs(){Af(),If(),Ys();let t=h().blockchains(),{canSwitchNetworkTo:e}=Sr(),[o,n]=Lf(""),[r,a]=Lf(),s=qw($n),l=t.filter(zw),{fetchApiConfig:p}=Ef();Ow({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Qw(()=>(jt.init(),ze.persist.hasHydrated()||ze.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Uw(o)?.[0]&&n("")}),p().catch(console.log),jt.destroy),[])}i(Zs,"useBootstrap");import{styled as Hw}from"@rango-dev/ui";var Bf=Hw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function fi(){Zs();let{config:t}=h(),{activeTheme:e}=rr(t?.theme||{}),{activeLanguage:o}=Qt();return Js.createElement(Gw,{language:o},Js.createElement(Bf,{id:"swap-container",className:e()},Js.createElement(bf,null)))}i(fi,"Main");import{setSolanaSignerConfig as uv}from"@rango-dev/signer-solana";import el,{useEffect as tl}from"react";import{useState as Vw}from"react";var Xw=i(()=>{let[t,e]=Vw(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=dl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),_f=Xw;import{checkWaitingForNetworkChange as jw,makeQueueDefinition as Kw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Yw}from"@rango-dev/queue-manager-react";import{useWallets as Zw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Jw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Rw}from"rango-types";import ev,{useMemo as tv}from"react";function ov(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Zw(),l=tv(()=>Kw({API_KEY:t.apiKey||kt("API_KEY"),BASE_URL:kt("BASE_URL")}),[t.apiKey]),p=h().blockchains(),c={blockchains:R.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},d=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),m=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(Rw),S=i(k=>{let{supportedChains:v}=s(k);return In(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:Jw(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},T=ne.use.isActiveTab();return ev.createElement(Yw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{jw(k)},isPaused:!T},t.children)}i(ov,"QueueManager");var Pf=ov;import{useManager as sv}from"@rango-dev/queue-manager-react";import lv,{createContext as pv,useContext as cv}from"react";import{cancelSwap as nv,getCurrentBlockchainOfOrNull as rv,getCurrentStep as iv,getRelatedWalletOrNull as av}from"@rango-dev/queue-manager-rango-preset";var gi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ft(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&&nv(o)}getCurrentStepInfo(e){let o=iv(e);return{step:o,wallet:o?av(e,o):null,network:o?rv(e,o):null}}};var $f=pv(void 0);function Rs(t){let{manager:e}=sv(),o=ne.use.isActiveTab(),n=j.use.retry(),r=new gi(e,{retrySwap:n}),a=R.use.connectedWallets(),s=R.use.loading(),l=kl(a),p=R.use.getWalletsDetails(),u=h().blockchains(),c=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=Qt().resetLanguage,g=ze().getUnreadNotifications(),S={isActiveTab:o,setCurrentTabAsActive:jt.forceClaim,history:r,wallets:{isLoading:s,details:a,totalBalance:l,refetch:p},meta:{blockchains:u,tokens:c,swappers:d,loadingStatus:m},resetLanguage:f,notifications:{list:g}};return lv.createElement($f.Provider,{value:S},t.children)}i(Rs,"WidgetInfo");function Df(){let t=cv($f);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Df,"useWidget");function hi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_f();return tl(()=>{n&&r(n)},[n]),tl(()=>{Nl({API_KEY:o?.apiKey||Tn,BASE_URL:o?.apiUrl||ol})},[o.apiKey,o.apiUrl]),tl(()=>{t.config?.signers?.customSolanaRPC&&uv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),el.createElement(Dn,{config:o,onUpdateState:e},el.createElement(Pf,{apiKey:o.apiKey},el.createElement(Rs,null,t.children)))}i(hi,"WidgetProvider");function Ff(t){let e=t.config?.externalWallets;return yi.createElement(ep,null,e?yi.createElement(fi,null):yi.createElement(hi,{config:t.config??Ni},yi.createElement(fi,null)))}i(Ff,"Widget");export{TV as EventSeverity,kV as MainEvents,MV as Networks,_V as PendingSwapNetworkStatus,wV as RouteEventType,Si as SUPPORTED_FONTS,vV as StepEventType,xV as StepExecutionBlockedEventStatus,bV as StepExecutionEventStatus,he as UI_ID,NV as WalletEvents,LV as WalletTypes,Ff as Widget,hi as WidgetProvider,Dn as WidgetWallets,ea as customizedThemeTokens,AV as readAccountAddress,Sr as useWallets,Df as useWidget,IV as useWidgetEvents};
|
|
1
|
+
var jf=Object.defineProperty;var i=(t,e)=>jf(t,"name",{value:e,configurable:!0});import{EventSeverity as FV,MainEvents as OV,RouteEventType as UV,StepEventType as zV,StepExecutionBlockedEventStatus as qV,StepExecutionEventStatus as QV,useEvents as HV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as VV,useWallets as Sr,Events as jV}from"@rango-dev/wallets-react";import{Networks as KV,WalletTypes as YV}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as JV}from"rango-types";import{UI_ID as Xf}from"@rango-dev/ui";var Tn="c6381a79-2817-4602-83bf-6a641a409e32",il="https://api.rango.exchange",al="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Xf};var sl="Roboto",Si=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as _i,Provider as Ug}from"@rango-dev/wallets-react";import{isEvmBlockchain as zg}from"rango-sdk";import Pn,{createContext as qg,useEffect as tp,useMemo as Qg,useRef as op}from"react";import{useEffect as dg}from"react";import{create as cg}from"zustand";import{subscribeWithSelector as ug}from"zustand/middleware";import{RangoClient as lg}from"rango-sdk";import{BlockchainCategories as eg,WalletState as ft}from"@rango-dev/ui";import{readAccountAddress as tg}from"@rango-dev/wallets-react";import{detectInstallLink as og,getCosmosExperimentalChainInfo as ng,isEvmAddress as rg,KEPLR_COMPATIBLE_WALLETS as Qv,Networks as Cl}from"@rango-dev/wallets-shared";import vi from"bignumber.js";import{isCosmosBlockchain as ig}from"rango-types";import Kf from"bignumber.js";var Pe=new Kf(0);import{WalletTypes as Yf}from"@rango-dev/wallets-shared";var ll=[Yf.LEAP];import{BlockchainCategories as Ci}from"@rango-dev/ui";import{TransactionType as kn}from"rango-sdk";function po(t){return Array.from(new Set(t))}i(po,"removeDuplicateFrom");function wi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wi,"areEqual");function fl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(fl,"debounce");function Tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Tt,"containsText");function ul(t,e){return t.toLowerCase()===e.toLowerCase()}i(ul,"exactText");function ml(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(ml,"startWithText");var B=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Po=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function dl(t,e,o){let n=!!e&&ul(e,t),r=!!o&&ul(o,t);return n!==r?n?-1:1:0}i(dl,"compareExactMatchText");function Ti(t,e,o){let n=!!e&&Tt(e,t),r=!!o&&Tt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ti,"compareContainsText");function ki(t,e,o){let n=!!e&&ml(e,t),r=!!o&&ml(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ki,"compareStartWithText");function gl(t,e,o){if(!o)return 0;let n=dl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=dl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ki(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ti(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ki(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ti(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ki(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ti(o,t.address,e.address);if(r!==0)return r}return 0}i(gl,"compareWithSearchFor");var wn=i((t,e)=>{switch(e){case Ci.ALL:return!0;case Ci.UTXO:return t===kn.TRANSFER;case Ci.OTHER:return t!==kn.TRANSFER&&t!==kn.COSMOS&&t!==kn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),hl=i(t=>Si.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as Sl}from"bignumber.js";var $o=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Sl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Sl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var vn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var dt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Do=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pe(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(pe,"formatTooltipNumbers");function xi(t){switch(!0){case t.connected:return ft.CONNECTED;case t.connecting:return ft.CONNECTING;case!t.installed:return ft.NOT_INSTALLED;default:return ft.DISCONNECTED}}i(xi,"mapStatusToWalletState");function Tl(t,e,o,n){return o.filter(r=>!ll.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:d}=e(r),m=po(d.map(g=>g.type)),f=xi(t(r));return{title:a,image:s,link:og(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(Tl,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function kl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(d=>d.chain===p)){let d={address:u,chain:p,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=tg(p),d=l.length>0,m=l.includes(c),f=c===Cl.Unknown;if(d&&!m&&!f)return;let S=c===Cl.Unknown&&rg(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(kl,"prepareAccountsForWalletStore");function Xt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let d=u.from.blockchain,m=u.to.blockchain,f=a===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(m)})}e==="all"&&n.add(l)}),Array.from(n)}i(Xt,"getQuoteWallets");function En(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(En,"isAccountAndWalletMatched");function wl(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 vi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:sg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(wl,"makeBalanceFor");function vl(t){return{...t,loading:!1,error:!0}}i(vl,"resetConnectedWalletState");var xl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new vi(a?.amount||Pe).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Pe)||Pe).toString();return ag(r)},"calculateWalletUsdValue");function ag(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ag,"numberWithThousandSeparator");var sg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),An=i((t,e)=>{let o=ng(Object.entries(t).map(([,n])=>n).filter(ig));return o&&o[e]?.experimental},"isExperimentalChain");function Nn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Nn,"formatBalance");function bl(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(bl,"compareTokenBalance");function $e(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i($e,"areTokensEqual");function Il(t){return t.sort((e,o)=>+(o.state===ft.CONNECTED)-+(e.state===ft.CONNECTED)||+(o.state===ft.DISCONNECTED||o.state===ft.CONNECTING)-+(e.state===ft.DISCONNECTED||e.state===ft.CONNECTING))}i(Il,"sortWalletsBasedOnConnectionState");function Wn(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(Wn,"getConciseAddress");function El({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(El,"getAddress");function bi(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(bi,"createTokenHash");function Mn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new vi(o?.usdPrice??Pe).multipliedBy(o?.amount).toString():""},r=o?bi({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Mn,"makeTokensBalance");var Al=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Nl(t){return t.map(e=>e.state).join("-")}i(Nl,"hashWalletsState");function Wl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Wl,"filterBlockchainsByWalletTypes");function Ml(t,e){return e===eg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(Ml,"filterWalletsByCategory");var Ii={API_KEY:Tn};function kt(t){return Ii[t]||""}i(kt,"getConfig");function Ll(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ii=e,Ii}i(Ll,"initConfig");var Bl=20,_l=25,Ei="theme-widget",Fo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>$e(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>$e(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ai=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Pl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Ln,_t=i(()=>Ln||(Ln=new lg(kt("API_KEY"),kt("BASE_URL")),Ln),"httpService");var pg=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"),Pt=pg;var R=Pt(cg()(ug((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.find(p=>p.chain===s.chain&&p.selected);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.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),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Mn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>En(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await _t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(m=>{let f=o.find(S=>En(S,m)),g=p.find(S=>S.address===m.address&&S.blockChain===m.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...m,explorerUrl:g.explorerUrl,balances:wl(g,n),loading:!1}:m});return{loading:!1,balances:Mn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(d=>En(d,c))?vl(c):c);return{loading:!1,balances:Mn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=bi(o);return n[r]??null}}))));import{allProviders as mg}from"@rango-dev/provider-all";function Bn(t,e){let o=mg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Bn,"matchAndGenerateProviders");function $l(t,e){return Bn(t,e).map(r=>r.config.type)}i($l,"configWalletsToWalletName");function Dl(t,e){let o=R.use.clearConnectedWallet(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId});return dg(()=>{o(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Dl,"useWalletProviders");import Bg,{createContext as _g,useContext as Pg,useEffect as $g,useRef as Dg}from"react";import{create as Mg}from"zustand";import{persist as Lg}from"zustand/middleware";var Ni={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},fg={clientUrl:void 0},gg={liquiditySources:void 0},Fl=i((t,e,o)=>({config:{...Ni,...t},iframe:fg,campaignMode:gg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Ol(t,e){return e.find(o=>o.name===t)?.displayName}i(Ol,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function Oo(t,e){return e.find(o=>o.id===t)?.title}i(Oo,"getSwapperDisplayName");function Wi(t,e){return e.find(o=>$e(o,t))??null}i(Wi,"findToken");function Mi(t,e){return e.find(o=>o.name===t)??null}i(Mi,"findBlockchain");function Li(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Li,"isTokenNative");function _n(t,e){let o=t.map(a=>a.swapperGroup),n=[];return po(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(_n,"getUniqueSwappersGroups");function Ul(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ul,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function zl(t,e){return e?.[t]==="enabled"}i(zl,"isFeatureEnabled");var ql=i((t,e)=>({_blockchainsMapByName:new Map,_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let a=e().config,s=(o.type==="source"?a.from?.tokens:a.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(u=>s&&Fo(u,s)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(Tt(u.symbol,o.searchFor)||Tt(u.address||"",o.searchFor)||Tt(u.name||"",o.searchFor)):!0).sort((u,c)=>{let d=e().isTokenPinned(u,o.type),m=e().isTokenPinned(c,o.type);if(d!==m)return d?-1:1;if(o.getBalanceFor){let h=o.getBalanceFor(u),T=o.getBalanceFor(c),k=bl(h,T);if(k!==0)return k}let f=r.get(u.blockchain),g=r.get(c.blockchain),S=Li(u,f),C=Li(c,g);if(S!==C)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let h=gl(u,c,o.searchFor);if(h)return h}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>$e(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Ul)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await _t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=[],s=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(c=>{p.add(c.blockchain),a.push(c)}),n.blockchains.sort((c,d)=>c.sort-d.sort).forEach(c=>{c.enabled&&p.has(c.name)&&r.set(c.name,c)}),t({_blockchainsMapByName:r,_tokens:a,_popularTokens:s,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as hg,English as yg,Finland as Sg,French as Cg,German as Tg,Greece as kg,Italian as wg,Japanese as vg,Netherlands as xg,Poland as bg,Portuguese as Ig,Russian as Eg,Spanish as Ag,Swedish as Ng,Ukrainian as Wg}from"@rango-dev/ui";var Ql=[{title:"English",label:"English",local:"en",SVGFlag:yg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Ag},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Cg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:vg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ig},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:hg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Eg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Tg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Wg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Ng},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Sg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:xg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:kg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:wg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:bg}],Uo="en";var Hl=[.5,1,3],Gl=1,Vl=5,jl=100,Xl=0;var Kl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Gl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},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 a=po(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),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,theme:r}=o,a=Ze("theme",n),s=Ze("language",n),l=Ze("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Uo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Yl(t){return Mg()(Lg((...e)=>({...ql(...e),...Kl(...e),...Fl(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(Yl,"createAppStore");var Zl=_g(null);function y(){let t=Pg(Zl);if($g(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function Jl(t){let e=Dg();return e.current||(e.current=Yl(t.config)),Bg.createElement(Zl.Provider,{value:e.current},t.children)}i(Jl,"AppStoreProvider");import{create as Og}from"zustand";var Rl="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Rl),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ne=Pt(Og()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),Kt=new zo({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});var $n=qg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Hg(t){let{updateConfig:e,updateSettings:o,fetch:n}=y(),r=y().blockchains(),a=y().tokens(),s=y().config,l={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:p}=Dl(s.wallets,l),{connectWallet:u,disconnectWallet:c}=R(),d=op(),m=op();tp(()=>{n().catch(console.log)},[]),tp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(zg).map(h=>h.name),g=i((h,T,k,v,E)=>{if(T===_i.ACCOUNTS)if(k){let b=In(E.supportedBlockchains),x=kl(h,k,f,b,E.isContractWallet);x.length&&u(x,a)}else c(h),m.current?m.current(h):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===_i.ACCOUNTS&&v.connected){let b=`${h}-${v.network}-${k}`;v.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===_i.NETWORK&&v.network){let b=`${h}-${v.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,T,k,v,E)},"onUpdateState"),S=ne.use.isActiveTab(),C=Qg(()=>({onConnectWallet:h=>{d.current=h},onDisconnectWallet:h=>{m.current=h}}),[]);return Pn.createElement($n.Provider,{value:C},Pn.createElement(Ug,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Hg,"Main");function Dn(t){let{config:e,...o}=t;return Pn.createElement(Jl,{config:e},Pn.createElement(Hg,{...o,config:e}))}i(Dn,"WidgetWallets");import yi from"react";import Gg,{Fragment as Vg}from"react";import{MemoryRouter as jg,useInRouterContext as Xg}from"react-router";function np({children:t}){let o=Xg()?Vg:jg;return Gg.createElement(o,null,t)}i(np,"AppRouter");import{I18nManager as Jw}from"@rango-dev/ui";import tl from"react";import He from"react";import{useRoutes as $w}from"react-router-dom";var U={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as mo,useRef as jn}from"react";import vt from"bignumber.js";import{create as Jg}from"zustand";import{subscribeWithSelector as Rg}from"zustand/middleware";import{getLastSuccessfulStep as Zg}from"@rango-dev/queue-manager-rango-preset";import gI from"bignumber.js";import{i18n as qo}from"@lingui/core";var Pi={"Network Fee":qo.t("Network Fee"),"Swapper Fee":qo.t("Protocol Fee"),"Affiliate Fee":qo.t("Affiliate Fee"),"Outbound network fee":qo.t("Outbound Fee"),"Rango Fee":qo.t("Rango Fee")},$i=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],rp=30;import{i18n as it}from"@lingui/core";import{RouteEventType as Rb}from"@rango-dev/queue-manager-rango-preset";import De from"bignumber.js";import{PendingSwapNetworkStatus as Un}from"rango-types";function Fn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Fn,"isValidAddress");import{i18n as Le}from"@lingui/core";var ee=i(()=>({genericServerError:Le.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Le.t("Please reset your liquidity sources."),description:Le.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Le.t("No Routes Found."),description:Le.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:Le.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Le.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Le.t("High Price Impact"),title:Le.t("Price impact is too high!"),description:Le.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Le.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Le.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Le.t("USD Price Unknown"),title:Le.t("USD Price Unknown, Cannot calculate Price Impact."),description:Le.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Le.t("Confirm USD Price Unknown")}}),"errorMessages");function ip(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(ip,"getQuoteErrorMessage");import{i18n as On}from"@lingui/core";var Yt=i(()=>({connectWallet:On.t("Connect Wallet"),swap:On.t("Swap"),swapAnyway:On.t("Swap anyway"),ethWarning:On.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ap(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new De(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new De(1e3)))??!1}i(ap,"hasHighValueLoss");function sp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new De(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new De(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(sp,"hasLimitError");function lp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new De(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new De(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 De(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new De(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(lp,"getLimitErrorMessage");function pp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Yt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Yt().swap,action:"confirm-swap",disabled:!0}:s?{title:Yt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Yt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Yt().swap,action:"confirm-swap",disabled:!1}:{title:Yt().connectWallet,action:"connect-wallet",disabled:!1}}i(pp,"getSwapButtonState");function Di(t,e,o){return!((!o||o.lte(Pe))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Di,"canComputePriceImpact");var Kg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function Fi(t,e){let o=Pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=Kg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new De(r.amount).multipliedBy(a||0))}return o}i(Fi,"getUsdFeeOfStep");function zn(t,e){return t.reduce((o,n)=>o.plus(Fi(n,e)),Pe)}i(zn,"getTotalFeeInUsd");function Oi(t){let e=Pe;return e=e.plus(new De(t.amount).multipliedBy(t.price||0)),e}i(Oi,"getUsdFee");function cp(t){return t.reduce((e,o)=>e.plus(Oi(o)),Pe)}i(cp,"getTotalFeesInUsd");function up(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(up,"getFeesGroup");function mp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(mp,"checkSlippageErrors");function dp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(dp,"checkSlippageWarnings");function qn(t){return t.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(qn,"getMinRequiredSlippage");function fp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(fp,"hasProperSlippage");function gp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:d,affiliateWallets:m,destination:f,enableCentralizedSwappers:g}=t,S=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:d??void 0,affiliateWallets:m??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(gp,"createQuoteRequestBody");function hp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(hp,"getWalletsForNewSwap");function co(t){return t?.outputAmount||null}i(co,"getQuoteOutputAmount");function yp(t,e){return new De(e).div(new De(t)).minus(1).multipliedBy(100).toNumber()}i(yp,"getPercentageChange");function Sp(t,e){let o=co(t),n=co(e);if(!o||!n)return!1;let r=Je(o,n);return r?r<=-1:!0}i(Sp,"isOutputAmountChangedALot");function Cp(t,e,o){let n=t.validationStatus,r=Xt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>bp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new De(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new De(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Ye(s.asset.blockchain,o)}})})}i(Cp,"generateBalanceWarnings");function Qn(t,e){return(t?new De(t):Pe).multipliedBy(e||0)}i(Qn,"calcOutputUsdValue");function Qo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Un.NetworkChanged}i(Qo,"isNetworkStatusInWarningState");function Tp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Qo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Un.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Un.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Un.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Tp,"getSwapMessages");function kp(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(kp,"getLastConvertedTokenInFailedSwap");function wp(t){return t.status==="failed"}i(wp,"shouldRetrySwap");function vp(t,e,o,n,r,a){if(!n||t)return!0;let s=Xt({filter:"all",quote:n}),l=Xt({filter:"required",quote:n}),p=s.every(d=>r.some(m=>m.chain===d)),u=l.every(d=>r.some(m=>m.chain===d)),c=o&&a?Fn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(vp,"isConfirmSwapDisabled");function xp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(xp,"isTokensIdentical");function Gn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Gn,"getQuoteToTokenUsdPrice");function Ui(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ui,"isNumberOfSwapsChanged");function zi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!wi(o,n)}i(zi,"isQuoteSwappersUpdated");function qi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!wi(o,n)}i(qi,"isQuoteInternalCoinsUpdated");function Ep(t,e){return Ui(t,e)||zi(t,e)||qi(t,e)}i(Ep,"isQuoteChanged");function bp(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(bp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function Ap(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Zg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Mi(a?a.toBlockchain:n.fromBlockchain,e),p=Mi(r.toBlockchain,e),u=Wi(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Wi(s,o),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(Ap,"createRetryQuote");function uo(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Zt(o,t.requestAmount),l=Zt(n,t?.outputAmount??"");if(t&&s&&l){let c=Je(s.toString(),l.toString());if(!!c&&ap(s,c)){let m=zn(t?.swaps,r),f=wt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:m,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=qn(t.swaps),u=a>Vl;if(fp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:dp(t,a),minRequiredSlippage:p};return null}i(uo,"generateQuoteWarnings");function Je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:yp(t.toString(),e.toString());return n&&n<0?n:null}i(Je,"getPriceImpact");var Np=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Vn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Wp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Mp=i(t=>{let e=i((o,n)=>{let r=$i.indexOf(o.value),a=$i.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Zt=i((t,e)=>t?.usdPrice?new vt(e||Pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),X=Pt(Jg()(Rg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new vt(0),outputUsdValue:new vt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Pe;return Do(o.inputAmount)?(e&&(n=e?.outputAmount?new vt(e?.outputAmount):null,r=Qn(e?.outputAmount,Gn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new vt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote: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:Zt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote: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 vt(0),outputUsdValue:new vt(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Zt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=Ap(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Zt(s??null,u),outputUsdValue:new vt(0),toBlockchain:l,toToken:p,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Zt(e.toToken,e.outputAmount?.toString()||""):new vt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Lp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=X(),c=y().config,d=y().fetchStatus,m=y().blockchains(),f=y().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:C}=y(),h=c?.from?.tokens,T=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=jn(void 0),b=jn(void 0),x=jn(void 0),w=jn(void 0);mo(()=>{t(c?.amount?.toString()||"")},[c?.amount]),mo(()=>{if(d==="success"){r();let I=m.find(L=>L.name===c?.from?.blockchain),W=f.find(L=>$e(L,c?.from?.token||null));(I||!I&&x.current)&&n(I??null),W?a({token:W,meta:{blockchains:m,tokens:f}}):!W&&E.current&&a({token:null}),x.current=c?.from?.blockchain,E.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,d]),mo(()=>{Fo(s,h)&&a({token:null}),Ai(p,T)&&n(null)},[h,T]),mo(()=>{Fo(l,k)&&a({token:null}),Ai(u,v)&&o(null)},[k,v]),mo(()=>{if(d==="success"){r();let I=m.find(L=>L.name===c?.to?.blockchain),W=f.find(L=>$e(L,c?.to?.token||null));(I||!I&&w.current)&&o(I??null),W?e({token:W,meta:{blockchains:m,tokens:f}}):!W&&b.current&&e({token:null}),w.current=c?.to?.blockchain,b.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,d]),mo(()=>{g(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),C(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Lp,"useSyncStoresWithConfig");import{useEffect as Gi,useRef as eh}from"react";import{useInRouterContext as th,useLocation as oh,useSearchParams as nh}from"react-router-dom";function Qi(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(Qi,"searchParamToToken");function Hi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Hi,"tokenToSearchParam");function Vi(){let t=oh(),[e,o]=nh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=X(),f=y().fetchStatus,g=y().blockchains(),S=y().tokens(),C=th(),{updateIframe:h,updateCampaignMode:T}=y(),k=y().isInCampaignMode(),v=eh(),E=i(()=>{let x={};for(let[re,H]of e.entries())re.startsWith("utm_")&&(x[re]=H);let w=e.get("fromAmount"),I=e.get("fromBlockchain"),W=e.get("fromToken"),L=e.get("toBlockchain"),Q=e.get("toToken"),M=e.get("autoConnect"),V=e.get("clientUrl"),Y=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:W,toBlockchain:L,toToken:Q,autoConnect:M,clientUrl:V,liquiditySources:Y,utmQueryParams:x}},"getUrlSearchParams"),b=i(x=>{for(let w in x)x[w]||delete x[w];o(x,{replace:!0})},"updateUrlSearchParams");Gi(()=>{let{autoConnect:x,clientUrl:w,utmQueryParams:I}=E();C&&f==="success"&&b({fromBlockchain:n?.name,fromToken:Hi(a),toBlockchain:r?.name,toToken:Hi(s),fromAmount:l,autoConnect:x??void 0,clientUrl:w??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Gi(()=>{if(!C)return;let x=E();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&m(x.fromAmount),f==="success"){let w=g.find(Q=>Q.name===x.fromBlockchain),I=Qi(S,x.fromToken,w??null),W=g.find(Q=>Q.name===x.toBlockchain),L=Qi(S,x.toToken,W??null);w&&(p(w),I&&c({token:I,meta:{blockchains:g,tokens:S}})),W&&(u(W),L&&d({token:L,meta:{blockchains:g,tokens:S}}))}},[f]),Gi(()=>{let{clientUrl:x,liquiditySources:w}=E();h("clientUrl",x||void 0),T("liquiditySources",w?.split(",")??void 0)},[])}i(Vi,"useSyncUrlAndStore");import{i18n as Va}from"@lingui/core";import{useManager as hC}from"@rango-dev/queue-manager-react";import{Alert as hm,Button as yC,css as Xa,Divider as ja,IconButton as ym,styled as SC,Typography as CC,WalletIcon as TC}from"@rango-dev/ui";import we,{useEffect as Ur,useLayoutEffect as kC,useRef as wC,useState as on}from"react";import{useNavigate as vC}from"react-router-dom";import{i18n as ht}from"@lingui/core";import{Alert as ba,BalanceErrors as rS,Button as Yc,ChevronDownIcon as iS,ChevronLeftIcon as aS,Divider as vo,MessageBox as sS,Typography as Cr,WalletIcon as lS}from"@rango-dev/ui";import O,{useEffect as pS,useState as xo}from"react";import{useNavigate as cS}from"react-router-dom";import{i18n as Xn}from"@lingui/core";function Kn(t){switch(t.type){case 0:return Xn.t("Route has been updated.");case 3:return Xn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Xn.t("Route swappers has been updated.");case 2:return Xn.t("Route internal coins has been updated.");default:return""}}i(Kn,"getQuoteUpdateWarningMessage");import{Modal as ih}from"@rango-dev/ui";import ah from"react";function oe(t){let{watermark:e}=ne();return ah.createElement(ih,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import Rn,{useRef as ph}from"react";import*as fo from"@radix-ui/react-collapsible";import{keyframes as _p,styled as Yn}from"@rango-dev/ui";var ji=300,sh=_p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),lh=_p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Pp=Yn(fo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Xi=Yn(fo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Zn=Yn(fo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${sh} ${ji}ms ease-out`},false:{animation:`${lh} ${ji}ms ease-out`}}}}),Jn=Yn("div",{transition:`all ${ji}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function er(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ph(null);return Rn.createElement(Pp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Rn.createElement(Xi,{className:"collapsible_trigger",onClick:a},s),Rn.createElement(Zn,{className:"collapsible_content",open:e},r),l==="bottom"&&Rn.createElement(Xi,{className:"collapsible_trigger",onClick:a},s))}i(er,"CustomCollapsible");import{css as $p,darkTheme as go,IconButton as ch,styled as Re,TextField as uh}from"@rango-dev/ui";var Dp=Re("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Fp=Re("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),mh=Re("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${go} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Op=Re(mh,{alignSelf:"stretch",minHeight:"93px"}),Up=Re("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zp=Re(ch,{position:"absolute",left:"$20"}),qp=Re("div",{paddingTop:"$20"}),Qp=$p({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Hp=Re("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Gp=$p({paddingTop:"$5"}),Vp=Re("div",{display:"flex"}),jp=Re(uh,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Xp=Re("div",{overflow:"visible",width:"100%"}),Kp=Re("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${go} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$secondary100",[`.${go} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as eS,Divider as va,Image as tS,MessageBox as yr,SelectableWallet as oS,Typography as jc,WalletState as Xc}from"@rango-dev/ui";import ce,{useEffect as Kc,useState as wo}from"react";import{WalletState as tr}from"@rango-dev/ui";import{useWallets as dh}from"@rango-dev/wallets-react";import{detectMobileScreens as fh,KEPLR_COMPATIBLE_WALLETS as gh,WalletTypes as ho}from"@rango-dev/wallets-shared";import{useCallback as hh,useEffect as yh,useState as Sh}from"react";var Ch=Object.values(ho);function yo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=y(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=dh(),{connectedWallets:u}=R(),c=y().blockchains(),d=$l(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId})||Ch,m=Tl(a,l,d,e);m=fh()?m.filter(b=>b.showOnMobile!==!1&&a(b.type).installed):m;let f=Il(m),[g,S]=Sh(""),C=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),h=i(async(b,x)=>{let w=a(b);try{if(g&&S(""),w.connected)await s(b);else{let I=!!m.find(W=>W.state===tr.CONNECTED);if(r?.multiWallets===!1&&I)return;o?.(b),await p(b,void 0,x),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),T=hh(()=>{let b=m?.filter(x=>x.state===tr.CONNECTING)||[];for(let x of b)s(x.type)},[Nl(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");yh(()=>()=>{T()},[]);let v=i(b=>{let x=b.find(I=>I.type===ho.DEFAULT);return!x||x.state===tr.NOT_INSTALLED?!1:b.filter(I=>I.state!=tr.NOT_INSTALLED&&![ho.DEFAULT,ho.WALLET_CONNECT_2,ho.LEDGER].includes(I.type)&&l(I.type).supportedChains.filter(W=>W.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,x,w)=>An(w,x)&&C(b)&&!gh.includes(b)||b==ho.DEFAULT&&!v(m),"shouldExcludeWallet");return{list:f.filter(b=>!E(b.type,e??"",c)),error:g,handleClick:h,disconnectConnectingWallets:T,disconnectWallet:k}}i(yo,"useWalletList");import{i18n as Uc}from"@lingui/core";import{Divider as Gy,getCategoriesCount as Vy,SelectableCategoryList as jy,styled as qc,Typography as Xy,Wallet as Ky,WalletState as zc}from"@rango-dev/ui";import at,{useState as gr}from"react";import{useManager as vy}from"@rango-dev/queue-manager-react";import{BottomLogo as xy,Divider as Bc,Header as by}from"@rango-dev/ui";import Se,{useEffect as ya,useRef as _c,useState as Iy}from"react";import{useRef as Th}from"react";function or(){return window.self!==window.top}i(or,"isAppLoadedIntoIframe");function Ki(){let t=Th(null),{iframe:e}=y(),o=or()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ki,"useIframe");import{useNavigate as kh}from"react-router-dom";function et(){let t=kh();return()=>t(-1)}i(et,"useNavigateBack");import{createTheme as ta,darkTheme as Eh,lightTheme as Ah}from"@rango-dev/ui";import{useEffect as Nh,useState as Wh}from"react";import{theme as bh,darkColors as Ih}from"@rango-dev/ui";import Ri from"react";function wh(t,e,o){let p=[],u=90;for(let m=0;m<9;m++)p.push(u),m+1===4?u=0:u-=m>=4?6:10;let c=o?p.slice().reverse():p,d={};for(let m=0;m<9;m++){let f=100+m*100,g=c[m],S={[`${e}${f}`]:nr(t,g)};Object.assign(d,S)}return{...d,[e]:t}}i(wh,"generateShades");function nr(t,e){let[o,n,r]=Yp(t);return`#${Yi(o+e)}${Yi(n+e)}${Yi(r+e)}`}i(nr,"generateShade");function Yp(t){let r=parseInt(t.slice(1,3),16),a=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return[r,a,s]}i(Yp,"convertToRGB");function Yi(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Yi,"clamp");function Zp(t){let[s,l,p]=Yp(t);return(s*299+l*587+p*114)/1e3>188}i(Zp,"isBright");var Zi=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let a in o){let s=o[a];s&&s!==t[a]&&(n=!0,a==="background"||a==="foreground"?r={...r,[a]:s}:r={...r,...wh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Jp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),vh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Jp(o%52)+e;return Jp(o%52)+e},"toAlphabeticName"),xh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ji=i(t=>vh(xh(5381,JSON.stringify(t))>>>0),"toHash");function ea(t){let e=bh.colors,o=Zi({...e,...Ih},!0,t?.dark),n=Zi(e,!1,t?.light),r=Object.keys(o).length>0,a=Object.keys(n).length>0,s,l;if(a){let p={colors:n};s={id:`${Ei}-light-${Ji(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Ei}-dark-${Ji(p)}`,tokens:p}}return{light:s,dark:l}}i(ea,"customizedThemeTokens");function Rp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ri.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ri.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ri.cloneElement(e,{key:l}))}}),o}i(Rp,"joinList");function rr(t){let{colors:e,fontFamily:o=sl,borderRadius:n=Bl,secondaryBorderRadius:r=_l}=t,[a,s]=Wh("light"),{theme:l}=y(),{dark:p,light:u}=ea(e),c=ta({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,Ah.className],m=[c.className,Eh.className];if(u){let g=ta(u.id,u.tokens);d.push(g.className)}if(p){let g=ta(p.id,p.tokens);m.push(g.className)}return Nh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),S=m.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(rr,"useTheme");var tt=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");import{i18n as ec}from"@lingui/core";import{Alert as Mh,Button as Lh}from"@rango-dev/ui";import tc from"react";function oa(t){return tc.createElement(Mh,{action:tc.createElement(Lh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},ec.t("Activate this tab")),type:"warning",variant:"alarm",title:ec.t("Another tab is open and handles transactions.")})}i(oa,"ActivateTabAlert");import{i18n as na}from"@lingui/core";import{Button as Bh,Divider as _h,MessageBox as Ph}from"@rango-dev/ui";import ir from"react";function ra(t){let{open:e,onClose:o,onConfirm:n}=t;return ir.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},ir.createElement(Ph,{title:na.t("Activate current tab"),type:"warning",description:na.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},ir.createElement(_h,{size:20}),ir.createElement(Bh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},na.t("Confirm"))))}i(ra,"ActivateTabModal");import{ChevronLeftIcon as Fh}from"@rango-dev/ui";import lc from"react";import{css as $h,darkTheme as oc,IconButton as Dh,styled as Jt}from"@rango-dev/ui";var gt=Jt(Dh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${oc} &`]:{backgroundColor:"$neutral"}}}),nc=Jt("div",{position:"absolute",background:"$secondary500",[`.${oc} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),So=Jt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),rc=Jt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),ic=Jt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ac=Jt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),sc=$h({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ar=Jt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ia(t){return lc.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},lc.createElement(Fh,{color:"black",size:16}))}i(ia,"BackButton");import{i18n as Oh}from"@lingui/core";import{Button as Uh,Typography as zh}from"@rango-dev/ui";import aa from"react";function sa(t){return aa.createElement(So,null,aa.createElement(Uh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},aa.createElement(zh,{variant:"label",size:"medium",color:"error500"},Oh.t("Cancel"))))}i(sa,"CancelButton");import{i18n as qh}from"@lingui/core";import{Image as Qh,Tooltip as Hh,WalletIcon as Gh}from"@rango-dev/ui";import Rt from"react";function la(t){let{list:e}=yo({}),o=e.filter(r=>r.state==="connected"),n=o.length?Rt.createElement("div",{className:sc()},o.map(r=>Rt.createElement(ar,{key:r.title},Rt.createElement(Qh,{src:r.image,size:14})))):qh.t("Connect Wallet");return Rt.createElement(Hh,{container:t.container,side:"bottom",content:n},Rt.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Rt.createElement(nc,null),Rt.createElement(Gh,{size:18,color:"black"})))}i(la,"WalletButton");import{i18n as pr}from"@lingui/core";import{NotificationsIcon as fy,Popover as gy,SettingsIcon as hy,Tooltip as cr,TransactionIcon as yy}from"@rango-dev/ui";import Ie from"react";import{i18n as pa}from"@lingui/core";import{EventSeverity as Sc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Cc,ChevronRightIcon as oy,Divider as Tc,Typography as ca}from"@rango-dev/ui";import de from"react";import{useNavigate as ny}from"react-router-dom";import{create as Vh}from"zustand";import{persist as jh,subscribeWithSelector as Xh}from"zustand/middleware";var be=Pt(Vh()(jh(Xh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n:[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));import{Button as Kh,darkTheme as Yh,ListItemButton as Zh,styled as Dt}from"@rango-dev/ui";var pc=Dt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),cc=Dt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),uc=Dt(Kh,{padding:"$5 !important"}),mc=Dt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),dc=Dt(Zh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${Yh} &`]:{backgroundColor:"$error600"}}}}}),fc=Dt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),gc=Dt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),hc=Dt("span",{paddingRight:"$8"});import{i18n as Jh}from"@lingui/core";import{Divider as Rh,NoNotificationIcon as ey,Typography as ty}from"@rango-dev/ui";import sr from"react";function yc(){return sr.createElement(gc,null,sr.createElement(ey,{color:"secondary",size:26}),sr.createElement(Rh,{size:12}),sr.createElement(ty,{variant:"body",size:"medium",color:"neutral700"},Jh.t("There are no notifications.")))}i(yc,"NotificationNotFound");var ry=4;function ua(){let t=ny(),{getNotifications:e,clearNotifications:o}=be(),n=e(),r=y().blockchains(),a=y().tokens(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,ry),l=i(p=>{t(`${U.swaps}/${p}`)},"handleOnClick");return de.createElement(pc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(cc,null,de.createElement(ca,{variant:"label",size:"medium"},pa.t("Notifications")),de.createElement(uc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(ca,{variant:"body",size:"xsmall"},pa.t("Clear all")))),de.createElement(Tc,{direction:"vertical",size:4})),s.length?de.createElement(mc,null,s.map((p,u)=>{let{route:c,requestId:d,event:m}=p,f=a.find(h=>$e(h,c.from)),g=r.find(h=>h.name===c.from.blockchain),S=a.find(h=>$e(h,c.to)),C=r.find(h=>h.name===c.to.blockchain);return de.createElement(de.Fragment,{key:d},u>0&&de.createElement(Tc,{size:4}),de.createElement(dc,{onClick:()=>l(d),actionRequired:m.messageSeverity===Sc.WARNING,title:de.createElement(ca,{variant:"body",size:"small",color:m.messageSeverity===Sc.WARNING?"$foreground":"$neutral700"},pa.t(m.message)),id:d,start:de.createElement(fc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Cc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Cc,{tokenImage:S?S.image:"",chainImage:C?C.logo:"",size:"small"}))),end:de.createElement(hc,null,de.createElement(oy,{size:12,color:"gray"}))}))})):de.createElement(yc,null))}i(ua,"NotificationContent");import{useManager as iy}from"@rango-dev/queue-manager-react";import{InProgressIcon as ay}from"@rango-dev/ui";import kc from"react";var sy=i(()=>{let{manager:t}=iy();return tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?kc.createElement(ac,null,kc.createElement(ay,{color:"info",size:6})):null},"InProgressTransactionBadge"),wc=sy;import{EventSeverity as ly}from"@rango-dev/queue-manager-rango-preset";import{Typography as py}from"@rango-dev/ui";import vc from"react";function xc(){let{getNotifications:t}=be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ly.WARNING);return o?vc.createElement(rc,{isSever:n},vc.createElement(py,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(xc,"NotificationsBadge");import{RefreshProgressButton as cy}from"@rango-dev/ui";import ma,{useEffect as uy,useState as bc}from"react";var my=1e3,Ic=60,dy=100;function lr({onClick:t}){let[e,o]=bc(0),[n,r]=bc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");uy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},my):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ma.createElement(gt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ma.createElement(ic,{onTransitionEnd:()=>r(!1),isRefetched:n},ma.createElement(cy,{size:22,color:t?"black":"gray",progress:e/Ic*dy})))}i(lr,"RefreshButton");function eo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ze("notification",s)||r.includes("notifications");return Ie.createElement(Ie.Fragment,null,!r.includes("refresh")&&Ie.createElement(cr,{container:a||B(),side:"top",content:pr.t("Refresh")},Ie.createElement(lr,{onClick:e})),!l&&Ie.createElement(gy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ie.createElement(ua,null)},Ie.createElement("div",null,Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Notifications")},Ie.createElement(gt,{size:"small",variant:"ghost"},Ie.createElement(fy,{size:18,color:"black"}),Ie.createElement(xc,null))))),!r.includes("settings")&&Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Settings")},Ie.createElement(gt,{size:"small",variant:"ghost",onClick:n},Ie.createElement(hy,{size:18,color:"black"}))),!r.includes("history")&&Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Transactions History")},Ie.createElement(gt,{size:"small",variant:"ghost",onClick:o},Ie.createElement(yy,{size:18,color:"black"}),Ie.createElement(wc,null))))}i(eo,"HeaderButtons");import{i18n as da}from"@lingui/core";import{Divider as Ac,MessageBox as Ty,RefreshIcon as ky}from"@rango-dev/ui";import Co from"react";import{Button as Sy,styled as Cy}from"@rango-dev/ui";var Ec=Cy(Sy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fa(t){let{open:e,onClose:o}=t;return Co.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},Co.createElement(Ty,{title:da.t("Something went wrong"),type:"error",description:da.t("Something went wrong. Please refresh the app.")},Co.createElement(Ac,{size:30}),Co.createElement(Ec,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Co.createElement(ky,{size:20,color:"primary"}),Co.createElement(Ac,{size:4,direction:"horizontal"}),da.t("Refresh"))))}i(fa,"RefreshModal");function ga(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ga,"onScrollContentAttachStatusToContainer");import{css as wy,styled as ha}from"@rango-dev/ui";var Nc="700px",ur=wy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),Wc=ha("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Mc=ha("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Lc=ha("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ki(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=Iy(!1),c=R.use.connectedWallets(),{config:{features:d,theme:m}}=y(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:S}=rr(m||{}),C=Ze("connectWalletButton",d),{isActiveTab:h,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ne(),b=et(),{manager:x}=vy(),I=tt(x).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),W=i(()=>E(Kt.forceClaim,I),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,M=_c(null),V=_c(null);return ya(()=>(or()&&V.current&&e(V.current),()=>{o()}),[]),ya(()=>(M.current?.addEventListener("scroll",ga),()=>{M.current?.removeEventListener("scroll",ga)}),[]),ya(()=>{u(l==="failed")},[l]),Se.createElement(Wc,{height:s,id:ye.SWAP_BOX_ID,className:`${S()} ${ur()}`,ref:V},Se.createElement(by,{prefix:Se.createElement(Se.Fragment,null,Q&&Se.createElement(ia,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!C&&Se.createElement(la,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&Se.createElement(sa,{onClick:r.onCancel}))}),Se.createElement(Mc,{ref:M},n),Se.createElement(ra,{open:k,onClose:()=>v(!1),onConfirm:W}),Se.createElement(Lc,null,Se.createElement("div",{className:"footer__content"},T&&!h&&Se.createElement("div",{className:"footer__alert"},Se.createElement(oa,{onActivateTab:W}),Se.createElement(Bc,{size:10})),a),Se.createElement(Bc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(xy,null))),Se.createElement(fa,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as Ey}from"@rango-dev/ui";var Pc="$20 $20 $10 $20",Ho=Ey("div",{padding:Pc,overflowY:"auto",flexGrow:1});import{styled as Ay}from"@rango-dev/ui";var ue=Ay("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as By}from"@rango-dev/ui";import Ca from"react";import{i18n as To}from"@lingui/core";import{Image as My,MessageBox as Sa,WalletState as Ly}from"@rango-dev/ui";import to from"react";import{keyframes as Ny,styled as mr}from"@rango-dev/ui";var YN=mr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),dr=mr("div",{position:"relative"}),Wy=Ny({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fr=mr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Wy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=mr("div",{"& img":{borderRadius:"50%"}});function Dc(t){let{state:e,image:o,error:n}=t;return e===Ly.CONNECTED?to.createElement(Sa,{type:"success",title:To.t("Wallet Connected"),description:To.t("Your wallet is connected, you can use it to swap.")}):n?to.createElement(Sa,{type:"error",title:To.t("Failed to Connect"),description:n||To.t("Your wallet is not connected. Please try again.")}):to.createElement(Sa,{type:"loading",title:To.t("Connecting to your wallet"),description:To.t("Click connect in your wallet popup."),icon:to.createElement(dr,null,to.createElement($c,null,to.createElement(My,{src:o,size:45})),to.createElement(fr,null))})}i(Dc,"ModalContent");function Go(t){let{open:e,onClose:o,...n}=t;return Ca.createElement(oe,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},Ca.createElement(Dc,{...n}),Ca.createElement(By,{direction:"vertical",size:32}))}i(Go,"WalletModal");import{i18n as Ta}from"@lingui/core";import{Button as Py,Checkbox as $y,Image as Oc,ListItemButton as Dy,MessageBox as Fy,Radio as Oy,RadioRoot as Uy}from"@rango-dev/ui";import{Namespace as ko}from"@rango-dev/wallets-shared";import Ae,{useMemo as zy,useState as qy}from"react";import{styled as _y}from"@rango-dev/ui";var Fc=_y("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Qy={[ko.Evm]:"ETH",[ko.Solana]:"SOLANA",[ko.Cosmos]:"COSMOS",[ko.Utxo]:"BTC",[ko.Starknet]:"STARKNET",[ko.Tron]:"TRON"},Hy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function oo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=qy([]),a=y().blockchains(),s=zy(()=>o?.map(u=>({name:u,logo:Hy(a,Qy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(d=>d!==u):c.concat(u))},"onSelect"),p=i(u=>e?Ae.createElement(Uy,{value:n?.[0]},u):Ae.createElement(Ae.Fragment,null,u),"wrapRadioRoot");return Ae.createElement(oe,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},Ae.createElement(Fy,{type:"info",title:Ta.t("Select chain types"),description:Ta.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ae.createElement(dr,null,Ae.createElement(ar,null,Ae.createElement(Oc,{src:t.image,size:45})),Ae.createElement(fr,null))}),Ae.createElement(Fc,null,p(Ae.createElement(Ae.Fragment,null,s?.map(u=>Ae.createElement(Dy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ae.createElement(Oc,{src:u.logo,size:22}),end:e?Ae.createElement(Oy,{value:u.name}):Ae.createElement($y,{checked:n.includes(u.name)})}))))),Ae.createElement(Py,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Ta.t("Confirm")))}i(oo,"WalletNamespacesModal");var Yy=qc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Zy=qc(ue,{textAlign:"center"}),hr=3e3,ka=300;function Qc(){let{fetchStatus:t}=y(),[e,o]=gr("ALL"),n=y().blockchains(),[r,a]=gr(!1),[s,l]=gr(null),[p,u]=gr(""),c=null,d=ne.use.isActiveTab(),{list:m,handleClick:f,error:g,disconnectConnectingWallets:S}=yo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},ka)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},hr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),h=m.find(w=>w.type===p),T=h?.image||"",k=h?.state||zc.NOT_INSTALLED,v=Wl(m,n),b=Vy(v)!==1,x=Ml(m,e);return at.createElement(le,{header:{title:Uc.t("Connect Wallets")}},at.createElement(Zy,null,b&&at.createElement(at.Fragment,null,at.createElement(jy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),at.createElement(Gy,{size:24})),at.createElement(Xy,{variant:"title",size:"xmedium",align:"center"},Uc.t("Choose a wallet to connect.")),at.createElement(Yy,null,x.map((w,I)=>{let W=`wallet-${I}-${w.type}`;return at.createElement(Ky,{key:W,...w,container:B(),onClick:L=>{w.namespaces&&w.state===zc.DISCONNECTED?l({providerType:L,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(L)},isLoading:t==="loading",disabled:!d})}),at.createElement(Go,{open:!!r,onClose:C,image:T,state:k,error:g}),at.createElement(oo,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Qc,"WalletsPage");import{keyframes as Jy,styled as wa}from"@rango-dev/ui";var Hc=wa("div",{position:"relative"}),Ry=Jy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Gc=wa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ry} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Vc=wa("div",{"& img":{borderRadius:"50%"}});var nS=7;function xa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),l=R.use.connectedWallets(),{blockchains:p}=y(),[u,c]=wo(""),[d,m]=wo(null),[f,g]=wo(!1),[S,C]=wo(null),[h,T]=wo(null),{suggestAndConnect:k}=Sr(),v=null,{list:E,error:b,handleClick:x,disconnectWallet:w,disconnectConnectingWallets:I}=yo({chain:e,onBeforeConnect:A=>{v=setTimeout(()=>{c(A)},ka)},onConnect:()=>{v&&clearTimeout(v),setTimeout(()=>{c("")},hr)}}),[W,L]=wo(E),Q=E.length,M=r&&Q-r>0,V=i(async A=>{g(!1),C("in-progress");try{await k(A.walletType,A.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain"),Y=i(A=>{T({providerType:A.type,providerImage:A.image,availableNamespaces:A.namespaces,singleNamespace:A.singleNamespace})},"handleOpenNamespacesModal");Kc(()=>{L(A=>{let te=E.findIndex(q=>o(q.type,e));return M&&te>1?[E[te]].concat(E.filter((q,Z)=>Z!==te)):A.map(q=>E.find(Z=>Z.type===q.type)??q)})},[JSON.stringify(E)]);let re=document.getElementById(ye.SWAP_BOX_ID);Kc(()=>{let A=null;return(S==="completed"||S==="rejected")&&(A=setTimeout(()=>C(null),hr)),()=>{A&&clearTimeout(A)}},[S]);let H=i(()=>{I(),c("")},"handleCloseWalletModal");return ce.createElement(ce.Fragment,null,W.slice(0,r).map(A=>{let te=El({connectedWallets:l,walletType:A.type,chain:e}),q=te?Wn(te,nS):"",Z=An(p(),e),me=!l.find(j=>j.walletType===A.type&&j.chain===e),he=Z&&me&&A.state===Xc.CONNECTED,_=he?st.t({id:"Add {chain} chain",values:{chain:e}}):q,ze=i(async()=>{A.state===Xc.DISCONNECTED?A.namespaces?Y(A):x(A.type):A.namespaces&&!q?(await w(A.type),Y(A)):he?(m({walletType:A.type,chain:e,address:te??""}),g(!0)):n({walletType:A.type,chain:e,address:te??""})},"onClick"),P=d?.chain?Ol(d.chain,p()):void 0;return ce.createElement(ce.Fragment,{key:`${A.title}_${P}`},ce.createElement(Go,{open:u===A.type,onClose:H,image:A.image,state:A.state,error:b}),ce.createElement(oo,{open:!!h,onClose:()=>T(null),onConfirm:j=>{x(h?.providerType,j),T(null)},image:h?.providerImage,namespaces:h?.availableNamespaces,singleNamespace:h?.singleNamespace}),!!d&&ce.createElement(oe,{open:!!d&&f,container:re,onClose:()=>{m(null)}},ce.createElement(yr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}})},ce.createElement(va,{size:18}),ce.createElement(va,{size:32}),ce.createElement(eS,{onClick:V.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),S&&ce.createElement(oe,{open:!!S,onClose:C.bind(null,null),container:re},S==="in-progress"&&ce.createElement(yr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}}),icon:ce.createElement(Hc,null,ce.createElement(Vc,null,ce.createElement(tS,{src:A.image,size:45})),ce.createElement(Gc,null))}),S==="completed"&&ce.createElement(yr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:P}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:P}})}),S==="rejected"&&ce.createElement(yr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:P}})}),ce.createElement(va,{direction:"vertical",size:32})),ce.createElement(oS,{key:A.type,description:_,onClick:ze,selected:o(A.type,e),disabled:!s,...A}))}),M&&ce.createElement(Op,{selected:!1,onClick:a},ce.createElement(jc,{variant:"label",size:"medium"},st.t("Show more wallets"),ce.createElement(jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",Q-(r??0)))))}i(xa,"WalletList");var uS=2;function Zc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=y().config,l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=X(),{connectedWallets:g,selectWallets:S}=R(),[C,h]=xo(""),[T,k]=xo([]),[v,E]=xo(""),[b,x]=xo(null),[w,I]=xo(!!m),W=Xt({filter:"all",quote:p}),L=Xt({filter:"required",quote:p}),Q=l.find(P=>P.name===p?.swaps[p?.swaps.length-1].to.blockchain),M=i(P=>L.includes(P),"isWalletRequiredFor"),V=i(()=>g.filter(P=>P.selected&&W.includes(P.chain)),"getInitialSelectableWallets"),[Y,re]=xo(V()),H=T.length>0,A=i((P,j)=>!!Y.find(ie=>ie.walletType===P&&ie.chain===j&&ie.selected&&(M(j)||!M(j)&&!m)),"isSelected"),te=!!m&&w&&Q&&!Fn(Q,m),q=i(()=>{I(!1),f(null),re(P=>{let j=!1;return P.map(ie=>!j&&ie.chain===Q?.name?(j=!0,{...ie,selected:!0}):ie)})},"resetCustomDestination"),Z=i(P=>{if(C&&h(""),A(P.walletType,P.chain))return;let ie=g.find(Ne=>Ne.walletType===P.walletType&&Ne.chain===P.chain);ie&&(n(),P.chain===Q?.name&&w&&(I(!1),f(null)),re(Ne=>Ne.filter(Ge=>Ge.chain!==P.chain).concat({...ie,selected:!0})))},"onChange"),me=i(()=>{let P=Y.filter(j=>j.selected);S(P),u(P),d(!0),o()},"onConfirmBalance"),he=i(async()=>{k([]),E(""),x(null);let P=await r?.({selectedWallets:Y.filter(ie=>ie.selected),customDestination:m}),j=P.warnings;j?.balance?.messages&&k(j.balance.messages),j?.quoteUpdate&&x(j.quoteUpdate),P.error&&E(ip(P.error)),!P.error&&!j?.balance?.messages.length?me():k(j?.balance?.messages??[])},"onConfirmWallets");pS(()=>{re(P=>P.concat(g.filter(j=>!!!P.find(Ne=>Ne.chain===j.chain)&&j.selected&&W.includes(j.chain))))},[g.length]);let _=document.getElementById(ye.SWAP_BOX_ID),ze=cS();return O.createElement(oe,{open:e,onClose:()=>{c||ze("../",{replace:!0}),o()},dismissible:!C,container:_,...!C&&{footer:O.createElement(Vp,null,O.createElement(Yc,{loading:a,disabled:vp(a,w,m,p,Y,Q),onClick:he,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ht.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:O.createElement(Up,null,O.createElement(zp,{variant:"ghost",onClick:h.bind(null,"")},O.createElement(aS,{size:16})),O.createElement(Cr,{variant:"headline",size:"small"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(C,l)}})))},anchor:"center"},O.createElement(oe,{open:H,onClose:k.bind(null,[]),container:_},O.createElement(sS,{title:ht.t("Insufficient account balance"),type:"error",description:O.createElement(rS,{messages:T??[]})},O.createElement(Yc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},ht.t("Proceed anyway")))),C&&O.createElement(qp,null,O.createElement("div",{className:Qp()},O.createElement(xa,{chain:C,isSelected:A,selectWallet:Z,onShowMore:h.bind(null,C)}))),!C&&O.createElement(O.Fragment,null,v&&O.createElement(O.Fragment,null,O.createElement(ba,{variant:"alarm",type:"error",title:ht.t(v)}),O.createElement(vo,{size:12})),b&&O.createElement(O.Fragment,null,O.createElement(ba,{variant:"alarm",type:"warning",title:Kn(b)}),O.createElement(vo,{size:12})),O.createElement(Xp,null,W.map((P,j)=>{let ie=l.find(We=>We.name===P),Ne=`wallet-${j}`,Ge=j===W.length-1;return O.createElement("div",{key:Ne},O.createElement(Dp,null,O.createElement(Cr,{variant:"title",size:"xmedium"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:ie?.shortName}})),O.createElement(Cr,{variant:"label",color:"$neutral700",size:"medium"},ht.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:ie?.shortName}}))),O.createElement(vo,{size:24}),O.createElement(Fp,null,O.createElement(xa,{chain:P,isSelected:A,selectWallet:Z,limit:uS,onShowMore:()=>h(ie?.name??"")})),!Ge&&O.createElement(vo,{size:32}),Ge&&s?.customDestination&&O.createElement(Hp,null,O.createElement(er,{onOpenChange:We=>{We?M(Q?.name??"")||re(_e=>_e.map(Ke=>Ke.chain===Q?.name?{...Ke,selected:!1}:Ke)):q()},hasSelected:!0,open:w,triggerAnchor:"top",trigger:O.createElement(Kp,null,O.createElement("div",{className:"button__content"},O.createElement(lS,{size:18,color:"info"}),O.createElement(vo,{size:4,direction:"horizontal"}),O.createElement(Cr,{variant:"label",size:"medium"},ht.t("Send to a different address"))),O.createElement(Jn,{orientation:w?"up":"down"},O.createElement(iS,{size:10,color:"gray"}))),onClickTrigger:()=>I(We=>!We)},O.createElement(vo,{size:4}),O.createElement(jp,{placeholder:ht.t("Your destination address"),value:m||"",onChange:We=>{let _e=We.target.value;_e.length?f(_e.length?_e:null):(I(!1),f(null))},...!m&&{autoFocus:!0}})),te&&O.createElement("div",{className:Gp()},O.createElement(ba,{variant:"alarm",type:"error",title:ht.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Zc,"ConfirmWalletsModal");import{i18n as WS}from"@lingui/core";import{Alert as MS,Button as LS,InfoIcon as BS}from"@rango-dev/ui";import je from"react";import{Alert as fS,Button as gS,Divider as Aa,NoRouteIcon as hS,RefreshIcon as yS,Typography as ru}from"@rango-dev/ui";import Ve from"react";import{i18n as Jc}from"@lingui/core";var mS=24,dS=60;function Rc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Jc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Jc.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Rc,"makeInfo");var Ia=(o=>(o[o.small=mS]="small",o[o.large=dS]="large",o))(Ia||{}),Ea=(o=>(o.small="small",o.large="medium",o))(Ea||{});import{styled as Tr}from"@rango-dev/ui";var eu=Tr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),tu=Tr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),ou=Tr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),nu=Tr("div",{padding:"$6 $0"});function Vo(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Rc(o,r,()=>a(s,!0),e);return Ve.createElement(eu,null,Ve.createElement(hS,{size:Ia[n],color:"gray"}),Ve.createElement(Aa,{size:4}),Ve.createElement(ru,{variant:"title",size:Ea[n]},ee().noResultError.title),n==="large"&&Ve.createElement(Aa,{size:4}),!!l.description&&Ve.createElement(tu,{size:n},Ve.createElement(ru,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ve.createElement(Aa,{size:n==="large"?"24":"4"}),!!l.alert&&Ve.createElement(ou,{size:n},Ve.createElement(fS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ve.createElement(gS,{size:"xsmall",type:l.alert.type,prefix:Ve.createElement(nu,null,Ve.createElement(yS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Vo,"NoResult");import{i18n as jo}from"@lingui/core";import{Button as CS,Divider as TS,MessageBox as kS,Typography as wS,WarningIcon as vS}from"@rango-dev/ui";import xt from"react";import{Typography as lu}from"@rango-dev/ui";import Wa from"react";import{darkTheme as SS,styled as kr}from"@rango-dev/ui";var iu=kr("div",{width:"100%"}),Na=kr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),au=kr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${SS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),su=kr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function pu(t){let{title:e,value:o,valueColor:n}=t;return Wa.createElement(au,null,Wa.createElement(lu,{size:"medium",variant:"label",className:"_title"},e),Wa.createElement(lu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(pu,"QuoteErrorsModalItem");function cu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:jo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:jo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:jo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:jo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return xt.createElement(oe,{footer:xt.createElement(CS,{type:"primary",size:"large",prefix:xt.createElement(vS,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},xt.createElement(kS,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),xt.createElement(Na,null,xt.createElement(TS,{size:"4"}),xt.createElement(wS,{size:"small",variant:"title"},jo.t("Details")),xt.createElement(Na,null,l.map((p,u)=>xt.createElement(pu,{key:u,...p})))))}i(cu,"HighValueLossWarningModal");import{i18n as Ma}from"@lingui/core";function uu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Ma.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(wt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title),t.type===1&&(o.title=ee().unknownPriceError.title),t.type===2&&(o.title=Ma.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=Ma.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(uu,"makeAlerts");import{i18n as bo}from"@lingui/core";import{Button as mu,Divider as du,MessageBox as xS,Typography as bS}from"@rango-dev/ui";import no from"react";import{useNavigate as IS}from"react-router-dom";function fu(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=IS(),u=e??o;return no.createElement(oe,{anchor:"bottom",open:n,prefix:no.createElement(mu,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},no.createElement(bS,{variant:"label",size:"medium",color:"$neutral900"},bo.t("Change settings"))),container:B(),onClose:r},no.createElement(xS,{type:"warning",title:s.type===3?bo.t("High slippage"):bo.t("Low slippage"),description:s.type===3?bo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):bo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},no.createElement(du,{size:18}),no.createElement(du,{size:32}),no.createElement(mu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},bo.t("Confirm anyway"))))}i(fu,"SlippageWarningModal");import{Button as ES,MessageBox as AS,WarningIcon as NS}from"@rango-dev/ui";import wr from"react";function gu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(oe,{footer:wr.createElement(ES,{type:"primary",size:"large",prefix:wr.createElement(NS,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(AS,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(gu,"UnknownPriceWarningModal");function Xo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,d={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,f=uu(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),je.createElement(je.Fragment,null,m&&je.createElement(Vo,{error:o,fetch:s}),!!f&&je.createElement(iu,null,je.createElement(MS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:je.createElement(su,{onClick:l},je.createElement(BS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:je.createElement(LS,{size:"xxsmall",type:f.alertType,onClick:c},WS.t("Change"))}})),e&&je.createElement(je.Fragment,null,e.type===0&&je.createElement(cu,{...d,warning:e}),(e.type===3||e.type===2)&&je.createElement(fu,{...d,warning:e}),e.type===1&&je.createElement(gu,{...d,warning:e})))}i(Xo,"QuoteWarningsAndErrors");import cC from"bignumber.js";import $r from"react";import{i18n as ro}from"@lingui/core";import{Alert as ZS,Divider as Eo,FullExpandedQuote as JS,InfoIcon as RS,QuoteTag as eC,StepDetails as tC,TokenAmount as oC,Tooltip as Xu,Typography as Ao}from"@rango-dev/ui";import Oa from"bignumber.js";import $,{useRef as nC,useState as rC}from"react";import{styled as La}from"@rango-dev/ui";var Ba=La("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),hu=La("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),yu=La("div",{width:"100%",display:"flex"});import*as vr from"@radix-ui/react-collapsible";import{Button as _S,css as Ko,darkTheme as Te,Image as Su,styled as Fe,Typography as PS}from"@rango-dev/ui";var $S=300,Cu=Fe(vr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Te} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Tu=Ko({padding:"$10 $15"}),ku=Fe(_S,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${Te} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${Te} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Te} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),wu=Fe("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Te} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Te} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Te} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Te} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Te} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Te} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Te} &`]:{backgroundColor:"$neutral400"}}}}]}),vu=Ko({width:"100%",padding:"$15 $15 $10 $15"}),xu=Ko({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Io=Ko({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),bu=Ko({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Te} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Iu=Fe(vr.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:{[`& ${Su}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Su}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Te} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Eu=Fe("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Au=Fe(Zn,{width:"100%",background:"inherit"}),_a=Fe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${$S}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),eB=Fe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Nu=Fe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Te} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Wu=Fe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Pa=Fe(PS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Mu=Fe("div",{display:"flex",flexWrap:"wrap"}),$a=Fe("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Lu=Fe("div",{display:"flex"}),xr=Fe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Te} &`]:{borderTopColor:"$neutral800"}});import{i18n as qt}from"@lingui/core";import{ChevronDownIcon as FS,CloseIcon as OS,Divider as Er,IconButton as US,QuoteCost as zS,Tooltip as qS,Typography as lt}from"@rango-dev/ui";import K,{useState as $u}from"react";import{css as DS,styled as br}from"@rango-dev/ui";var Ir=br("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Da=br("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Bu=br("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),_u=br("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Pu=DS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var QS=i(t=>t.fee.isZero()?null:K.createElement(Ir,null,K.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Du(t){let[e,o]=$u(!1),[n,r]=$u(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=B(),f=up(d);return K.createElement(K.Fragment,null,K.createElement(zS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?qt.t("View more info"):void 0,tooltipContainer:m}),K.createElement(oe,{container:m,open:e,header:K.createElement(_u,null,K.createElement(lt,{variant:"title",size:"medium"},qt.t("Gas & Fee Explanation")),K.createElement(US,{onClick:()=>o(!1),variant:"ghost"},K.createElement(OS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(Bu,null,K.createElement(lt,{variant:"title",size:"small"},qt.t("Details")),K.createElement(Er,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,h)=>{let T=`payable-fee-${h}`,k=Oi(C);return K.createElement(Ir,{key:T},K.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Pi[g]),K.createElement(qS,{content:pe(C.amount),container:m},K.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),K.createElement(Ir,{className:"total_payable_fee"},K.createElement(lt,{variant:"label",size:"medium"},qt.t("Total Payable Fee")),K.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),K.createElement(Da,null),Object.keys(f.nonePayable).length&&K.createElement(er,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:K.createElement("div",{className:Pu()},K.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?qt.t("Hide non-payable fees"):qt.t("Show non-payable fees")),K.createElement(Er,{size:4,direction:"horizontal"}),K.createElement(Jn,{orientation:n?"up":"down"},K.createElement(FS,{size:12,color:"gray"}))),open:n},K.createElement(lt,{size:"small",variant:"title"},qt.t("Description")),K.createElement(Er,{size:4}),K.createElement(lt,{size:"small",variant:"body",color:"neutral700"},qt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),K.createElement(Er,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let h=cp(S),T=Pi[g],k=`non-payable-fee-${C}`;return K.createElement(QS,{key:k,fee:h,label:T})}),K.createElement(Da,null)))))}i(Du,"QuoteCostDetails");import{i18n as Uu}from"@lingui/core";import{TokenAmount as zu}from"@rango-dev/ui";import Ar from"react";import{css as HS,styled as GS}from"@rango-dev/ui";var Fu=GS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Ou=HS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Yo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ar.createElement(Fu,null,Ar.createElement(zu,{direction:"horizontal",label:Uu.t("Swap input"),type:"input",tooltipContainer:B(),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}}),Ar.createElement("div",{className:Ou()}),Ar.createElement(zu,{direction:"horizontal",tooltipContainer:B(),label:Uu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(Yo,"QuoteSummary");import{i18n as Vu}from"@lingui/core";import{ChevronDownIcon as XS,ChevronRightIcon as KS,Divider as Fa,Image as YS,Tooltip as Br,Typography as Wr}from"@rango-dev/ui";import D from"react";import{useLayoutEffect as VS,useState as Zo}from"react";var qu=480,Qu=768,Hu=1024,Gu=1200,jS=i(()=>{let[t,e]=Zo(!1),[o,n]=Zo(!1),[r,a]=Zo(!1),[s,l]=Zo(!1),[p,u]=Zo(!1),c=i(()=>{e(window.innerWidth<=qu),n(window.innerWidth>qu&&window.innerWidth<=Qu),a(window.innerWidth>Qu&&window.innerWidth<=Hu),l(window.innerWidth>Hu&&window.innerWidth<=Gu),u(window.innerWidth>Gu)},"handleResize");return VS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Nr=jS;var Mr=4,Lr=6,Jo=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return D.createElement(Br,{container:l,side:"bottom",sideOffset:4,open:r,content:e},D.createElement(Eu,{className:n,state:a},D.createElement(YS,{src:o,size:16})))},"ImageComponent");function ju(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Np(r),{isTablet:d,isMobile:m}=Nr();return D.createElement(Iu,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},D.createElement("div",{className:Io()},D.createElement(Wr,{variant:"body",size:"xsmall"},Vu.t("Via:")),D.createElement(Fa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=D.createElement(_a,null,D.createElement(KS,{size:12,color:"black"}));return m||d?D.createElement(D.Fragment,{key:S},D.createElement(Jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&D.createElement(D.Fragment,null,C)):D.createElement(D.Fragment,{key:S},u<=Mr||u>Mr&&g<Mr-1?D.createElement(D.Fragment,null,D.createElement(Jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&D.createElement(D.Fragment,null,C)):g===Mr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:Io()},C,r.map((h,T)=>{let k=`image-${T}`;return T>=g&&D.createElement(D.Fragment,{key:k},D.createElement(Jo,{content:h.swapper.displayName,src:h.swapper.image,state:h.state,open:!1}),T!==u-1&&D.createElement(D.Fragment,null,C))}))},D.createElement($a,{state:r.find((h,T)=>T>=g&&(h.state==="error"||h.state==="warning"))?.state},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",u-g))))})),D.createElement("div",{className:Io()},D.createElement("div",{className:"blockchains_section"},D.createElement("div",{className:Io()},D.createElement(Wr,{variant:"body",size:"xsmall"},Vu.t("Chains:")),D.createElement(Fa,{direction:"horizontal",size:4}),c.map((f,g)=>D.createElement(D.Fragment,{key:f.displayName},c.length<=Lr||c.length>Lr&&g<Lr-1?D.createElement(Br,{container:p,side:"bottom",content:f.displayName,sideOffset:4},D.createElement(Jo,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===Lr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:Io()},c.map((S,C)=>C>=g&&D.createElement(Jo,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},D.createElement($a,{className:"blockchainImage"},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",c.length-g))))),D.createElement(Fa,{direction:"horizontal",size:32}))),D.createElement(_a,{orientation:a?"up":"down"},D.createElement(XS,{size:12,color:"black"}))))}i(ju,"QuoteTrigger");function Ua(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:d=!1,container:m}=t,f=y().blockchains(),g=y().tokens(),S=y().swappers(),{customSlippage:C,slippage:h}=y(),T=C||h,[k,v]=rC(t.expanded),E=nC(null),b=N(o.value,6,6),x=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",I=Je(o.usdValue,n.usdValue??null),W=N(I,2,2),L=wt(I??0),Q=i((me,he)=>me.map((_,ze)=>{let P,j=r?.type===3&&r.swap.swapperId===_.swapperId,ie=r?.type===4&&r.recommendedSlippages?.has(ze),Ne=a?.type===2&&a.recommendedSlippages?.has(ze),Ge=j||ie,We=Ne;Ge?P="error":We&&(P="warning");let _e=Ge?ro.t("Slippage Error"):ro.t("Slippage Warning");return j&&(_e=ro.t("Bridge Limit Error")),{swapper:{displayName:Oo(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ye(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:ze===0&&!he?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:pe(ze===0?o.value:_.fromAmount),realUsdValue:pe(new Oa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Ye(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:pe(_.toAmount),realUsdValue:pe(new Oa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:P,alerts:Ge||We?$.createElement(hu,{dense:d},$.createElement(ZS,{variant:"alarm",type:Ge?"error":"warning",title:_e,footer:$.createElement(yu,null,j&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(ie||Ne)&&!j&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(ze)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(ze)}}})),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:$o(_.estimatedTimeInSeconds),fee:N(Fi(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),M=Q(e?.swaps??[]),V=M.length,Y=m||B(),re=Mp(t.quote.tags||[]),H=!!c,A=$o(vn(e?.swaps)),te=zn(e?.swaps??[],g),q=N(te,2,2),Z=te.gte(new Oa(rp));return d?$.createElement(JS,{selected:l,fee:q,time:A,tooltipContainer:Po(),steps:M,tags:re,feeWarning:Z,percentageChange:W,warningLevel:L,outputPrice:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):$.createElement(wu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:vu()},!p&&re.length?$.createElement($.Fragment,null,$.createElement(Lu,null,re.map((me,he)=>{let _=`${me.value}_${he}`;return $.createElement($.Fragment,{key:_},$.createElement(eC,{label:me.label,value:me.value}),$.createElement(Eo,{size:4,direction:"horizontal"}))})),$.createElement(xr,null),!H&&$.createElement(Eo,{size:4})):null,$.createElement("div",{id:"portal-root",className:xu()},$.createElement(Du,{quote:e,time:A,fee:q,feeWarning:Z,showModalFee:u,steps:V}),H&&$.createElement(ku,{onClick:me=>{me.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Ao,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},ro.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:bu()},$.createElement(Wu,null,$.createElement(RS,{size:12,color:"gray"})),$.createElement(Mu,null,$.createElement(Pa,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),$.createElement(Xu,{content:pe(n.value),container:Y,open:n.value?void 0:!1},$.createElement(Pa,{size:"small",variant:"body"},"\xA0",`${x} ${M[M.length-1].to.token.displayName}`))),$.createElement(Xu,{content:pe(n.usdValue),container:Y},$.createElement(Eo,{size:2,direction:"horizontal"}),$.createElement(Ao,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(oC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)},token:{displayName:M[V-1].to.token.displayName,image:M[V-1].to.token.image},chain:{image:M[V-1].to.chain.image},percentageChange:W,warningLevel:L}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Yo,{from:M[0].from,to:M[V-1].to,percentageChange:W,warningLevel:L}),$.createElement(Eo,{size:4}))),$.createElement(Cu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(ju,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:M}),$.createElement(Au,{open:k},$.createElement(Nu,null),$.createElement("div",{className:Tu()},M.map((me,he)=>{let _=`item-${he}`;return $.createElement(tC,{type:"quote-details",key:_,tooltipContainer:Y,step:me,hasSeparator:he!==M.length-1,state:me.state})})))))}i(Ua,"Quote");import{Divider as lC,Skeleton as pC}from"@rango-dev/ui";import It from"react";import{darkTheme as iC,styled as _r}from"@rango-dev/ui";var Ku=_r("div",{$$color:"$colors$neutral100",[`.${iC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Yu=_r("div",{paddingTop:"$2"}),Zu=_r("div",{paddingLeft:"$8"}),Ju=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as lm,Divider as pt,Skeleton as Xe}from"@rango-dev/ui";import z from"react";import{css as aC,styled as bt}from"@rango-dev/ui";var za=bt("div",{display:"flex"}),Ru=bt("div",{padding:"$10 $0 $20"}),em=bt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),tm=bt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),om=bt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),nm=bt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),rm=bt("div",{width:"65%",display:"flex",justifyContent:"start"}),im=bt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),am=bt("div",{padding:"$15 $0 $15 $0"}),sm=aC({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ro(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(om,null,z.createElement(rm,null,z.createElement(lm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{size:8,direction:"horizontal"}),z.createElement(im,null,z.createElement(Xe,{height:10,width:60,variant:"rounded"}),z.createElement(pt,{size:4}),z.createElement(Xe,{height:15,variant:"rounded"}))),z.createElement(Xe,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(za,null,z.createElement(Xe,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Xe,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Xe,{width:65,height:20,variant:"rounded"})),z.createElement(xr,null),!r&&z.createElement(pt,{size:4})),z.createElement("div",{className:sm()},z.createElement(za,null,z.createElement(Xe,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Xe,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Xe,{width:60,height:10,variant:"rounded"})),r&&z.createElement(Xe,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Ru,null,z.createElement(Xe,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(em,null,z.createElement(tm,null,z.createElement(lm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{direction:"horizontal",size:4}),z.createElement(Xe,{height:15,width:150,variant:"rounded"})),z.createElement(pt,{size:10}),z.createElement(Xe,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(pt,{size:4}),z.createElement(am,null,n,z.createElement(nm,null),n),z.createElement(pt,{size:12})))}i(Ro,"QuoteSummarySkeleton");import{ChainToken as dm,Divider as Qa,NextIcon as sC,Skeleton as Pr}from"@rango-dev/ui";import ke from"react";import{styled as en}from"@rango-dev/ui";var pm=en("div",{display:"flex",alignItems:"start"}),cm=en("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),qa=en("div",{display:"flex",alignItems:"center",flexGrow:1}),um=en("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),mm=en("div",{display:"flex",alignItems:"center"});function yt(t){let{separator:e=!0}=t;return ke.createElement(ke.Fragment,null,ke.createElement(mm,null,ke.createElement(Pr,{height:22,width:22,variant:"circular"}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:15,width:148,variant:"rounded"})),ke.createElement(pm,null,ke.createElement(Ju,{hideSeparator:!e}),ke.createElement(cm,{extraSpace:e},ke.createElement(qa,null,ke.createElement(dm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:12,variant:"rounded"})),ke.createElement(um,null,ke.createElement(sC,{color:"gray",size:16})),ke.createElement(qa,null,ke.createElement(dm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:12,variant:"rounded"})))))}i(yt,"StepSkeleton");function tn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return It.createElement(Ku,{expanded:o,rounded:e!=="basic"},It.createElement(Ro,{type:e,tagHidden:n}),It.createElement(Yu,null,It.createElement(pC,{height:15,variant:"rounded"})),o&&It.createElement(Zu,null,It.createElement(lC,{size:24}),It.createElement(yt,null),It.createElement(yt,null),It.createElement(yt,{separator:!1})))}i(tn,"QuoteSkeleton");function io(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:d,fullExpandedMode:m=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=X(),h=e?.outputAmount?new cC(e?.outputAmount):null,T=e?.outputAmount?Qn(e?.outputAmount,Gn(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?$r.createElement(Ba,null,$r.createElement(tn,{tagHidden:l,type:o,expanded:s})):v?$r.createElement(Ba,{onClick:()=>p?.(e)},$r.createElement(Ua,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:m,input:{value:g,usdValue:S?.toString()??""},output:{value:h?.toString()??"",usdValue:T?.toString()??""}})):null}i(io,"QuoteInfo");import{calculatePendingSwap as fC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as gC}from"react";import{useRef as uC,useState as mC}from"react";var dC=2e3;function Dr({request:t}){let[e,o]=mC(!1),n=uC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,dC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Dr,"useFetch");function fm(){let{fetch:t,loading:e,cancelFetch:o}=Dr({request:async(n,r)=>await _t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(fm,"useFetchConfirmQuote");function Fr(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ha(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Fr,"throwErrorIfResponseIsNotValid");function Ha(t){if(sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=lp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=mp(t);if(o){let n=qn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ha,"getQuoteError");function gm(t,e,o){let n=!1;t&&(n=Ep(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=uo(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Sp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(co(e)),percentageChange:N(Je(co(t)??"",co(e)??""),null,2)}:Ui(t,e)?r.quoteUpdate={type:0}:zi(t,e)?r.quoteUpdate={type:1}:qi(t,e)&&(r.quoteUpdate={type:2}));let s=Cp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(gm,"generateWarnings");function Or(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(Or,"handleQuoteErrors");function Ga(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=X(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),d=y().blockchains(),m=y().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:C}=fm();return gC(()=>S,[]),{loading:C,fetch:i(async T=>{let k=T.selectedWallets,v=T?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let E=k.reduce((x,w)=>(x[w.chain]=w.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await g(b,!0).then(x=>{let{result:w}=x;Fr({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let I={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(I);let W={slippage:f.toString(),disabledSwappersGroups:c},L=gm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});L.quoteUpdate&&s(!1),l();let Q=!!L.balance,M=fC(o.toString(),w,hp(k),W,!Q,{blockchains:d,tokens:m});return{quote:I,swap:M,error:null,warnings:L}})}catch(x){return Or(x)}},"fetch"),cancelFetch:S}}i(Ga,"useConfirmSwap");var xC=SC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${ym}`]:{width:"$48",height:"$48"}}),bC=Xa({flexGrow:1,paddingRight:"$10"}),IC=Xa({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),EC=Xa({display:"flex",justifyContent:"space-between",alignItems:"center"});function Sm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=X(),s=vC(),[l,p]=on(""),u=!n,[c,d]=on(!1),[m,f]=on(!1),{isActiveTab:g}=ne(),S=y().getDisabledLiquiditySources(),C=wC(S),{manager:h}=hC(),{fetch:T,loading:k,cancelFetch:v}=Ga(),[E,b]=on({swap:null,error:null,warnings:null}),[x,w]=on(!1),I=i(async({selectedWallets:H,customDestination:A})=>{let te=await T?.({selectedWallets:H,customDestination:A});return b(te),te},"onConfirmSwap"),W=i(async()=>{if(E.swap&&n)try{await h?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let H=`../${U.swaps}/${E.swap.requestId}`;s(H,{replace:!0}),setTimeout(()=>{e("")},0)}catch(H){p("Error: "+H?.message)}},"addNewSwap"),L=i(async()=>{f(!0),await W(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await L()},"onStartConfirmSwap"),M=i(async()=>{b({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(H=>{b(H)}).catch(H=>console.error(H))},"onRefresh");Ur(()=>{!!C.current.length&&!S.length&&M(),C.current=S},[S.length]),Ur(()=>{u&&v()},[u]),Ur(()=>{u&&d(u)},[u]),Ur(()=>{u||T({selectedWallets:o,customDestination:r}).then(H=>b(H)).catch(H=>console.error(H))},[]),kC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=E.warnings?.quote??null,Y=E.error,re=[];if(l&&re.push(we.createElement(hm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&re.push(we.createElement(hm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Kn(E.warnings.quoteUpdate)})),V||Y){let H=`../${U.settings}`;re.push(we.createElement(Xo,{warning:V,error:Y,couldChangeSettings:!1,refetchQuote:M,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await W()},onChangeSettings:()=>s(H)}))}return we.createElement(le,{header:{title:Va.t("Confirm Swap"),onWallet:()=>{let H=`../${U.wallets}`;s(H)}},footer:we.createElement(xC,null,we.createElement("div",{className:bC()},we.createElement(yC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:Q},Va.t("Start Swap"))),we.createElement(ym,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},we.createElement(TC,{size:24})))},c&&we.createElement(Zc,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),we.createElement(ue,null,we.createElement("div",{className:EC()},we.createElement(CC,{variant:"title",size:"small"},Va.t("You get")),we.createElement("div",{className:IC()},we.createElement(lr,{onClick:!k&&!c&&!x?M:void 0}))),we.createElement(ja,{size:"12"}),Rp(re.map((H,A)=>({element:H,key:`alert-${A}`})),we.createElement(ja,{size:10})),re.length>0?we.createElement(ja,{size:10}):null,we.createElement(io,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(Sm,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as QC}from"@rango-dev/queue-manager-react";import{Divider as Nm,NotFound as HC,styled as GC}from"@rango-dev/ui";import At,{useState as VC}from"react";import{useNavigate as jC}from"react-router-dom";import{i18n as WC}from"@lingui/core";import{Divider as vm,GroupedVirtualizedList as MC,Skeleton as LC,SwapListItem as xm,Typography as BC}from"@rango-dev/ui";import Oe,{useCallback as bm,useEffect as _C,useRef as PC,useState as $C}from"react";function Cm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Cm,"calculateGroupsSoFar");import{css as AC,darkTheme as NC,styled as nn}from"@rango-dev/ui";var Ka=AC(),Tm=nn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ya=nn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ka}`]:{$$color:"$colors$neutral600",[`.${NC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Za=nn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),km=nn("div",{gap:"$10",display:"flex",flexDirection:"column"}),wm=nn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var DC=10;function Ja(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=$C([]),l=PC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=bm(Cm,[]),m=bm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,DC),s(d(u,l.current)))},[e.length]);if(_C(()=>{r||m()},[r,m]),r){let f=[1,2];return Oe.createElement(Oe.Fragment,null,[f,f].map((S,C)=>Oe.createElement(Ya,{key:C},Oe.createElement(Za,null,Oe.createElement(LC,{variant:"text",width:60,size:"small"}),Oe.createElement(vm,{size:16})),Oe.createElement(vm,{size:4}),Oe.createElement(km,null,S.map((T,k)=>Oe.createElement(xm,{isLoading:!0,key:k}))))))}return Oe.createElement(MC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>Oe.createElement(Ya,null,Oe.createElement(Za,null,Oe.createElement(BC,{variant:"label",size:"medium",className:Ka()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],h=S.steps[S.steps.length-1];return Oe.createElement(Tm,{key:S.requestId},Oe.createElement(xm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===WC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:pe(S.inputAmount)},to:{token:{image:h.toLogo,displayName:h.toSymbol},blockchain:{image:h.toBlockchainLogo||""},amount:N(h.outputAmount||h.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(h.outputAmount||h.expectedOutputAmountHumanReadable)}}}))}})}i(Ja,"HistoryGroupedList");import{CloseIcon as OC,IconButton as UC,SearchIcon as zC,TextField as qC}from"@rango-dev/ui";import rn from"react";import{styled as FC}from"@rango-dev/ui";var Im=FC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return rn.createElement(qC,{prefix:rn.createElement(Im,null,rn.createElement(zC,{color:"black"})),suffix:!!s.length&&rn.createElement(UC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},rn.createElement(OC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Et,"SearchInput");import{i18n as zr}from"@lingui/core";import Em from"dayjs";var Am=i(t=>{let e=new Map([["today",{title:zr.t("Today"),swaps:[]}],["week",{title:zr.t("This week"),swaps:[]}],["month",{title:zr.t("This month"),swaps:[]}],["year",{title:zr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Em();t.forEach(p=>{let u=Number(p.creationTime),c=Em(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let d=new Date(u).getFullYear().toString();o(d,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var XC=GC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),KC=i((t,e)=>t?.length?t.filter(o=>dt(o.fromBlockchain,e)||dt(o.toBlockchain,e)||dt(o.toSymbol,e)||dt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Wm(){let t=jC(),{manager:e,state:o}=QC(),n=tt(e).map(({swap:c})=>c),[r,a]=VC(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>dt(c.inputAmount,r)||dt(c.status,r)||KC(c.steps,r)||dt(c.requestId,r)));let u=!p?.length&&!s;return At.createElement(le,{header:{title:qr.t("History")}},At.createElement(ue,null,At.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),At.createElement(Nm,{size:"16"}),At.createElement(XC,null,u&&At.createElement(wm,null,At.createElement(Nm,{size:32}),At.createElement(HC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&At.createElement(Ja,{list:p,onSwapClick:t,groupBy:Am,isLoading:s}))))}i(Wm,"HistoryPage");import{i18n as fT}from"@lingui/core";import{Button as gT,Divider as Xm,styled as hT,WarningIcon as yT}from"@rango-dev/ui";import ST from"bignumber.js";import Qe,{useEffect as Km,useState as Ym}from"react";import{useNavigate as CT}from"react-router-dom";import{i18n as tT}from"@lingui/core";import{Header as oT}from"@rango-dev/ui";import Qt,{useEffect as nT,useState as rT}from"react";import{i18n as ZC}from"@lingui/core";import{Divider as es,FullExpandedQuote as JC,Typography as RC}from"@rango-dev/ui";import fe from"react";import{styled as Ra}from"@rango-dev/ui";var Mm=Ra("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Lm=Ra("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Bm=Ra("div",{width:"146px"});import{i18n as an}from"@lingui/core";import{Select as YC}from"@rango-dev/ui";import _m from"react";function Qr(t){let{updateQuotePartialState:e,sortStrategy:o}=X(),n=[{value:"SMART",label:an.t("Smart Routing")},{value:"FEE",label:an.t("Lowest Fee")},{value:"SPEED",label:an.t("Fastest Transfer")},{value:"NET_OUTPUT",label:an.t("Maximum Return")},{value:"PRICE",label:an.t("Maximum Output")}];return _m.createElement(Bm,null,_m.createElement(YC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Qr,"SelectStrategy");var Pm=3;function sn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:d,toToken:m,sortStrategy:f,error:g}=X(),{slippage:S,customSlippage:C}=y(),h=y().tokens(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(w=>{if(!d||!m||!u)return null;let I={requestAmount:u.requestAmount,...w};return uo(I,{fromToken:d,toToken:m,userSlippage:v,tokens:h})},"getQuoteWarning"),b=g?.type===0||g?.type===1,x=u?.results?Vn(f,u?.results):[];return fe.createElement(fe.Fragment,null,a&&fe.createElement(fe.Fragment,null,fe.createElement(Lm,null,fe.createElement(RC,{size:"xmedium",variant:"title"},ZC.t("Sort by")),fe.createElement(Qr,{container:T})),fe.createElement(es,{size:"10"})),e&&Array.from({length:Pm},(w,I)=>fe.createElement(fe.Fragment,{key:I},s?fe.createElement(JC,{loading:!0}):fe.createElement(tn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==Pm-1&&fe.createElement(es,{size:16}))),!e&&fe.createElement(fe.Fragment,null,k?x.map((w,I)=>{let W=E(w),L=Ha(w.swaps),Q=x.length-1===I;return fe.createElement(fe.Fragment,{key:w.requestId},fe.createElement(io,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:L?.options||null,warning:W,fullExpandedMode:s,onClick:M=>{L||c("warning",W),c("error",L?.options||null),o(M)},type:"list-item"}),!Q&&fe.createElement(es,{size:16}))}):b&&fe.createElement(Mm,null,fe.createElement(Vo,{size:s?"large":"small",error:g,fetch:n}))))}i(sn,"Quotes");import{darkTheme as eT,styled as $m}from"@rango-dev/ui";var Dm=$m("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${eT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Fm=$m("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var iT=100;function ts(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=rT(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",d=Po();return nT(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},iT):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),Qt.createElement(Dm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${ur()}`,id:ye.EXPANDED_BOX_ID},Qt.createElement(oT,{title:tT.t("Routes"),suffix:Qt.createElement(Qt.Fragment,null,Qt.createElement(Qr,{container:d}),Qt.createElement(eo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Qt.createElement(Fm,null,Qt.createElement(sn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Po(),onClickOnQuote:n,fullExpandedMode:c})))}i(ts,"ExpandedQuotes");import{i18n as Gm}from"@lingui/core";import{SwapInput as Vm}from"@rango-dev/ui";import ln from"react";import{ReverseIcon as lT}from"@rango-dev/ui";import ns from"react";import{keyframes as aT,styled as Om}from"@rango-dev/ui";var os=450,sT=aT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Um=Om("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),zm=Om("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${sT} ${os}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function rs(){let t=X.use.switchFromAndTo();return ns.createElement(Um,null,ns.createElement(zm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},os),t()}},ns.createElement(lT,{size:12})))}i(rs,"SwitchFromAndToButton");import{styled as qm}from"@rango-dev/ui";var Qm=qm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Hm=qm("div",{position:"relative"});function is(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:d,outputAmount:m,outputUsdValue:f,selectedQuote:g}=X(),{connectedWallets:S,getBalanceFor:C}=R(),h=a?C(a):null,T=Nn(h)?.amount??"0",k=s&&a?N(h?.amount,h?.decimals):"0",v=!!s&&Al(S,s.name),E=!Di(g,c,d),b=!Di(g,c,f),x=!d||!f||!f.gt(0)?null:Je(d.toString(),f.toString());return ln.createElement(Qm,null,ln.createElement(Hm,null,ln.createElement(Vm,{label:Gm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(d,4,4),realUsdValue:E?void 0:pe(d),error:E?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),ln.createElement(rs,null)),ln.createElement(Vm,{sharpBottomStyle:!r&&(!!g||e),label:Gm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Je(d,f),2,2),warningLevel:wt(x??0),price:{value:N(m,6,6),usdValue:b?void 0:N(f,4,4),realValue:pe(m),realUsdValue:b?void 0:pe(f),error:b?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(is,"Inputs");import{useCallback as pT,useEffect as cT,useRef as uT,useState as mT}from"react";function jm(){let{fetch:t,loading:e,cancelFetch:o}=Dr({request:async(n,r)=>await _t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(jm,"useFetchAllQuotes");var dT=600;function Hr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=jm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=R.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:C,setSelectedQuote:h,updateQuotePartialState:T}=X(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=y(),I=y().getLiquiditySources(),W=y().getDisabledLiquiditySources(),L=y().excludeLiquiditySources(),[Q,M]=mT(!0),V=uT(c),Y=v??k,H=!p||!u||$e(p,u)||!Do(c),A=i(Z=>{M(Z)},"resetState"),te=i(Z=>{let{fromToken:me,toToken:he,inputAmount:_,liquiditySources:ze,excludeLiquiditySources:P,disabledLiquiditySources:j,slippage:ie,affiliateRef:Ne,affiliatePercent:Ge,affiliateWallets:We}=Z;if(Q||A(!0),!H&&me&&he){g();let _e=gp({fromToken:me,toToken:he,inputAmount:_,liquiditySources:ze,excludeLiquiditySources:P,disabledLiquiditySources:j,wallets:s,slippage:ie,affiliateRef:Ne,affiliatePercent:Ge,affiliateWallets:We,enableCentralizedSwappers:a});zl("experimentalRoute",r)&&(_e.experimental=!0),e(_e).then(Ke=>{let Me=Vn(f,Ke.results),qe=Wp(m,Me,Ke.requestAmount);M(!1),T("quotes",Ke),h(qe),Fr({diagnosisMessages:Ke.diagnosisMessages,requestId:qe?.requestId||"",swaps:qe?.swaps});let Cn=qe&&uo(qe,{fromToken:me,toToken:he,userSlippage:Y,tokens:l});T("warning",Cn)}).catch(Ke=>{let{error:Me}=Or(Ke);(Me?.type===0||Me?.type===1)&&g(),Me?.type!==2&&(T("error",Me),M(!1))})}},"fetch"),q=pT(fl(Z=>{te(Z)},dT),[H]);return cT(()=>{if(!t){M(!1);return}if(w!=="success")return;if(H){M(!1),(m||S||C)&&g();return}if(!Do(c)||d?.eq(0)){A(!1),o();return}g(),A(!0);let Z=te;return V.current&&V.current!=c&&(Z=q),V.current=c,Z({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,H,I?.length,n,W.length,Y,b,E,JSON.stringify(x)]),{fetch:()=>te({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:Q}}i(Hr,"useSwapInput");var TT=hT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),kT=300;function Zm(){let t=CT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:d,updateQuotePartialState:m}=X(),[f,g]=Ym(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Nr(),{fetch:h,loading:T}=Hr({refetchQuote:a}),{config:k,fetchStatus:v}=y(),{connectedWallets:E}=R(),{isActiveTab:b}=ne(),[x,w]=Ym(!1),W=pp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=Pl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new ST(n).gt(0)&&!xp(e,o),M=Q&&v==="success"&&T,re=(!L||L&&p?.results.length)&&(l||s);Km(()=>{c(),m("refetchQuote",!0)},[]),Km(()=>{g(Q)},[Q]);let H=(r||s)&&!x?h:void 0,A=i(q=>{L&&f?(g(!1),setTimeout(()=>{t(q)},kT)):t(q)},"onHandleNavigation"),te=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return Qe.createElement(TT,null,Qe.createElement(le,{height:"auto",footer:Qe.createElement(gT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Qe.createElement(yT,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?A(U.wallets):W.action==="confirm-warning"?w(!0):A(U.confirmSwap)}},W.title),header:{onWallet:()=>{A(U.wallets)},hasBackButton:!1,title:k.title||fT.t("Swap"),suffix:Qe.createElement(eo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>A(U.swaps),onClickSettings:()=>{A(U.settings)}})}},Qe.createElement(ue,null,Qe.createElement(is,{fetchingQuote:M,fetchMetaStatus:v,isExpandable:L,onClickToken:q=>{A(q==="from"?U.fromSwap:U.toSwap)}}),Qe.createElement(Xm,{size:"2"}),L?null:Qe.createElement(io,{quote:r,loading:M,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{m("refetchQuote",!1),A(U.routes)}:void 0}),re?Qe.createElement(Qe.Fragment,null,Qe.createElement(Xm,{size:"10"}),Qe.createElement(Xo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:h,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),A(U.confirmSwap)},onChangeSettings:()=>A(U.settings)})):null)),L?Qe.createElement(ts,{loading:M,onClickOnQuote:te,fetch:h,onClickRefresh:H,isVisible:f}):null)}i(Zm,"Home");import{i18n as Jm}from"@lingui/core";import{Alert as wT,Divider as vT,List as xT,ListItemButton as bT,Radio as IT,RadioRoot as ET,Typography as AT}from"@rango-dev/ui";import St from"react";function Ht(){let{setLanguage:t,language:e,config:o}=y(),n=Ql,r=o?.language||Uo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Uo),resetLanguage:()=>t(null)}}i(Ht,"useLanguage");function Rm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Ht(),n=et(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:St.createElement(AT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:St.createElement(IT,{value:s}),start:St.createElement(p,null)}});return St.createElement(le,{header:{title:Jm.t("Language")}},St.createElement(ue,null,St.createElement(wT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),St.createElement(vT,{size:"8"}),St.createElement(ET,{value:t},St.createElement(xT,{type:St.createElement(bT,{title:Jm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Rm,"LanguagePage");import{i18n as Nt}from"@lingui/core";import{Button as BT,Checkbox as _T,Image as PT,ListItemButton as $T,NotFound as DT,Typography as FT}from"@rango-dev/ui";import Ue,{useState as OT}from"react";import{Checkbox as MT,Skeleton as td}from"@rango-dev/ui";import cn from"react";import{styled as as}from"@rango-dev/ui";var pn=as("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ss=as("div",{width:80,display:"flex",justifyContent:"flex-end"}),ls=as("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as NT,styled as WT}from"@rango-dev/ui";var ed=WT(NT,{height:61});var LT=30;function ps(){return cn.createElement(pn,null,Array.from(Array(LT),(t,e)=>cn.createElement(ed,{hasDivider:!0,key:e,start:cn.createElement(td,{variant:"circular",width:35,height:35}),title:cn.createElement(td,{variant:"text",size:"large",width:90}),end:cn.createElement(MT,{checked:!1})})))}i(ps,"LoadingLiquiditySourceList");function cs({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=OT(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=_n(o,n),u={Exchanges:Nt.t("Exchanges"),Bridges:Nt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(h=>c.includes(h.type)),m=d.length===d.filter(h=>h.selected).length,f=i(()=>{d.forEach(h=>{m?s(h.groupTitle):h.selected||s(h.groupTitle)})},"toggleAllSources"),g=d.map(h=>{let{selected:T,groupTitle:k,logo:v}=h;return{start:Ue.createElement(PT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ue.createElement(_T,{checked:T,disabled:l}),title:Ue.createElement(FT,{variant:"title",size:"xmedium"},Nt.t(k)),...h}}),S=i(h=>{let T=h.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(h=>dt(h.groupTitle,r))),Ue.createElement(le,{header:{title:Nt.t(t),suffix:Ue.createElement(ss,null,Ue.createElement(BT,{variant:"ghost",size:"xsmall",onClick:f},m?Nt.t("Deselect all"):Nt.t("Select all")))}},Ue.createElement(ue,{view:!0},Ue.createElement(Et,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Nt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Ue.createElement(ps,null),!C.length&&r?Ue.createElement(ls,null,Ue.createElement(DT,{title:Nt.t("No results found"),description:Nt.t("Try using different keywords")})):e==="success"&&Ue.createElement(pn,{disabled:l},C.map(h=>{let{groupTitle:T,...k}=h;return Ue.createElement(Ue.Fragment,{key:h.id},Ue.createElement($T,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(cs,"LiquiditySourcePage");import{i18n as UT}from"@lingui/core";import Gr from"react";import{useNavigate as zT}from"react-router-dom";function od(){let t=zT(),e=et(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=X(),{fetch:l,loading:p}=Hr({refetchQuote:n}),u=i(m=>{r(m),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${U.settings}`,d=`../${U.wallets}`;return Gr.createElement(le,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:UT.t("Routes"),suffix:Gr.createElement(eo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Gr.createElement(ue,null,Gr.createElement(sn,{fetch:l,loading:p,onClickOnQuote:u})))}i(od,"RoutesPage");import{i18n as cd}from"@lingui/core";import{Divider as ud,getCategoriesCount as YT,SelectableCategoryList as ZT}from"@rango-dev/ui";import Wt,{useState as md}from"react";import{i18n as us}from"@lingui/core";import{Divider as ld,Image as GT,ListItemButton as VT,NotFound as jT,Typography as pd}from"@rango-dev/ui";import ot,{useEffect as XT,useState as KT}from"react";var nd=i((t,e,o)=>t.filter(n=>wn(n.type,o)).filter(n=>Tt(n.name,e)||Tt(n.displayName,e)),"filterBlockchains");import{ImageContainer as qT,styled as rd}from"@rango-dev/ui";var id=rd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vr=rd(Ho,{padding:0,margin:0,listStyle:"none",[`& ${qT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as QT,Skeleton as ad}from"@rango-dev/ui";import jr from"react";var HT=20;function sd(){return jr.createElement(Vr,null,Array.from(Array(HT),t=>jr.createElement(QT,{key:t,hasDivider:!0,start:jr.createElement(ad,{variant:"circular",width:35,height:35}),title:jr.createElement(ad,{variant:"text",size:"large",width:90})})))}i(sd,"LoadingBlockchainList");function ms(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=KT(e),{fetchStatus:l}=y();XT(()=>{s([...nd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?ot.createElement(ot.Fragment,null,ot.createElement(ld,{size:32}),ot.createElement(jT,{title:us.t("No results found"),description:us.t("Try using different keywords")})):ot.createElement(Vr,{as:"ul",key:`${r}-${o}`},a.map(u=>ot.createElement(VT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:ot.createElement(GT,{src:u.logo,size:30}),title:ot.createElement(pd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return ot.createElement(id,null,ot.createElement(pd,{variant:"label",size:"large"},us.t("Select Blockchain")),ot.createElement(ld,{size:4}),l==="loading"&&ot.createElement(sd,null),l==="success"&&p())}i(ms,"BlockchainList");function ds(t){let{type:e}=t,o=et(),[n,r]=md(""),[a,s]=md("ALL"),l=X.use.setToBlockchain(),p=X.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),m=YT(c)!==1;return Wt.createElement(le,{header:{title:cd.t("Select Blockchain")}},Wt.createElement(ue,{view:!0},m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(ZT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Wt.createElement(ud,{size:24})),Wt.createElement(Et,{value:n,autoFocus:!0,placeholder:cd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Wt.createElement(ud,{size:16}),Wt.createElement(ms,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ds,"SelectBlockchainPage");import{i18n as Jr}from"@lingui/core";import{Divider as Bd}from"@rango-dev/ui";import ao,{useState as fk}from"react";import{useNavigate as gk}from"react-router-dom";import{i18n as hs}from"@lingui/core";import{BlockchainsChip as Xr,Divider as hd,Image as yd,Skeleton as ok,Tooltip as nk,Typography as ys}from"@rango-dev/ui";import Ee from"react";import{useEffect as ek}from"react";var dd=["ETH","COSMOS","OSMOSIS"];function fs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(JT),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(RT(s)),r=n.splice(a)}return{list:n,more:r}}i(fs,"prepare");function JT(t,e){let o=dd,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(JT,"sortByMostUsedBlockchains");function RT(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(RT,"generateSortByPreferredBlockchainsFor");function fd(t,e){return!!e.list.find(o=>o.name===t)}i(fd,"isInVisibleList");function gs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();ek(()=>{if(e?.selected){let a=fs(t,o,e);fd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=fs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(gs,"usePrepareBlockchainList");import{styled as tk}from"@rango-dev/ui";var gd=tk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var rk=12;function Ss(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=gs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=X.use.resetToBlockchain(),u=X.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,m=!d&&c;return Ee.createElement(Ee.Fragment,null,Ee.createElement(hd,{size:12}),Ee.createElement(ys,{variant:"label",size:"large"},hs.t("Select Blockchain")),Ee.createElement(hd,{size:12}),Ee.createElement(gd,null,l==="loading"&&Array.from(Array(rk),f=>Ee.createElement(ok,{key:f,variant:"rounded",height:50})),l==="success"&&Ee.createElement(Ee.Fragment,null,Ee.createElement(Xr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ee.createElement(ys,{variant:"body",size:"xsmall",color:"secondary500"},hs.t("All"))),s.list.map(f=>Ee.createElement(nk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},Ee.createElement(Xr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ee.createElement(yd,{src:f.logo,size:30})))),d?Ee.createElement(Xr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ee.createElement(yd,{src:s.more[0].logo,size:30})):null,m?Ee.createElement(Xr,{onClick:a,key:"more-blockchains"},Ee.createElement(ys,{variant:"body",size:"xsmall",color:"secondary500"},hs._("More +{count}",{count:s.more.length}))):null)))}i(Ss,"BlockchainsSection");import{i18n as As}from"@lingui/core";import{darkTheme as Ad,Divider as Wo,ExternalLinkIcon as sk,Image as lk,ListItemButton as pk,NotFound as ck,PinIcon as uk,Skeleton as Nd,Typography as Zr,VirtualizedList as mk}from"@rango-dev/ui";import G,{useEffect as Wd,useState as Md}from"react";import{Divider as Id,ListItem as ak,Skeleton as un}from"@rango-dev/ui";import ct from"react";import{css as No,darkTheme as Sd,ImageContainer as ik,styled as nt,Typography as Cd}from"@rango-dev/ui";var Cs=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ts=No({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ks=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ws=No({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Sd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),vs=No({}),xs=No(),Td=nt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),bs=nt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kr=nt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ts}`]:{[`& .${ws}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${vs}`]:{bottom:"-15px"},[`& .${Cs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ks}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Is=nt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Es=nt(Cd,{}),kd=nt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${xs}`]:{$$color:"$colors$neutral600",[`.${Sd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yr=nt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),FO=nt("div",{display:"flex",alignItems:"center"}),wd=nt("div",{position:"relative",[`& ${ik}`]:{borderRadius:"$xm",overflow:"hidden"}}),vd=nt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),xd=nt(Cd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),bd=nt("a",{"& svg:hover":{color:"$colors$info"}});function Ed(t){return ct.createElement(Kr,null,Array.from(Array(t.size),e=>ct.createElement(ak,{key:e,hasDivider:!0,start:ct.createElement(un,{variant:"circular",width:35,height:35}),end:ct.createElement(Yr,null,ct.createElement(un,{variant:"text",size:"large",width:70}),ct.createElement(Id,{size:4}),ct.createElement(un,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(un,{variant:"text",size:"large",width:90}),ct.createElement(Id,{size:4}),ct.createElement(un,{variant:"text",size:"medium",width:90}))})))}i(Ed,"LoadingTokenList");var Ns=20,dk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:Ts()},o?G.createElement("div",{className:Cs()},o):G.createElement(bs,{className:ks()},G.createElement(Zr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(Is,{css:a},G.createElement(Es,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${ws()} ${!o&&vs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Wo,{size:4,direction:"horizontal"}),G.createElement(bd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(sk,{size:12}))))},"renderDesc");function Ld(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Md(e),l=y().fetchStatus,p=y().blockchains(),[u,c]=Md(!0),{getBalanceFor:d,loading:m}=R(),{isTokenPinned:f}=y(),g=i(()=>{s(e.slice(0,a.length+Ns))},"loadNextPage");Wd(()=>{c(e.length>a.length)},[a.length]),Wd(()=>{s(e.slice(0,Ns))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Wo,{size:32}),G.createElement(ck,{title:As.t("No results found"),description:As.t("Try using different keywords")})):G.createElement(mk,{endReached:u?g:void 0,itemContent:C=>{let h=a[C],T=Nn(d(h)),k=h.address||"",v=p.find(I=>I.name===h.blockchain),E=nr(v?.color||"",Zp(v?.color||"")?5:125),b=nr(v?.color||"",-100),x={$$color:E,[`.${Ad} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${Ad} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(pk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${h.symbol}${h.address}`,id:`${h.symbol}${h.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:G.createElement(wd,null,G.createElement(lk,{src:h.image,size:30}),f(h,t.type)&&G.createElement(vd,null,G.createElement(uk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||h.name||!h.name&&!k?G.createElement(bs,null,G.createElement(Zr,{variant:"title",size:"xmedium"},h.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(Is,{css:x},G.createElement(Es,{variant:"body",size:"xsmall",css:w},h.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?dk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:w,name:h.name,url:v.info.addressUrl.split("{wallet}").join(k)}):h.name||void 0,end:m?G.createElement(Yr,null,G.createElement(Nd,{variant:"text",size:"large",width:70}),G.createElement(Wo,{size:4}),G.createElement(Nd,{variant:"text",size:"medium",width:50})):T&&G.createElement(kd,null,G.createElement(xd,{variant:"title",size:"small"},T.amount),G.createElement("div",null),T.usdValue&&G.createElement(Zr,{variant:"body",className:xs(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(Td,null,G.createElement(Zr,{variant:"label",size:"large"},As.t("Select Token")),G.createElement(Wo,{size:4}),l==="loading"&&G.createElement(Ed,{size:Ns}),l==="success"&&G.createElement(Kr,{as:"ul"},S()))}i(Ld,"TokenList");function Ws(t){let{type:e}=t,o=gk(),n=et(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=X(),c=R.use.getBalanceFor(),[d,m]=fk(""),g=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),h=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:Jr.t("Source"),destination:Jr.t("Destination")};return ao.createElement(le,{header:{title:Jr.t("Swap {type}",{type:k[e]})}},ao.createElement(ue,null,ao.createElement(Ss,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(U.blockchains),onChange:v=>{h(v)}}),ao.createElement(Bd,{size:24}),ao.createElement(Et,{value:d,autoFocus:!0,placeholder:Jr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:v=>m(v.target.value)}),ao.createElement(Bd,{size:16}),ao.createElement(Ld,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{T(v);let E=S.find(b=>v.blockchain===b.name);E&&h(E),n()}})))}i(Ws,"SelectSwapItemsPage");import{i18n as _s}from"@lingui/core";import{Alert as Uk,Button as zk,styled as qk}from"@rango-dev/ui";import so from"react";import{useInRouterContext as Qk,useSearchParams as Hk}from"react-router-dom";import{i18n as Od}from"@lingui/core";import{Divider as Ck,InfoIcon as Tk,TextField as kk,Tooltip as wk,Typography as Ud}from"@rango-dev/ui";import ut from"react";import{Chip as hk,styled as mn,TextField as yk}from"@rango-dev/ui";var _d=mn("div",{paddingTop:"$5",padding:"$10 $5"}),Pd=mn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${yk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),$d=mn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Rr=mn("div",{maxWidth:"280px",padding:"$10"}),Dd=mn(hk,{width:"61px",flexShrink:0});import{i18n as Ms}from"@lingui/core";import{Typography as Sk}from"@rango-dev/ui";import dn from"react";function Fd(){return dn.createElement(Rr,null,dn.createElement(Sk,{variant:"label",size:"medium",color:"neutral700"},Ms.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),dn.createElement("br",null),dn.createElement("br",null),dn.createElement("b",null,Ms.t("Warning")),":",Ms.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Fd,"SlippageTooltipContent");function Ls(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return ut.createElement(_d,null,ut.createElement($d,null,ut.createElement(Ud,{variant:"title",size:"xmedium"},Od.t("Slippage tolerance per swap")),ut.createElement(Ck,{direction:"horizontal",size:4}),ut.createElement(wk,{container:B(),side:"top",sideOffset:4,content:ut.createElement(Fd,null)},ut.createElement(Tk,{color:"gray"}))),ut.createElement(Pd,null,Hl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Dd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(kk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Xl&&s<=jl?n(s):n(null)},suffix:o&&ut.createElement(Ud,{variant:"body",size:"small"},"%"),placeholder:Od.t("Custom")})))}i(Ls,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as zd,BridgesIcon as vk,ChevronRightIcon as Bs,DarkModeIcon as qd,Divider as ei,ExchangeIcon as xk,InfinityIcon as bk,InfoIcon as Ik,LanguageIcon as Ek,LightModeIcon as Qd,List as Ak,ListItem as Nk,ListItemButton as Wk,Skeleton as Mk,styled as Lk,Switch as Bk,Tabs as _k,Tooltip as Pk,Typography as rt}from"@rango-dev/ui";import F from"react";import{useNavigate as $k}from"react-router-dom";var Dk=Lk("div",{width:"202px",height:"$40"}),Fk=[{id:"light",icon:F.createElement(Qd,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:F.createElement(qd,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:F.createElement(zd,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],Ok=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(zd,{...e});case"dark":return F.createElement(qd,{...e});default:return F.createElement(Qd,{...e})}},"getThemeIcon");function Hd(){let t=$k(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Ht(),s=a.find(V=>V.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),d=Ze("theme",c),m=Ze("liquiditySource",c),f=Ze("language",c),g=y().infiniteApprove,S=y().toggleInfiniteApprove,C=_n(p,u),h=C.filter(V=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(V.type)),T=h.length,k=h.filter(V=>V.selected).length,v=C.filter(V=>V.type==="DEX"),E=v.length,b=v.filter(V=>V.selected).length,x=i((V,Y)=>{switch(l){case"loading":return F.createElement(Mk,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(rt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return F.createElement(rt,{variant:"body",size:"medium"},`${V} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:F.createElement(F.Fragment,null,x(k,T),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),onClick:()=>t(U.bridges),start:F.createElement(vk,{color:"gray",size:16})},I={id:"exchange-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:F.createElement(F.Fragment,null,x(b,E),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),start:F.createElement(xk,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:F.createElement(Ek,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(rt,{variant:"body",size:"medium"},s),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),onClick:()=>t(U.languages)},L={id:"infinite-approval-item",title:F.createElement(F.Fragment,null,F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),F.createElement(ei,{direction:"horizontal",size:4}),F.createElement(Pk,{side:"top",sideOffset:4,container:B(),content:F.createElement(Rr,null,F.createElement(rt,{variant:"label",size:"medium",color:"neutral700"},Ct.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.")))},F.createElement(Ik,{color:"gray"}))),start:F.createElement(bk,{color:"gray",size:16}),end:F.createElement(Bk,{checked:g}),onClick:S},Q={id:"theme-item",type:F.createElement(Nk,null),title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:F.createElement(Dk,null,F.createElement(_k,{container:B(),items:Fk,value:n,onChange:V=>o(V.id),type:"primary",borderRadius:"small"})),start:Ok(n)},M=m?[]:[w,I];return f||M.push(W),M.push(L),!e?.singleTheme&&!d&&M.push(Q),F.createElement(Ak,{type:F.createElement(Wk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(Hd,"SettingsLists");var Gk=qk("div",{paddingLeft:"$8"});function Gd(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Hk(),r=Qk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return so.createElement(le,{header:{title:_s.t("Settings")}},so.createElement(ue,null,o&&so.createElement(Uk,{type:"info",variant:"alarm",title:_s.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:so.createElement(Gk,null,so.createElement(zk,{type:"secondary",size:"small",onClick:a},_s.t("Reset")))}),so.createElement(Ls,null),so.createElement(Hd,null)))}i(Gd,"SettingsPage");import{i18n as Mw}from"@lingui/core";import{cancelSwap as Lw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Bw}from"@rango-dev/queue-manager-react";import{Alert as _w}from"@rango-dev/ui";import Zs from"react";import{useParams as Pw}from"react-router-dom";import{i18n as Bt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as dw,getCurrentStep as fw,getRelatedWalletOrNull as gw}from"@rango-dev/queue-manager-rango-preset";import{Button as vf,CopyIcon as hw,Divider as yw,IconButton as Sw,LinkIcon as Cw,QuoteCost as Tw,StepDetails as kw,Typography as lo,useCopyToClipboard as ww}from"@rango-dev/ui";import{useWallets as vw}from"@rango-dev/wallets-react";import xf from"bignumber.js";import{PendingSwapNetworkStatus as pi}from"rango-types";import J,{useEffect as bf,useRef as xw,useState as If}from"react";import{useNavigate as bw}from"react-router-dom";import{i18n as Gt}from"@lingui/core";var Vk=[Gt.t("Sunday"),Gt.t("Monday"),Gt.t("Tuesday"),Gt.t("Wednesday"),Gt.t("Thursday"),Gt.t("Friday"),Gt.t("Saturday")];function Vd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Gt.t("Today"):`${Vk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Vd,"timeSince");function jd(t){return t.finishTime?Vd(parseInt(t.finishTime)):Vd(parseInt(t.creationTime))}i(jd,"getSwapDate");import{PendingSwapNetworkStatus as ni}from"rango-types";import ri from"react";import{i18n as ti}from"@lingui/core";import{Button as Xd,Divider as Ps,MessageBox as jk}from"@rango-dev/ui";import Vt from"react";var Kd=i(({onCancel:t,onClose:e})=>Vt.createElement(Vt.Fragment,null,Vt.createElement(Ps,{size:20}),Vt.createElement(jk,{type:"error",title:ti.t("Cancel Swap"),description:ti.t("Are you sure you want to cancel this swap?")}),Vt.createElement(Ps,{size:32}),Vt.createElement(Xd,{variant:"contained",type:"primary",size:"large",onClick:t},ti.t("Yes, Cancel it")),Vt.createElement(Ps,{size:12}),Vt.createElement(Xd,{variant:"outlined",type:"primary",size:"large",onClick:e},ti.t("No, Continue"))),"CancelContent");import{i18n as oi}from"@lingui/core";import{Button as Yd,Divider as $s,MessageBox as Xk,Typography as Kk}from"@rango-dev/ui";import Mt from"react";var Zd=i(({onDelete:t,onClose:e})=>Mt.createElement(Mt.Fragment,null,Mt.createElement($s,{size:20}),Mt.createElement(Xk,{type:"error",title:oi.t("Delete Transaction"),description:oi.t("Are you sure you want to delete this swap?")}),Mt.createElement($s,{size:32}),Mt.createElement(Yd,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Delete it")),Mt.createElement($s,{size:12}),Mt.createElement(Yd,{variant:"outlined",type:"primary",size:"large",onClick:e},Mt.createElement(Kk,{variant:"title",size:"medium",color:"primary"},oi.t("No, Cancel")))),"DeleteContent");import{i18n as Ds}from"@lingui/core";import{PendingSwapNetworkStatus as Fs}from"rango-types";var Os={[Fs.WaitingForNetworkChange]:{type:"loading",title:Ds.t("Change Network")},[Fs.WaitingForConnectingWallet]:{type:"warning",title:Ds.t("Connect Wallet")},[Fs.NetworkChanged]:{type:"success",title:Ds.t("Network Changed")}};import{debug as ef}from"@rango-dev/logging-core";import{MessageBox as Yk,Wallet as Zk}from"@rango-dev/ui";import{useWallets as Jk}from"@rango-dev/wallets-react";import Mo,{useState as Rk}from"react";import{styled as Jd}from"@rango-dev/ui";var Rd=Jd("div",{display:"flex",justifyContent:"center"}),Iz=Jd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var tf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Jk(),[c,d]=Rk(null),m=n?.walletType,f=m?xi(u(m)):null,g=m?p(m):null;return Mo.createElement(Mo.Fragment,null,Mo.createElement(Yk,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&Mo.createElement(Rd,null,Mo.createElement(Zk,{container:B(),title:g.name,image:g.img,type:m,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?d({providerType:m,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(m).catch(C=>ef(C))}})),Mo.createElement(oo,{open:!!c,onClose:()=>d(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(h=>ef(h)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Us(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ni.WaitingForNetworkChange||e===ni.WaitingForConnectingWallet||e===ni.NetworkChanged;return ri.createElement(oe,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&ri.createElement(tf,{type:Os[e].type,title:Os[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ni.WaitingForNetworkChange}),e==="delete"&&ri.createElement(Zd,{onClose:o,onDelete:n}),e==="cancel"&&ri.createElement(Kd,{onClose:o,onCancel:r}))}i(Us,"SwapDetailsModal");import{i18n as fn}from"@lingui/core";import{Button as zs,Divider as ii,MessageBox as of,TokenAmount as ew,Typography as qs}from"@rango-dev/ui";import Be from"react";import{useNavigate as tw}from"react-router-dom";function Qs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:d,diagnosisUrl:m}=t,f=tw();return Be.createElement(oe,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Be.createElement(of,{type:"success",title:fn.t("Swap Successful")},Be.createElement(ew,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Be.createElement(ii,{size:12}),Be.createElement(qs,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Be.createElement(of,{type:"error",title:fn.t("Transaction Failed"),description:d}),Be.createElement(ii,{size:32}),n==="success"&&Be.createElement(zs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Be.createElement(qs,{variant:"title",size:"medium",color:"neutral100"},fn.t("Done"))),Be.createElement(ii,{size:12}),m&&Be.createElement(Be.Fragment,null,Be.createElement(zs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},fn.t("Diagnosis")),Be.createElement(ii,{size:12})),Be.createElement(zs,{variant:"outlined",type:"primary",size:"large",onClick:o},Be.createElement(qs,{variant:"title",size:"medium",color:"primary"},fn.t("See Details"))))}i(Qs,"SwapDetailsCompleteModal");import mw from"react";import{i18n as lw}from"@lingui/core";import{Alert as Cf,IconButton as pw,LinkIcon as cw}from"@rango-dev/ui";import jt,{Fragment as uw}from"react";import{Alert as rw,ChevronDownIcon as iw,IconButton as aw}from"@rango-dev/ui";import Bo,{useState as sw}from"react";import{css as gn,darkTheme as ow,styled as Lt,Typography as nw}from"@rango-dev/ui";var nf=Lt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ai=Lt("div",{width:"100%"}),rf=Lt(Ho,{padding:"$0 $20 $20 $20"}),lq=Lt("div",{display:"flex",flexDirection:"column",gap:"$10"}),af=Lt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),pq=Lt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Lo=gn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ow} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),sf=gn({padding:"$5 0"}),si=gn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),lf=gn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),pf=gn({width:"100%",padding:"0 $20 $10"}),cf=Lt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),uf=Lt("div",{display:"flex",flexDirection:"column",gap:"$5"}),li=Lt(nw,{wordBreak:"break-word"});import{styled as Hs}from"@rango-dev/ui";var mf=Hs("div",{display:"flex",flexDirection:"column",gap:"$10"}),df=Hs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),ff=Hs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function gf(t){let{message:e}=t,[o,n]=sw(!1);return Bo.createElement(rw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Bo.createElement(aw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Bo.createElement(df,{rotated:o},Bo.createElement(iw,{size:12,color:"gray"}))),footer:Bo.createElement(ff,{open:o},Bo.createElement(li,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(gf,"FailedAlert");import{i18n as hf}from"@lingui/core";import{Alert as Gs,Button as yf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Vs}from"rango-types";import hn from"react";function Sf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?hn.createElement(Gs,{type:"warning",title:n.shortMessage,action:hn.createElement(yf,{size:"xxsmall",type:"warning",onClick:()=>{o(Vs.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},hf.t("Change"))}):r===Vs.WaitingForConnectingWallet?hn.createElement(Gs,{type:"warning",title:n.shortMessage,action:hn.createElement(yf,{size:"xxsmall",type:"warning",onClick:()=>{o(Vs.WaitingForConnectingWallet)}},hf.t("Connect"))}):hn.createElement(Gs,{type:"warning",title:n.shortMessage})}i(Sf,"WarningAlert");function js(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Qo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return jt.createElement(mf,null,a.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,C=(S&&u||p)&&!c,h=S&&a.status==="failed";return jt.createElement(uw,{key:g},jt.createElement(Cf,{type:S&&(C&&"loading"||h&&"error")||"success",title:d.description?`${d.description} Tx`:lw.t("View transaction"),action:d.url&&jt.createElement(pw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},jt.createElement(cw,{size:12}))}))}),c&&jt.createElement(Cf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&jt.createElement(Sf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&jt.createElement(gf,{message:r}))}i(js,"SwapDetailsAlerts");var Tf=2e3;var kf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Ye(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ye(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Oo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ye(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ye(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Oo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:mw.createElement(js,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function wf(t){if(Qo(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(wf,"getStepState");function Xs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=vw(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),d=X.use.retry(),m=ne.use.isActiveTab(),f=bw(),[g,S]=ww(Tf),C=xw(null),[h,T]=If(null),[k,v]=If(null),E=i(()=>{r(),T(null)},"onCancel"),b=be.use.getNotifications(),x=be.use.removeNotification(),w=b(),I=fw(e),W=I?.networkStatus;bf(()=>{w.find(qe=>qe.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),bf(()=>{H?T(pi.WaitingForNetworkChange):W===pi.WaitingForConnectingWallet||W===pi.NetworkChanged?T(W):T(null)},[W]);let L=kp(e),Q=I?dw(e,I):null,M=I?gw(e,I):null,V=jd(e),Y=wp(e),re=i(Me=>!!l(Me)?.mobileWallet,"isMobileWallet"),H=W===pi.WaitingForNetworkChange&&!!Q&&!!M?.walletType&&(re(M.walletType)||a(M.walletType,Q)),A=H?s.bind(null,M.walletType,Q):void 0,te=Tp(e,I),q=kf({swap:e,switchNetwork:A,showNetworkModal:W,setNetworkModal:T,message:te,blockchains:p,swappers:u}),Z=q.length,[me,he]=[e.steps[0],e.steps[Z-1]],_=he.outputAmount||he.expectedOutputAmountHumanReadable,ze=e.steps.reduce((Me,qe)=>Me+parseFloat(qe.feeInUsd||""),0),P=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,j=N(parseFloat(N(_,6,6))*(he.toUsdPrice||0),4,4),ie=N(parseFloat(e.inputAmount)*(me.fromUsdPrice||0),4,4),Ne=_?pe(new xf(_).multipliedBy(he.toUsdPrice||0)):"",Ge=pe(new xf(e.inputAmount).multipliedBy(me.fromUsdPrice||0)),We=Je(ie,j),_e=te.detailedMessage.content||te.shortMessage,Ke=e.status==="success"?Bt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:q[Z-1].to.token.displayName,conciseAddress:Wn(e.wallets[q[Z-1].to.chain.displayName]?.address||""),chain:q[Z-1].to.chain.displayName}}):J.createElement(uf,null,J.createElement(lo,{variant:"body",size:"medium",color:"neutral700",align:"center"},_e?"":Bt.t("Transaction was not sent."),L?`${Bt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),_e&&J.createElement(li,{align:"center",variant:"body",size:"medium",color:"neutral700"},J.createElement("b",null,"Reason:")," ",_e));return J.createElement(le,{header:{title:Bt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&J.createElement(So,null,J.createElement(vf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},J.createElement(lo,{size:"medium",variant:"label",color:"error"},Bt.t("Delete"))))},footer:Y&&!k&&J.createElement(vf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},Bt.t("Try again"))},J.createElement(ue,{compact:!0,view:!0},J.createElement(ai,null,J.createElement("div",{className:Lo()},J.createElement(lo,{variant:"label",size:"large",color:"neutral700"},`${Bt.t("Request ID")}:`),J.createElement("div",{className:si()},J.createElement(lo,{variant:"label",size:"small",color:"neutral700"},o),J.createElement(Sw,{variant:"ghost",onClick:S.bind(null,o||"")},J.createElement(hw,{size:16,color:"gray"})),J.createElement(cf,{target:"_blank",href:`${al}/swap/${o}`},J.createElement(Cw,{size:16})))),J.createElement("div",{className:Lo()},J.createElement(lo,{variant:"label",size:"large",color:"neutral700"},`${Bt.t(e.finishTime?"Finished at":"Created at")}:`),J.createElement(lo,{variant:"label",size:"small",color:"neutral700"},V))),J.createElement("div",{className:lf()},J.createElement(Tw,{fee:N(String(ze),2,2),time:$o(vn(e.steps)),steps:Z}),J.createElement(Yo,{from:{price:{value:N(e.inputAmount,6,6),usdValue:ie,realUsdValue:Ge,realValue:e.inputAmount},token:{displayName:q[0].from.token.displayName,image:q[0].from.token.image},chain:{image:q[0].from.chain.image,displayName:q[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:j,realUsdValue:Ne,realValue:_},token:{displayName:q[Z-1].to.token.displayName,image:q[Z-1].to.token.image},chain:{image:q[Z-1].to.chain.image,displayName:q[Z-1].to.chain.displayName}},percentageChange:N(We,2,2),warningLevel:wt(We??0)})),J.createElement("div",{className:pf()},J.createElement(lo,{variant:"title",size:"small"},Bt.t("Swaps steps"))),J.createElement(yw,{size:8}),J.createElement(rf,{ref:C},q.map((Me,qe)=>{let Cn=qe,_o=wf(e.steps[qe]),Vf=_o==="error"||_o==="in-progress"||_o==="warning"||_o==="completed"&&qe===q.length-1;return J.createElement(kw,{key:Cn,step:Me,type:"swap-progress",ref:C,state:_o,hasSeparator:qe!==0,tabIndex:Cn,isFocused:Vf,tooltipContainer:B()})}))),J.createElement(Us,{state:h,onClose:()=>T(null),onCancel:E,onDelete:n,message:te.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),J.createElement(Qs,{open:!!k,diagnosisUrl:P,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:j,realUsdValue:Ne,realValue:pe(_),percentageChange:N(We,2,2),token:{displayName:q[Z-1].to.token.displayName,image:q[Z-1].to.token.image},chain:{image:q[Z-1].to.chain.image},description:Ke}))}i(Xs,"SwapDetails");import{i18n as ui}from"@lingui/core";import{Divider as Nf,NotFound as Ww,Skeleton as Sn,Typography as mi}from"@rango-dev/ui";import ge from"react";import{i18n as Iw}from"@lingui/core";import{Divider as Ew,Skeleton as Aw,Typography as Nw}from"@rango-dev/ui";import Ce from"react";import{css as mt,styled as Ks}from"@rango-dev/ui";var Ef=Ks("div",{width:"100%",height:"100%",padding:"$10 $20"}),yn=Ks("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ci=Ks("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),kQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),wQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),vQ=mt({paddingTop:"$15",display:"flex"}),xQ=mt({padding:"$15 $0"}),bQ=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),IQ=mt({paddingBottom:"$10"}),EQ=mt({display:"flex",justifyContent:"start",alignItems:"center"}),AQ=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),NQ=mt({display:"flex",alignItems:"center"}),WQ=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Af=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Ys(){return Ce.createElement(Ef,null,Ce.createElement(Ro,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Nw,{variant:"title",size:"small"},Iw.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1}),Ce.createElement("div",{className:Af()},Ce.createElement(Ew,{direction:"horizontal",size:20}),Ce.createElement(Aw,{height:22,variant:"rectangular"}))),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1})),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1})),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1}))))}i(Ys,"LoadingSwapDetails");function Wf(t){let{requestId:e,showSkeleton:o}=t;return ge.createElement(le,{header:{title:ui.t("Swap and Bridge"),suffix:ge.createElement(So,null)}},o&&ge.createElement(nf,null,ge.createElement(ai,null,ge.createElement("div",{className:Lo()},ge.createElement(mi,{variant:"label",size:"large",color:"neutral700"},`${ui.t("Request ID")}:`),ge.createElement("div",{className:si()},ge.createElement(mi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})),ge.createElement(Nf,{direction:"horizontal",size:4}),ge.createElement(Sn,{width:16,height:16,variant:"rectangular"}),ge.createElement(Nf,{direction:"horizontal",size:4}),ge.createElement(Sn,{width:16,height:16,variant:"rectangular"}))),ge.createElement("div",{className:Lo()},ge.createElement(mi,{className:sf(),variant:"label",size:"large",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})),ge.createElement(mi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})))),ge.createElement(Ys,null)),!o&&ge.createElement(af,null,ge.createElement(Ww,{title:ui.t("Not found"),description:ui.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Wf,"SwapDetailsPlaceholder");function Mf(){let{manager:t,state:e}=Bw(),o=!e.loadedFromPersistor,n=tt(t),{requestId:r}=Pw(),a=et(),{fetchStatus:s}=y();if(!r)return Zs.createElement(_w,{containerStyles:{margin:"20px"},type:"error",title:Mw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:m})=>m.requestId===r):void 0,u=i(()=>{if(p?.id){let m=t?.get(p.id);m&&Lw(m)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(m){console.log(m)}},"onDelete"),d=p?.swap;return!d||l?Zs.createElement(Wf,{requestId:r,showSkeleton:l}):Zs.createElement(Xs,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(Mf,"SwapDetailsPage");function Lf(){return Lp(),Vi(),$w([{path:U.home,element:He.createElement(Zm,null)},{path:U.routes,element:He.createElement(od,null)},{path:U.fromSwap,children:[{index:!0,element:He.createElement(Ws,{type:"source"})},{path:U.blockchains,element:He.createElement(ds,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:He.createElement(Ws,{type:"destination"})},{path:U.blockchains,element:He.createElement(ds,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:He.createElement(Gd,null)},{path:U.languages,element:He.createElement(Rm,null)},{path:U.exchanges,element:He.createElement(cs,{sourceType:"Exchanges"})},{path:U.bridges,element:He.createElement(cs,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:He.createElement(Wm,null)},{path:U.swapDetails,element:He.createElement(Mf,null)}]},{path:U.wallets,element:He.createElement(Qc,null)},{path:U.confirmSwap,element:He.createElement(Sm,null)}])}i(Lf,"AppRoutes");import{useQueueManager as Vw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as jw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Xw}from"rango-sdk";import{useContext as Kw,useEffect as Yw,useState as Of}from"react";import{globalCss as Dw}from"@rango-dev/ui";var Bf=i(()=>Dw({"@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')"})(),"globalFont");function _f(){let{setWatermark:t}=ne();return{fetchApiConfig:i(async()=>{let o=await fetch(`${kt("BASE_URL")}/meta/dapp/config?apiKey=${kt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(_f,"useFetchApiConfig");import{useWallets as Fw}from"@rango-dev/wallets-react";import{useEffect as Ow,useRef as Uw}from"react";function Pf(){let{connect:t,state:e}=Fw(),o=Uw({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Ow(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Pf,"useForceAutoConnect");import{isApprovalTX as zw,MainEvents as di,RouteEventType as $f,StepEventType as Df,StepExecutionEventStatus as qw,useEvents as Qw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Ff}from"react";function Js(){let t=y().tokens(),e=R.use.connectedWallets(),o=R.use.getWalletsDetails(),n=be.use.setNotification(),r=Qw();Ff(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Df.TX_EXECUTION&&l.status===qw.TX_SENT&&!zw(p)||l.type===Df.SUCCEEDED){let d=e.find(f=>f.chain===p?.fromBlockchain),m=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);d&&o([d],t),m&&o([m],t)}n(l,u)},"handleStepEvent");return r.on(di.StepEvent,a),()=>r.off(di.StepEvent,a)},[r,e.length]),Ff(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===$f.FAILED||l.type===$f.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(di.RouteEvent,a),()=>r.off(di.RouteEvent,a)},[r,e.length])}i(Js,"useSubscribeToWidgetEvents");import{useManager as Hw}from"@rango-dev/queue-manager-react";import{useEffect as Gw}from"react";function Rs(){let{isSynced:t,syncNotifications:e}=be(),{manager:o,state:n}=Hw();Gw(()=>{be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(tt(o))},[be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Rs,"useSyncNotifications");function el(){Pf(),Bf(),Js(),Rs();let t=y().blockchains(),{canSwitchNetworkTo:e}=Sr(),[o,n]=Of(""),[r,a]=Of(),s=Kw($n),l=t.filter(Xw),{fetchApiConfig:p}=_f();Vw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Yw(()=>(Kt.init(),be.persist.hasHydrated()||be.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===jw(o)?.[0]&&n("")}),p().catch(console.log),Kt.destroy),[])}i(el,"useBootstrap");import{styled as Zw}from"@rango-dev/ui";var Uf=Zw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function fi(){el();let{config:t}=y(),{activeTheme:e}=rr(t?.theme||{}),{activeLanguage:o}=Ht();return tl.createElement(Jw,{language:o},tl.createElement(Uf,{id:"swap-container",className:e()},tl.createElement(Lf,null)))}i(fi,"Main");import{setSolanaSignerConfig as Sv}from"@rango-dev/signer-solana";import nl,{useEffect as rl}from"react";import{useState as Rw}from"react";var ev=i(()=>{let[t,e]=Rw(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=hl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),zf=ev;import{checkWaitingForNetworkChange as tv,makeQueueDefinition as ov}from"@rango-dev/queue-manager-rango-preset";import{Provider as nv}from"@rango-dev/queue-manager-react";import{useWallets as rv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as iv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as av}from"rango-types";import sv,{useMemo as lv}from"react";function pv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=rv(),l=lv(()=>ov({API_KEY:t.apiKey||kt("API_KEY"),BASE_URL:kt("BASE_URL")}),[t.apiKey]),p=y().blockchains(),c={blockchains:R.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},d=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),m=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(av),S=i(k=>{let{supportedChains:v}=s(k);return In(v)},"getSupportedChainNames"),C=e(),h={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:iv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},T=ne.use.isActiveTab();return sv.createElement(nv,{queuesDefs:[l],context:h,onPersistedDataLoaded:k=>{tv(k)},isPaused:!T},t.children)}i(pv,"QueueManager");var qf=pv;import{useManager as fv}from"@rango-dev/queue-manager-react";import gv,{createContext as hv,useContext as yv}from"react";import{cancelSwap as cv,getCurrentBlockchainOfOrNull as uv,getCurrentStep as mv,getRelatedWalletOrNull as dv}from"@rango-dev/queue-manager-rango-preset";var gi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return tt(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&&cv(o)}getCurrentStepInfo(e){let o=mv(e);return{step:o,wallet:o?dv(e,o):null,network:o?uv(e,o):null}}};var Qf=hv(void 0);function ol(t){let{manager:e}=fv(),o=ne.use.isActiveTab(),n=X.use.retry(),r=new gi(e,{retrySwap:n}),a=R.use.connectedWallets(),s=R.use.loading(),l=xl(a),p=R.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),d=y().swappers(),m=y().fetchStatus,f=Ht().resetLanguage,g=be().getNotifications(),S={isActiveTab:o,setCurrentTabAsActive:Kt.forceClaim,history:r,wallets:{isLoading:s,details:a,totalBalance:l,refetch:p},meta:{blockchains:u,tokens:c,swappers:d,loadingStatus:m},resetLanguage:f,notifications:{list:g}};return gv.createElement(Qf.Provider,{value:S},t.children)}i(ol,"WidgetInfo");function Hf(){let t=yv(Qf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Hf,"useWidget");function hi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=zf();return rl(()=>{n&&r(n)},[n]),rl(()=>{Ll({API_KEY:o?.apiKey||Tn,BASE_URL:o?.apiUrl||il})},[o.apiKey,o.apiUrl]),rl(()=>{t.config?.signers?.customSolanaRPC&&Sv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),nl.createElement(Dn,{config:o,onUpdateState:e},nl.createElement(qf,{apiKey:o.apiKey},nl.createElement(ol,null,t.children)))}i(hi,"WidgetProvider");function Gf(t){let e=t.config?.externalWallets;return yi.createElement(np,null,e?yi.createElement(fi,null):yi.createElement(hi,{config:t.config??Ni},yi.createElement(fi,null)))}i(Gf,"Widget");export{FV as EventSeverity,OV as MainEvents,KV as Networks,JV as PendingSwapNetworkStatus,UV as RouteEventType,Si as SUPPORTED_FONTS,zV as StepEventType,qV as StepExecutionBlockedEventStatus,QV as StepExecutionEventStatus,ye as UI_ID,jV as WalletEvents,YV as WalletTypes,Gf as Widget,hi as WidgetProvider,Dn as WidgetWallets,ea as customizedThemeTokens,VV as readAccountAddress,Sr as useWallets,Hf as useWidget,HV as useWidgetEvents};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|