@rango-dev/widget-embedded 0.29.1-next.3 → 0.29.1-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -2
- package/dist/index.js.map +2 -2
- package/dist/store/slices/settings.d.ts.map +1 -1
- package/dist/types/config.d.ts +3 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +7 -7
- package/src/store/slices/settings.ts +3 -0
- package/src/types/config.ts +5 -0
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var Kf=Object.defineProperty;var i=(t,e)=>Kf(t,"name",{value:e,configurable:!0});import{EventSeverity as ZV,MainEvents as JV,RouteEventType as RV,StepEventType as e2,StepExecutionBlockedEventStatus as t2,StepExecutionEventStatus as o2,useEvents as n2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as i2,useWallets as wr,Events as a2}from"@rango-dev/wallets-react";import{Networks as l2,WalletTypes as p2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as u2}from"rango-types";import{UI_ID as Yf}from"@rango-dev/ui";var vn="c6381a79-2817-4602-83bf-6a641a409e32",sl="https://api.rango.exchange",ll="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Yf};var pl="Roboto",wi=[{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 zg}from"@rango-dev/wallets-react";import{isEvmBlockchain as qg}from"rango-sdk";import On,{createContext as Qg,useEffect as op,useMemo as Hg,useRef as np}from"react";import{useEffect as fg}from"react";import{create as ug}from"zustand";import{subscribeWithSelector as mg}from"zustand/middleware";import{RangoClient as pg}from"rango-sdk";import{BlockchainCategories as og,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as ng}from"@rango-dev/wallets-react";import{detectInstallLink as rg,getCosmosExperimentalChainInfo as ig,isEvmAddress as ag,KEPLR_COMPATIBLE_WALLETS as rx,Networks as kl}from"@rango-dev/wallets-shared";import Ni from"bignumber.js";import{isCosmosBlockchain as sg}from"rango-types";import Zf from"bignumber.js";var Be=new Zf(0);import{WalletTypes as Jf}from"@rango-dev/wallets-shared";var cl=[Jf.LEAP];import{BlockchainCategories as vi}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function Ii(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ii,"areEqual");function hl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(hl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function dl(t,e){return t.toLowerCase()===e.toLowerCase()}i(dl,"exactText");function fl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(fl,"startWithText");var B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Do=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function gl(t,e,o){let n=!!e&&dl(e,t),r=!!o&&dl(o,t);return n!==r?n?-1:1:0}i(gl,"compareExactMatchText");function xi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareContainsText");function bi(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareStartWithText");function yl(t,e,o){if(!o)return 0;let n=gl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=gl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=bi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=bi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r!==0)return r}return 0}i(yl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===xn.TRANSFER;case vi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Sl=i(t=>wi.find(o=>o.value===t)?.url,"getFontUrlByName");function In(t,e){return e.find(o=>o.name===t)?.displayName}i(In,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Fo(t,e){return e.find(o=>o.id===t)?.title}i(Fo,"getSwapperDisplayName");function Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ai(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(Ai,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as Tl}from"bignumber.js";var Oo=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 Tl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Tl(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 En=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Uo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Wi(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Wi,"mapStatusToWalletState");function wl(t,e,o,n){return o.filter(r=>!cl.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:m}=e(r),d=yo(m.map(g=>g.type)),f=Wi(t(r));return{title:a,image:s,link:rg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d}})}i(wl,"mapWalletTypesToWalletInfo");function Wn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Wn,"walletAndSupportedChainsNames");function vl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=ng(p),m=l.length>0,d=l.includes(c),f=c===kl.Unknown;if(m&&!d&&!f)return;let S=c===kl.Unknown&&ag(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(vl,"prepareAccountsForWalletStore");function Rt(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 m=u.from.blockchain,d=u.to.blockchain,f=a===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Rt,"getQuoteWallets");function Mn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Mn,"isAccountAndWalletMatched");function xl(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 Ni(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(xl,"makeBalanceFor");function bl(t){return{...t,loading:!1,error:!0}}i(bl,"resetConnectedWalletState");var Il=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 Ni(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return lg(r)},"calculateWalletUsdValue");function lg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(lg,"numberWithThousandSeparator");var Ln=i((t,e)=>{let o=ig(Object.entries(t).map(([,n])=>n).filter(sg));return o&&o[e]?.experimental},"isExperimentalChain");function Bn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Bn,"formatBalance");function El(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(El,"compareTokenBalance");function eo(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(eo,"areTokensEqual");function Al(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Al,"sortWalletsBasedOnConnectionState");function Pn(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(Pn,"getConciseAddress");function Nl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Nl,"getAddress");function _n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ni(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({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(_n,"makeTokensBalance");var Wl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ml(t){return t.map(e=>e.state).join("-")}i(Ml,"hashWalletsState");function Ll(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(Ll,"filterBlockchainsByWalletTypes");function Bl(t,e){return e===og.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(Bl,"filterWalletsByCategory");var Mi={API_KEY:vn};function bt(t){return Mi[t]||""}i(bt,"getConfig");function Pl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Mi=e,Mi}i(Pl,"initConfig");var _l=20,$l=25,Li="theme-widget",zo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>eo(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>eo(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Bi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Dl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var $n,Ft=i(()=>$n||($n=new pg(bt("API_KEY"),bt("BASE_URL")),$n),"httpService");var cg=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"),Ot=cg;var te=Ot(ug()(mg((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.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);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:_n(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=>Mn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let f=o.find(S=>Mn(S,d)),g=p.find(S=>S.address===d.address&&S.blockChain===d.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...d,explorerUrl:g.explorerUrl,balances:xl(g,n),loading:!1}:d});return{loading:!1,balances:_n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Mn(m,c))?bl(c):c);return{loading:!1,balances:_n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as dg}from"@rango-dev/provider-all";function Dn(t,e){let o=dg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},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(Dn,"matchAndGenerateProviders");function Fl(t,e){return Dn(t,e).map(r=>r.config.type)}i(Fl,"configWalletsToWalletName");function Ol(t,e){let o=te.use.clearConnectedWallet(),n=Dn(t,e);return fg(()=>{o(),n=Dn(t,e)},[t?.length]),{providers:n}}i(Ol,"useWalletProviders");import Pg,{createContext as _g,useContext as $g,useEffect as Dg,useRef as Fg}from"react";import{create as Lg}from"zustand";import{persist as Bg}from"zustand/middleware";var Pi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},gg={clientUrl:void 0},hg={liquiditySources:void 0},Ul=i((t,e,o)=>({config:{...Pi,...t},iframe:gg,campaignMode:hg,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 Fn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return yo(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(Fn,"getUniqueSwappersGroups");function zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(zl,"sortLiquiditySourcesByGroupTitle");function je(t,e){return e?.[t]==="hidden"}i(je,"isFeatureHidden");function ql(t,e){return e?.[t]==="enabled"}i(ql,"isFeatureEnabled");var Ql=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_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()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&zo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let d=e().isTokenPinned(c,o.type),f=e().isTokenPinned(m,o.type);if(d!==f)return d?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=El(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Ai(c,g),y=Ai(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=yl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>eo(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(zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,d)=>m.sort-d.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let d=Dt(m);a.set(d,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as yg,English as Sg,Finland as Cg,French as Tg,German as kg,Greece as wg,Italian as vg,Japanese as xg,Netherlands as bg,Poland as Ig,Portuguese as Eg,Russian as Ag,Spanish as Ng,Swedish as Wg,Ukrainian as Mg}from"@rango-dev/ui";var Hl=[{title:"English",label:"English",local:"en",SVGFlag:Sg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Ng},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Tg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:xg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Eg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:yg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Ag},{title:"German",label:"Deutsch",local:"de",SVGFlag:kg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Mg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Wg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Cg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:bg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:wg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:vg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ig}],qo="en";var Gl=[.5,1,3],Vl=1,Xl=5,jl=100,Kl=0;var Yl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Vl,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=yo(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=je("theme",n),s=je("language",n),l=je("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||qo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Zl(t){return Lg()(Bg((...e)=>({...Ql(...e),...Yl(...e),...Ul(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(Zl,"createAppStore");var Jl=_g(null);function h(){let t=$g(Jl);if(Dg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Rl(t){let e=Fg();return e.current||(e.current=Zl(t.config)),Pg.createElement(Jl.Provider,{value:e.current},t.children)}i(Rl,"AppStoreProvider");import{create as Ug}from"zustand";var ep="rango-widget";var Qo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(ep),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 ie=Ot(Ug()((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})}}))),to=new Qo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var Un=Qg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Gg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Ol(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=np(),d=np();op(()=>{n().catch(console.log)},[]),op(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(qg).map(y=>y.name),g=i((y,T,k,v,E)=>{if(T===$i.ACCOUNTS)if(k){let x=Wn(E.supportedBlockchains),L=vl(y,k,f,x,E.isContractWallet);L.length&&u(L,a)}else c(y),d.current?d.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===$i.ACCOUNTS&&v.connected){let x=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===$i.NETWORK&&v.network){let x=`${y}-${v.network}`;m.current?m.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,E)},"onUpdateState"),S=ie.use.isActiveTab(),C=Hg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{d.current=y}}),[]);return On.createElement(Un.Provider,{value:C},On.createElement(zg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Gg,"Main");function zn(t){let{config:e,...o}=t;return On.createElement(Rl,{config:e},On.createElement(Gg,{...o,config:e}))}i(zn,"WidgetWallets");import ki from"react";import Vg,{Fragment as Xg}from"react";import{MemoryRouter as jg,useInRouterContext as Kg}from"react-router";function rp({children:t}){let o=Kg()?Xg:jg;return Vg.createElement(o,null,t)}i(rp,"AppRouter");import{I18nManager as cv}from"@rango-dev/ui";import rl from"react";import ze from"react";import{useRoutes as jw}from"react-router-dom";var z={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 To,useRef as Jn}from"react";import Et 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 NI from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Di={"Network Fee":Ho.t("Network Fee"),"Swapper Fee":Ho.t("Protocol Fee"),"Affiliate Fee":Ho.t("Affiliate Fee"),"Outbound network fee":Ho.t("Outbound Fee"),"Rango Fee":Ho.t("Rango Fee")},Fi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ip=30;import{i18n as it}from"@lingui/core";import{RouteEventType as dI}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Hn}from"rango-types";function qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(qn,"isValidAddress");import{i18n as Me}from"@lingui/core";var oe=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function ap(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(ap,"getQuoteErrorMessage");import{i18n as Qn}from"@lingui/core";var oo=i(()=>({connectWallet:Qn.t("Connect Wallet"),swap:Qn.t("Swap"),swapAnyway:Qn.t("Swap anyway"),ethWarning:Qn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function sp(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(sp,"hasHighValueLoss");function lp(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(lp,"hasLimitError");function pp(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=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().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=oe().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=oe().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=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(pp,"getLimitErrorMessage");function cp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:oo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:oo().swap,action:"confirm-swap",disabled:!0}:s?{title:oo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:oo().ethWarning,action:"confirm-warning",disabled:!1}:{title:oo().swap,action:"confirm-swap",disabled:!1}:{title:oo().connectWallet,action:"connect-wallet",disabled:!1}}i(cp,"getSwapButtonState");function Oi(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Oi,"canComputePriceImpact");function Ui(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=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(Ui,"getUsdFeeOfStep");function Gn(t,e){return t.reduce((o,n)=>o.plus(Ui(n,e)),Be)}i(Gn,"getTotalFeeInUsd");function zi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(zi,"getUsdFee");function up(t){return t.reduce((e,o)=>e.plus(zi(o)),Be)}i(up,"getTotalFeesInUsd");function mp(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(mp,"getFeesGroup");function dp(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(dp,"checkSlippageErrors");function fp(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(fp,"checkSlippageWarnings");function Vn(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(Vn,"getMinRequiredSlippage");function gp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gp,"hasProperSlippage");function hp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:d,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:m??void 0,affiliateWallets:d??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(hp,"createQuoteRequestBody");function yp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(yp,"getWalletsForNewSwap");function So(t){return t?.outputAmount||null}i(So,"getQuoteOutputAmount");function Sp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(Sp,"getPercentageChange");function Cp(t,e){let o=So(t),n=So(e);if(!o||!n)return!1;let r=Ke(o,n);return r?r<=-1:!0}i(Cp,"isOutputAmountChangedALot");function Tp(t,e,o){let n=t.validationStatus,r=Rt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Ip(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=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:Xe(s.asset.blockchain,o)}})})}i(Tp,"generateBalanceWarnings");function Xn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Xn,"calcOutputUsdValue");function Go(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Hn.NetworkChanged}i(Go,"isNetworkStatusInWarningState");function kp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Go(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Hn.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Hn.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Hn.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(kp,"getSwapMessages");function wp(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(wp,"getLastConvertedTokenInFailedSwap");function vp(t){return t.status==="failed"}i(vp,"shouldRetrySwap");function xp(t,e,o,n,r,a){if(!n||t)return!0;let s=Rt({filter:"all",quote:n}),l=Rt({filter:"required",quote:n}),p=s.every(m=>r.some(d=>d.chain===m)),u=l.every(m=>r.some(d=>d.chain===m)),c=o&&a?qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(xp,"isConfirmSwapDisabled");function bp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(bp,"isTokensIdentical");function Kn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Kn,"getQuoteToTokenUsdPrice");function qi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(qi,"isNumberOfSwapsChanged");function Qi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ii(o,n)}i(Qi,"isQuoteSwappersUpdated");function Hi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ii(o,n)}i(Hi,"isQuoteInternalCoinsUpdated");function Ap(t,e){return qi(t,e)||Qi(t,e)||Hi(t,e)}i(Ap,"isQuoteChanged");function Ip(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(Ip,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function Yn(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=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Yn,"createRetryQuote");function Co(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=no(o,t.requestAmount),l=no(n,t?.outputAmount??"");if(t&&s&&l){let c=Ke(s.toString(),l.toString());if(!!c&&sp(s,c)){let d=Gn(t?.swaps,r),f=It(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Vn(t.swaps),u=a>Xl;if(gp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:fp(t,a),minRequiredSlippage:p};return null}i(Co,"generateQuoteWarnings");function Ke(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Sp(t.toString(),e.toString());return n&&n<0?n:null}i(Ke,"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"),Zn=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=Fi.indexOf(o.value),a=Fi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var no=i((t,e)=>t?.usdPrice?new Et(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),K=Ot(Jg()(Rg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Et(0),outputUsdValue:new Et(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 Uo(o.inputAmount)?(e&&(n=e?.outputAmount?new Et(e?.outputAmount):null,r=Xn(e?.outputAmount,Kn(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 Et(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:no(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 Et(0),outputUsdValue:new Et(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:no(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:no(n??null,s),outputUsdValue:new Et(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?no(e.toToken,e.outputAmount?.toString()||""):new Et(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}=K(),c=h().config,m=h().fetchStatus,d=h().blockchains(),f=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,E=c?.to?.blockchains,x=Jn(void 0),L=Jn(void 0),w=Jn(void 0),b=Jn(void 0);To(()=>{t(c?.amount?.toString()||"")},[c?.amount]),To(()=>{if(m==="success"){r();let A=d.find(I=>I.name===c?.from?.blockchain),P=c?.from?.token,Q=P&&g(P);(A||!A&&w.current)&&n(A??null),Q?a({token:Q,meta:{blockchains:d,tokens:f}}):!Q&&x.current&&a({token:null}),w.current=c?.from?.blockchain,x.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),To(()=>{zo(s,T)&&a({token:null}),Bi(p,k)&&n(null)},[T,k]),To(()=>{zo(l,v)&&a({token:null}),Bi(u,E)&&o(null)},[v,E]),To(()=>{if(m==="success"){r();let A=d.find(I=>I.name===c?.to?.blockchain),P=c?.to?.token,Q=P&&g(P);(A||!A&&b.current)&&o(A??null),Q?e({token:Q,meta:{blockchains:d,tokens:f}}):!Q&&L.current&&e({token:null}),b.current=c?.to?.blockchain,L.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),To(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Lp,"useSyncStoresWithConfig");import{useEffect as Xi,useRef as eh}from"react";import{useInRouterContext as th,useLocation as oh,useSearchParams as nh}from"react-router-dom";function Gi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Gi,"convertTokenSearchParamToAsset");function Vi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vi,"tokenToSearchParam");function ji(){let t=oh(),[e,o]=nh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:d}=K(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=th(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=eh(),{findToken:E}=h(),x=i(()=>{let w={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(w[G]=ee);let b=e.get("fromAmount"),A=e.get("fromBlockchain"),P=e.get("fromToken"),Q=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:A,fromToken:P,toBlockchain:Q,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:w}},"getUrlSearchParams"),L=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");Xi(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:A}=x();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:Vi(a),toBlockchain:r?.name,toToken:Vi(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...A})},[t.pathname,l,n,a,r,s,k]),Xi(()=>{if(!C)return;let w=x();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&d(w.fromAmount),f==="success"){let b=g.find(I=>I.name===w.fromBlockchain),A=w.fromToken&&b?E(Gi(w.fromToken,b)):void 0,P=g.find(I=>I.name===w.toBlockchain),Q=w.toToken&&P?E(Gi(w.toToken,P)):void 0;b&&(p(b),A&&c({token:A,meta:{blockchains:g,tokens:S}})),P&&(u(P),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[f]),Xi(()=>{let{clientUrl:w,liquiditySources:b}=x();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(ji,"useSyncUrlAndStore");import{i18n as Ka}from"@lingui/core";import{useManager as EC}from"@rango-dev/queue-manager-react";import{Alert as ym,Button as AC,css as Za,Divider as Ya,IconButton as Sm,styled as NC,Typography as WC,WalletIcon as MC}from"@rango-dev/ui";import xe,{useEffect as Hr,useLayoutEffect as LC,useRef as BC,useState as sn}from"react";import{useNavigate as PC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Aa,BalanceErrors as mS,Button as Kc,ChevronDownIcon as dS,ChevronLeftIcon as fS,CloseIcon as gS,Divider as Ko,IconButton as Yc,MessageBox as hS,PasteIcon as yS,Typography as vr,WalletIcon as SS}from"@rango-dev/ui";import $,{useCallback as CS,useEffect as Zc,useRef as TS,useState as po}from"react";import{useNavigate as kS}from"react-router-dom";import{i18n as Rn}from"@lingui/core";function er(t){switch(t.type){case 0:return Rn.t("Route has been updated.");case 3:return Rn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Rn.t("Route swappers has been updated.");case 2:return Rn.t("Route internal coins has been updated.");default:return""}}i(er,"getQuoteUpdateWarningMessage");import{Modal as ih}from"@rango-dev/ui";import ah from"react";function ne(t){let{watermark:e}=ie();return ah.createElement(ih,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import rr,{useRef as ph}from"react";import*as ko from"@radix-ui/react-collapsible";import{keyframes as Pp,styled as tr}from"@rango-dev/ui";var Ki=300,sh=Pp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),lh=Pp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_p=tr(ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Yi=tr(ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),or=tr(ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${sh} ${Ki}ms ease-out`},false:{animation:`${lh} ${Ki}ms ease-out`}}}}),nr=tr("div",{transition:`all ${Ki}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ir(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ph(null);return rr.createElement(_p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&rr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s),rr.createElement(or,{className:"collapsible_content",open:e},r),l==="bottom"&&rr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s))}i(ir,"CustomCollapsible");import{css as $p,darkTheme as Vo,IconButton as ch,styled as Ye,TextField as uh}from"@rango-dev/ui";var Dp=Ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Fp=Ye("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),mh=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Op=Ye(mh,{alignSelf:"stretch",minHeight:"93px"}),Up=Ye("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zp=Ye(ch,{position:"absolute",left:"$20"}),qp=Ye("div",{paddingTop:"$20"}),Qp=$p({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Hp=Ye("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=Ye("div",{display:"flex"}),Xp=Ye(uh,{backgroundColor:"$neutral100",padding:"$15"}),jp=Ye("div",{overflow:"visible",width:"100%"}),Kp=Ye("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as lS,Divider as Ia,Image as pS,MessageBox as kr,SelectableWallet as cS,Typography as Vc,WalletState as Xc}from"@rango-dev/ui";import ue,{useEffect as jc,useState as Eo}from"react";import{WalletState as ar}from"@rango-dev/ui";import{useWallets as dh}from"@rango-dev/wallets-react";import{detectMobileScreens as fh,KEPLR_COMPATIBLE_WALLETS as gh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as hh,useEffect as yh,useState as Sh}from"react";var Ch=Object.values(wo);function vo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=dh(),{connectedWallets:u}=te(),c=h().blockchains(),m=Fl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ch,d=wl(a,l,m,e);d=fh()?d.filter(x=>x.showOnMobile!==!1&&a(x.type).installed):d;let f=Al(d),[g,S]=Sh(""),C=i(x=>!u.find(L=>L.walletType===x&&L.chain===e),"isExperimentalChainNotAdded"),y=i(async(x,L)=>{let w=a(x);try{if(g&&S(""),w.connected)await s(x);else{let b=!!d.find(A=>A.state===ar.CONNECTED);if(r?.multiWallets===!1&&b)return;o?.(x),await p(x,void 0,L),n?.(x)}}catch(b){S("Error: "+b?.message)}},"handleClick"),T=hh(()=>{let x=d?.filter(L=>L.state===ar.CONNECTING)||[];for(let L of x)s(L.type)},[Ml(d)]),k=i(async x=>{a(x).connected&&await s(x)},"disconnectWallet");yh(()=>()=>{T()},[]);let v=i(x=>{let L=x.find(b=>b.type===wo.DEFAULT);return!L||L.state===ar.NOT_INSTALLED?!1:x.filter(b=>b.state!=ar.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(b.type)&&l(b.type).supportedChains.filter(A=>A.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((x,L,w)=>Ln(w,L)&&C(x)&&!gh.includes(x)||x==wo.DEFAULT&&!v(d),"shouldExcludeWallet");return{list:f.filter(x=>!E(x.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:T,disconnectWallet:k}}i(vo,"useWalletList");import{i18n as Oc}from"@lingui/core";import{Divider as Ry,getCategoriesCount as eS,SelectableCategoryList as tS,styled as zc,Typography as oS,Wallet as nS,WalletState as Uc}from"@rango-dev/ui";import at,{useState as Cr}from"react";import{useManager as My}from"@rango-dev/queue-manager-react";import{BottomLogo as Ly,Divider as Lc,Header as By}from"@rango-dev/ui";import Ce,{useEffect as Ta,useRef as Bc,useState as Py}from"react";import{useRef as Th}from"react";function sr(){return window.self!==window.top}i(sr,"isAppLoadedIntoIframe");function Zi(){let t=Th(null),{iframe:e}=h(),o=sr()&&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(Zi,"useIframe");import{useNavigate as kh}from"react-router-dom";function Ze(){let t=kh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as ra,darkTheme as _h,lightTheme as $h}from"@rango-dev/ui";import{useEffect as Dh,useState as Fh}from"react";import{theme as Bh,darkColors as Ph}from"@rango-dev/ui";import oa from"react";function wh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(wh,"expandShortHexColor");function vh(t){return/[0-9]+$/.test(t)}i(vh,"isOverridingColor");function xh(t,e){return t.padStart(e,"0")}i(xh,"pad");function Ji(t){let e=Math.min(Math.max(Math.round(t),0),255);return xh(e.toString(16),2)}i(Ji,"intToHex");function bh(t){return`#${Ji(t.red)}${Ji(t.green)}${Ji(t.blue)}`}i(bh,"rgbToHex");function Ih(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(Ih,"hexToRGB");function Eh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Eh,"generateShade");function Ah(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(Ah,"generateTint");function Nh(t){return Yp(t,Eh)}i(Nh,"calculateShades");function Wh(t){return Yp(t,Ah)}i(Wh,"calculateTints");function Yp(t,e){let o=Ih(t),n=[];for(let r=1;r<9;r++)n.push(bh(e(o,r)));return n}i(Yp,"calculateColors");function Ri(t,e,o){let a=Wh(t).reverse().concat(t),s=Nh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(Ri,"createTintsAndShades");function ea(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!vh(r)){let p=wh(a);Object.assign(n,Ri(p,r,s))}}return{...n,...e}}i(ea,"expandToGenerateThemeColors");var Zp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Mh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Zp(o%52)+e;return Zp(o%52)+e},"toAlphabeticName"),Lh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ta=i(t=>Mh(Lh(5381,JSON.stringify(t))>>>0),"toHash");function na(t){let e=Bh.colors,o={...e,...Ph},n,r;if(t?.light){let s={colors:ea(e,t.light)};n={id:`${Li}-light-${ta(s)}`,tokens:s}}if(t?.dark){let s={colors:ea(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Li}-dark-${ta(s)}`,tokens:s}}return{light:n,dark:r}}i(na,"customizedThemeTokens");function Jp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>oa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(oa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(oa.cloneElement(e,{key:l}))}}),o}i(Jp,"joinList");function lr(t){let{colors:e,fontFamily:o=pl,borderRadius:n=_l,secondaryBorderRadius:r=$l}=t,[a,s]=Fh("light"),{theme:l}=h(),{dark:p,light:u}=na(e),c=ra({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,$h.className],d=[c.className,_h.className];if(u){let g=ra(u.id,u.tokens);m.push(g.className)}if(p){let g=ra(p.id,p.tokens);d.push(g.className)}return Dh(()=>{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=m.join(" "),S=d.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(lr,"useTheme");var Je=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 Rp}from"@lingui/core";import{Alert as Oh,Button as Uh}from"@rango-dev/ui";import ec from"react";function ia(t){return ec.createElement(Oh,{action:ec.createElement(Uh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Rp.t("Activate this tab")),type:"warning",variant:"alarm",title:Rp.t("Another tab is open and handles transactions.")})}i(ia,"ActivateTabAlert");import{i18n as aa}from"@lingui/core";import{Button as zh,Divider as qh,MessageBox as Qh}from"@rango-dev/ui";import pr from"react";function sa(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},pr.createElement(Qh,{title:aa.t("Activate current tab"),type:"warning",description:aa.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.")},pr.createElement(qh,{size:20}),pr.createElement(zh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},aa.t("Confirm"))))}i(sa,"ActivateTabModal");import{ChevronLeftIcon as Vh}from"@rango-dev/ui";import sc from"react";import{css as Hh,darkTheme as tc,IconButton as Gh,styled as ro}from"@rango-dev/ui";var yt=ro(Gh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${tc} &`]:{backgroundColor:"$neutral"}}}),oc=ro("div",{position:"absolute",background:"$secondary500",[`.${tc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),xo=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),nc=ro("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"}}}}),rc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ic=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),ac=Hh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function la(t){return sc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},sc.createElement(Vh,{color:"black",size:16}))}i(la,"BackButton");import{i18n as Xh}from"@lingui/core";import{Button as jh,Typography as Kh}from"@rango-dev/ui";import pa from"react";function ca(t){return pa.createElement(xo,null,pa.createElement(jh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},pa.createElement(Kh,{variant:"label",size:"medium",color:"error500"},Xh.t("Cancel"))))}i(ca,"CancelButton");import{i18n as Yh}from"@lingui/core";import{Image as Zh,Tooltip as Jh,WalletIcon as Rh}from"@rango-dev/ui";import io from"react";function ua(t){let{list:e}=vo({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:ac()},o.map(r=>io.createElement(cr,{key:r.title},io.createElement(Zh,{src:r.image,size:14})))):Yh.t("Connect Wallet");return io.createElement(Jh,{container:t.container,side:"bottom",content:n},io.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(oc,null),io.createElement(Rh,{size:18,color:"black"})))}i(ua,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as wy,Popover as vy,SettingsIcon as xy,Tooltip as fr,TransactionIcon as by}from"@rango-dev/ui";import Ae from"react";import{i18n as ma}from"@lingui/core";import{EventSeverity as yc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Sc,ChevronRightIcon as cy,Divider as Cc,Typography as da}from"@rango-dev/ui";import de from"react";import{useNavigate as uy}from"react-router-dom";import{create as ey}from"zustand";import{persist as ty,subscribeWithSelector as oy}from"zustand/middleware";var Ee=Ot(ey()(ty(oy((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 ny,darkTheme as ry,ListItemButton as iy,styled as zt}from"@rango-dev/ui";var lc=zt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),pc=zt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),cc=zt(ny,{padding:"$5 !important"}),uc=zt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),mc=zt(iy,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${ry} &`]:{backgroundColor:"$error600"}}}}}),dc=zt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),fc=zt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),gc=zt("span",{paddingRight:"$8"});import{i18n as ay}from"@lingui/core";import{Divider as sy,NoNotificationIcon as ly,Typography as py}from"@rango-dev/ui";import ur from"react";function hc(){return ur.createElement(fc,null,ur.createElement(ly,{color:"secondary",size:26}),ur.createElement(sy,{size:12}),ur.createElement(py,{variant:"body",size:"medium",color:"neutral700"},ay.t("There are no notifications.")))}i(hc,"NotificationNotFound");var my=4;function fa(){let t=uy(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,my),l=i(p=>{t(`${z.swaps}/${p}`)},"handleOnClick");return de.createElement(lc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(pc,null,de.createElement(da,{variant:"label",size:"medium"},ma.t("Notifications")),de.createElement(cc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(da,{variant:"body",size:"xsmall"},ma.t("Clear all")))),de.createElement(Cc,{direction:"vertical",size:4})),s.length?de.createElement(uc,null,s.map((p,u)=>{let{route:c,requestId:m,event:d}=p,f=a(c.from),g=r.find(y=>y.name===c.from.blockchain),S=a(c.to),C=r.find(y=>y.name===c.to.blockchain);return de.createElement(de.Fragment,{key:m},u>0&&de.createElement(Cc,{size:4}),de.createElement(mc,{onClick:()=>l(m),actionRequired:d.messageSeverity===yc.WARNING,title:de.createElement(da,{variant:"body",size:"small",color:d.messageSeverity===yc.WARNING?"$foreground":"$neutral700"},ma.t(d.message)),id:m,start:de.createElement(dc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Sc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Sc,{tokenImage:S?S.image:"",chainImage:C?C.logo:"",size:"small"}))),end:de.createElement(gc,null,de.createElement(cy,{size:12,color:"gray"}))}))})):de.createElement(hc,null))}i(fa,"NotificationContent");import{useManager as dy}from"@rango-dev/queue-manager-react";import{InProgressIcon as fy}from"@rango-dev/ui";import Tc from"react";var gy=i(()=>{let{manager:t}=dy();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?Tc.createElement(ic,null,Tc.createElement(fy,{color:"info",size:6})):null},"InProgressTransactionBadge"),kc=gy;import{EventSeverity as hy}from"@rango-dev/queue-manager-rango-preset";import{Typography as yy}from"@rango-dev/ui";import wc from"react";function vc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===hy.WARNING);return o?wc.createElement(nc,{isSever:n},wc.createElement(yy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(vc,"NotificationsBadge");import{RefreshProgressButton as Sy}from"@rango-dev/ui";import ga,{useEffect as Cy,useState as xc}from"react";var Ty=1e3,bc=60,ky=100;function mr({onClick:t}){let[e,o]=xc(0),[n,r]=xc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Cy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===bc&&l()},Ty):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 ga.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ga.createElement(rc,{onTransitionEnd:()=>r(!1),isRefetched:n},ga.createElement(Sy,{size:22,color:t?"black":"gray",progress:e/bc*ky})))}i(mr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=je("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(fr,{container:a||B(),side:"top",content:dr.t("Refresh")},Ae.createElement(mr,{onClick:e})),!l&&Ae.createElement(vy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ae.createElement(fa,null)},Ae.createElement("div",null,Ae.createElement(fr,{container:B(),side:"top",content:dr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(wy,{size:18,color:"black"}),Ae.createElement(vc,null))))),!r.includes("settings")&&Ae.createElement(fr,{container:B(),side:"top",content:dr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(xy,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(fr,{container:B(),side:"top",content:dr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(by,{size:18,color:"black"}),Ae.createElement(kc,null))))}i(ao,"HeaderButtons");import{i18n as ha}from"@lingui/core";import{Divider as Ec,MessageBox as Ay,RefreshIcon as Ny}from"@rango-dev/ui";import bo from"react";import{Button as Iy,styled as Ey}from"@rango-dev/ui";var Ic=Ey(Iy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ya(t){let{open:e,onClose:o}=t;return bo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},bo.createElement(Ay,{title:ha.t("Something went wrong"),type:"error",description:ha.t("Something went wrong. Please refresh the app.")},bo.createElement(Ec,{size:30}),bo.createElement(Ic,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},bo.createElement(Ny,{size:20,color:"primary"}),bo.createElement(Ec,{size:4,direction:"horizontal"}),ha.t("Refresh"))))}i(ya,"RefreshModal");function Sa(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(Sa,"onScrollContentAttachStatusToContainer");import{css as Wy,styled as Ca}from"@rango-dev/ui";var Ac="700px",gr=Wy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Nc=Ca("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ac},fixed:{height:Ac}}}}),Wc=Ca("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Mc=Ca("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}=Zi(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Py(!1),c=te.use.connectedWallets(),{config:{features:m,theme:d}}=h(),{watermark:f}=ie(),g=f==="FULL",{activeTheme:S}=lr(d||{}),C=je("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ie(),x=Ze(),{manager:L}=My(),b=Je(L).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),A=i(()=>E(to.forceClaim,b),"onActivateTab"),P=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,I=Bc(null),H=Bc(null);return Ta(()=>(sr()&&H.current&&e(H.current),()=>{o()}),[]),Ta(()=>(I.current?.addEventListener("scroll",Sa),()=>{I.current?.removeEventListener("scroll",Sa)}),[]),Ta(()=>{u(l==="failed")},[l]),Ce.createElement(Nc,{height:s,id:Se.SWAP_BOX_ID,className:`${S()} ${gr()}`,ref:H},Ce.createElement(By,{prefix:Ce.createElement(Ce.Fragment,null,Q&&Ce.createElement(la,{onClick:()=>{x(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ce.createElement(Ce.Fragment,null,r.suffix,r.onWallet&&!C&&Ce.createElement(ua,{container:B(),onClick:P,isConnected:!!c?.length}),r.onCancel&&Ce.createElement(ca,{onClick:r.onCancel}))}),Ce.createElement(Wc,{ref:I},n),Ce.createElement(sa,{open:k,onClose:()=>v(!1),onConfirm:A}),Ce.createElement(Mc,null,Ce.createElement("div",{className:"footer__content"},T&&!y&&Ce.createElement("div",{className:"footer__alert"},Ce.createElement(ia,{onActivateTab:A}),Ce.createElement(Lc,{size:10})),a),Ce.createElement(Lc,{size:12}),Ce.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Ce.createElement(Ly,null))),Ce.createElement(ya,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as _y}from"@rango-dev/ui";var Pc="$20 $20 $10 $20",Xo=_y("div",{padding:Pc,overflowY:"auto",flexGrow:1});import{styled as $y}from"@rango-dev/ui";var me=$y("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 zy}from"@rango-dev/ui";import wa from"react";import{i18n as Io}from"@lingui/core";import{Image as Oy,MessageBox as ka,WalletState as Uy}from"@rango-dev/ui";import so from"react";import{keyframes as Dy,styled as hr}from"@rango-dev/ui";var lW=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),yr=hr("div",{position:"relative"}),Fy=Dy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Sr=hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Fy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),_c=hr("div",{"& img":{borderRadius:"50%"}});function $c(t){let{state:e,image:o,error:n}=t;return e===Uy.CONNECTED?so.createElement(ka,{type:"success",title:Io.t("Wallet Connected"),description:Io.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(ka,{type:"error",title:Io.t("Failed to Connect"),description:n||Io.t("Your wallet is not connected. Please try again.")}):so.createElement(ka,{type:"loading",title:Io.t("Connecting to your wallet"),description:Io.t("Click connect in your wallet popup."),icon:so.createElement(yr,null,so.createElement(_c,null,so.createElement(Oy,{src:o,size:45})),so.createElement(Sr,null))})}i($c,"ModalContent");function jo(t){let{open:e,onClose:o,...n}=t;return wa.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},wa.createElement($c,{...n}),wa.createElement(zy,{direction:"vertical",size:32}))}i(jo,"WalletModal");import{i18n as va}from"@lingui/core";import{Button as Qy,Checkbox as Hy,Image as Fc,ListItemButton as Gy,MessageBox as Vy,Radio as Xy,RadioRoot as jy}from"@rango-dev/ui";import{namespaceMainBlockchain as Ky}from"@rango-dev/wallets-shared";import We,{useMemo as Yy,useState as Zy}from"react";import{styled as qy}from"@rango-dev/ui";var Dc=qy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Jy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Zy([]),a=h().blockchains(),s=Yy(()=>o?.map(u=>({name:u,logo:Jy(a,Ky[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(jy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},We.createElement(Vy,{type:"info",title:va.t("Select chain types"),description:va.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(yr,null,We.createElement(cr,null,We.createElement(Fc,{src:t.image,size:45})),We.createElement(Sr,null))}),We.createElement(Dc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(Gy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Fc,{src:u.logo,size:22}),end:e?We.createElement(Xy,{value:u.name}):We.createElement(Hy,{checked:n.includes(u.name)})}))))),We.createElement(Qy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},va.t("Confirm")))}i(lo,"WalletNamespacesModal");var rS=zc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),iS=zc(me,{textAlign:"center"}),Tr=3e3,xa=300;function qc(){let{fetchStatus:t}=h(),[e,o]=Cr("ALL"),n=h().blockchains(),[r,a]=Cr(!1),[s,l]=Cr(null),[p,u]=Cr(""),c=null,m=ie.use.isActiveTab(),{list:d,handleClick:f,error:g,disconnectConnectingWallets:S}=vo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},xa)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},Tr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),y=d.find(w=>w.type===p),T=y?.image||"",k=y?.state||Uc.NOT_INSTALLED,v=Ll(d,n),x=eS(v)!==1,L=Bl(d,e);return at.createElement(le,{header:{title:Oc.t("Connect Wallets")}},at.createElement(iS,null,x&&at.createElement(at.Fragment,null,at.createElement(tS,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),at.createElement(Ry,{size:24})),at.createElement(oS,{variant:"title",size:"xmedium",align:"center"},Oc.t("Choose a wallet to connect.")),at.createElement(rS,null,L.map((w,b)=>{let A=`wallet-${b}-${w.type}`;return at.createElement(nS,{key:A,...w,container:B(),onClick:P=>{w.namespaces&&w.state===Uc.DISCONNECTED?l({providerType:P,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(P)},isLoading:t==="loading",disabled:!m})}),at.createElement(jo,{open:!!r,onClose:C,image:T,state:k,error:g}),at.createElement(lo,{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 aS,styled as ba}from"@rango-dev/ui";var Qc=ba("div",{position:"relative"}),sS=aS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Hc=ba("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${sS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Gc=ba("div",{"& img":{borderRadius:"50%"}});var uS=7;function Ea(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Eo(""),[d,f]=Eo(null),[g,S]=Eo(!1),[C,y]=Eo(null),[T,k]=Eo(null),{suggestAndConnect:v}=wr(),E=null,{list:x,error:L,handleClick:w,disconnectWallet:b,disconnectConnectingWallets:A}=vo({chain:e,onBeforeConnect:W=>{E=setTimeout(()=>{m(W)},xa)},onConnect:W=>{s?.(W),E&&clearTimeout(E),setTimeout(()=>{m("")},Tr)}}),[P,Q]=Eo(x),I=x.length,H=r&&I-r>0,Y=i(async W=>{S(!1),y("in-progress");try{await v(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");jc(()=>{Q(W=>{let U=x.findIndex(Z=>o(Z.type,e));return H&&U>1?[x[U]].concat(x.filter((Z,re)=>re!==U)):W.map(Z=>x.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(x)]);let G=document.getElementById(Se.SWAP_BOX_ID);jc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),Tr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{A(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,P.slice(0,r).map(W=>{let U=Nl({connectedWallets:p,walletType:W.type,chain:e}),Z=U?Pn(U,uS):"",re=Ln(u(),e),ke=!p.find(Oe=>Oe.walletType===W.type&&Oe.chain===e),_=re&&ke&&W.state===Xc.CONNECTED,Fe=_?st.t({id:"Add {chain} chain",values:{chain:e}}):Z,ot=i(async()=>{W.state===Xc.DISCONNECTED?W.namespaces?pe(W):w(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(f({walletType:W.type,chain:e,address:U??""}),S(!0)):n({walletType:W.type,chain:e,address:U??""})},"onClick"),fe=d?.chain?In(d.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${fe}`},ue.createElement(jo,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:L}),ue.createElement(lo,{open:!!T,onClose:()=>k(null),onConfirm:Oe=>{w(T?.providerType,Oe),k(null)},image:T?.providerImage,namespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),!!d&&ue.createElement(ne,{open:!!d&&g,container:G,onClose:()=>{f(null)}},ue.createElement(kr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}})},ue.createElement(Ia,{size:18}),ue.createElement(Ia,{size:32}),ue.createElement(lS,{onClick:Y.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(kr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}}),icon:ue.createElement(Qc,null,ue.createElement(Gc,null,ue.createElement(pS,{src:W.image,size:45})),ue.createElement(Hc,null))}),C==="completed"&&ue.createElement(kr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:fe}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:fe}})}),C==="rejected"&&ue.createElement(kr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:fe}})}),ue.createElement(Ia,{direction:"vertical",size:32})),ue.createElement(cS,{key:W.type,description:Fe,onClick:ot,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(Op,{selected:!1,onClick:a},ue.createElement(Vc,{variant:"label",size:"medium"},st.t("Show more wallets"),ue.createElement(Vc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Ea,"WalletList");var wS=2;function Jc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=kS(),l=h().config,p=TS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:d,setQuoteWalletConfirmed:f,customDestination:g,setCustomDestination:S}=K(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=po(""),[v,E]=po([]),[x,L]=po(""),[w,b]=po(null),[A,P]=po(!!g),Q=navigator?.userAgent.includes("Firefox"),I=Rt({filter:"all",quote:c}),H=Rt({filter:"required",quote:c}),Y=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(M=>H.includes(M),"isWalletRequiredFor"),G=CS(()=>C.filter(M=>M.selected&&I.includes(M.chain)),[C.length,I.length]),[ee,W]=po(G()),[U,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),ke=v.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&A&&Y&&!qn(Y,g),ot=i(()=>{P(!1),S(null),W(M=>{let V=!1;return M.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),fe=i(()=>S(""),"handleClearCustomDestination"),Oe=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),vt=i(M=>{M?pe(Y?.name??"")||W(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):ot()},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(M=>{if(T&&k(""),_(M.walletType,M.chain))return;let X=C.find(qe=>qe.walletType===M.walletType&&qe.chain===M.chain);X&&(n(),M.chain===Y?.name&&A&&!pe(Y.name)&&(P(!1),S(null)),W(qe=>qe.filter(ft=>ft.chain!==M.chain).concat({...X,selected:!0})))},"onChange"),nt=i(()=>{let M=ee.filter(V=>V.selected);y(M),m(M),f(!0),o()},"onConfirmBalance"),rt=i(async()=>{E([]),L(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&E(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&L(ap(M.error)),!M.error&&!V?.balance?.messages.length?nt():E(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Yc,{onClick:fe,variant:"ghost"},$.createElement(gS,{size:12,color:"gray"})):Q?null:$.createElement(Yc,{onClick:Oe,variant:"ghost"},$.createElement(yS,{size:16})),"renderCustomDestinationSuffix");Zc(()=>{W(M=>{let V=[];return M.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C.length,I.length]),Zc(()=>{let M=[];U.length>0&&(U.forEach(V=>{let X=C.find(qe=>qe.chain===V.blockchain&&qe.walletType===V.walletType);X?Ve(X):M.push(V)}),Z(M))},[C.length,U.length]);let ye=document.getElementById(Se.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{d||s("../",{replace:!0}),o()},dismissible:!T,container:ye,...!T&&{footer:$.createElement(Vp,null,$.createElement(Kc,{loading:a,disabled:xp(a,A,g,c,ee,Y),onClick:rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Up,null,$.createElement(zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(fS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(T,u)}})))},anchor:"center"},$.createElement(ne,{open:ke,onClose:E.bind(null,[]),container:ye},$.createElement(hS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(mS,{messages:v??[]})},$.createElement(Kc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:nt},St.t("Proceed anyway")))),T&&$.createElement(qp,null,$.createElement("div",{className:Qp()},$.createElement(Ea,{chain:T,isSelected:_,selectWallet:Ve,onShowMore:()=>k(T),onConnect:M=>{re(T,M)}}))),!T&&$.createElement($.Fragment,null,x&&$.createElement($.Fragment,null,$.createElement(Aa,{variant:"alarm",type:"error",title:St.t(x)}),$.createElement(Ko,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(Aa,{variant:"alarm",type:"warning",title:er(w)}),$.createElement(Ko,{size:12})),$.createElement(jp,null,I.map((M,V)=>{let X=u.find(Jt=>Jt.name===M),qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:qe},$.createElement(Dp,null,$.createElement(vr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Ko,{size:24}),$.createElement(Fp,null,$.createElement(Ea,{chain:M,isSelected:_,selectWallet:Ve,limit:wS,onShowMore:()=>k(X?.name??""),onConnect:Jt=>{re(M,Jt)}})),!ft&&$.createElement(Ko,{size:32}),ft&&l?.customDestination&&$.createElement(Hp,null,$.createElement(ir,{onOpenChange:vt,hasSelected:!0,open:A,triggerAnchor:"top",trigger:$.createElement(Kp,null,$.createElement("div",{className:"button__content"},$.createElement(SS,{size:18,color:"info"}),$.createElement(Ko,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:A?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(nr,{orientation:A?"up":"down"},$.createElement(dS,{size:10,color:"secondary"}))),onClickTrigger:()=>P(Jt=>!Jt)},$.createElement(Xp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:In(M,u)}),value:g||"",suffix:dt(),onChange:Jt=>{let jf=Jt.target.value;S(jf)},...!g&&{autoFocus:!0}})),Fe&&$.createElement("div",{className:Gp()},$.createElement(Aa,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Jc,"ConfirmWalletsModal");import{i18n as zS}from"@lingui/core";import{Alert as qS,Button as QS,InfoIcon as HS}from"@rango-dev/ui";import He from"react";import{Alert as bS,Button as IS,Divider as Ma,NoRouteIcon as ES,RefreshIcon as AS,Typography as iu}from"@rango-dev/ui";import Qe from"react";import{i18n as Rc}from"@lingui/core";var vS=24,xS=60;function eu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:Rc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Rc.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(eu,"makeInfo");var Na=(o=>(o[o.small=vS]="small",o[o.large=xS]="large",o))(Na||{}),Wa=(o=>(o.small="small",o.large="medium",o))(Wa||{});import{styled as xr}from"@rango-dev/ui";var tu=xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ou=xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),nu=xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),ru=xr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=eu(o,r,()=>a(s,!0),e);return Qe.createElement(tu,null,Qe.createElement(ES,{size:Na[n],color:"gray"}),Qe.createElement(Ma,{size:4}),Qe.createElement(iu,{variant:"title",size:Wa[n]},oe().noResultError.title),n==="large"&&Qe.createElement(Ma,{size:4}),!!l.description&&Qe.createElement(ou,{size:n},Qe.createElement(iu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Qe.createElement(Ma,{size:n==="large"?"24":"4"}),!!l.alert&&Qe.createElement(nu,{size:n},Qe.createElement(bS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Qe.createElement(IS,{size:"xsmall",type:l.alert.type,prefix:Qe.createElement(ru,null,Qe.createElement(AS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as WS,Divider as MS,MessageBox as LS,Typography as BS,WarningIcon as PS}from"@rango-dev/ui";import At from"react";import{Typography as pu}from"@rango-dev/ui";import Ba from"react";import{darkTheme as NS,styled as br}from"@rango-dev/ui";var au=br("div",{width:"100%"}),La=br("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),su=br("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${NS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lu=br("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function cu(t){let{title:e,value:o,valueColor:n}=t;return Ba.createElement(su,null,Ba.createElement(pu,{size:"medium",variant:"label",className:"_title"},e),Ba.createElement(pu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(cu,"QuoteErrorsModalItem");function uu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(WS,{type:"primary",size:"large",prefix:At.createElement(PS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},At.createElement(LS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(La,null,At.createElement(MS,{size:"4"}),At.createElement(BS,{size:"small",variant:"title"},Zo.t("Details")),At.createElement(La,null,l.map((p,u)=>At.createElement(cu,{key:u,...p})))))}i(uu,"HighValueLossWarningModal");import{i18n as Pa}from"@lingui/core";function mu(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=Pa.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&&(It(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Pa.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=Pa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(mu,"makeAlerts");import{i18n as Ao}from"@lingui/core";import{Button as du,Divider as fu,MessageBox as _S,Typography as $S}from"@rango-dev/ui";import co from"react";import{useNavigate as DS}from"react-router-dom";function gu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=DS(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(du,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},co.createElement($S,{variant:"label",size:"medium",color:"$neutral900"},Ao.t("Change settings"))),container:B(),onClose:r},co.createElement(_S,{type:"warning",title:s.type===3?Ao.t("High slippage"):Ao.t("Low slippage"),description:s.type===3?Ao.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Ao.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},co.createElement(fu,{size:18}),co.createElement(fu,{size:32}),co.createElement(du,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ao.t("Confirm anyway"))))}i(gu,"SlippageWarningModal");import{Button as FS,MessageBox as OS,WarningIcon as US}from"@rango-dev/ui";import Ir from"react";function hu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ir.createElement(ne,{footer:Ir.createElement(FS,{type:"primary",size:"large",prefix:Ir.createElement(US,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Ir.createElement(OS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(hu,"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,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,f=mu(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),He.createElement(He.Fragment,null,d&&He.createElement(Yo,{error:o,fetch:s}),!!f&&He.createElement(au,null,He.createElement(qS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:He.createElement(lu,{onClick:l},He.createElement(HS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:He.createElement(QS,{size:"xxsmall",type:f.alertType,onClick:c},zS.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(uu,{...m,warning:e}),(e.type===3||e.type===2)&&He.createElement(gu,{...m,warning:e}),e.type===1&&He.createElement(hu,{...m,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import kC from"bignumber.js";import Ur from"react";import{i18n as uo}from"@lingui/core";import{Alert as lC,Divider as Wo,FullExpandedQuote as pC,InfoIcon as cC,QuoteTag as uC,StepDetails as mC,TokenAmount as dC,Tooltip as Ku,Typography as Mo}from"@rango-dev/ui";import qa from"bignumber.js";import D,{useRef as fC,useState as gC}from"react";import{styled as _a}from"@rango-dev/ui";var $a=_a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),yu=_a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Su=_a("div",{width:"100%",display:"flex"});import*as Er from"@radix-ui/react-collapsible";import{Button as GS,css as Ro,darkTheme as we,Image as Cu,styled as _e,Typography as VS}from"@rango-dev/ui";var XS=300,Tu=_e(Er.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),ku=Ro({padding:"$10 $15"}),wu=_e(GS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),vu=_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",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),xu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),bu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),No=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Iu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Eu=_e(Er.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:{[`& ${Cu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Cu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Au=_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"}}}}),Nu=_e(or,{width:"100%",background:"inherit"}),Da=_e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${XS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),mB=_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",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Mu=_e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Fa=_e(VS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Lu=_e("div",{display:"flex",flexWrap:"wrap"}),Oa=_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"}),Ar=_e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Vt}from"@lingui/core";import{ChevronDownIcon as KS,CloseIcon as YS,Divider as Mr,IconButton as ZS,QuoteCost as JS,Tooltip as RS,Typography as lt}from"@rango-dev/ui";import J,{useState as Du}from"react";import{css as jS,styled as Nr}from"@rango-dev/ui";var Wr=Nr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ua=Nr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Pu=Nr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),_u=Nr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),$u=jS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var eC=i(t=>t.fee.isZero()?null:J.createElement(Wr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Fu(t){let[e,o]=Du(!1),[n,r]=Du(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],d=B(),f=mp(m);return J.createElement(J.Fragment,null,J.createElement(JS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Vt.t("View more info"):void 0,tooltipContainer:d}),J.createElement(ne,{container:d,open:e,header:J.createElement(_u,null,J.createElement(lt,{variant:"title",size:"medium"},Vt.t("Gas & Fee Explanation")),J.createElement(ZS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(YS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(Pu,null,J.createElement(lt,{variant:"title",size:"small"},Vt.t("Details")),J.createElement(Mr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=zi(C);return J.createElement(Wr,{key:T},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Di[g]),J.createElement(RS,{content:ce(C.amount),container:d},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Wr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Vt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(Ua,null),Object.keys(f.nonePayable).length&&J.createElement(ir,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:$u()},J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?Vt.t("Hide non-payable fees"):Vt.t("Show non-payable fees")),J.createElement(Mr,{size:4,direction:"horizontal"}),J.createElement(nr,{orientation:n?"up":"down"},J.createElement(KS,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Vt.t("Description")),J.createElement(Mr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Vt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),J.createElement(Mr,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let y=up(S),T=Di[g],k=`non-payable-fee-${C}`;return J.createElement(eC,{key:k,fee:y,label:T})}),J.createElement(Ua,null)))))}i(Fu,"QuoteCostDetails");import{i18n as zu}from"@lingui/core";import{TokenAmount as qu}from"@rango-dev/ui";import Lr from"react";import{css as tC,styled as oC}from"@rango-dev/ui";var Ou=oC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Uu=tC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Lr.createElement(Ou,null,Lr.createElement(qu,{direction:"horizontal",label:zu.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}}),Lr.createElement("div",{className:Uu()}),Lr.createElement(qu,{direction:"horizontal",tooltipContainer:B(),label:zu.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(en,"QuoteSummary");import{i18n as Xu}from"@lingui/core";import{ChevronDownIcon as iC,ChevronRightIcon as aC,Divider as za,Image as sC,Tooltip as Dr,Typography as Pr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as nC,useState as tn}from"react";var Qu=480,Hu=768,Gu=1024,Vu=1200,rC=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=Qu),n(window.innerWidth>Qu&&window.innerWidth<=Hu),a(window.innerWidth>Hu&&window.innerWidth<=Gu),l(window.innerWidth>Gu&&window.innerWidth<=Vu),u(window.innerWidth>Vu)},"handleResize");return nC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Br=rC;var _r=4,$r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return F.createElement(Dr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Au,{className:n,state:a},F.createElement(sC,{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:m,isMobile:d}=Br();return F.createElement(Eu,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:No()},F.createElement(Pr,{variant:"body",size:"xsmall"},Xu.t("Via:")),F.createElement(za,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=F.createElement(Da,null,F.createElement(aC,{size:12,color:"black"}));return d||m?F.createElement(F.Fragment,{key:S},F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:S},u<=_r||u>_r&&g<_r-1?F.createElement(F.Fragment,null,F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===_r-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Oa,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Pr,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:No()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:No()},F.createElement(Pr,{variant:"body",size:"xsmall"},Xu.t("Chains:")),F.createElement(za,{direction:"horizontal",size:4}),c.map((f,g)=>F.createElement(F.Fragment,{key:f.displayName},c.length<=$r||c.length>$r&&g<$r-1?F.createElement(Dr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},F.createElement(on,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===$r-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},c.map((S,C)=>C>=g&&F.createElement(on,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Oa,{className:"blockchainImage"},F.createElement(Pr,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(za,{direction:"horizontal",size:32}))),F.createElement(Da,{orientation:a?"up":"down"},F.createElement(iC,{size:12,color:"black"}))))}i(ju,"QuoteTrigger");function Qa(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:m=!1,container:d}=t,f=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=gC(t.expanded),E=fC(null),x=N(o.value,6,6),L=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",b=Ke(o.usdValue,n.usdValue??null),A=N(b,2,2),P=It(b??0),Q=i((re,ke)=>re.map((_,Fe)=>{let ot,fe=r?.type===3&&r.swap.swapperId===_.swapperId,Oe=r?.type===4&&r.recommendedSlippages?.has(Fe),vt=a?.type===2&&a.recommendedSlippages?.has(Fe),Ve=fe||Oe,nt=vt;Ve?ot="error":nt&&(ot="warning");let rt=Ve?uo.t("Slippage Error"):uo.t("Slippage Warning");return fe&&(rt=uo.t("Bridge Limit Error")),{swapper:{displayName:Fo(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Fe===0&&!ke?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Fe===0?o.value:_.fromAmount),realUsdValue:ce(new qa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new qa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:ot,alerts:Ve||nt?D.createElement(yu,{dense:m},D.createElement(lC,{variant:"alarm",type:Ve?"error":"warning",title:rt,footer:D.createElement(Su,null,fe&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Oe||vt)&&!fe&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Fe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Fe)}}})),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Oo(_.estimatedTimeInSeconds),fee:N(Ui(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),I=Q(e?.swaps??[]),H=I.length,Y=d||B(),pe=Mp(t.quote.tags||[]),G=!!c,ee=Oo(En(e?.swaps)),W=Gn(e?.swaps??[],g),U=N(W,2,2),Z=W.gte(new qa(ip));return m?D.createElement(pC,{selected:l,fee:U,time:ee,tooltipContainer:Do(),steps:I,tags:pe,feeWarning:Z,percentageChange:A,warningLevel:P,outputPrice:{value:L,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(vu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:xu()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(Bu,null,pe.map((re,ke)=>{let _=`${re.value}_${ke}`;return D.createElement(D.Fragment,{key:_},D.createElement(uC,{label:re.label,value:re.value}),D.createElement(Wo,{size:4,direction:"horizontal"}))})),D.createElement(Ar,null),!G&&D.createElement(Wo,{size:4})):null,D.createElement("div",{id:"portal-root",className:bu()},D.createElement(Fu,{quote:e,time:ee,fee:U,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(wu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Mo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},uo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Iu()},D.createElement(Mu,null,D.createElement(cC,{size:12,color:"gray"})),D.createElement(Lu,null,D.createElement(Fa,{size:"small",variant:"body"},`${x} ${I[0].from.token.displayName} = `),D.createElement(Ku,{content:ce(n.value),container:Y,open:n.value?void 0:!1},D.createElement(Fa,{size:"small",variant:"body"},"\xA0",`${L} ${I[I.length-1].to.token.displayName}`))),D.createElement(Ku,{content:ce(n.usdValue),container:Y},D.createElement(Wo,{size:2,direction:"horizontal"}),D.createElement(Mo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&D.createElement(dC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:L,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:A,warningLevel:P}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:I[0].from,to:I[H-1].to,percentageChange:A,warningLevel:P}),D.createElement(Wo,{size:4}))),D.createElement(Tu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},D.createElement(ju,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:I}),D.createElement(Nu,{open:k},D.createElement(Wu,null),D.createElement("div",{className:ku()},I.map((re,ke)=>{let _=`item-${ke}`;return D.createElement(mC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:ke!==I.length-1,state:re.state})})))))}i(Qa,"Quote");import{Divider as CC,Skeleton as TC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as hC,styled as Fr}from"@rango-dev/ui";var Yu=Fr("div",{$$color:"$colors$neutral100",[`.${hC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Zu=Fr("div",{paddingTop:"$2"}),Ju=Fr("div",{paddingLeft:"$8"}),Ru=Fr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as pm,Divider as pt,Skeleton as Ge}from"@rango-dev/ui";import q from"react";import{css as yC,styled as Nt}from"@rango-dev/ui";var Ha=Nt("div",{display:"flex"}),em=Nt("div",{padding:"$10 $0 $20"}),tm=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),om=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),nm=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),rm=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),im=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),am=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),sm=Nt("div",{padding:"$15 $0 $15 $0"}),lm=yC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(nm,null,q.createElement(im,null,q.createElement(pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{size:8,direction:"horizontal"}),q.createElement(am,null,q.createElement(Ge,{height:10,width:60,variant:"rounded"}),q.createElement(pt,{size:4}),q.createElement(Ge,{height:15,variant:"rounded"}))),q.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(Ha,null,q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"})),q.createElement(Ar,null),!r&&q.createElement(pt,{size:4})),q.createElement("div",{className:lm()},q.createElement(Ha,null,q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&q.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(em,null,q.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(tm,null,q.createElement(om,null,q.createElement(pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{direction:"horizontal",size:4}),q.createElement(Ge,{height:15,width:150,variant:"rounded"})),q.createElement(pt,{size:10}),q.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(pt,{size:4}),q.createElement(sm,null,n,q.createElement(rm,null),n),q.createElement(pt,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as fm,Divider as Va,NextIcon as SC,Skeleton as Or}from"@rango-dev/ui";import ve from"react";import{styled as rn}from"@rango-dev/ui";var cm=rn("div",{display:"flex",alignItems:"start"}),um=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ga=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),mm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dm=rn("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(dm,null,ve.createElement(Or,{height:22,width:22,variant:"circular"}),ve.createElement(Va,{direction:"horizontal",size:8}),ve.createElement(Or,{height:15,width:148,variant:"rounded"})),ve.createElement(cm,null,ve.createElement(Ru,{hideSeparator:!e}),ve.createElement(um,{extraSpace:e},ve.createElement(Ga,null,ve.createElement(fm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Va,{direction:"horizontal",size:8}),ve.createElement(Or,{height:12,variant:"rounded"})),ve.createElement(mm,null,ve.createElement(SC,{color:"gray",size:16})),ve.createElement(Ga,null,ve.createElement(fm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Va,{direction:"horizontal",size:8}),ve.createElement(Or,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Yu,{expanded:o,rounded:e!=="basic"},Wt.createElement(nn,{type:e,tagHidden:n}),Wt.createElement(Zu,null,Wt.createElement(TC,{height:15,variant:"rounded"})),o&&Wt.createElement(Ju,null,Wt.createElement(CC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:d=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=K(),y=e?.outputAmount?new kC(e?.outputAmount):null,T=e?.outputAmount?Xn(e?.outputAmount,Kn(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ur.createElement($a,null,Ur.createElement(an,{tagHidden:l,type:o,expanded:s})):v?Ur.createElement($a,{onClick:()=>p?.(e)},Ur.createElement(Qa,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:d,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as bC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as IC}from"react";import{useRef as wC,useState as vC}from"react";var xC=2e3;function zr({request:t}){let[e,o]=vC(!1),n=wC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,xC)),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(zr,"useFetch");function gm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(gm,"useFetchConfirmQuote");function qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Xa(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(qr,"throwErrorIfResponseIsNotValid");function Xa(t){if(lp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=pp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=dp(t);if(o){let n=Vn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Xa,"getQuoteError");function hm(t,e,o){let n=!1;t&&(n=Ap(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Co(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Cp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(So(e)),percentageChange:N(Ke(So(t)??"",So(e)??""),null,2)}:qi(t,e)?r.quoteUpdate={type:0}:Qi(t,e)?r.quoteUpdate={type:1}:Hi(t,e)&&(r.quoteUpdate={type:2}));let s=Tp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(hm,"generateWarnings");function Qr(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(Qr,"handleQuoteErrors");function ja(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=K(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),d=h().tokens(),{findToken:f}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=gm();return IC(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,E=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let x=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),L={requestId:r?.requestId||"",selectedWallets:x,destination:E||void 0};try{return await S(L,!0).then(w=>{let{result:b}=w;qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let A={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(A);let P={slippage:g.toString(),disabledSwappersGroups:c},Q=hm(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:f,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let I=!!Q.balance,H=bC(o.toString(),b,yp(v),P,!I,{blockchains:m,tokens:d});return{quote:A,swap:H,error:null,warnings:Q}})}catch(w){return Qr(w)}},"fetch"),cancelFetch:C}}i(ja,"useConfirmSwap");var _C=NC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Sm}`]:{width:"$48",height:"$48"}}),$C=Za({flexGrow:1,paddingRight:"$10"}),DC=Za({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),FC=Za({display:"flex",justifyContent:"space-between",alignItems:"center"});function Cm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=K(),s=PC(),[l,p]=sn(""),u=!n,[c,m]=sn(!1),[d,f]=sn(!1),{isActiveTab:g}=ie(),S=h().getDisabledLiquiditySources(),C=BC(S),{manager:y}=EC(),{fetch:T,loading:k,cancelFetch:v}=ja(),[E,x]=sn({swap:null,error:null,warnings:null}),[L,w]=sn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await T?.({selectedWallets:G,customDestination:ee});return x(W),W},"onConfirmSwap"),A=i(async()=>{if(E.swap&&n)try{await y?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let G=`../${z.swaps}/${E.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),P=i(async()=>{f(!0),await A(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await P()},"onStartConfirmSwap"),I=i(async()=>{x({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(G=>{x(G)}).catch(G=>console.error(G))},"onRefresh");Hr(()=>{!!C.current.length&&!S.length&&I(),C.current=S},[S.length]),Hr(()=>{u&&v()},[u]),Hr(()=>{u&&m(u)},[u]),Hr(()=>{u||T({selectedWallets:o,customDestination:r}).then(G=>x(G)).catch(G=>console.error(G))},[]),LC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=E.warnings?.quote??null,Y=E.error,pe=[];if(l&&pe.push(xe.createElement(ym,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&pe.push(xe.createElement(ym,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&er(E.warnings.quoteUpdate)})),H||Y){let G=`../${z.settings}`;pe.push(xe.createElement(Jo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:L,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await A()},onChangeSettings:()=>s(G)}))}return xe.createElement(le,{header:{title:Ka.t("Confirm Swap"),onWallet:()=>{let G=`../${z.wallets}`;s(G)}},footer:xe.createElement(_C,null,xe.createElement("div",{className:$C()},xe.createElement(AC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!E.error||!g,onClick:Q},Ka.t("Start Swap"))),xe.createElement(Sm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!g,onClick:m.bind(null,!0)},xe.createElement(MC,{size:24})))},c&&xe.createElement(Jc,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),xe.createElement(me,null,xe.createElement("div",{className:FC()},xe.createElement(WC,{variant:"title",size:"small"},Ka.t("You get")),xe.createElement("div",{className:DC()},xe.createElement(mr,{onClick:!k&&!c&&!L?I:void 0}))),xe.createElement(Ya,{size:"12"}),Jp(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),xe.createElement(Ya,{size:10})),pe.length>0?xe.createElement(Ya,{size:10}):null,xe.createElement(mo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(Cm,"ConfirmSwapPage");import{i18n as Vr}from"@lingui/core";import{useManager as eT}from"@rango-dev/queue-manager-react";import{Divider as Wm,NotFound as tT,styled as oT}from"@rango-dev/ui";import Lt,{useState as nT}from"react";import{useNavigate as rT}from"react-router-dom";import{i18n as zC}from"@lingui/core";import{Divider as xm,GroupedVirtualizedList as qC,Skeleton as QC,SwapListItem as bm,Typography as HC}from"@rango-dev/ui";import $e,{useCallback as Im,useEffect as GC,useRef as VC,useState as XC}from"react";function Tm(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(Tm,"calculateGroupsSoFar");import{css as OC,darkTheme as UC,styled as ln}from"@rango-dev/ui";var Ja=OC(),km=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ra=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ja}`]:{$$color:"$colors$neutral600",[`.${UC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),es=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),wm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),vm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var jC=10;function ts(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=XC([]),l=VC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Im(Tm,[]),d=Im(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,jC),s(m(u,l.current)))},[e.length]);if(GC(()=>{r||d()},[r,d]),r){let f=[1,2];return $e.createElement($e.Fragment,null,[f,f].map((S,C)=>$e.createElement(Ra,{key:C},$e.createElement(es,null,$e.createElement(QC,{variant:"text",width:60,size:"small"}),$e.createElement(xm,{size:16})),$e.createElement(xm,{size:4}),$e.createElement(wm,null,S.map((T,k)=>$e.createElement(bm,{isLoading:!0,key:k}))))))}return $e.createElement(qC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:f=>$e.createElement(Ra,null,$e.createElement(es,null,$e.createElement(HC,{variant:"label",size:"medium",className:Ja()},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 $e.createElement(km,{key:S.requestId},$e.createElement(bm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===zC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:ce(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(ts,"HistoryGroupedList");import{CloseIcon as YC,IconButton as ZC,SearchIcon as JC,TextField as RC}from"@rango-dev/ui";import pn from"react";import{styled as KC}from"@rango-dev/ui";var Em=KC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(RC,{prefix:pn.createElement(Em,null,pn.createElement(JC,{color:"black"})),suffix:!!s.length&&pn.createElement(ZC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(YC,{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(Mt,"SearchInput");import{i18n as Gr}from"@lingui/core";import Am from"dayjs";var Nm=i(t=>{let e=new Map([["today",{title:Gr.t("Today"),swaps:[]}],["week",{title:Gr.t("This week"),swaps:[]}],["month",{title:Gr.t("This month"),swaps:[]}],["year",{title:Gr.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=Am();t.forEach(p=>{let u=Number(p.creationTime),c=Am(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 m=new Date(u).getFullYear().toString();o(m,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 iT=oT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),aT=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Mm(){let t=rT(),{manager:e,state:o}=eT(),n=Je(e).map(({swap:c})=>c),[r,a]=nT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||aT(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Vr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Vr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Wm,{size:"16"}),Lt.createElement(iT,null,u&&Lt.createElement(vm,null,Lt.createElement(Wm,{size:32}),Lt.createElement(tT,{title:Vr.t("No results found"),description:r?Vr.t("Try using different keywords"):""})),!u&&Lt.createElement(ts,{list:p,onSwapClick:t,groupBy:Nm,isLoading:s}))))}i(Mm,"HistoryPage");import{i18n as bT}from"@lingui/core";import{Button as IT,Divider as Km,styled as ET,WarningIcon as AT}from"@rango-dev/ui";import NT from"bignumber.js";import Ue,{useEffect as Ym,useState as Zm}from"react";import{useNavigate as WT}from"react-router-dom";import{i18n as mT}from"@lingui/core";import{Header as dT}from"@rango-dev/ui";import Xt,{useEffect as fT,useState as gT}from"react";import{i18n as lT}from"@lingui/core";import{Divider as ns,FullExpandedQuote as pT,Typography as cT}from"@rango-dev/ui";import ge from"react";import{styled as os}from"@rango-dev/ui";var Lm=os("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Bm=os("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Pm=os("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as sT}from"@rango-dev/ui";import _m from"react";function Xr(t){let{updateQuotePartialState:e,sortStrategy:o}=K(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return _m.createElement(Pm,null,_m.createElement(sT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Xr,"SelectStrategy");var $m=3;function un(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:m,toToken:d,sortStrategy:f,error:g}=K(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(w=>{if(!m||!d||!u)return null;let b={requestAmount:u.requestAmount,...w};return Co(b,{fromToken:m,toToken:d,userSlippage:v,findToken:y})},"getQuoteWarning"),x=g?.type===0||g?.type===1,L=u?.results?Zn(f,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement(Bm,null,ge.createElement(cT,{size:"xmedium",variant:"title"},lT.t("Sort by")),ge.createElement(Xr,{container:T})),ge.createElement(ns,{size:"10"})),e&&Array.from({length:$m},(w,b)=>ge.createElement(ge.Fragment,{key:b},s?ge.createElement(pT,{loading:!0}):ge.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),b!==$m-1&&ge.createElement(ns,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?L.map((w,b)=>{let A=E(w),P=Xa(w.swaps),Q=L.length-1===b;return ge.createElement(ge.Fragment,{key:w.requestId},ge.createElement(mo,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:P?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{P||c("warning",A),c("error",P?.options||null),o(I)},type:"list-item"}),!Q&&ge.createElement(ns,{size:16}))}):x&&ge.createElement(Lm,null,ge.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as uT,styled as Dm}from"@rango-dev/ui";var Fm=Dm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${uT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Om=Dm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var hT=100;function rs(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=gT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Do();return fT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},hT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Xt.createElement(Fm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:Se.EXPANDED_BOX_ID},Xt.createElement(dT,{title:mT.t("Routes"),suffix:Xt.createElement(Xt.Fragment,null,Xt.createElement(Xr,{container:m}),Xt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Xt.createElement(Om,null,Xt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:c})))}i(rs,"ExpandedQuotes");import{i18n as Vm}from"@lingui/core";import{SwapInput as Xm}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as CT}from"@rango-dev/ui";import as from"react";import{keyframes as yT,styled as Um}from"@rango-dev/ui";var is=450,ST=yT({"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)"}}),zm=Um("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),qm=Um("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} ${is}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 ss(){let t=K.use.switchFromAndTo();return as.createElement(zm,null,as.createElement(qm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},is),t()}},as.createElement(CT,{size:12})))}i(ss,"SwitchFromAndToButton");import{styled as Qm}from"@rango-dev/ui";var Hm=Qm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Gm=Qm("div",{position:"relative"});function ls(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:d,outputUsdValue:f,selectedQuote:g}=K(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Bn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",v=!!s&&Wl(S,s.name),E=!Oi(g,c,m),x=!Oi(g,c,f),L=!m||!f||!f.gt(0)?null:Ke(m.toString(),f.toString());return mn.createElement(Hm,null,mn.createElement(Gm,null,mn.createElement(Xm,{label:Vm.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(m,4,4),realUsdValue:E?void 0:ce(m),error:E?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ss,null)),mn.createElement(Xm,{sharpBottomStyle:!r&&(!!g||e),label:Vm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Ke(m,f),2,2),warningLevel:It(L??0),price:{value:N(d,6,6),usdValue:x?void 0:N(f,4,4),realValue:ce(d),realUsdValue:x?void 0:ce(f),error:x?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ls,"Inputs");import{useCallback as TT,useEffect as kT,useRef as wT,useState as vT}from"react";function jm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(jm,"useFetchAllQuotes");var xT=600;function jr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=jm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:d,resetQuote:f,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=K(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:E,affiliateWallets:x,fetchStatus:L}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:P}=h(),[Q,I]=vT(!0),H=wT(u),Y=k??T,G=!l||!p||eo(l,p)||!Uo(u),ee=i(Z=>{I(Z)},"resetState"),W=i(Z=>{let{fromToken:re,toToken:ke,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:fe,slippage:Oe,affiliateRef:vt,affiliatePercent:Ve,affiliateWallets:nt}=Z;if(Q||ee(!0),!G&&re&&ke){f();let rt=hp({fromToken:re,toToken:ke,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:fe,wallets:s,slippage:Oe,affiliateRef:vt,affiliatePercent:Ve,affiliateWallets:nt,enableCentralizedSwappers:a});ql("experimentalRoute",r)&&(rt.experimental=!0),e(rt).then(dt=>{let ye=Zn(d,dt.results),M=Wp(m,ye,dt.requestAmount);I(!1),y("quotes",dt),C(M),qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&Co(M,{fromToken:re,toToken:ke,userSlippage:Y,findToken:P});y("warning",V)}).catch(dt=>{let{error:ye}=Qr(dt);(ye?.type===0||ye?.type===1)&&f(),ye?.type!==2&&(y("error",ye),I(!1))})}},"fetch"),U=TT(hl(Z=>{W(Z)},xT),[G]);return kT(()=>{if(!t){I(!1);return}if(L!=="success")return;if(G){I(!1),(m||g||S)&&f();return}if(!Uo(u)||c?.eq(0)){ee(!1),o();return}f(),ee(!0);let Z=W;return H.current&&H.current!=u&&(Z=U),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:b,slippage:Y,affiliateRef:E,affiliatePercent:v,affiliateWallets:x}),o},[L,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,w?.length,n,b.length,Y,E,v,JSON.stringify(x)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:b,slippage:Y,affiliateRef:E,affiliatePercent:v,affiliateWallets:x}),loading:Q}}i(jr,"useSwapInput");var MT=ET("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),LT=300;function Jm(){let t=WT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:d}=K(),[f,g]=Zm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Br(),{fetch:y,loading:T}=jr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:E}=te(),{isActiveTab:x}=ie(),[L,w]=Zm(!1),A=cp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),P=Dl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new NT(n).gt(0)&&!bp(e,o),I=Q&&v==="success"&&T,pe=(!P||P&&p?.results.length)&&(l||s);Ym(()=>{c(),d("refetchQuote",!0)},[]),Ym(()=>{g(Q)},[Q]);let G=(r||s)&&!L?y:void 0,ee=i(U=>{P&&f?(g(!1),setTimeout(()=>{t(U)},LT)):t(U)},"onHandleNavigation"),W=i(U=>{r?.requestId!==U.requestId&&(w(!1),u(U))},"onClickOnQuote");return Ue.createElement(MT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(IT,{type:"primary",size:"large",disabled:A.disabled||!x,prefix:A.action==="confirm-warning"&&Ue.createElement(AT,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?ee(z.wallets):A.action==="confirm-warning"?w(!0):ee(z.confirmSwap)}},A.title),header:{onWallet:()=>{ee(z.wallets)},hasBackButton:!1,title:k.title||bT.t("Swap"),suffix:Ue.createElement(ao,{hidden:P?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(z.swaps),onClickSettings:()=>{ee(z.settings)}})}},Ue.createElement(me,null,Ue.createElement(ls,{fetchingQuote:I,fetchMetaStatus:v,isExpandable:P,onClickToken:U=>{ee(U==="from"?z.fromSwap:z.toSwap)}}),Ue.createElement(Km,{size:"2"}),P?null:Ue.createElement(mo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),ee(z.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Km,{size:"10"}),Ue.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:L,confirmationDisabled:!x,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),ee(z.confirmSwap)},onChangeSettings:()=>ee(z.settings)})):null)),P?Ue.createElement(rs,{loading:I,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:f}):null)}i(Jm,"Home");import{i18n as Rm}from"@lingui/core";import{Alert as BT,Divider as PT,List as _T,ListItemButton as $T,Radio as DT,RadioRoot as FT,Typography as OT}from"@rango-dev/ui";import Tt from"react";function jt(){let{setLanguage:t,language:e,config:o}=h(),n=Hl,r=o?.language||qo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||qo),resetLanguage:()=>t(null)}}i(jt,"useLanguage");function ed(){let{activeLanguage:t,changeLanguage:e,languages:o}=jt(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(OT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(DT,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:Rm.t("Language")}},Tt.createElement(me,null,Tt.createElement(BT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(PT,{size:"8"}),Tt.createElement(FT,{value:t},Tt.createElement(_T,{type:Tt.createElement($T,{title:Rm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(ed,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as HT,Checkbox as GT,Image as VT,ListItemButton as XT,NotFound as jT,Typography as KT}from"@rango-dev/ui";import De,{useState as YT}from"react";import{Checkbox as qT,Skeleton as od}from"@rango-dev/ui";import fn from"react";import{styled as ps}from"@rango-dev/ui";var dn=ps("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),cs=ps("div",{width:80,display:"flex",justifyContent:"flex-end"}),us=ps("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as UT,styled as zT}from"@rango-dev/ui";var td=zT(UT,{height:61});var QT=30;function ms(){return fn.createElement(dn,null,Array.from(Array(QT),(t,e)=>fn.createElement(td,{hasDivider:!0,key:e,start:fn.createElement(od,{variant:"circular",width:35,height:35}),title:fn.createElement(od,{variant:"text",size:"large",width:90}),end:fn.createElement(qT,{checked:!1})})))}i(ms,"LoadingLiquiditySourceList");function ds({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=YT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Fn(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),d=m.length===m.filter(y=>y.selected).length,f=i(()=>{m.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:De.createElement(VT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement(GT,{checked:T,disabled:l}),title:De.createElement(KT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),De.createElement(le,{header:{title:Bt.t(t),suffix:De.createElement(cs,null,De.createElement(HT,{variant:"ghost",size:"xsmall",onClick:f},d?Bt.t("Deselect all"):Bt.t("Select all")))}},De.createElement(me,{view:!0},De.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&De.createElement(ms,null),!C.length&&r?De.createElement(us,null,De.createElement(jT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(dn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(XT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ds,"LiquiditySourcePage");import{i18n as ZT}from"@lingui/core";import Kr from"react";import{useNavigate as JT}from"react-router-dom";function nd(){let t=JT(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=K(),{fetch:l,loading:p}=jr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return Kr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:ZT.t("Routes"),suffix:Kr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(me,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(nd,"RoutesPage");import{i18n as ud}from"@lingui/core";import{Divider as md,getCategoriesCount as sk,SelectableCategoryList as lk}from"@rango-dev/ui";import Pt,{useState as dd}from"react";import{i18n as fs}from"@lingui/core";import{Divider as pd,Image as ok,ListItemButton as nk,NotFound as rk,Typography as cd}from"@rango-dev/ui";import Re,{useEffect as ik,useState as ak}from"react";var rd=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as RT,styled as id}from"@rango-dev/ui";var ad=id("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Yr=id(Xo,{padding:0,margin:0,listStyle:"none",[`& ${RT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as ek,Skeleton as sd}from"@rango-dev/ui";import Zr from"react";var tk=20;function ld(){return Zr.createElement(Yr,null,Array.from(Array(tk),t=>Zr.createElement(ek,{key:t,hasDivider:!0,start:Zr.createElement(sd,{variant:"circular",width:35,height:35}),title:Zr.createElement(sd,{variant:"text",size:"large",width:90})})))}i(ld,"LoadingBlockchainList");function gs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=ak(e),{fetchStatus:l}=h();ik(()=>{s([...rd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(pd,{size:32}),Re.createElement(rk,{title:fs.t("No results found"),description:fs.t("Try using different keywords")})):Re.createElement(Yr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(nk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(ok,{src:u.logo,size:30}),title:Re.createElement(cd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Re.createElement(ad,null,Re.createElement(cd,{variant:"label",size:"large"},fs.t("Select Blockchain")),Re.createElement(pd,{size:4}),l==="loading"&&Re.createElement(ld,null),l==="success"&&p())}i(gs,"BlockchainList");function hs(t){let{type:e}=t,o=Ze(),[n,r]=dd(""),[a,s]=dd("ALL"),l=K.use.setToBlockchain(),p=K.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=sk(c)!==1;return Pt.createElement(le,{header:{title:ud.t("Select Blockchain")}},Pt.createElement(me,{view:!0},d&&Pt.createElement(Pt.Fragment,null,Pt.createElement(lk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(md,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:ud.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Pt.createElement(md,{size:16}),Pt.createElement(gs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(hs,"SelectBlockchainPage");import{i18n as oi}from"@lingui/core";import{Divider as Pd}from"@rango-dev/ui";import fo,{useState as bk}from"react";import{useNavigate as Ik}from"react-router-dom";import{i18n as Cs}from"@lingui/core";import{BlockchainsChip as Jr,Divider as yd,Image as Sd,Skeleton as dk,Tooltip as fk,Typography as Ts}from"@rango-dev/ui";import Ne from"react";import{useEffect as uk}from"react";var fd=["ETH","COSMOS","OSMOSIS"];function ys(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(pk),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(ck(s)),r=n.splice(a)}return{list:n,more:r}}i(ys,"prepare");function pk(t,e){let o=fd,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(pk,"sortByMostUsedBlockchains");function ck(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(ck,"generateSortByPreferredBlockchainsFor");function gd(t,e){return!!e.list.find(o=>o.name===t)}i(gd,"isInVisibleList");function Ss(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();uk(()=>{if(e?.selected){let a=ys(t,o,e);gd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=ys(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Ss,"usePrepareBlockchainList");import{styled as mk}from"@rango-dev/ui";var hd=mk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var gk=12;function ks(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Ss(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=K.use.resetToBlockchain(),u=K.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,d=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(yd,{size:12}),Ne.createElement(Ts,{variant:"label",size:"large"},Cs.t("Select Blockchain")),Ne.createElement(yd,{size:12}),Ne.createElement(hd,null,l==="loading"&&Array.from(Array(gk),f=>Ne.createElement(dk,{key:f,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(Ts,{variant:"body",size:"xsmall",color:"secondary500"},Cs.t("All"))),s.list.map(f=>Ne.createElement(fk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},Ne.createElement(Jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ne.createElement(Sd,{src:f.logo,size:30})))),m?Ne.createElement(Jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(Sd,{src:s.more[0].logo,size:30})):null,d?Ne.createElement(Jr,{onClick:a,key:"more-blockchains"},Ne.createElement(Ts,{variant:"body",size:"xsmall",color:"secondary500"},Cs._("More +{count}",{count:s.more.length}))):null)))}i(ks,"BlockchainsSection");import{i18n as Ms}from"@lingui/core";import{darkTheme as Nd,Divider as Bo,ExternalLinkIcon as Sk,Image as Ck,ListItemButton as Tk,NotFound as kk,PinIcon as wk,Skeleton as Wd,Typography as ti,VirtualizedList as vk}from"@rango-dev/ui";import j,{useEffect as Md,useState as Ld}from"react";import{Divider as Ed,ListItem as yk,Skeleton as gn}from"@rango-dev/ui";import ct from"react";import{css as Lo,darkTheme as Cd,ImageContainer as hk,styled as et,Typography as Td}from"@rango-dev/ui";var ws=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),vs=Lo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),xs=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),bs=Lo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Cd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Is=Lo({}),Es=Lo(),kd=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),As=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Rr=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${vs}`]:{[`& .${bs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Is}`]:{bottom:"-15px"},[`& .${ws}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${xs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ns=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ws=et(Td,{}),wd=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Es}`]:{$$color:"$colors$neutral600",[`.${Cd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ei=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),YO=et("div",{display:"flex",alignItems:"center"}),vd=et("div",{position:"relative",[`& ${hk}`]:{borderRadius:"$xm",overflow:"hidden"}}),xd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),bd=et(Td,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Id=et("a",{"& svg:hover":{color:"$colors$info"}});function Ad(t){return ct.createElement(Rr,null,Array.from(Array(t.size),e=>ct.createElement(yk,{key:e,hasDivider:!0,start:ct.createElement(gn,{variant:"circular",width:35,height:35}),end:ct.createElement(ei,null,ct.createElement(gn,{variant:"text",size:"large",width:70}),ct.createElement(Ed,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(gn,{variant:"text",size:"large",width:90}),ct.createElement(Ed,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Ad,"LoadingTokenList");var Ls=20,xk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return j.createElement("div",{className:vs()},o?j.createElement("div",{className:ws()},o):j.createElement(As,{className:xs()},j.createElement(ti,{variant:"title",size:"xmedium"},r.symbol),j.createElement(Bo,{direction:"horizontal",size:4}),j.createElement(Ns,{css:a},j.createElement(Ws,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&j.createElement("div",{className:`${bs()} ${!o&&Is()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",j.createElement(Bo,{size:4,direction:"horizontal"}),j.createElement(Id,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},j.createElement(Sk,{size:12}))))},"renderDesc");function Bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Ld(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Ld(!0),{getBalanceFor:m,loading:d}=te(),{isTokenPinned:f}=h(),g=i(()=>{s(e.slice(0,a.length+Ls))},"loadNextPage");Md(()=>{c(e.length>a.length)},[a.length]),Md(()=>{s(e.slice(0,Ls))},[e.length]);let S=i(()=>!a.length&&o?j.createElement(j.Fragment,null,j.createElement(Bo,{size:32}),j.createElement(kk,{title:Ms.t("No results found"),description:Ms.t("Try using different keywords")})):j.createElement(vk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Bn(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),E=Ri(v.color,"main"),x={$$color:E.main250,[`.${Nd} &`]:{$$color:E.main850},backgroundColor:"$$color"},L={$$color:E.main600,[`.${Nd} &`]:{$$color:E.main200},color:"$$color"};return j.createElement("div",{style:{paddingRight:5}},j.createElement(Tk,{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:j.createElement(vd,null,j.createElement(Ck,{src:y.image,size:30}),f(y,t.type)&&j.createElement(xd,null,j.createElement(wk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?j.createElement(As,null,j.createElement(ti,{variant:"title",size:"xmedium"},y.symbol),j.createElement(Bo,{direction:"horizontal",size:4}),j.createElement(Ns,{css:x},j.createElement(Ws,{variant:"body",size:"xsmall",css:L},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?xk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:L,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:d?j.createElement(ei,null,j.createElement(Wd,{variant:"text",size:"large",width:70}),j.createElement(Bo,{size:4}),j.createElement(Wd,{variant:"text",size:"medium",width:50})):T&&j.createElement(wd,null,j.createElement(bd,{variant:"title",size:"small"},T.amount),j.createElement("div",null),T.usdValue&&j.createElement(ti,{variant:"body",className:Es(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return j.createElement(kd,null,j.createElement(ti,{variant:"label",size:"large"},Ms.t("Select Token")),j.createElement(Bo,{size:4}),l==="loading"&&j.createElement(Ad,{size:Ls}),l==="success"&&j.createElement(Rr,{as:"ul"},S()))}i(Bd,"TokenList");function Bs(t){let{type:e}=t,o=Ik(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=K(),c=te.use.getBalanceFor(),[m,d]=bk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,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:oi.t("Source"),destination:oi.t("Destination")};return fo.createElement(le,{header:{title:oi.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(ks,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:v=>{y(v)}}),fo.createElement(Pd,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:oi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),fo.createElement(Pd,{size:16}),fo.createElement(Bd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let E=S.find(x=>v.blockchain===x.name);E&&y(E),n()}})))}i(Bs,"SelectSwapItemsPage");import{i18n as Ds}from"@lingui/core";import{Alert as Zk,Button as Jk,styled as Rk}from"@rango-dev/ui";import go from"react";import{useInRouterContext as ew,useSearchParams as tw}from"react-router-dom";import{i18n as Ud}from"@lingui/core";import{Divider as Wk,InfoIcon as Mk,TextField as Lk,Tooltip as Bk,Typography as zd}from"@rango-dev/ui";import ut from"react";import{Chip as Ek,styled as hn,TextField as Ak}from"@rango-dev/ui";var _d=hn("div",{paddingTop:"$5",padding:"$10 $5"}),$d=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ak}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Dd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ni=hn("div",{maxWidth:"280px",padding:"$10"}),Fd=hn(Ek,{width:"61px",flexShrink:0});import{i18n as Ps}from"@lingui/core";import{Typography as Nk}from"@rango-dev/ui";import yn from"react";function Od(){return yn.createElement(ni,null,yn.createElement(Nk,{variant:"label",size:"medium",color:"neutral700"},Ps.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,Ps.t("Warning")),":",Ps.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(Od,"SlippageTooltipContent");function _s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ut.createElement(_d,null,ut.createElement(Dd,null,ut.createElement(zd,{variant:"title",size:"xmedium"},Ud.t("Slippage tolerance per swap")),ut.createElement(Wk,{direction:"horizontal",size:4}),ut.createElement(Bk,{container:B(),side:"top",sideOffset:4,content:ut.createElement(Od,null)},ut.createElement(Mk,{color:"gray"}))),ut.createElement($d,null,Gl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Fd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(Lk,{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>=Kl&&s<=jl?n(s):n(null)},suffix:o&&ut.createElement(zd,{variant:"body",size:"small"},"%"),placeholder:Ud.t("Custom")})))}i(_s,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as qd,BridgesIcon as Pk,ChevronRightIcon as $s,DarkModeIcon as Qd,Divider as ri,ExchangeIcon as _k,InfinityIcon as $k,InfoIcon as Dk,LanguageIcon as Fk,LightModeIcon as Hd,List as Ok,ListItem as Uk,ListItemButton as zk,Skeleton as qk,styled as Qk,Switch as Hk,Tabs as Gk,Tooltip as Vk,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as Xk}from"react-router-dom";var jk=Qk("div",{width:"202px",height:"$40"}),Kk=[{id:"light",icon:O.createElement(Hd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(Qd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(qd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Yk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(qd,{...e});case"dark":return O.createElement(Qd,{...e});default:return O.createElement(Hd,{...e})}},"getThemeIcon");function Gd(){let t=Xk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=jt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=je("theme",c),d=je("liquiditySource",c),f=je("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=Fn(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),T=y.length,k=y.filter(H=>H.selected).length,v=C.filter(H=>H.type==="DEX"),E=v.length,x=v.filter(H=>H.selected).length,L=i((H,Y)=>{switch(l){case"loading":return O.createElement(qk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(tt,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(tt,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,L(k,T),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(Pk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,L(x,E),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),start:O.createElement(_k,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},A={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Fk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),onClick:()=>t(z.languages)},P={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ri,{direction:"horizontal",size:4}),O.createElement(Vk,{side:"top",sideOffset:4,container:B(),content:O.createElement(ni,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.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.")))},O.createElement(Dk,{color:"gray"}))),start:O.createElement($k,{color:"gray",size:16}),end:O.createElement(Hk,{checked:g}),onClick:S},Q={id:"theme-item",type:O.createElement(Uk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(jk,null,O.createElement(Gk,{container:B(),items:Kk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Yk(n)},I=d?[]:[w,b];return f||I.push(A),I.push(P),!e?.singleTheme&&!m&&I.push(Q),O.createElement(Ok,{type:O.createElement(zk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Gd,"SettingsLists");var ow=Rk("div",{paddingLeft:"$8"});function Vd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=tw(),r=ew(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return go.createElement(le,{header:{title:Ds.t("Settings")}},go.createElement(me,null,o&&go.createElement(Zk,{type:"info",variant:"alarm",title:Ds.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:go.createElement(ow,null,go.createElement(Jk,{type:"secondary",size:"small",onClick:a},Ds.t("Reset")))}),go.createElement(_s,null),go.createElement(Gd,null)))}i(Vd,"SettingsPage");import{i18n as Qw}from"@lingui/core";import{cancelSwap as Hw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Gw}from"@rango-dev/queue-manager-react";import{Alert as Vw}from"@rango-dev/ui";import el from"react";import{useParams as Xw}from"react-router-dom";import{i18n as wt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as xw,getCurrentStep as bw,getRelatedWalletOrNull as Iw}from"@rango-dev/queue-manager-rango-preset";import{Button as xf,CopyIcon as Ew,Divider as Aw,IconButton as Nw,QuoteCost as Ww,RangoExplorerIcon as Mw,StepDetails as Lw,Tooltip as Bw,Typography as ho,useCopyToClipboard as Pw}from"@rango-dev/ui";import{useWallets as _w}from"@rango-dev/wallets-react";import bf from"bignumber.js";import{PendingSwapNetworkStatus as di}from"rango-types";import R,{useEffect as If,useRef as $w,useState as Ef}from"react";import{useNavigate as Dw}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var nw=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Xd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${nw[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Xd,"timeSince");function jd(t){return t.finishTime?Xd(parseInt(t.finishTime)):Xd(parseInt(t.creationTime))}i(jd,"getSwapDate");import{PendingSwapNetworkStatus as si}from"rango-types";import li from"react";import{i18n as ii}from"@lingui/core";import{Button as Kd,Divider as Fs,MessageBox as rw}from"@rango-dev/ui";import Yt from"react";var Yd=i(({onCancel:t,onClose:e})=>Yt.createElement(Yt.Fragment,null,Yt.createElement(Fs,{size:20}),Yt.createElement(rw,{type:"error",title:ii.t("Cancel Swap"),description:ii.t("Are you sure you want to cancel this swap?")}),Yt.createElement(Fs,{size:32}),Yt.createElement(Kd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Cancel it")),Yt.createElement(Fs,{size:12}),Yt.createElement(Kd,{variant:"outlined",type:"primary",size:"large",onClick:e},ii.t("No, Continue"))),"CancelContent");import{i18n as ai}from"@lingui/core";import{Button as Zd,Divider as Os,MessageBox as iw,Typography as aw}from"@rango-dev/ui";import _t from"react";var Jd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Os,{size:20}),_t.createElement(iw,{type:"error",title:ai.t("Delete Transaction"),description:ai.t("Are you sure you want to delete this swap?")}),_t.createElement(Os,{size:32}),_t.createElement(Zd,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Delete it")),_t.createElement(Os,{size:12}),_t.createElement(Zd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(aw,{variant:"title",size:"medium",color:"primary"},ai.t("No, Cancel")))),"DeleteContent");import{i18n as Us}from"@lingui/core";import{PendingSwapNetworkStatus as zs}from"rango-types";var qs={[zs.WaitingForNetworkChange]:{type:"loading",title:Us.t("Change Network")},[zs.WaitingForConnectingWallet]:{type:"warning",title:Us.t("Connect Wallet")},[zs.NetworkChanged]:{type:"success",title:Us.t("Network Changed")}};import{debug as tf}from"@rango-dev/logging-core";import{MessageBox as sw,Wallet as lw}from"@rango-dev/ui";import{useWallets as pw}from"@rango-dev/wallets-react";import Po,{useState as cw}from"react";import{styled as Rd}from"@rango-dev/ui";var ef=Rd("div",{display:"flex",justifyContent:"center"}),Fz=Rd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var of=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=pw(),[c,m]=cw(null),d=n?.walletType,f=d?Wi(u(d)):null,g=d?p(d):null;return Po.createElement(Po.Fragment,null,Po.createElement(sw,{type:e,title:o,description:r}),a&&!!d&&!!f&&!!g&&Po.createElement(ef,null,Po.createElement(lw,{container:B(),title:g.name,image:g.img,type:d,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:d,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(d).catch(C=>tf(C))}})),Po.createElement(lo,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>tf(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Qs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===si.WaitingForNetworkChange||e===si.WaitingForConnectingWallet||e===si.NetworkChanged;return li.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&li.createElement(of,{type:qs[e].type,title:qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==si.WaitingForNetworkChange}),e==="delete"&&li.createElement(Jd,{onClose:o,onDelete:n}),e==="cancel"&&li.createElement(Yd,{onClose:o,onCancel:r}))}i(Qs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Hs,Divider as pi,MessageBox as nf,TokenAmount as uw,Typography as Gs}from"@rango-dev/ui";import Le from"react";import{useNavigate as mw}from"react-router-dom";function Vs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:d}=t,f=mw();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(nf,{type:"success",title:Sn.t("Swap Successful")},Le.createElement(uw,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(pi,{size:12}),Le.createElement(Gs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(nf,{type:"error",title:Sn.t("Transaction Failed"),description:m}),Le.createElement(pi,{size:32}),n==="success"&&Le.createElement(Hs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Le.createElement(Gs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Le.createElement(pi,{size:12}),d&&Le.createElement(Le.Fragment,null,Le.createElement(Hs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Sn.t("Diagnosis")),Le.createElement(pi,{size:12})),Le.createElement(Hs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Gs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Vs,"SwapDetailsCompleteModal");import vw from"react";import{i18n as Cw}from"@lingui/core";import{Alert as Tf,IconButton as Tw,LinkIcon as kw}from"@rango-dev/ui";import Zt,{Fragment as ww}from"react";import{Alert as gw,ChevronDownIcon as hw,IconButton as yw}from"@rango-dev/ui";import $o,{useState as Sw}from"react";import{css as Cn,darkTheme as dw,styled as $t,Typography as fw}from"@rango-dev/ui";var rf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ci=$t("div",{width:"100%"}),af=$t(Xo,{padding:"$0 $20 $20 $20"}),Tq=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),sf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),kq=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),_o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${dw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),lf=Cn({padding:"$5 0"}),ui=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pf=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),cf=Cn({width:"100%",padding:"0 $20 $10"}),uf=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),mf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),mi=$t(fw,{wordBreak:"break-word"});import{styled as Xs}from"@rango-dev/ui";var df=Xs("div",{display:"flex",flexDirection:"column",gap:"$10"}),ff=Xs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gf=Xs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function hf(t){let{message:e}=t,[o,n]=Sw(!1);return $o.createElement(gw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$o.createElement(yw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$o.createElement(ff,{rotated:o},$o.createElement(hw,{size:12,color:"gray"}))),footer:$o.createElement(gf,{open:o},$o.createElement(mi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hf,"FailedAlert");import{i18n as yf}from"@lingui/core";import{Alert as js,Button as Sf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ks}from"rango-types";import Tn from"react";function Cf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(Sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},yf.t("Change"))}):r===Ks.WaitingForConnectingWallet?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(Sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForConnectingWallet)}},yf.t("Connect"))}):Tn.createElement(js,{type:"warning",title:n.shortMessage})}i(Cf,"WarningAlert");function Ys(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Go(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Zt.createElement(df,null,a.explorerUrl?.map((m,d,f)=>{let g=d+m.url,S=d===f.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Zt.createElement(ww,{key:g},Zt.createElement(Tf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Cw.t("View transaction"),action:m.url&&Zt.createElement(Tw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Zt.createElement(kw,{size:12}))}))}),c&&Zt.createElement(Tf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Zt.createElement(Cf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Zt.createElement(hf,{message:r}))}i(Ys,"SwapDetailsAlerts");var kf=2e3;var wf=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:Xe(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Xe(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Fo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Fo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:vw.createElement(Ys,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vf(t){if(Go(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(vf,"getStepState");function Zs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=_w(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=K.use.retry(),d=ie.use.isActiveTab(),f=Dw(),[g,S]=Pw(kf),C=$w(null),[y,T]=Ef(null),[k,v]=Ef(null),E=i(()=>{r(),T(null)},"onCancel"),x=Ee.use.getNotifications(),L=Ee.use.removeNotification(),w=x(),b=bw(e),A=b?.networkStatus;If(()=>{w.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):k&&v(null))},[e.status,e.requestId]),If(()=>{G?T(di.WaitingForNetworkChange):A===di.WaitingForConnectingWallet||A===di.NetworkChanged?T(A):T(null)},[A]);let P=wp(e),Q=b?xw(e,b):null,I=b?Iw(e,b):null,H=jd(e),Y=vp(e),pe=i(ye=>!!l(ye)?.mobileWallet,"isMobileWallet"),G=A===di.WaitingForNetworkChange&&!!Q&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,Q)),ee=G?s.bind(null,I.walletType,Q):void 0,W=kp(e,b),U=wf({swap:e,switchNetwork:ee,showNetworkModal:A,setNetworkModal:T,message:W,blockchains:p,swappers:u}),Z=U.length,[re,ke]=[e.steps[0],e.steps[Z-1]],_=ke.outputAmount||ke.expectedOutputAmountHumanReadable,Fe=e.steps.reduce((ye,M)=>ye+parseFloat(M.feeInUsd||""),0),ot=e.steps.find(ye=>ye.diagnosisUrl)?.diagnosisUrl,fe=N(parseFloat(N(_,6,6))*(ke.toUsdPrice||0),4,4),Oe=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),vt=_?ce(new bf(_).multipliedBy(ke.toUsdPrice||0)):"",Ve=ce(new bf(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),nt=Ke(Oe,fe),rt=W.detailedMessage.content||W.shortMessage,dt=e.status==="success"?wt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:U[Z-1].to.token.displayName,conciseAddress:Pn(e.wallets[U[Z-1].to.chain.displayName]?.address||""),chain:U[Z-1].to.chain.displayName}}):R.createElement(mf,null,R.createElement(ho,{variant:"body",size:"medium",color:"neutral700",align:"center"},rt?"":wt.t("Transaction was not sent."),P?`${wt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),rt&&R.createElement(mi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:wt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(xo,null,R.createElement(xf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(ho,{size:"medium",variant:"label",color:"error"},wt.t("Delete"))))},footer:Y&&!k&&R.createElement(xf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let ye=Yn(e,p,c);m(ye),setTimeout(()=>{f("../../")},0)}},wt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(ci,null,R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t("Request ID")}:`),R.createElement("div",{className:ui()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Nw,{variant:"ghost",onClick:S.bind(null,o||"")},R.createElement(Ew,{size:16,color:"gray"})),R.createElement(uf,{target:"_blank",href:`${ll}/swap/${o}`},R.createElement(Bw,{container:B(),content:wt.t("View on Rango Explorer"),side:"bottom"},R.createElement(Mw,{size:20}))))),R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:pf()},R.createElement(Ww,{fee:N(String(Fe),2,2),time:Oo(En(e.steps)),steps:Z}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:U[0].from.token.displayName,image:U[0].from.token.image},chain:{image:U[0].from.chain.image,displayName:U[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:_},token:{displayName:U[Z-1].to.token.displayName,image:U[Z-1].to.token.image},chain:{image:U[Z-1].to.chain.image,displayName:U[Z-1].to.chain.displayName}},percentageChange:N(nt,2,2),warningLevel:It(nt??0)})),R.createElement("div",{className:cf()},R.createElement(ho,{variant:"title",size:"small"},wt.t("Swaps steps"))),R.createElement(Aw,{size:8}),R.createElement(af,{ref:C},U.map((ye,M)=>{let V=M,X=vf(e.steps[M]),qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===U.length-1;return R.createElement(Lw,{key:V,step:ye,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:qe,tooltipContainer:B()})}))),R.createElement(Qs,{state:y,onClose:()=>T(null),onCancel:E,onDelete:n,message:W.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),R.createElement(Vs,{open:!!k,diagnosisUrl:ot,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:U[Z-1].to.token.displayName,image:U[Z-1].to.token.image},chain:{image:U[Z-1].to.chain.image},description:dt}))}i(Zs,"SwapDetails");import{i18n as gi}from"@lingui/core";import{Divider as Wf,NotFound as qw,Skeleton as wn,Typography as hi}from"@rango-dev/ui";import he from"react";import{i18n as Fw}from"@lingui/core";import{Divider as Ow,Skeleton as Uw,Typography as zw}from"@rango-dev/ui";import Te from"react";import{css as mt,styled as Js}from"@rango-dev/ui";var Af=Js("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Js("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),fi=Js("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),BQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),PQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),_Q=mt({paddingTop:"$15",display:"flex"}),$Q=mt({padding:"$15 $0"}),DQ=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),FQ=mt({paddingBottom:"$10"}),OQ=mt({display:"flex",justifyContent:"start",alignItems:"center"}),UQ=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),zQ=mt({display:"flex",alignItems:"center"}),qQ=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Nf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Rs(){return Te.createElement(Af,null,Te.createElement(nn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(zw,{variant:"title",size:"small"},Fw.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(kn,null,Te.createElement(Ct,{separator:!1}),Te.createElement("div",{className:Nf()},Te.createElement(Ow,{direction:"horizontal",size:20}),Te.createElement(Uw,{height:22,variant:"rectangular"}))),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1}))))}i(Rs,"LoadingSwapDetails");function Mf(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(le,{header:{title:gi.t("Swap and Bridge"),suffix:he.createElement(xo,null)}},o&&he.createElement(rf,null,he.createElement(ci,null,he.createElement("div",{className:_o()},he.createElement(hi,{variant:"label",size:"large",color:"neutral700"},`${gi.t("Request ID")}:`),he.createElement("div",{className:ui()},he.createElement(hi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(Wf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}),he.createElement(Wf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:_o()},he.createElement(hi,{className:lf(),variant:"label",size:"large",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(hi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})))),he.createElement(Rs,null)),!o&&he.createElement(sf,null,he.createElement(qw,{title:gi.t("Not found"),description:gi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Mf,"SwapDetailsPlaceholder");function Lf(){let{manager:t,state:e}=Gw(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=Xw(),a=Ze(),{fetchStatus:s}=h();if(!r)return el.createElement(Vw,{containerStyles:{margin:"20px"},type:"error",title:Qw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&Hw(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),m=p?.swap;return!m||l?el.createElement(Mf,{requestId:r,showSkeleton:l}):el.createElement(Zs,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(Lf,"SwapDetailsPage");function Bf(){return Lp(),ji(),jw([{path:z.home,element:ze.createElement(Jm,null)},{path:z.routes,element:ze.createElement(nd,null)},{path:z.fromSwap,children:[{index:!0,element:ze.createElement(Bs,{type:"source"})},{path:z.blockchains,element:ze.createElement(hs,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:ze.createElement(Bs,{type:"destination"})},{path:z.blockchains,element:ze.createElement(hs,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:ze.createElement(Vd,null)},{path:z.languages,element:ze.createElement(ed,null)},{path:z.exchanges,element:ze.createElement(ds,{sourceType:"Exchanges"})},{path:z.bridges,element:ze.createElement(ds,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:ze.createElement(Mm,null)},{path:z.swapDetails,element:ze.createElement(Lf,null)}]},{path:z.wallets,element:ze.createElement(qc,null)},{path:z.confirmSwap,element:ze.createElement(Cm,null)}])}i(Bf,"AppRoutes");import{useQueueManager as rv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as iv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as av}from"rango-sdk";import{useContext as sv,useEffect as lv,useState as Uf}from"react";import{globalCss as Kw}from"@rango-dev/ui";var Pf=i(()=>Kw({"@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}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("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 Yw}from"@rango-dev/wallets-react";import{useEffect as Zw,useRef as Jw}from"react";function $f(){let{connect:t,state:e}=Yw(),o=Jw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Zw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i($f,"useForceAutoConnect");import{isApprovalTX as Rw,MainEvents as yi,RouteEventType as Df,StepEventType as Ff,StepExecutionEventStatus as ev,useEvents as tv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Of}from"react";function tl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=Ee.use.setNotification(),{findToken:n}=h(),r=tv();Of(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Ff.TX_EXECUTION&&l.status===ev.TX_SENT&&!Rw(p)||l.type===Ff.SUCCEEDED){let m=t.find(f=>f.chain===p?.fromBlockchain),d=p?.fromBlockchain!==p?.toBlockchain&&t.find(f=>f.chain===p?.toBlockchain);m&&e([m],n),d&&e([d],n)}o(l,u)},"handleStepEvent");return r.on(yi.StepEvent,a),()=>r.off(yi.StepEvent,a)},[r,t.length]),Of(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Df.FAILED||l.type===Df.SUCCEEDED)&&o(l,p)},"handleRouteEvent");return r.on(yi.RouteEvent,a),()=>r.off(yi.RouteEvent,a)},[r,t.length])}i(tl,"useSubscribeToWidgetEvents");import{useManager as ov}from"@rango-dev/queue-manager-react";import{useEffect as nv}from"react";function ol(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=ov();nv(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Je(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ol,"useSyncNotifications");function nl(){$f(),Pf(),tl(),ol();let t=h().blockchains(),{canSwitchNetworkTo:e}=wr(),[o,n]=Uf(""),[r,a]=Uf(),s=sv(Un),l=t.filter(av),{fetchApiConfig:p}=_f();rv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),lv(()=>(to.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===iv(o)?.[0]&&n("")}),p().catch(console.log),to.destroy),[])}i(nl,"useBootstrap");import{styled as pv}from"@rango-dev/ui";var zf=pv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Si(){nl();let{config:t}=h(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=jt();return rl.createElement(cv,{language:o},rl.createElement(zf,{id:"swap-container",className:e()},rl.createElement(Bf,null)))}i(Si,"Main");import{setSolanaSignerConfig as Wv}from"@rango-dev/signer-solana";import al,{useEffect as Vf,useMemo as Mv}from"react";import{useState as uv}from"react";var mv=i(()=>{let[t,e]=uv(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=Sl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),qf=mv;import{checkWaitingForNetworkChange as dv,makeQueueDefinition as fv}from"@rango-dev/queue-manager-rango-preset";import{Provider as gv}from"@rango-dev/queue-manager-react";import{useWallets as hv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as yv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Sv}from"rango-types";import Cv,{useMemo as Tv}from"react";function kv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=hv(),l=Tv(()=>fv({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL")}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(Sv),S=i(k=>{let{supportedChains:v}=s(k);return Wn(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:yv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=ie.use.isActiveTab();return Cv.createElement(gv,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{dv(k)},isPaused:!T},t.children)}i(kv,"QueueManager");var Qf=kv;import{useManager as Iv}from"@rango-dev/queue-manager-react";import Ev,{createContext as Av,useContext as Nv}from"react";import{cancelSwap as wv,getCurrentBlockchainOfOrNull as vv,getCurrentStep as xv,getRelatedWalletOrNull as bv}from"@rango-dev/queue-manager-rango-preset";var Ci=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(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){let n=Yn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&wv(o)}getCurrentStepInfo(e){let o=xv(e);return{step:o,wallet:o?bv(e,o):null,network:o?vv(e,o):null}}};var Hf=Av(void 0);function il(t){let{manager:e}=Iv(),o=ie.use.isActiveTab(),n=K.use.retry(),{findToken:r}=h(),a=new Ci(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Il(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),d=h().swappers(),f=h().fetchStatus,g=jt().resetLanguage,S=Ee().getNotifications(),C={isActiveTab:o,setCurrentTabAsActive:to.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:y=>u(y,r)},meta:{blockchains:c,tokens:m,swappers:d,loadingStatus:f},resetLanguage:g,notifications:{list:S}};return Ev.createElement(Hf.Provider,{value:C},t.children)}i(il,"WidgetInfo");function Gf(){let t=Nv(Hf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Gf,"useWidget");function Ti(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=qf();return Vf(()=>{n&&r(n)},[n]),Mv(()=>{Pl({API_KEY:o?.apiKey||vn,BASE_URL:o?.apiUrl||sl})},[o.apiKey,o.apiUrl]),Vf(()=>{t.config?.signers?.customSolanaRPC&&Wv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),al.createElement(zn,{config:o,onUpdateState:e},al.createElement(Qf,{apiKey:o.apiKey},al.createElement(il,null,t.children)))}i(Ti,"WidgetProvider");function Xf(t){let e=t.config?.externalWallets;return ki.createElement(rp,null,e?ki.createElement(Si,null):ki.createElement(Ti,{config:t.config??Pi},ki.createElement(Si,null)))}i(Xf,"Widget");export{ZV as EventSeverity,JV as MainEvents,l2 as Networks,u2 as PendingSwapNetworkStatus,RV as RouteEventType,wi as SUPPORTED_FONTS,e2 as StepEventType,t2 as StepExecutionBlockedEventStatus,o2 as StepExecutionEventStatus,Se as UI_ID,a2 as WalletEvents,p2 as WalletTypes,Xf as Widget,Ti as WidgetProvider,zn as WidgetWallets,na as customizedThemeTokens,i2 as readAccountAddress,wr as useWallets,Gf as useWidget,n2 as useWidgetEvents};
|
|
1
|
+
var Kf=Object.defineProperty;var i=(t,e)=>Kf(t,"name",{value:e,configurable:!0});import{EventSeverity as ZV,MainEvents as JV,RouteEventType as RV,StepEventType as e2,StepExecutionBlockedEventStatus as t2,StepExecutionEventStatus as o2,useEvents as n2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as i2,useWallets as wr,Events as a2}from"@rango-dev/wallets-react";import{Networks as l2,WalletTypes as p2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as u2}from"rango-types";import{UI_ID as Yf}from"@rango-dev/ui";var vn="c6381a79-2817-4602-83bf-6a641a409e32",sl="https://api.rango.exchange",ll="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Yf};var pl="Roboto",wi=[{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 zg}from"@rango-dev/wallets-react";import{isEvmBlockchain as qg}from"rango-sdk";import On,{createContext as Qg,useEffect as op,useMemo as Hg,useRef as np}from"react";import{useEffect as fg}from"react";import{create as ug}from"zustand";import{subscribeWithSelector as mg}from"zustand/middleware";import{RangoClient as pg}from"rango-sdk";import{BlockchainCategories as og,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as ng}from"@rango-dev/wallets-react";import{detectInstallLink as rg,getCosmosExperimentalChainInfo as ig,isEvmAddress as ag,KEPLR_COMPATIBLE_WALLETS as rx,Networks as kl}from"@rango-dev/wallets-shared";import Ni from"bignumber.js";import{isCosmosBlockchain as sg}from"rango-types";import Zf from"bignumber.js";var Be=new Zf(0);import{WalletTypes as Jf}from"@rango-dev/wallets-shared";var cl=[Jf.LEAP];import{BlockchainCategories as vi}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function Ii(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ii,"areEqual");function hl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(hl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function dl(t,e){return t.toLowerCase()===e.toLowerCase()}i(dl,"exactText");function fl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(fl,"startWithText");var B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Fo=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function gl(t,e,o){let n=!!e&&dl(e,t),r=!!o&&dl(o,t);return n!==r?n?-1:1:0}i(gl,"compareExactMatchText");function xi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareContainsText");function bi(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareStartWithText");function yl(t,e,o){if(!o)return 0;let n=gl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=gl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=bi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=bi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r!==0)return r}return 0}i(yl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===xn.TRANSFER;case vi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Sl=i(t=>wi.find(o=>o.value===t)?.url,"getFontUrlByName");function In(t,e){return e.find(o=>o.name===t)?.displayName}i(In,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Oo(t,e){return e.find(o=>o.id===t)?.title}i(Oo,"getSwapperDisplayName");function Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ai(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(Ai,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as Tl}from"bignumber.js";var Uo=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 Tl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Tl(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 En=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),zo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Wi(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Wi,"mapStatusToWalletState");function wl(t,e,o,n){return o.filter(r=>!cl.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:m}=e(r),d=yo(m.map(g=>g.type)),f=Wi(t(r));return{title:a,image:s,link:rg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d}})}i(wl,"mapWalletTypesToWalletInfo");function Wn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Wn,"walletAndSupportedChainsNames");function vl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=ng(p),m=l.length>0,d=l.includes(c),f=c===kl.Unknown;if(m&&!d&&!f)return;let S=c===kl.Unknown&&ag(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(vl,"prepareAccountsForWalletStore");function Rt(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 m=u.from.blockchain,d=u.to.blockchain,f=a===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Rt,"getQuoteWallets");function Mn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Mn,"isAccountAndWalletMatched");function xl(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 Ni(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(xl,"makeBalanceFor");function bl(t){return{...t,loading:!1,error:!0}}i(bl,"resetConnectedWalletState");var Il=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 Ni(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return lg(r)},"calculateWalletUsdValue");function lg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(lg,"numberWithThousandSeparator");var Ln=i((t,e)=>{let o=ig(Object.entries(t).map(([,n])=>n).filter(sg));return o&&o[e]?.experimental},"isExperimentalChain");function Bn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Bn,"formatBalance");function El(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(El,"compareTokenBalance");function eo(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(eo,"areTokensEqual");function Al(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Al,"sortWalletsBasedOnConnectionState");function Pn(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(Pn,"getConciseAddress");function Nl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Nl,"getAddress");function _n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ni(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({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(_n,"makeTokensBalance");var Wl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ml(t){return t.map(e=>e.state).join("-")}i(Ml,"hashWalletsState");function Ll(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(Ll,"filterBlockchainsByWalletTypes");function Bl(t,e){return e===og.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(Bl,"filterWalletsByCategory");var Mi={API_KEY:vn};function bt(t){return Mi[t]||""}i(bt,"getConfig");function Pl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Mi=e,Mi}i(Pl,"initConfig");var _l=20,$l=25,Li="theme-widget",qo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>eo(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>eo(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Bi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Dl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var $n,Ft=i(()=>$n||($n=new pg(bt("API_KEY"),bt("BASE_URL")),$n),"httpService");var cg=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"),Ot=cg;var te=Ot(ug()(mg((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.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);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:_n(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=>Mn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let f=o.find(S=>Mn(S,d)),g=p.find(S=>S.address===d.address&&S.blockChain===d.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...d,explorerUrl:g.explorerUrl,balances:xl(g,n),loading:!1}:d});return{loading:!1,balances:_n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Mn(m,c))?bl(c):c);return{loading:!1,balances:_n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as dg}from"@rango-dev/provider-all";function Dn(t,e){let o=dg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},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(Dn,"matchAndGenerateProviders");function Fl(t,e){return Dn(t,e).map(r=>r.config.type)}i(Fl,"configWalletsToWalletName");function Ol(t,e){let o=te.use.clearConnectedWallet(),n=Dn(t,e);return fg(()=>{o(),n=Dn(t,e)},[t?.length]),{providers:n}}i(Ol,"useWalletProviders");import Pg,{createContext as _g,useContext as $g,useEffect as Dg,useRef as Fg}from"react";import{create as Lg}from"zustand";import{persist as Bg}from"zustand/middleware";var Pi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},gg={clientUrl:void 0},hg={liquiditySources:void 0},Ul=i((t,e,o)=>({config:{...Pi,...t},iframe:gg,campaignMode:hg,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 Fn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return yo(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(Fn,"getUniqueSwappersGroups");function zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(zl,"sortLiquiditySourcesByGroupTitle");function je(t,e){return e?.[t]==="hidden"}i(je,"isFeatureHidden");function ql(t,e){return e?.[t]==="enabled"}i(ql,"isFeatureEnabled");var Ql=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_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()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&qo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let d=e().isTokenPinned(c,o.type),f=e().isTokenPinned(m,o.type);if(d!==f)return d?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=El(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Ai(c,g),y=Ai(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=yl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>eo(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(zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,d)=>m.sort-d.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let d=Dt(m);a.set(d,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as yg,English as Sg,Finland as Cg,French as Tg,German as kg,Greece as wg,Italian as vg,Japanese as xg,Netherlands as bg,Poland as Ig,Portuguese as Eg,Russian as Ag,Spanish as Ng,Swedish as Wg,Ukrainian as Mg}from"@rango-dev/ui";var Hl=[{title:"English",label:"English",local:"en",SVGFlag:Sg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Ng},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Tg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:xg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Eg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:yg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Ag},{title:"German",label:"Deutsch",local:"de",SVGFlag:kg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Mg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Wg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Cg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:bg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:wg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:vg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ig}],So="en";var Gl=[.5,1,3],Vl=1,Xl=5,jl=100,Kl=0;var Yl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Vl,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=yo(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=je("theme",n),s=je("language",n),l=je("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||So},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...o?._INTERNAL_SETTINGS_?.autoUpdateSettings&&{language:o.language||So}})}}),"createSettingsSlice");function Zl(t){return Lg()(Bg((...e)=>({...Ql(...e),...Yl(...e),...Ul(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(Zl,"createAppStore");var Jl=_g(null);function h(){let t=$g(Jl);if(Dg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Rl(t){let e=Fg();return e.current||(e.current=Zl(t.config)),Pg.createElement(Jl.Provider,{value:e.current},t.children)}i(Rl,"AppStoreProvider");import{create as Ug}from"zustand";var ep="rango-widget";var Qo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(ep),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 ie=Ot(Ug()((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})}}))),to=new Qo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var Un=Qg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Gg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Ol(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=np(),d=np();op(()=>{n().catch(console.log)},[]),op(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(qg).map(y=>y.name),g=i((y,T,k,v,E)=>{if(T===$i.ACCOUNTS)if(k){let x=Wn(E.supportedBlockchains),L=vl(y,k,f,x,E.isContractWallet);L.length&&u(L,a)}else c(y),d.current?d.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===$i.ACCOUNTS&&v.connected){let x=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===$i.NETWORK&&v.network){let x=`${y}-${v.network}`;m.current?m.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,E)},"onUpdateState"),S=ie.use.isActiveTab(),C=Hg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{d.current=y}}),[]);return On.createElement(Un.Provider,{value:C},On.createElement(zg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Gg,"Main");function zn(t){let{config:e,...o}=t;return On.createElement(Rl,{config:e},On.createElement(Gg,{...o,config:e}))}i(zn,"WidgetWallets");import ki from"react";import Vg,{Fragment as Xg}from"react";import{MemoryRouter as jg,useInRouterContext as Kg}from"react-router";function rp({children:t}){let o=Kg()?Xg:jg;return Vg.createElement(o,null,t)}i(rp,"AppRouter");import{I18nManager as cv}from"@rango-dev/ui";import rl from"react";import ze from"react";import{useRoutes as jw}from"react-router-dom";var z={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 ko,useRef as Jn}from"react";import Et 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 NI from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Di={"Network Fee":Ho.t("Network Fee"),"Swapper Fee":Ho.t("Protocol Fee"),"Affiliate Fee":Ho.t("Affiliate Fee"),"Outbound network fee":Ho.t("Outbound Fee"),"Rango Fee":Ho.t("Rango Fee")},Fi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ip=30;import{i18n as it}from"@lingui/core";import{RouteEventType as dI}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Hn}from"rango-types";function qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(qn,"isValidAddress");import{i18n as Me}from"@lingui/core";var oe=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function ap(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(ap,"getQuoteErrorMessage");import{i18n as Qn}from"@lingui/core";var oo=i(()=>({connectWallet:Qn.t("Connect Wallet"),swap:Qn.t("Swap"),swapAnyway:Qn.t("Swap anyway"),ethWarning:Qn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function sp(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(sp,"hasHighValueLoss");function lp(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(lp,"hasLimitError");function pp(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=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().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=oe().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=oe().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=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(pp,"getLimitErrorMessage");function cp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:oo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:oo().swap,action:"confirm-swap",disabled:!0}:s?{title:oo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:oo().ethWarning,action:"confirm-warning",disabled:!1}:{title:oo().swap,action:"confirm-swap",disabled:!1}:{title:oo().connectWallet,action:"connect-wallet",disabled:!1}}i(cp,"getSwapButtonState");function Oi(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Oi,"canComputePriceImpact");function Ui(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=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(Ui,"getUsdFeeOfStep");function Gn(t,e){return t.reduce((o,n)=>o.plus(Ui(n,e)),Be)}i(Gn,"getTotalFeeInUsd");function zi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(zi,"getUsdFee");function up(t){return t.reduce((e,o)=>e.plus(zi(o)),Be)}i(up,"getTotalFeesInUsd");function mp(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(mp,"getFeesGroup");function dp(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(dp,"checkSlippageErrors");function fp(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(fp,"checkSlippageWarnings");function Vn(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(Vn,"getMinRequiredSlippage");function gp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gp,"hasProperSlippage");function hp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:d,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:m??void 0,affiliateWallets:d??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(hp,"createQuoteRequestBody");function yp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(yp,"getWalletsForNewSwap");function Co(t){return t?.outputAmount||null}i(Co,"getQuoteOutputAmount");function Sp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(Sp,"getPercentageChange");function Cp(t,e){let o=Co(t),n=Co(e);if(!o||!n)return!1;let r=Ke(o,n);return r?r<=-1:!0}i(Cp,"isOutputAmountChangedALot");function Tp(t,e,o){let n=t.validationStatus,r=Rt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Ip(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=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:Xe(s.asset.blockchain,o)}})})}i(Tp,"generateBalanceWarnings");function Xn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Xn,"calcOutputUsdValue");function Go(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Hn.NetworkChanged}i(Go,"isNetworkStatusInWarningState");function kp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Go(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Hn.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Hn.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Hn.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(kp,"getSwapMessages");function wp(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(wp,"getLastConvertedTokenInFailedSwap");function vp(t){return t.status==="failed"}i(vp,"shouldRetrySwap");function xp(t,e,o,n,r,a){if(!n||t)return!0;let s=Rt({filter:"all",quote:n}),l=Rt({filter:"required",quote:n}),p=s.every(m=>r.some(d=>d.chain===m)),u=l.every(m=>r.some(d=>d.chain===m)),c=o&&a?qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(xp,"isConfirmSwapDisabled");function bp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(bp,"isTokensIdentical");function Kn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Kn,"getQuoteToTokenUsdPrice");function qi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(qi,"isNumberOfSwapsChanged");function Qi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ii(o,n)}i(Qi,"isQuoteSwappersUpdated");function Hi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ii(o,n)}i(Hi,"isQuoteInternalCoinsUpdated");function Ap(t,e){return qi(t,e)||Qi(t,e)||Hi(t,e)}i(Ap,"isQuoteChanged");function Ip(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(Ip,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function Yn(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=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Yn,"createRetryQuote");function To(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=no(o,t.requestAmount),l=no(n,t?.outputAmount??"");if(t&&s&&l){let c=Ke(s.toString(),l.toString());if(!!c&&sp(s,c)){let d=Gn(t?.swaps,r),f=It(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Vn(t.swaps),u=a>Xl;if(gp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:fp(t,a),minRequiredSlippage:p};return null}i(To,"generateQuoteWarnings");function Ke(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Sp(t.toString(),e.toString());return n&&n<0?n:null}i(Ke,"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"),Zn=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=Fi.indexOf(o.value),a=Fi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var no=i((t,e)=>t?.usdPrice?new Et(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),K=Ot(Jg()(Rg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Et(0),outputUsdValue:new Et(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 zo(o.inputAmount)?(e&&(n=e?.outputAmount?new Et(e?.outputAmount):null,r=Xn(e?.outputAmount,Kn(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 Et(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:no(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 Et(0),outputUsdValue:new Et(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:no(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:no(n??null,s),outputUsdValue:new Et(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?no(e.toToken,e.outputAmount?.toString()||""):new Et(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}=K(),c=h().config,m=h().fetchStatus,d=h().blockchains(),f=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,E=c?.to?.blockchains,x=Jn(void 0),L=Jn(void 0),w=Jn(void 0),b=Jn(void 0);ko(()=>{t(c?.amount?.toString()||"")},[c?.amount]),ko(()=>{if(m==="success"){r();let A=d.find(I=>I.name===c?.from?.blockchain),P=c?.from?.token,Q=P&&g(P);(A||!A&&w.current)&&n(A??null),Q?a({token:Q,meta:{blockchains:d,tokens:f}}):!Q&&x.current&&a({token:null}),w.current=c?.from?.blockchain,x.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),ko(()=>{qo(s,T)&&a({token:null}),Bi(p,k)&&n(null)},[T,k]),ko(()=>{qo(l,v)&&a({token:null}),Bi(u,E)&&o(null)},[v,E]),ko(()=>{if(m==="success"){r();let A=d.find(I=>I.name===c?.to?.blockchain),P=c?.to?.token,Q=P&&g(P);(A||!A&&b.current)&&o(A??null),Q?e({token:Q,meta:{blockchains:d,tokens:f}}):!Q&&L.current&&e({token:null}),b.current=c?.to?.blockchain,L.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),ko(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Lp,"useSyncStoresWithConfig");import{useEffect as Xi,useRef as eh}from"react";import{useInRouterContext as th,useLocation as oh,useSearchParams as nh}from"react-router-dom";function Gi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Gi,"convertTokenSearchParamToAsset");function Vi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vi,"tokenToSearchParam");function ji(){let t=oh(),[e,o]=nh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:d}=K(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=th(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=eh(),{findToken:E}=h(),x=i(()=>{let w={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(w[G]=ee);let b=e.get("fromAmount"),A=e.get("fromBlockchain"),P=e.get("fromToken"),Q=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:A,fromToken:P,toBlockchain:Q,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:w}},"getUrlSearchParams"),L=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");Xi(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:A}=x();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:Vi(a),toBlockchain:r?.name,toToken:Vi(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...A})},[t.pathname,l,n,a,r,s,k]),Xi(()=>{if(!C)return;let w=x();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&d(w.fromAmount),f==="success"){let b=g.find(I=>I.name===w.fromBlockchain),A=w.fromToken&&b?E(Gi(w.fromToken,b)):void 0,P=g.find(I=>I.name===w.toBlockchain),Q=w.toToken&&P?E(Gi(w.toToken,P)):void 0;b&&(p(b),A&&c({token:A,meta:{blockchains:g,tokens:S}})),P&&(u(P),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[f]),Xi(()=>{let{clientUrl:w,liquiditySources:b}=x();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(ji,"useSyncUrlAndStore");import{i18n as Ka}from"@lingui/core";import{useManager as EC}from"@rango-dev/queue-manager-react";import{Alert as ym,Button as AC,css as Za,Divider as Ya,IconButton as Sm,styled as NC,Typography as WC,WalletIcon as MC}from"@rango-dev/ui";import xe,{useEffect as Hr,useLayoutEffect as LC,useRef as BC,useState as sn}from"react";import{useNavigate as PC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Aa,BalanceErrors as mS,Button as Kc,ChevronDownIcon as dS,ChevronLeftIcon as fS,CloseIcon as gS,Divider as Ko,IconButton as Yc,MessageBox as hS,PasteIcon as yS,Typography as vr,WalletIcon as SS}from"@rango-dev/ui";import $,{useCallback as CS,useEffect as Zc,useRef as TS,useState as po}from"react";import{useNavigate as kS}from"react-router-dom";import{i18n as Rn}from"@lingui/core";function er(t){switch(t.type){case 0:return Rn.t("Route has been updated.");case 3:return Rn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Rn.t("Route swappers has been updated.");case 2:return Rn.t("Route internal coins has been updated.");default:return""}}i(er,"getQuoteUpdateWarningMessage");import{Modal as ih}from"@rango-dev/ui";import ah from"react";function ne(t){let{watermark:e}=ie();return ah.createElement(ih,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import rr,{useRef as ph}from"react";import*as wo from"@radix-ui/react-collapsible";import{keyframes as Pp,styled as tr}from"@rango-dev/ui";var Ki=300,sh=Pp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),lh=Pp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_p=tr(wo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Yi=tr(wo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),or=tr(wo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${sh} ${Ki}ms ease-out`},false:{animation:`${lh} ${Ki}ms ease-out`}}}}),nr=tr("div",{transition:`all ${Ki}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ir(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ph(null);return rr.createElement(_p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&rr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s),rr.createElement(or,{className:"collapsible_content",open:e},r),l==="bottom"&&rr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s))}i(ir,"CustomCollapsible");import{css as $p,darkTheme as Vo,IconButton as ch,styled as Ye,TextField as uh}from"@rango-dev/ui";var Dp=Ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Fp=Ye("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),mh=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Op=Ye(mh,{alignSelf:"stretch",minHeight:"93px"}),Up=Ye("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zp=Ye(ch,{position:"absolute",left:"$20"}),qp=Ye("div",{paddingTop:"$20"}),Qp=$p({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Hp=Ye("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=Ye("div",{display:"flex"}),Xp=Ye(uh,{backgroundColor:"$neutral100",padding:"$15"}),jp=Ye("div",{overflow:"visible",width:"100%"}),Kp=Ye("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as lS,Divider as Ia,Image as pS,MessageBox as kr,SelectableWallet as cS,Typography as Vc,WalletState as Xc}from"@rango-dev/ui";import ue,{useEffect as jc,useState as Ao}from"react";import{WalletState as ar}from"@rango-dev/ui";import{useWallets as dh}from"@rango-dev/wallets-react";import{detectMobileScreens as fh,KEPLR_COMPATIBLE_WALLETS as gh,WalletTypes as vo}from"@rango-dev/wallets-shared";import{useCallback as hh,useEffect as yh,useState as Sh}from"react";var Ch=Object.values(vo);function xo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=dh(),{connectedWallets:u}=te(),c=h().blockchains(),m=Fl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ch,d=wl(a,l,m,e);d=fh()?d.filter(x=>x.showOnMobile!==!1&&a(x.type).installed):d;let f=Al(d),[g,S]=Sh(""),C=i(x=>!u.find(L=>L.walletType===x&&L.chain===e),"isExperimentalChainNotAdded"),y=i(async(x,L)=>{let w=a(x);try{if(g&&S(""),w.connected)await s(x);else{let b=!!d.find(A=>A.state===ar.CONNECTED);if(r?.multiWallets===!1&&b)return;o?.(x),await p(x,void 0,L),n?.(x)}}catch(b){S("Error: "+b?.message)}},"handleClick"),T=hh(()=>{let x=d?.filter(L=>L.state===ar.CONNECTING)||[];for(let L of x)s(L.type)},[Ml(d)]),k=i(async x=>{a(x).connected&&await s(x)},"disconnectWallet");yh(()=>()=>{T()},[]);let v=i(x=>{let L=x.find(b=>b.type===vo.DEFAULT);return!L||L.state===ar.NOT_INSTALLED?!1:x.filter(b=>b.state!=ar.NOT_INSTALLED&&![vo.DEFAULT,vo.WALLET_CONNECT_2,vo.LEDGER].includes(b.type)&&l(b.type).supportedChains.filter(A=>A.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((x,L,w)=>Ln(w,L)&&C(x)&&!gh.includes(x)||x==vo.DEFAULT&&!v(d),"shouldExcludeWallet");return{list:f.filter(x=>!E(x.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:T,disconnectWallet:k}}i(xo,"useWalletList");import{i18n as Oc}from"@lingui/core";import{Divider as Ry,getCategoriesCount as eS,SelectableCategoryList as tS,styled as zc,Typography as oS,Wallet as nS,WalletState as Uc}from"@rango-dev/ui";import at,{useState as Cr}from"react";import{useManager as My}from"@rango-dev/queue-manager-react";import{BottomLogo as Ly,Divider as Lc,Header as By}from"@rango-dev/ui";import Ce,{useEffect as Ta,useRef as Bc,useState as Py}from"react";import{useRef as Th}from"react";function sr(){return window.self!==window.top}i(sr,"isAppLoadedIntoIframe");function Zi(){let t=Th(null),{iframe:e}=h(),o=sr()&&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(Zi,"useIframe");import{useNavigate as kh}from"react-router-dom";function Ze(){let t=kh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as ra,darkTheme as _h,lightTheme as $h}from"@rango-dev/ui";import{useEffect as Dh,useState as Fh}from"react";import{theme as Bh,darkColors as Ph}from"@rango-dev/ui";import oa from"react";function wh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(wh,"expandShortHexColor");function vh(t){return/[0-9]+$/.test(t)}i(vh,"isOverridingColor");function xh(t,e){return t.padStart(e,"0")}i(xh,"pad");function Ji(t){let e=Math.min(Math.max(Math.round(t),0),255);return xh(e.toString(16),2)}i(Ji,"intToHex");function bh(t){return`#${Ji(t.red)}${Ji(t.green)}${Ji(t.blue)}`}i(bh,"rgbToHex");function Ih(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(Ih,"hexToRGB");function Eh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Eh,"generateShade");function Ah(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(Ah,"generateTint");function Nh(t){return Yp(t,Eh)}i(Nh,"calculateShades");function Wh(t){return Yp(t,Ah)}i(Wh,"calculateTints");function Yp(t,e){let o=Ih(t),n=[];for(let r=1;r<9;r++)n.push(bh(e(o,r)));return n}i(Yp,"calculateColors");function Ri(t,e,o){let a=Wh(t).reverse().concat(t),s=Nh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(Ri,"createTintsAndShades");function ea(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!vh(r)){let p=wh(a);Object.assign(n,Ri(p,r,s))}}return{...n,...e}}i(ea,"expandToGenerateThemeColors");var Zp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Mh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Zp(o%52)+e;return Zp(o%52)+e},"toAlphabeticName"),Lh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ta=i(t=>Mh(Lh(5381,JSON.stringify(t))>>>0),"toHash");function na(t){let e=Bh.colors,o={...e,...Ph},n,r;if(t?.light){let s={colors:ea(e,t.light)};n={id:`${Li}-light-${ta(s)}`,tokens:s}}if(t?.dark){let s={colors:ea(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Li}-dark-${ta(s)}`,tokens:s}}return{light:n,dark:r}}i(na,"customizedThemeTokens");function Jp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>oa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(oa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(oa.cloneElement(e,{key:l}))}}),o}i(Jp,"joinList");function lr(t){let{colors:e,fontFamily:o=pl,borderRadius:n=_l,secondaryBorderRadius:r=$l}=t,[a,s]=Fh("light"),{theme:l}=h(),{dark:p,light:u}=na(e),c=ra({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,$h.className],d=[c.className,_h.className];if(u){let g=ra(u.id,u.tokens);m.push(g.className)}if(p){let g=ra(p.id,p.tokens);d.push(g.className)}return Dh(()=>{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=m.join(" "),S=d.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(lr,"useTheme");var Je=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 Rp}from"@lingui/core";import{Alert as Oh,Button as Uh}from"@rango-dev/ui";import ec from"react";function ia(t){return ec.createElement(Oh,{action:ec.createElement(Uh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Rp.t("Activate this tab")),type:"warning",variant:"alarm",title:Rp.t("Another tab is open and handles transactions.")})}i(ia,"ActivateTabAlert");import{i18n as aa}from"@lingui/core";import{Button as zh,Divider as qh,MessageBox as Qh}from"@rango-dev/ui";import pr from"react";function sa(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},pr.createElement(Qh,{title:aa.t("Activate current tab"),type:"warning",description:aa.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.")},pr.createElement(qh,{size:20}),pr.createElement(zh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},aa.t("Confirm"))))}i(sa,"ActivateTabModal");import{ChevronLeftIcon as Vh}from"@rango-dev/ui";import sc from"react";import{css as Hh,darkTheme as tc,IconButton as Gh,styled as ro}from"@rango-dev/ui";var yt=ro(Gh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${tc} &`]:{backgroundColor:"$neutral"}}}),oc=ro("div",{position:"absolute",background:"$secondary500",[`.${tc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),bo=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),nc=ro("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"}}}}),rc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ic=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),ac=Hh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function la(t){return sc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},sc.createElement(Vh,{color:"black",size:16}))}i(la,"BackButton");import{i18n as Xh}from"@lingui/core";import{Button as jh,Typography as Kh}from"@rango-dev/ui";import pa from"react";function ca(t){return pa.createElement(bo,null,pa.createElement(jh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},pa.createElement(Kh,{variant:"label",size:"medium",color:"error500"},Xh.t("Cancel"))))}i(ca,"CancelButton");import{i18n as Yh}from"@lingui/core";import{Image as Zh,Tooltip as Jh,WalletIcon as Rh}from"@rango-dev/ui";import io from"react";function ua(t){let{list:e}=xo({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:ac()},o.map(r=>io.createElement(cr,{key:r.title},io.createElement(Zh,{src:r.image,size:14})))):Yh.t("Connect Wallet");return io.createElement(Jh,{container:t.container,side:"bottom",content:n},io.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(oc,null),io.createElement(Rh,{size:18,color:"black"})))}i(ua,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as wy,Popover as vy,SettingsIcon as xy,Tooltip as fr,TransactionIcon as by}from"@rango-dev/ui";import Ae from"react";import{i18n as ma}from"@lingui/core";import{EventSeverity as yc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Sc,ChevronRightIcon as cy,Divider as Cc,Typography as da}from"@rango-dev/ui";import de from"react";import{useNavigate as uy}from"react-router-dom";import{create as ey}from"zustand";import{persist as ty,subscribeWithSelector as oy}from"zustand/middleware";var Ee=Ot(ey()(ty(oy((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 ny,darkTheme as ry,ListItemButton as iy,styled as zt}from"@rango-dev/ui";var lc=zt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),pc=zt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),cc=zt(ny,{padding:"$5 !important"}),uc=zt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),mc=zt(iy,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${ry} &`]:{backgroundColor:"$error600"}}}}}),dc=zt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),fc=zt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),gc=zt("span",{paddingRight:"$8"});import{i18n as ay}from"@lingui/core";import{Divider as sy,NoNotificationIcon as ly,Typography as py}from"@rango-dev/ui";import ur from"react";function hc(){return ur.createElement(fc,null,ur.createElement(ly,{color:"secondary",size:26}),ur.createElement(sy,{size:12}),ur.createElement(py,{variant:"body",size:"medium",color:"neutral700"},ay.t("There are no notifications.")))}i(hc,"NotificationNotFound");var my=4;function fa(){let t=uy(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,my),l=i(p=>{t(`${z.swaps}/${p}`)},"handleOnClick");return de.createElement(lc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(pc,null,de.createElement(da,{variant:"label",size:"medium"},ma.t("Notifications")),de.createElement(cc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(da,{variant:"body",size:"xsmall"},ma.t("Clear all")))),de.createElement(Cc,{direction:"vertical",size:4})),s.length?de.createElement(uc,null,s.map((p,u)=>{let{route:c,requestId:m,event:d}=p,f=a(c.from),g=r.find(y=>y.name===c.from.blockchain),S=a(c.to),C=r.find(y=>y.name===c.to.blockchain);return de.createElement(de.Fragment,{key:m},u>0&&de.createElement(Cc,{size:4}),de.createElement(mc,{onClick:()=>l(m),actionRequired:d.messageSeverity===yc.WARNING,title:de.createElement(da,{variant:"body",size:"small",color:d.messageSeverity===yc.WARNING?"$foreground":"$neutral700"},ma.t(d.message)),id:m,start:de.createElement(dc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Sc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Sc,{tokenImage:S?S.image:"",chainImage:C?C.logo:"",size:"small"}))),end:de.createElement(gc,null,de.createElement(cy,{size:12,color:"gray"}))}))})):de.createElement(hc,null))}i(fa,"NotificationContent");import{useManager as dy}from"@rango-dev/queue-manager-react";import{InProgressIcon as fy}from"@rango-dev/ui";import Tc from"react";var gy=i(()=>{let{manager:t}=dy();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?Tc.createElement(ic,null,Tc.createElement(fy,{color:"info",size:6})):null},"InProgressTransactionBadge"),kc=gy;import{EventSeverity as hy}from"@rango-dev/queue-manager-rango-preset";import{Typography as yy}from"@rango-dev/ui";import wc from"react";function vc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===hy.WARNING);return o?wc.createElement(nc,{isSever:n},wc.createElement(yy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(vc,"NotificationsBadge");import{RefreshProgressButton as Sy}from"@rango-dev/ui";import ga,{useEffect as Cy,useState as xc}from"react";var Ty=1e3,bc=60,ky=100;function mr({onClick:t}){let[e,o]=xc(0),[n,r]=xc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Cy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===bc&&l()},Ty):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 ga.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ga.createElement(rc,{onTransitionEnd:()=>r(!1),isRefetched:n},ga.createElement(Sy,{size:22,color:t?"black":"gray",progress:e/bc*ky})))}i(mr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=je("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(fr,{container:a||B(),side:"top",content:dr.t("Refresh")},Ae.createElement(mr,{onClick:e})),!l&&Ae.createElement(vy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ae.createElement(fa,null)},Ae.createElement("div",null,Ae.createElement(fr,{container:B(),side:"top",content:dr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(wy,{size:18,color:"black"}),Ae.createElement(vc,null))))),!r.includes("settings")&&Ae.createElement(fr,{container:B(),side:"top",content:dr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(xy,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(fr,{container:B(),side:"top",content:dr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(by,{size:18,color:"black"}),Ae.createElement(kc,null))))}i(ao,"HeaderButtons");import{i18n as ha}from"@lingui/core";import{Divider as Ec,MessageBox as Ay,RefreshIcon as Ny}from"@rango-dev/ui";import Io from"react";import{Button as Iy,styled as Ey}from"@rango-dev/ui";var Ic=Ey(Iy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ya(t){let{open:e,onClose:o}=t;return Io.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},Io.createElement(Ay,{title:ha.t("Something went wrong"),type:"error",description:ha.t("Something went wrong. Please refresh the app.")},Io.createElement(Ec,{size:30}),Io.createElement(Ic,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Io.createElement(Ny,{size:20,color:"primary"}),Io.createElement(Ec,{size:4,direction:"horizontal"}),ha.t("Refresh"))))}i(ya,"RefreshModal");function Sa(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(Sa,"onScrollContentAttachStatusToContainer");import{css as Wy,styled as Ca}from"@rango-dev/ui";var Ac="700px",gr=Wy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Nc=Ca("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ac},fixed:{height:Ac}}}}),Wc=Ca("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Mc=Ca("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}=Zi(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Py(!1),c=te.use.connectedWallets(),{config:{features:m,theme:d}}=h(),{watermark:f}=ie(),g=f==="FULL",{activeTheme:S}=lr(d||{}),C=je("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ie(),x=Ze(),{manager:L}=My(),b=Je(L).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),A=i(()=>E(to.forceClaim,b),"onActivateTab"),P=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,I=Bc(null),H=Bc(null);return Ta(()=>(sr()&&H.current&&e(H.current),()=>{o()}),[]),Ta(()=>(I.current?.addEventListener("scroll",Sa),()=>{I.current?.removeEventListener("scroll",Sa)}),[]),Ta(()=>{u(l==="failed")},[l]),Ce.createElement(Nc,{height:s,id:Se.SWAP_BOX_ID,className:`${S()} ${gr()}`,ref:H},Ce.createElement(By,{prefix:Ce.createElement(Ce.Fragment,null,Q&&Ce.createElement(la,{onClick:()=>{x(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ce.createElement(Ce.Fragment,null,r.suffix,r.onWallet&&!C&&Ce.createElement(ua,{container:B(),onClick:P,isConnected:!!c?.length}),r.onCancel&&Ce.createElement(ca,{onClick:r.onCancel}))}),Ce.createElement(Wc,{ref:I},n),Ce.createElement(sa,{open:k,onClose:()=>v(!1),onConfirm:A}),Ce.createElement(Mc,null,Ce.createElement("div",{className:"footer__content"},T&&!y&&Ce.createElement("div",{className:"footer__alert"},Ce.createElement(ia,{onActivateTab:A}),Ce.createElement(Lc,{size:10})),a),Ce.createElement(Lc,{size:12}),Ce.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Ce.createElement(Ly,null))),Ce.createElement(ya,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as _y}from"@rango-dev/ui";var Pc="$20 $20 $10 $20",Xo=_y("div",{padding:Pc,overflowY:"auto",flexGrow:1});import{styled as $y}from"@rango-dev/ui";var me=$y("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 zy}from"@rango-dev/ui";import wa from"react";import{i18n as Eo}from"@lingui/core";import{Image as Oy,MessageBox as ka,WalletState as Uy}from"@rango-dev/ui";import so from"react";import{keyframes as Dy,styled as hr}from"@rango-dev/ui";var lW=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),yr=hr("div",{position:"relative"}),Fy=Dy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Sr=hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Fy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),_c=hr("div",{"& img":{borderRadius:"50%"}});function $c(t){let{state:e,image:o,error:n}=t;return e===Uy.CONNECTED?so.createElement(ka,{type:"success",title:Eo.t("Wallet Connected"),description:Eo.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(ka,{type:"error",title:Eo.t("Failed to Connect"),description:n||Eo.t("Your wallet is not connected. Please try again.")}):so.createElement(ka,{type:"loading",title:Eo.t("Connecting to your wallet"),description:Eo.t("Click connect in your wallet popup."),icon:so.createElement(yr,null,so.createElement(_c,null,so.createElement(Oy,{src:o,size:45})),so.createElement(Sr,null))})}i($c,"ModalContent");function jo(t){let{open:e,onClose:o,...n}=t;return wa.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},wa.createElement($c,{...n}),wa.createElement(zy,{direction:"vertical",size:32}))}i(jo,"WalletModal");import{i18n as va}from"@lingui/core";import{Button as Qy,Checkbox as Hy,Image as Fc,ListItemButton as Gy,MessageBox as Vy,Radio as Xy,RadioRoot as jy}from"@rango-dev/ui";import{namespaceMainBlockchain as Ky}from"@rango-dev/wallets-shared";import We,{useMemo as Yy,useState as Zy}from"react";import{styled as qy}from"@rango-dev/ui";var Dc=qy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Jy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Zy([]),a=h().blockchains(),s=Yy(()=>o?.map(u=>({name:u,logo:Jy(a,Ky[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(jy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},We.createElement(Vy,{type:"info",title:va.t("Select chain types"),description:va.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(yr,null,We.createElement(cr,null,We.createElement(Fc,{src:t.image,size:45})),We.createElement(Sr,null))}),We.createElement(Dc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(Gy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Fc,{src:u.logo,size:22}),end:e?We.createElement(Xy,{value:u.name}):We.createElement(Hy,{checked:n.includes(u.name)})}))))),We.createElement(Qy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},va.t("Confirm")))}i(lo,"WalletNamespacesModal");var rS=zc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),iS=zc(me,{textAlign:"center"}),Tr=3e3,xa=300;function qc(){let{fetchStatus:t}=h(),[e,o]=Cr("ALL"),n=h().blockchains(),[r,a]=Cr(!1),[s,l]=Cr(null),[p,u]=Cr(""),c=null,m=ie.use.isActiveTab(),{list:d,handleClick:f,error:g,disconnectConnectingWallets:S}=xo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},xa)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},Tr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),y=d.find(w=>w.type===p),T=y?.image||"",k=y?.state||Uc.NOT_INSTALLED,v=Ll(d,n),x=eS(v)!==1,L=Bl(d,e);return at.createElement(le,{header:{title:Oc.t("Connect Wallets")}},at.createElement(iS,null,x&&at.createElement(at.Fragment,null,at.createElement(tS,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),at.createElement(Ry,{size:24})),at.createElement(oS,{variant:"title",size:"xmedium",align:"center"},Oc.t("Choose a wallet to connect.")),at.createElement(rS,null,L.map((w,b)=>{let A=`wallet-${b}-${w.type}`;return at.createElement(nS,{key:A,...w,container:B(),onClick:P=>{w.namespaces&&w.state===Uc.DISCONNECTED?l({providerType:P,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(P)},isLoading:t==="loading",disabled:!m})}),at.createElement(jo,{open:!!r,onClose:C,image:T,state:k,error:g}),at.createElement(lo,{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 aS,styled as ba}from"@rango-dev/ui";var Qc=ba("div",{position:"relative"}),sS=aS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Hc=ba("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${sS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Gc=ba("div",{"& img":{borderRadius:"50%"}});var uS=7;function Ea(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Ao(""),[d,f]=Ao(null),[g,S]=Ao(!1),[C,y]=Ao(null),[T,k]=Ao(null),{suggestAndConnect:v}=wr(),E=null,{list:x,error:L,handleClick:w,disconnectWallet:b,disconnectConnectingWallets:A}=xo({chain:e,onBeforeConnect:W=>{E=setTimeout(()=>{m(W)},xa)},onConnect:W=>{s?.(W),E&&clearTimeout(E),setTimeout(()=>{m("")},Tr)}}),[P,Q]=Ao(x),I=x.length,H=r&&I-r>0,Y=i(async W=>{S(!1),y("in-progress");try{await v(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");jc(()=>{Q(W=>{let U=x.findIndex(Z=>o(Z.type,e));return H&&U>1?[x[U]].concat(x.filter((Z,re)=>re!==U)):W.map(Z=>x.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(x)]);let G=document.getElementById(Se.SWAP_BOX_ID);jc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),Tr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{A(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,P.slice(0,r).map(W=>{let U=Nl({connectedWallets:p,walletType:W.type,chain:e}),Z=U?Pn(U,uS):"",re=Ln(u(),e),ke=!p.find(Oe=>Oe.walletType===W.type&&Oe.chain===e),_=re&&ke&&W.state===Xc.CONNECTED,Fe=_?st.t({id:"Add {chain} chain",values:{chain:e}}):Z,ot=i(async()=>{W.state===Xc.DISCONNECTED?W.namespaces?pe(W):w(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(f({walletType:W.type,chain:e,address:U??""}),S(!0)):n({walletType:W.type,chain:e,address:U??""})},"onClick"),fe=d?.chain?In(d.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${fe}`},ue.createElement(jo,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:L}),ue.createElement(lo,{open:!!T,onClose:()=>k(null),onConfirm:Oe=>{w(T?.providerType,Oe),k(null)},image:T?.providerImage,namespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),!!d&&ue.createElement(ne,{open:!!d&&g,container:G,onClose:()=>{f(null)}},ue.createElement(kr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}})},ue.createElement(Ia,{size:18}),ue.createElement(Ia,{size:32}),ue.createElement(lS,{onClick:Y.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(kr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}}),icon:ue.createElement(Qc,null,ue.createElement(Gc,null,ue.createElement(pS,{src:W.image,size:45})),ue.createElement(Hc,null))}),C==="completed"&&ue.createElement(kr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:fe}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:fe}})}),C==="rejected"&&ue.createElement(kr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:fe}})}),ue.createElement(Ia,{direction:"vertical",size:32})),ue.createElement(cS,{key:W.type,description:Fe,onClick:ot,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(Op,{selected:!1,onClick:a},ue.createElement(Vc,{variant:"label",size:"medium"},st.t("Show more wallets"),ue.createElement(Vc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Ea,"WalletList");var wS=2;function Jc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=kS(),l=h().config,p=TS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:d,setQuoteWalletConfirmed:f,customDestination:g,setCustomDestination:S}=K(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=po(""),[v,E]=po([]),[x,L]=po(""),[w,b]=po(null),[A,P]=po(!!g),Q=navigator?.userAgent.includes("Firefox"),I=Rt({filter:"all",quote:c}),H=Rt({filter:"required",quote:c}),Y=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(M=>H.includes(M),"isWalletRequiredFor"),G=CS(()=>C.filter(M=>M.selected&&I.includes(M.chain)),[C.length,I.length]),[ee,W]=po(G()),[U,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),ke=v.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&A&&Y&&!qn(Y,g),ot=i(()=>{P(!1),S(null),W(M=>{let V=!1;return M.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),fe=i(()=>S(""),"handleClearCustomDestination"),Oe=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),vt=i(M=>{M?pe(Y?.name??"")||W(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):ot()},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(M=>{if(T&&k(""),_(M.walletType,M.chain))return;let X=C.find(qe=>qe.walletType===M.walletType&&qe.chain===M.chain);X&&(n(),M.chain===Y?.name&&A&&!pe(Y.name)&&(P(!1),S(null)),W(qe=>qe.filter(ft=>ft.chain!==M.chain).concat({...X,selected:!0})))},"onChange"),nt=i(()=>{let M=ee.filter(V=>V.selected);y(M),m(M),f(!0),o()},"onConfirmBalance"),rt=i(async()=>{E([]),L(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&E(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&L(ap(M.error)),!M.error&&!V?.balance?.messages.length?nt():E(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Yc,{onClick:fe,variant:"ghost"},$.createElement(gS,{size:12,color:"gray"})):Q?null:$.createElement(Yc,{onClick:Oe,variant:"ghost"},$.createElement(yS,{size:16})),"renderCustomDestinationSuffix");Zc(()=>{W(M=>{let V=[];return M.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C.length,I.length]),Zc(()=>{let M=[];U.length>0&&(U.forEach(V=>{let X=C.find(qe=>qe.chain===V.blockchain&&qe.walletType===V.walletType);X?Ve(X):M.push(V)}),Z(M))},[C.length,U.length]);let ye=document.getElementById(Se.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{d||s("../",{replace:!0}),o()},dismissible:!T,container:ye,...!T&&{footer:$.createElement(Vp,null,$.createElement(Kc,{loading:a,disabled:xp(a,A,g,c,ee,Y),onClick:rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Up,null,$.createElement(zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(fS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(T,u)}})))},anchor:"center"},$.createElement(ne,{open:ke,onClose:E.bind(null,[]),container:ye},$.createElement(hS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(mS,{messages:v??[]})},$.createElement(Kc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:nt},St.t("Proceed anyway")))),T&&$.createElement(qp,null,$.createElement("div",{className:Qp()},$.createElement(Ea,{chain:T,isSelected:_,selectWallet:Ve,onShowMore:()=>k(T),onConnect:M=>{re(T,M)}}))),!T&&$.createElement($.Fragment,null,x&&$.createElement($.Fragment,null,$.createElement(Aa,{variant:"alarm",type:"error",title:St.t(x)}),$.createElement(Ko,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(Aa,{variant:"alarm",type:"warning",title:er(w)}),$.createElement(Ko,{size:12})),$.createElement(jp,null,I.map((M,V)=>{let X=u.find(Jt=>Jt.name===M),qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:qe},$.createElement(Dp,null,$.createElement(vr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Ko,{size:24}),$.createElement(Fp,null,$.createElement(Ea,{chain:M,isSelected:_,selectWallet:Ve,limit:wS,onShowMore:()=>k(X?.name??""),onConnect:Jt=>{re(M,Jt)}})),!ft&&$.createElement(Ko,{size:32}),ft&&l?.customDestination&&$.createElement(Hp,null,$.createElement(ir,{onOpenChange:vt,hasSelected:!0,open:A,triggerAnchor:"top",trigger:$.createElement(Kp,null,$.createElement("div",{className:"button__content"},$.createElement(SS,{size:18,color:"info"}),$.createElement(Ko,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:A?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(nr,{orientation:A?"up":"down"},$.createElement(dS,{size:10,color:"secondary"}))),onClickTrigger:()=>P(Jt=>!Jt)},$.createElement(Xp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:In(M,u)}),value:g||"",suffix:dt(),onChange:Jt=>{let jf=Jt.target.value;S(jf)},...!g&&{autoFocus:!0}})),Fe&&$.createElement("div",{className:Gp()},$.createElement(Aa,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Jc,"ConfirmWalletsModal");import{i18n as zS}from"@lingui/core";import{Alert as qS,Button as QS,InfoIcon as HS}from"@rango-dev/ui";import He from"react";import{Alert as bS,Button as IS,Divider as Ma,NoRouteIcon as ES,RefreshIcon as AS,Typography as iu}from"@rango-dev/ui";import Qe from"react";import{i18n as Rc}from"@lingui/core";var vS=24,xS=60;function eu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:Rc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Rc.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(eu,"makeInfo");var Na=(o=>(o[o.small=vS]="small",o[o.large=xS]="large",o))(Na||{}),Wa=(o=>(o.small="small",o.large="medium",o))(Wa||{});import{styled as xr}from"@rango-dev/ui";var tu=xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ou=xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),nu=xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),ru=xr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=eu(o,r,()=>a(s,!0),e);return Qe.createElement(tu,null,Qe.createElement(ES,{size:Na[n],color:"gray"}),Qe.createElement(Ma,{size:4}),Qe.createElement(iu,{variant:"title",size:Wa[n]},oe().noResultError.title),n==="large"&&Qe.createElement(Ma,{size:4}),!!l.description&&Qe.createElement(ou,{size:n},Qe.createElement(iu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Qe.createElement(Ma,{size:n==="large"?"24":"4"}),!!l.alert&&Qe.createElement(nu,{size:n},Qe.createElement(bS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Qe.createElement(IS,{size:"xsmall",type:l.alert.type,prefix:Qe.createElement(ru,null,Qe.createElement(AS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as WS,Divider as MS,MessageBox as LS,Typography as BS,WarningIcon as PS}from"@rango-dev/ui";import At from"react";import{Typography as pu}from"@rango-dev/ui";import Ba from"react";import{darkTheme as NS,styled as br}from"@rango-dev/ui";var au=br("div",{width:"100%"}),La=br("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),su=br("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${NS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lu=br("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function cu(t){let{title:e,value:o,valueColor:n}=t;return Ba.createElement(su,null,Ba.createElement(pu,{size:"medium",variant:"label",className:"_title"},e),Ba.createElement(pu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(cu,"QuoteErrorsModalItem");function uu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(WS,{type:"primary",size:"large",prefix:At.createElement(PS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},At.createElement(LS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(La,null,At.createElement(MS,{size:"4"}),At.createElement(BS,{size:"small",variant:"title"},Zo.t("Details")),At.createElement(La,null,l.map((p,u)=>At.createElement(cu,{key:u,...p})))))}i(uu,"HighValueLossWarningModal");import{i18n as Pa}from"@lingui/core";function mu(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=Pa.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&&(It(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Pa.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=Pa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(mu,"makeAlerts");import{i18n as No}from"@lingui/core";import{Button as du,Divider as fu,MessageBox as _S,Typography as $S}from"@rango-dev/ui";import co from"react";import{useNavigate as DS}from"react-router-dom";function gu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=DS(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(du,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},co.createElement($S,{variant:"label",size:"medium",color:"$neutral900"},No.t("Change settings"))),container:B(),onClose:r},co.createElement(_S,{type:"warning",title:s.type===3?No.t("High slippage"):No.t("Low slippage"),description:s.type===3?No.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):No.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},co.createElement(fu,{size:18}),co.createElement(fu,{size:32}),co.createElement(du,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},No.t("Confirm anyway"))))}i(gu,"SlippageWarningModal");import{Button as FS,MessageBox as OS,WarningIcon as US}from"@rango-dev/ui";import Ir from"react";function hu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ir.createElement(ne,{footer:Ir.createElement(FS,{type:"primary",size:"large",prefix:Ir.createElement(US,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Ir.createElement(OS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(hu,"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,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,f=mu(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),He.createElement(He.Fragment,null,d&&He.createElement(Yo,{error:o,fetch:s}),!!f&&He.createElement(au,null,He.createElement(qS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:He.createElement(lu,{onClick:l},He.createElement(HS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:He.createElement(QS,{size:"xxsmall",type:f.alertType,onClick:c},zS.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(uu,{...m,warning:e}),(e.type===3||e.type===2)&&He.createElement(gu,{...m,warning:e}),e.type===1&&He.createElement(hu,{...m,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import kC from"bignumber.js";import Ur from"react";import{i18n as uo}from"@lingui/core";import{Alert as lC,Divider as Mo,FullExpandedQuote as pC,InfoIcon as cC,QuoteTag as uC,StepDetails as mC,TokenAmount as dC,Tooltip as Ku,Typography as Lo}from"@rango-dev/ui";import qa from"bignumber.js";import D,{useRef as fC,useState as gC}from"react";import{styled as _a}from"@rango-dev/ui";var $a=_a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),yu=_a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Su=_a("div",{width:"100%",display:"flex"});import*as Er from"@radix-ui/react-collapsible";import{Button as GS,css as Ro,darkTheme as we,Image as Cu,styled as _e,Typography as VS}from"@rango-dev/ui";var XS=300,Tu=_e(Er.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),ku=Ro({padding:"$10 $15"}),wu=_e(GS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),vu=_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",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),xu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),bu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Wo=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Iu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Eu=_e(Er.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:{[`& ${Cu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Cu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Au=_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"}}}}),Nu=_e(or,{width:"100%",background:"inherit"}),Da=_e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${XS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),mB=_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",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Mu=_e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Fa=_e(VS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Lu=_e("div",{display:"flex",flexWrap:"wrap"}),Oa=_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"}),Ar=_e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Vt}from"@lingui/core";import{ChevronDownIcon as KS,CloseIcon as YS,Divider as Mr,IconButton as ZS,QuoteCost as JS,Tooltip as RS,Typography as lt}from"@rango-dev/ui";import J,{useState as Du}from"react";import{css as jS,styled as Nr}from"@rango-dev/ui";var Wr=Nr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ua=Nr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Pu=Nr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),_u=Nr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),$u=jS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var eC=i(t=>t.fee.isZero()?null:J.createElement(Wr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Fu(t){let[e,o]=Du(!1),[n,r]=Du(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],d=B(),f=mp(m);return J.createElement(J.Fragment,null,J.createElement(JS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Vt.t("View more info"):void 0,tooltipContainer:d}),J.createElement(ne,{container:d,open:e,header:J.createElement(_u,null,J.createElement(lt,{variant:"title",size:"medium"},Vt.t("Gas & Fee Explanation")),J.createElement(ZS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(YS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(Pu,null,J.createElement(lt,{variant:"title",size:"small"},Vt.t("Details")),J.createElement(Mr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=zi(C);return J.createElement(Wr,{key:T},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Di[g]),J.createElement(RS,{content:ce(C.amount),container:d},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Wr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Vt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(Ua,null),Object.keys(f.nonePayable).length&&J.createElement(ir,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:$u()},J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?Vt.t("Hide non-payable fees"):Vt.t("Show non-payable fees")),J.createElement(Mr,{size:4,direction:"horizontal"}),J.createElement(nr,{orientation:n?"up":"down"},J.createElement(KS,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Vt.t("Description")),J.createElement(Mr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Vt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),J.createElement(Mr,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let y=up(S),T=Di[g],k=`non-payable-fee-${C}`;return J.createElement(eC,{key:k,fee:y,label:T})}),J.createElement(Ua,null)))))}i(Fu,"QuoteCostDetails");import{i18n as zu}from"@lingui/core";import{TokenAmount as qu}from"@rango-dev/ui";import Lr from"react";import{css as tC,styled as oC}from"@rango-dev/ui";var Ou=oC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Uu=tC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Lr.createElement(Ou,null,Lr.createElement(qu,{direction:"horizontal",label:zu.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}}),Lr.createElement("div",{className:Uu()}),Lr.createElement(qu,{direction:"horizontal",tooltipContainer:B(),label:zu.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(en,"QuoteSummary");import{i18n as Xu}from"@lingui/core";import{ChevronDownIcon as iC,ChevronRightIcon as aC,Divider as za,Image as sC,Tooltip as Dr,Typography as Pr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as nC,useState as tn}from"react";var Qu=480,Hu=768,Gu=1024,Vu=1200,rC=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=Qu),n(window.innerWidth>Qu&&window.innerWidth<=Hu),a(window.innerWidth>Hu&&window.innerWidth<=Gu),l(window.innerWidth>Gu&&window.innerWidth<=Vu),u(window.innerWidth>Vu)},"handleResize");return nC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Br=rC;var _r=4,$r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return F.createElement(Dr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Au,{className:n,state:a},F.createElement(sC,{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:m,isMobile:d}=Br();return F.createElement(Eu,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:Wo()},F.createElement(Pr,{variant:"body",size:"xsmall"},Xu.t("Via:")),F.createElement(za,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=F.createElement(Da,null,F.createElement(aC,{size:12,color:"black"}));return d||m?F.createElement(F.Fragment,{key:S},F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:S},u<=_r||u>_r&&g<_r-1?F.createElement(F.Fragment,null,F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===_r-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Wo()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Oa,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Pr,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:Wo()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Wo()},F.createElement(Pr,{variant:"body",size:"xsmall"},Xu.t("Chains:")),F.createElement(za,{direction:"horizontal",size:4}),c.map((f,g)=>F.createElement(F.Fragment,{key:f.displayName},c.length<=$r||c.length>$r&&g<$r-1?F.createElement(Dr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},F.createElement(on,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===$r-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Wo()},c.map((S,C)=>C>=g&&F.createElement(on,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Oa,{className:"blockchainImage"},F.createElement(Pr,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(za,{direction:"horizontal",size:32}))),F.createElement(Da,{orientation:a?"up":"down"},F.createElement(iC,{size:12,color:"black"}))))}i(ju,"QuoteTrigger");function Qa(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:m=!1,container:d}=t,f=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=gC(t.expanded),E=fC(null),x=N(o.value,6,6),L=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",b=Ke(o.usdValue,n.usdValue??null),A=N(b,2,2),P=It(b??0),Q=i((re,ke)=>re.map((_,Fe)=>{let ot,fe=r?.type===3&&r.swap.swapperId===_.swapperId,Oe=r?.type===4&&r.recommendedSlippages?.has(Fe),vt=a?.type===2&&a.recommendedSlippages?.has(Fe),Ve=fe||Oe,nt=vt;Ve?ot="error":nt&&(ot="warning");let rt=Ve?uo.t("Slippage Error"):uo.t("Slippage Warning");return fe&&(rt=uo.t("Bridge Limit Error")),{swapper:{displayName:Oo(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Fe===0&&!ke?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Fe===0?o.value:_.fromAmount),realUsdValue:ce(new qa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new qa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:ot,alerts:Ve||nt?D.createElement(yu,{dense:m},D.createElement(lC,{variant:"alarm",type:Ve?"error":"warning",title:rt,footer:D.createElement(Su,null,fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Mo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Oe||vt)&&!fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Fe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Fe)}}})),D.createElement(Mo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Uo(_.estimatedTimeInSeconds),fee:N(Ui(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),I=Q(e?.swaps??[]),H=I.length,Y=d||B(),pe=Mp(t.quote.tags||[]),G=!!c,ee=Uo(En(e?.swaps)),W=Gn(e?.swaps??[],g),U=N(W,2,2),Z=W.gte(new qa(ip));return m?D.createElement(pC,{selected:l,fee:U,time:ee,tooltipContainer:Fo(),steps:I,tags:pe,feeWarning:Z,percentageChange:A,warningLevel:P,outputPrice:{value:L,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(vu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:xu()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(Bu,null,pe.map((re,ke)=>{let _=`${re.value}_${ke}`;return D.createElement(D.Fragment,{key:_},D.createElement(uC,{label:re.label,value:re.value}),D.createElement(Mo,{size:4,direction:"horizontal"}))})),D.createElement(Ar,null),!G&&D.createElement(Mo,{size:4})):null,D.createElement("div",{id:"portal-root",className:bu()},D.createElement(Fu,{quote:e,time:ee,fee:U,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(wu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Lo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},uo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Iu()},D.createElement(Mu,null,D.createElement(cC,{size:12,color:"gray"})),D.createElement(Lu,null,D.createElement(Fa,{size:"small",variant:"body"},`${x} ${I[0].from.token.displayName} = `),D.createElement(Ku,{content:ce(n.value),container:Y,open:n.value?void 0:!1},D.createElement(Fa,{size:"small",variant:"body"},"\xA0",`${L} ${I[I.length-1].to.token.displayName}`))),D.createElement(Ku,{content:ce(n.usdValue),container:Y},D.createElement(Mo,{size:2,direction:"horizontal"}),D.createElement(Lo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&D.createElement(dC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:L,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:A,warningLevel:P}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:I[0].from,to:I[H-1].to,percentageChange:A,warningLevel:P}),D.createElement(Mo,{size:4}))),D.createElement(Tu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},D.createElement(ju,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:I}),D.createElement(Nu,{open:k},D.createElement(Wu,null),D.createElement("div",{className:ku()},I.map((re,ke)=>{let _=`item-${ke}`;return D.createElement(mC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:ke!==I.length-1,state:re.state})})))))}i(Qa,"Quote");import{Divider as CC,Skeleton as TC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as hC,styled as Fr}from"@rango-dev/ui";var Yu=Fr("div",{$$color:"$colors$neutral100",[`.${hC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Zu=Fr("div",{paddingTop:"$2"}),Ju=Fr("div",{paddingLeft:"$8"}),Ru=Fr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as pm,Divider as pt,Skeleton as Ge}from"@rango-dev/ui";import q from"react";import{css as yC,styled as Nt}from"@rango-dev/ui";var Ha=Nt("div",{display:"flex"}),em=Nt("div",{padding:"$10 $0 $20"}),tm=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),om=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),nm=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),rm=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),im=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),am=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),sm=Nt("div",{padding:"$15 $0 $15 $0"}),lm=yC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(nm,null,q.createElement(im,null,q.createElement(pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{size:8,direction:"horizontal"}),q.createElement(am,null,q.createElement(Ge,{height:10,width:60,variant:"rounded"}),q.createElement(pt,{size:4}),q.createElement(Ge,{height:15,variant:"rounded"}))),q.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(Ha,null,q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"})),q.createElement(Ar,null),!r&&q.createElement(pt,{size:4})),q.createElement("div",{className:lm()},q.createElement(Ha,null,q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&q.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(em,null,q.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(tm,null,q.createElement(om,null,q.createElement(pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{direction:"horizontal",size:4}),q.createElement(Ge,{height:15,width:150,variant:"rounded"})),q.createElement(pt,{size:10}),q.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(pt,{size:4}),q.createElement(sm,null,n,q.createElement(rm,null),n),q.createElement(pt,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as fm,Divider as Va,NextIcon as SC,Skeleton as Or}from"@rango-dev/ui";import ve from"react";import{styled as rn}from"@rango-dev/ui";var cm=rn("div",{display:"flex",alignItems:"start"}),um=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ga=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),mm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dm=rn("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(dm,null,ve.createElement(Or,{height:22,width:22,variant:"circular"}),ve.createElement(Va,{direction:"horizontal",size:8}),ve.createElement(Or,{height:15,width:148,variant:"rounded"})),ve.createElement(cm,null,ve.createElement(Ru,{hideSeparator:!e}),ve.createElement(um,{extraSpace:e},ve.createElement(Ga,null,ve.createElement(fm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Va,{direction:"horizontal",size:8}),ve.createElement(Or,{height:12,variant:"rounded"})),ve.createElement(mm,null,ve.createElement(SC,{color:"gray",size:16})),ve.createElement(Ga,null,ve.createElement(fm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Va,{direction:"horizontal",size:8}),ve.createElement(Or,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Yu,{expanded:o,rounded:e!=="basic"},Wt.createElement(nn,{type:e,tagHidden:n}),Wt.createElement(Zu,null,Wt.createElement(TC,{height:15,variant:"rounded"})),o&&Wt.createElement(Ju,null,Wt.createElement(CC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:d=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=K(),y=e?.outputAmount?new kC(e?.outputAmount):null,T=e?.outputAmount?Xn(e?.outputAmount,Kn(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ur.createElement($a,null,Ur.createElement(an,{tagHidden:l,type:o,expanded:s})):v?Ur.createElement($a,{onClick:()=>p?.(e)},Ur.createElement(Qa,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:d,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as bC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as IC}from"react";import{useRef as wC,useState as vC}from"react";var xC=2e3;function zr({request:t}){let[e,o]=vC(!1),n=wC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,xC)),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(zr,"useFetch");function gm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(gm,"useFetchConfirmQuote");function qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Xa(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(qr,"throwErrorIfResponseIsNotValid");function Xa(t){if(lp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=pp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=dp(t);if(o){let n=Vn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Xa,"getQuoteError");function hm(t,e,o){let n=!1;t&&(n=Ap(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=To(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Cp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(Co(e)),percentageChange:N(Ke(Co(t)??"",Co(e)??""),null,2)}:qi(t,e)?r.quoteUpdate={type:0}:Qi(t,e)?r.quoteUpdate={type:1}:Hi(t,e)&&(r.quoteUpdate={type:2}));let s=Tp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(hm,"generateWarnings");function Qr(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(Qr,"handleQuoteErrors");function ja(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=K(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),d=h().tokens(),{findToken:f}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=gm();return IC(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,E=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let x=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),L={requestId:r?.requestId||"",selectedWallets:x,destination:E||void 0};try{return await S(L,!0).then(w=>{let{result:b}=w;qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let A={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(A);let P={slippage:g.toString(),disabledSwappersGroups:c},Q=hm(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:f,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let I=!!Q.balance,H=bC(o.toString(),b,yp(v),P,!I,{blockchains:m,tokens:d});return{quote:A,swap:H,error:null,warnings:Q}})}catch(w){return Qr(w)}},"fetch"),cancelFetch:C}}i(ja,"useConfirmSwap");var _C=NC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Sm}`]:{width:"$48",height:"$48"}}),$C=Za({flexGrow:1,paddingRight:"$10"}),DC=Za({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),FC=Za({display:"flex",justifyContent:"space-between",alignItems:"center"});function Cm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=K(),s=PC(),[l,p]=sn(""),u=!n,[c,m]=sn(!1),[d,f]=sn(!1),{isActiveTab:g}=ie(),S=h().getDisabledLiquiditySources(),C=BC(S),{manager:y}=EC(),{fetch:T,loading:k,cancelFetch:v}=ja(),[E,x]=sn({swap:null,error:null,warnings:null}),[L,w]=sn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await T?.({selectedWallets:G,customDestination:ee});return x(W),W},"onConfirmSwap"),A=i(async()=>{if(E.swap&&n)try{await y?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let G=`../${z.swaps}/${E.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),P=i(async()=>{f(!0),await A(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await P()},"onStartConfirmSwap"),I=i(async()=>{x({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(G=>{x(G)}).catch(G=>console.error(G))},"onRefresh");Hr(()=>{!!C.current.length&&!S.length&&I(),C.current=S},[S.length]),Hr(()=>{u&&v()},[u]),Hr(()=>{u&&m(u)},[u]),Hr(()=>{u||T({selectedWallets:o,customDestination:r}).then(G=>x(G)).catch(G=>console.error(G))},[]),LC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=E.warnings?.quote??null,Y=E.error,pe=[];if(l&&pe.push(xe.createElement(ym,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&pe.push(xe.createElement(ym,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&er(E.warnings.quoteUpdate)})),H||Y){let G=`../${z.settings}`;pe.push(xe.createElement(Jo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:L,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await A()},onChangeSettings:()=>s(G)}))}return xe.createElement(le,{header:{title:Ka.t("Confirm Swap"),onWallet:()=>{let G=`../${z.wallets}`;s(G)}},footer:xe.createElement(_C,null,xe.createElement("div",{className:$C()},xe.createElement(AC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!E.error||!g,onClick:Q},Ka.t("Start Swap"))),xe.createElement(Sm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!g,onClick:m.bind(null,!0)},xe.createElement(MC,{size:24})))},c&&xe.createElement(Jc,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),xe.createElement(me,null,xe.createElement("div",{className:FC()},xe.createElement(WC,{variant:"title",size:"small"},Ka.t("You get")),xe.createElement("div",{className:DC()},xe.createElement(mr,{onClick:!k&&!c&&!L?I:void 0}))),xe.createElement(Ya,{size:"12"}),Jp(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),xe.createElement(Ya,{size:10})),pe.length>0?xe.createElement(Ya,{size:10}):null,xe.createElement(mo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(Cm,"ConfirmSwapPage");import{i18n as Vr}from"@lingui/core";import{useManager as eT}from"@rango-dev/queue-manager-react";import{Divider as Wm,NotFound as tT,styled as oT}from"@rango-dev/ui";import Lt,{useState as nT}from"react";import{useNavigate as rT}from"react-router-dom";import{i18n as zC}from"@lingui/core";import{Divider as xm,GroupedVirtualizedList as qC,Skeleton as QC,SwapListItem as bm,Typography as HC}from"@rango-dev/ui";import $e,{useCallback as Im,useEffect as GC,useRef as VC,useState as XC}from"react";function Tm(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(Tm,"calculateGroupsSoFar");import{css as OC,darkTheme as UC,styled as ln}from"@rango-dev/ui";var Ja=OC(),km=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ra=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ja}`]:{$$color:"$colors$neutral600",[`.${UC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),es=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),wm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),vm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var jC=10;function ts(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=XC([]),l=VC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Im(Tm,[]),d=Im(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,jC),s(m(u,l.current)))},[e.length]);if(GC(()=>{r||d()},[r,d]),r){let f=[1,2];return $e.createElement($e.Fragment,null,[f,f].map((S,C)=>$e.createElement(Ra,{key:C},$e.createElement(es,null,$e.createElement(QC,{variant:"text",width:60,size:"small"}),$e.createElement(xm,{size:16})),$e.createElement(xm,{size:4}),$e.createElement(wm,null,S.map((T,k)=>$e.createElement(bm,{isLoading:!0,key:k}))))))}return $e.createElement(qC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:f=>$e.createElement(Ra,null,$e.createElement(es,null,$e.createElement(HC,{variant:"label",size:"medium",className:Ja()},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 $e.createElement(km,{key:S.requestId},$e.createElement(bm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===zC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:ce(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(ts,"HistoryGroupedList");import{CloseIcon as YC,IconButton as ZC,SearchIcon as JC,TextField as RC}from"@rango-dev/ui";import pn from"react";import{styled as KC}from"@rango-dev/ui";var Em=KC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(RC,{prefix:pn.createElement(Em,null,pn.createElement(JC,{color:"black"})),suffix:!!s.length&&pn.createElement(ZC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(YC,{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(Mt,"SearchInput");import{i18n as Gr}from"@lingui/core";import Am from"dayjs";var Nm=i(t=>{let e=new Map([["today",{title:Gr.t("Today"),swaps:[]}],["week",{title:Gr.t("This week"),swaps:[]}],["month",{title:Gr.t("This month"),swaps:[]}],["year",{title:Gr.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=Am();t.forEach(p=>{let u=Number(p.creationTime),c=Am(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 m=new Date(u).getFullYear().toString();o(m,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 iT=oT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),aT=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Mm(){let t=rT(),{manager:e,state:o}=eT(),n=Je(e).map(({swap:c})=>c),[r,a]=nT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||aT(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Vr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Vr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Wm,{size:"16"}),Lt.createElement(iT,null,u&&Lt.createElement(vm,null,Lt.createElement(Wm,{size:32}),Lt.createElement(tT,{title:Vr.t("No results found"),description:r?Vr.t("Try using different keywords"):""})),!u&&Lt.createElement(ts,{list:p,onSwapClick:t,groupBy:Nm,isLoading:s}))))}i(Mm,"HistoryPage");import{i18n as bT}from"@lingui/core";import{Button as IT,Divider as Km,styled as ET,WarningIcon as AT}from"@rango-dev/ui";import NT from"bignumber.js";import Ue,{useEffect as Ym,useState as Zm}from"react";import{useNavigate as WT}from"react-router-dom";import{i18n as mT}from"@lingui/core";import{Header as dT}from"@rango-dev/ui";import Xt,{useEffect as fT,useState as gT}from"react";import{i18n as lT}from"@lingui/core";import{Divider as ns,FullExpandedQuote as pT,Typography as cT}from"@rango-dev/ui";import ge from"react";import{styled as os}from"@rango-dev/ui";var Lm=os("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Bm=os("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Pm=os("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as sT}from"@rango-dev/ui";import _m from"react";function Xr(t){let{updateQuotePartialState:e,sortStrategy:o}=K(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return _m.createElement(Pm,null,_m.createElement(sT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Xr,"SelectStrategy");var $m=3;function un(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:m,toToken:d,sortStrategy:f,error:g}=K(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(w=>{if(!m||!d||!u)return null;let b={requestAmount:u.requestAmount,...w};return To(b,{fromToken:m,toToken:d,userSlippage:v,findToken:y})},"getQuoteWarning"),x=g?.type===0||g?.type===1,L=u?.results?Zn(f,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement(Bm,null,ge.createElement(cT,{size:"xmedium",variant:"title"},lT.t("Sort by")),ge.createElement(Xr,{container:T})),ge.createElement(ns,{size:"10"})),e&&Array.from({length:$m},(w,b)=>ge.createElement(ge.Fragment,{key:b},s?ge.createElement(pT,{loading:!0}):ge.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),b!==$m-1&&ge.createElement(ns,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?L.map((w,b)=>{let A=E(w),P=Xa(w.swaps),Q=L.length-1===b;return ge.createElement(ge.Fragment,{key:w.requestId},ge.createElement(mo,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:P?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{P||c("warning",A),c("error",P?.options||null),o(I)},type:"list-item"}),!Q&&ge.createElement(ns,{size:16}))}):x&&ge.createElement(Lm,null,ge.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as uT,styled as Dm}from"@rango-dev/ui";var Fm=Dm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${uT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Om=Dm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var hT=100;function rs(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=gT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Fo();return fT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},hT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Xt.createElement(Fm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:Se.EXPANDED_BOX_ID},Xt.createElement(dT,{title:mT.t("Routes"),suffix:Xt.createElement(Xt.Fragment,null,Xt.createElement(Xr,{container:m}),Xt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Xt.createElement(Om,null,Xt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Fo(),onClickOnQuote:n,fullExpandedMode:c})))}i(rs,"ExpandedQuotes");import{i18n as Vm}from"@lingui/core";import{SwapInput as Xm}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as CT}from"@rango-dev/ui";import as from"react";import{keyframes as yT,styled as Um}from"@rango-dev/ui";var is=450,ST=yT({"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)"}}),zm=Um("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),qm=Um("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} ${is}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 ss(){let t=K.use.switchFromAndTo();return as.createElement(zm,null,as.createElement(qm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},is),t()}},as.createElement(CT,{size:12})))}i(ss,"SwitchFromAndToButton");import{styled as Qm}from"@rango-dev/ui";var Hm=Qm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Gm=Qm("div",{position:"relative"});function ls(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:d,outputUsdValue:f,selectedQuote:g}=K(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Bn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",v=!!s&&Wl(S,s.name),E=!Oi(g,c,m),x=!Oi(g,c,f),L=!m||!f||!f.gt(0)?null:Ke(m.toString(),f.toString());return mn.createElement(Hm,null,mn.createElement(Gm,null,mn.createElement(Xm,{label:Vm.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(m,4,4),realUsdValue:E?void 0:ce(m),error:E?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ss,null)),mn.createElement(Xm,{sharpBottomStyle:!r&&(!!g||e),label:Vm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Ke(m,f),2,2),warningLevel:It(L??0),price:{value:N(d,6,6),usdValue:x?void 0:N(f,4,4),realValue:ce(d),realUsdValue:x?void 0:ce(f),error:x?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ls,"Inputs");import{useCallback as TT,useEffect as kT,useRef as wT,useState as vT}from"react";function jm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(jm,"useFetchAllQuotes");var xT=600;function jr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=jm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:d,resetQuote:f,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=K(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:E,affiliateWallets:x,fetchStatus:L}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:P}=h(),[Q,I]=vT(!0),H=wT(u),Y=k??T,G=!l||!p||eo(l,p)||!zo(u),ee=i(Z=>{I(Z)},"resetState"),W=i(Z=>{let{fromToken:re,toToken:ke,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:fe,slippage:Oe,affiliateRef:vt,affiliatePercent:Ve,affiliateWallets:nt}=Z;if(Q||ee(!0),!G&&re&&ke){f();let rt=hp({fromToken:re,toToken:ke,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:fe,wallets:s,slippage:Oe,affiliateRef:vt,affiliatePercent:Ve,affiliateWallets:nt,enableCentralizedSwappers:a});ql("experimentalRoute",r)&&(rt.experimental=!0),e(rt).then(dt=>{let ye=Zn(d,dt.results),M=Wp(m,ye,dt.requestAmount);I(!1),y("quotes",dt),C(M),qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&To(M,{fromToken:re,toToken:ke,userSlippage:Y,findToken:P});y("warning",V)}).catch(dt=>{let{error:ye}=Qr(dt);(ye?.type===0||ye?.type===1)&&f(),ye?.type!==2&&(y("error",ye),I(!1))})}},"fetch"),U=TT(hl(Z=>{W(Z)},xT),[G]);return kT(()=>{if(!t){I(!1);return}if(L!=="success")return;if(G){I(!1),(m||g||S)&&f();return}if(!zo(u)||c?.eq(0)){ee(!1),o();return}f(),ee(!0);let Z=W;return H.current&&H.current!=u&&(Z=U),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:b,slippage:Y,affiliateRef:E,affiliatePercent:v,affiliateWallets:x}),o},[L,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,w?.length,n,b.length,Y,E,v,JSON.stringify(x)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:b,slippage:Y,affiliateRef:E,affiliatePercent:v,affiliateWallets:x}),loading:Q}}i(jr,"useSwapInput");var MT=ET("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),LT=300;function Jm(){let t=WT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:d}=K(),[f,g]=Zm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Br(),{fetch:y,loading:T}=jr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:E}=te(),{isActiveTab:x}=ie(),[L,w]=Zm(!1),A=cp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),P=Dl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new NT(n).gt(0)&&!bp(e,o),I=Q&&v==="success"&&T,pe=(!P||P&&p?.results.length)&&(l||s);Ym(()=>{c(),d("refetchQuote",!0)},[]),Ym(()=>{g(Q)},[Q]);let G=(r||s)&&!L?y:void 0,ee=i(U=>{P&&f?(g(!1),setTimeout(()=>{t(U)},LT)):t(U)},"onHandleNavigation"),W=i(U=>{r?.requestId!==U.requestId&&(w(!1),u(U))},"onClickOnQuote");return Ue.createElement(MT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(IT,{type:"primary",size:"large",disabled:A.disabled||!x,prefix:A.action==="confirm-warning"&&Ue.createElement(AT,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?ee(z.wallets):A.action==="confirm-warning"?w(!0):ee(z.confirmSwap)}},A.title),header:{onWallet:()=>{ee(z.wallets)},hasBackButton:!1,title:k.title||bT.t("Swap"),suffix:Ue.createElement(ao,{hidden:P?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(z.swaps),onClickSettings:()=>{ee(z.settings)}})}},Ue.createElement(me,null,Ue.createElement(ls,{fetchingQuote:I,fetchMetaStatus:v,isExpandable:P,onClickToken:U=>{ee(U==="from"?z.fromSwap:z.toSwap)}}),Ue.createElement(Km,{size:"2"}),P?null:Ue.createElement(mo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),ee(z.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Km,{size:"10"}),Ue.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:L,confirmationDisabled:!x,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),ee(z.confirmSwap)},onChangeSettings:()=>ee(z.settings)})):null)),P?Ue.createElement(rs,{loading:I,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:f}):null)}i(Jm,"Home");import{i18n as Rm}from"@lingui/core";import{Alert as BT,Divider as PT,List as _T,ListItemButton as $T,Radio as DT,RadioRoot as FT,Typography as OT}from"@rango-dev/ui";import Tt from"react";function jt(){let{setLanguage:t,language:e,config:o}=h(),n=Hl,r=o?.language||So;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||So),resetLanguage:()=>t(null)}}i(jt,"useLanguage");function ed(){let{activeLanguage:t,changeLanguage:e,languages:o}=jt(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(OT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(DT,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:Rm.t("Language")}},Tt.createElement(me,null,Tt.createElement(BT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(PT,{size:"8"}),Tt.createElement(FT,{value:t},Tt.createElement(_T,{type:Tt.createElement($T,{title:Rm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(ed,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as HT,Checkbox as GT,Image as VT,ListItemButton as XT,NotFound as jT,Typography as KT}from"@rango-dev/ui";import De,{useState as YT}from"react";import{Checkbox as qT,Skeleton as od}from"@rango-dev/ui";import fn from"react";import{styled as ps}from"@rango-dev/ui";var dn=ps("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),cs=ps("div",{width:80,display:"flex",justifyContent:"flex-end"}),us=ps("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as UT,styled as zT}from"@rango-dev/ui";var td=zT(UT,{height:61});var QT=30;function ms(){return fn.createElement(dn,null,Array.from(Array(QT),(t,e)=>fn.createElement(td,{hasDivider:!0,key:e,start:fn.createElement(od,{variant:"circular",width:35,height:35}),title:fn.createElement(od,{variant:"text",size:"large",width:90}),end:fn.createElement(qT,{checked:!1})})))}i(ms,"LoadingLiquiditySourceList");function ds({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=YT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Fn(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),d=m.length===m.filter(y=>y.selected).length,f=i(()=>{m.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:De.createElement(VT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement(GT,{checked:T,disabled:l}),title:De.createElement(KT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),De.createElement(le,{header:{title:Bt.t(t),suffix:De.createElement(cs,null,De.createElement(HT,{variant:"ghost",size:"xsmall",onClick:f},d?Bt.t("Deselect all"):Bt.t("Select all")))}},De.createElement(me,{view:!0},De.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&De.createElement(ms,null),!C.length&&r?De.createElement(us,null,De.createElement(jT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(dn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(XT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ds,"LiquiditySourcePage");import{i18n as ZT}from"@lingui/core";import Kr from"react";import{useNavigate as JT}from"react-router-dom";function nd(){let t=JT(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=K(),{fetch:l,loading:p}=jr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return Kr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:ZT.t("Routes"),suffix:Kr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(me,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(nd,"RoutesPage");import{i18n as ud}from"@lingui/core";import{Divider as md,getCategoriesCount as sk,SelectableCategoryList as lk}from"@rango-dev/ui";import Pt,{useState as dd}from"react";import{i18n as fs}from"@lingui/core";import{Divider as pd,Image as ok,ListItemButton as nk,NotFound as rk,Typography as cd}from"@rango-dev/ui";import Re,{useEffect as ik,useState as ak}from"react";var rd=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as RT,styled as id}from"@rango-dev/ui";var ad=id("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Yr=id(Xo,{padding:0,margin:0,listStyle:"none",[`& ${RT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as ek,Skeleton as sd}from"@rango-dev/ui";import Zr from"react";var tk=20;function ld(){return Zr.createElement(Yr,null,Array.from(Array(tk),t=>Zr.createElement(ek,{key:t,hasDivider:!0,start:Zr.createElement(sd,{variant:"circular",width:35,height:35}),title:Zr.createElement(sd,{variant:"text",size:"large",width:90})})))}i(ld,"LoadingBlockchainList");function gs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=ak(e),{fetchStatus:l}=h();ik(()=>{s([...rd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(pd,{size:32}),Re.createElement(rk,{title:fs.t("No results found"),description:fs.t("Try using different keywords")})):Re.createElement(Yr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(nk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(ok,{src:u.logo,size:30}),title:Re.createElement(cd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Re.createElement(ad,null,Re.createElement(cd,{variant:"label",size:"large"},fs.t("Select Blockchain")),Re.createElement(pd,{size:4}),l==="loading"&&Re.createElement(ld,null),l==="success"&&p())}i(gs,"BlockchainList");function hs(t){let{type:e}=t,o=Ze(),[n,r]=dd(""),[a,s]=dd("ALL"),l=K.use.setToBlockchain(),p=K.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=sk(c)!==1;return Pt.createElement(le,{header:{title:ud.t("Select Blockchain")}},Pt.createElement(me,{view:!0},d&&Pt.createElement(Pt.Fragment,null,Pt.createElement(lk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(md,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:ud.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Pt.createElement(md,{size:16}),Pt.createElement(gs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(hs,"SelectBlockchainPage");import{i18n as oi}from"@lingui/core";import{Divider as Pd}from"@rango-dev/ui";import fo,{useState as bk}from"react";import{useNavigate as Ik}from"react-router-dom";import{i18n as Cs}from"@lingui/core";import{BlockchainsChip as Jr,Divider as yd,Image as Sd,Skeleton as dk,Tooltip as fk,Typography as Ts}from"@rango-dev/ui";import Ne from"react";import{useEffect as uk}from"react";var fd=["ETH","COSMOS","OSMOSIS"];function ys(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(pk),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(ck(s)),r=n.splice(a)}return{list:n,more:r}}i(ys,"prepare");function pk(t,e){let o=fd,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(pk,"sortByMostUsedBlockchains");function ck(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(ck,"generateSortByPreferredBlockchainsFor");function gd(t,e){return!!e.list.find(o=>o.name===t)}i(gd,"isInVisibleList");function Ss(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();uk(()=>{if(e?.selected){let a=ys(t,o,e);gd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=ys(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Ss,"usePrepareBlockchainList");import{styled as mk}from"@rango-dev/ui";var hd=mk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var gk=12;function ks(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Ss(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=K.use.resetToBlockchain(),u=K.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,d=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(yd,{size:12}),Ne.createElement(Ts,{variant:"label",size:"large"},Cs.t("Select Blockchain")),Ne.createElement(yd,{size:12}),Ne.createElement(hd,null,l==="loading"&&Array.from(Array(gk),f=>Ne.createElement(dk,{key:f,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(Ts,{variant:"body",size:"xsmall",color:"secondary500"},Cs.t("All"))),s.list.map(f=>Ne.createElement(fk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},Ne.createElement(Jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ne.createElement(Sd,{src:f.logo,size:30})))),m?Ne.createElement(Jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(Sd,{src:s.more[0].logo,size:30})):null,d?Ne.createElement(Jr,{onClick:a,key:"more-blockchains"},Ne.createElement(Ts,{variant:"body",size:"xsmall",color:"secondary500"},Cs._("More +{count}",{count:s.more.length}))):null)))}i(ks,"BlockchainsSection");import{i18n as Ms}from"@lingui/core";import{darkTheme as Nd,Divider as Po,ExternalLinkIcon as Sk,Image as Ck,ListItemButton as Tk,NotFound as kk,PinIcon as wk,Skeleton as Wd,Typography as ti,VirtualizedList as vk}from"@rango-dev/ui";import j,{useEffect as Md,useState as Ld}from"react";import{Divider as Ed,ListItem as yk,Skeleton as gn}from"@rango-dev/ui";import ct from"react";import{css as Bo,darkTheme as Cd,ImageContainer as hk,styled as et,Typography as Td}from"@rango-dev/ui";var ws=Bo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),vs=Bo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),xs=Bo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),bs=Bo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Cd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Is=Bo({}),Es=Bo(),kd=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),As=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Rr=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${vs}`]:{[`& .${bs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Is}`]:{bottom:"-15px"},[`& .${ws}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${xs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ns=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ws=et(Td,{}),wd=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Es}`]:{$$color:"$colors$neutral600",[`.${Cd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ei=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),YO=et("div",{display:"flex",alignItems:"center"}),vd=et("div",{position:"relative",[`& ${hk}`]:{borderRadius:"$xm",overflow:"hidden"}}),xd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),bd=et(Td,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Id=et("a",{"& svg:hover":{color:"$colors$info"}});function Ad(t){return ct.createElement(Rr,null,Array.from(Array(t.size),e=>ct.createElement(yk,{key:e,hasDivider:!0,start:ct.createElement(gn,{variant:"circular",width:35,height:35}),end:ct.createElement(ei,null,ct.createElement(gn,{variant:"text",size:"large",width:70}),ct.createElement(Ed,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(gn,{variant:"text",size:"large",width:90}),ct.createElement(Ed,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Ad,"LoadingTokenList");var Ls=20,xk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return j.createElement("div",{className:vs()},o?j.createElement("div",{className:ws()},o):j.createElement(As,{className:xs()},j.createElement(ti,{variant:"title",size:"xmedium"},r.symbol),j.createElement(Po,{direction:"horizontal",size:4}),j.createElement(Ns,{css:a},j.createElement(Ws,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&j.createElement("div",{className:`${bs()} ${!o&&Is()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",j.createElement(Po,{size:4,direction:"horizontal"}),j.createElement(Id,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},j.createElement(Sk,{size:12}))))},"renderDesc");function Bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Ld(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Ld(!0),{getBalanceFor:m,loading:d}=te(),{isTokenPinned:f}=h(),g=i(()=>{s(e.slice(0,a.length+Ls))},"loadNextPage");Md(()=>{c(e.length>a.length)},[a.length]),Md(()=>{s(e.slice(0,Ls))},[e.length]);let S=i(()=>!a.length&&o?j.createElement(j.Fragment,null,j.createElement(Po,{size:32}),j.createElement(kk,{title:Ms.t("No results found"),description:Ms.t("Try using different keywords")})):j.createElement(vk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Bn(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),E=Ri(v.color,"main"),x={$$color:E.main250,[`.${Nd} &`]:{$$color:E.main850},backgroundColor:"$$color"},L={$$color:E.main600,[`.${Nd} &`]:{$$color:E.main200},color:"$$color"};return j.createElement("div",{style:{paddingRight:5}},j.createElement(Tk,{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:j.createElement(vd,null,j.createElement(Ck,{src:y.image,size:30}),f(y,t.type)&&j.createElement(xd,null,j.createElement(wk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?j.createElement(As,null,j.createElement(ti,{variant:"title",size:"xmedium"},y.symbol),j.createElement(Po,{direction:"horizontal",size:4}),j.createElement(Ns,{css:x},j.createElement(Ws,{variant:"body",size:"xsmall",css:L},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?xk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:L,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:d?j.createElement(ei,null,j.createElement(Wd,{variant:"text",size:"large",width:70}),j.createElement(Po,{size:4}),j.createElement(Wd,{variant:"text",size:"medium",width:50})):T&&j.createElement(wd,null,j.createElement(bd,{variant:"title",size:"small"},T.amount),j.createElement("div",null),T.usdValue&&j.createElement(ti,{variant:"body",className:Es(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return j.createElement(kd,null,j.createElement(ti,{variant:"label",size:"large"},Ms.t("Select Token")),j.createElement(Po,{size:4}),l==="loading"&&j.createElement(Ad,{size:Ls}),l==="success"&&j.createElement(Rr,{as:"ul"},S()))}i(Bd,"TokenList");function Bs(t){let{type:e}=t,o=Ik(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=K(),c=te.use.getBalanceFor(),[m,d]=bk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,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:oi.t("Source"),destination:oi.t("Destination")};return fo.createElement(le,{header:{title:oi.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(ks,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:v=>{y(v)}}),fo.createElement(Pd,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:oi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),fo.createElement(Pd,{size:16}),fo.createElement(Bd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let E=S.find(x=>v.blockchain===x.name);E&&y(E),n()}})))}i(Bs,"SelectSwapItemsPage");import{i18n as Ds}from"@lingui/core";import{Alert as Zk,Button as Jk,styled as Rk}from"@rango-dev/ui";import go from"react";import{useInRouterContext as ew,useSearchParams as tw}from"react-router-dom";import{i18n as Ud}from"@lingui/core";import{Divider as Wk,InfoIcon as Mk,TextField as Lk,Tooltip as Bk,Typography as zd}from"@rango-dev/ui";import ut from"react";import{Chip as Ek,styled as hn,TextField as Ak}from"@rango-dev/ui";var _d=hn("div",{paddingTop:"$5",padding:"$10 $5"}),$d=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ak}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Dd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ni=hn("div",{maxWidth:"280px",padding:"$10"}),Fd=hn(Ek,{width:"61px",flexShrink:0});import{i18n as Ps}from"@lingui/core";import{Typography as Nk}from"@rango-dev/ui";import yn from"react";function Od(){return yn.createElement(ni,null,yn.createElement(Nk,{variant:"label",size:"medium",color:"neutral700"},Ps.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,Ps.t("Warning")),":",Ps.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(Od,"SlippageTooltipContent");function _s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ut.createElement(_d,null,ut.createElement(Dd,null,ut.createElement(zd,{variant:"title",size:"xmedium"},Ud.t("Slippage tolerance per swap")),ut.createElement(Wk,{direction:"horizontal",size:4}),ut.createElement(Bk,{container:B(),side:"top",sideOffset:4,content:ut.createElement(Od,null)},ut.createElement(Mk,{color:"gray"}))),ut.createElement($d,null,Gl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Fd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(Lk,{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>=Kl&&s<=jl?n(s):n(null)},suffix:o&&ut.createElement(zd,{variant:"body",size:"small"},"%"),placeholder:Ud.t("Custom")})))}i(_s,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as qd,BridgesIcon as Pk,ChevronRightIcon as $s,DarkModeIcon as Qd,Divider as ri,ExchangeIcon as _k,InfinityIcon as $k,InfoIcon as Dk,LanguageIcon as Fk,LightModeIcon as Hd,List as Ok,ListItem as Uk,ListItemButton as zk,Skeleton as qk,styled as Qk,Switch as Hk,Tabs as Gk,Tooltip as Vk,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as Xk}from"react-router-dom";var jk=Qk("div",{width:"202px",height:"$40"}),Kk=[{id:"light",icon:O.createElement(Hd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(Qd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(qd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Yk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(qd,{...e});case"dark":return O.createElement(Qd,{...e});default:return O.createElement(Hd,{...e})}},"getThemeIcon");function Gd(){let t=Xk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=jt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=je("theme",c),d=je("liquiditySource",c),f=je("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=Fn(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),T=y.length,k=y.filter(H=>H.selected).length,v=C.filter(H=>H.type==="DEX"),E=v.length,x=v.filter(H=>H.selected).length,L=i((H,Y)=>{switch(l){case"loading":return O.createElement(qk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(tt,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(tt,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,L(k,T),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(Pk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,L(x,E),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),start:O.createElement(_k,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},A={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Fk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),onClick:()=>t(z.languages)},P={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ri,{direction:"horizontal",size:4}),O.createElement(Vk,{side:"top",sideOffset:4,container:B(),content:O.createElement(ni,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.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.")))},O.createElement(Dk,{color:"gray"}))),start:O.createElement($k,{color:"gray",size:16}),end:O.createElement(Hk,{checked:g}),onClick:S},Q={id:"theme-item",type:O.createElement(Uk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(jk,null,O.createElement(Gk,{container:B(),items:Kk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Yk(n)},I=d?[]:[w,b];return f||I.push(A),I.push(P),!e?.singleTheme&&!m&&I.push(Q),O.createElement(Ok,{type:O.createElement(zk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Gd,"SettingsLists");var ow=Rk("div",{paddingLeft:"$8"});function Vd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=tw(),r=ew(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return go.createElement(le,{header:{title:Ds.t("Settings")}},go.createElement(me,null,o&&go.createElement(Zk,{type:"info",variant:"alarm",title:Ds.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:go.createElement(ow,null,go.createElement(Jk,{type:"secondary",size:"small",onClick:a},Ds.t("Reset")))}),go.createElement(_s,null),go.createElement(Gd,null)))}i(Vd,"SettingsPage");import{i18n as Qw}from"@lingui/core";import{cancelSwap as Hw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Gw}from"@rango-dev/queue-manager-react";import{Alert as Vw}from"@rango-dev/ui";import el from"react";import{useParams as Xw}from"react-router-dom";import{i18n as wt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as xw,getCurrentStep as bw,getRelatedWalletOrNull as Iw}from"@rango-dev/queue-manager-rango-preset";import{Button as xf,CopyIcon as Ew,Divider as Aw,IconButton as Nw,QuoteCost as Ww,RangoExplorerIcon as Mw,StepDetails as Lw,Tooltip as Bw,Typography as ho,useCopyToClipboard as Pw}from"@rango-dev/ui";import{useWallets as _w}from"@rango-dev/wallets-react";import bf from"bignumber.js";import{PendingSwapNetworkStatus as di}from"rango-types";import R,{useEffect as If,useRef as $w,useState as Ef}from"react";import{useNavigate as Dw}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var nw=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Xd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${nw[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Xd,"timeSince");function jd(t){return t.finishTime?Xd(parseInt(t.finishTime)):Xd(parseInt(t.creationTime))}i(jd,"getSwapDate");import{PendingSwapNetworkStatus as si}from"rango-types";import li from"react";import{i18n as ii}from"@lingui/core";import{Button as Kd,Divider as Fs,MessageBox as rw}from"@rango-dev/ui";import Yt from"react";var Yd=i(({onCancel:t,onClose:e})=>Yt.createElement(Yt.Fragment,null,Yt.createElement(Fs,{size:20}),Yt.createElement(rw,{type:"error",title:ii.t("Cancel Swap"),description:ii.t("Are you sure you want to cancel this swap?")}),Yt.createElement(Fs,{size:32}),Yt.createElement(Kd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Cancel it")),Yt.createElement(Fs,{size:12}),Yt.createElement(Kd,{variant:"outlined",type:"primary",size:"large",onClick:e},ii.t("No, Continue"))),"CancelContent");import{i18n as ai}from"@lingui/core";import{Button as Zd,Divider as Os,MessageBox as iw,Typography as aw}from"@rango-dev/ui";import _t from"react";var Jd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Os,{size:20}),_t.createElement(iw,{type:"error",title:ai.t("Delete Transaction"),description:ai.t("Are you sure you want to delete this swap?")}),_t.createElement(Os,{size:32}),_t.createElement(Zd,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Delete it")),_t.createElement(Os,{size:12}),_t.createElement(Zd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(aw,{variant:"title",size:"medium",color:"primary"},ai.t("No, Cancel")))),"DeleteContent");import{i18n as Us}from"@lingui/core";import{PendingSwapNetworkStatus as zs}from"rango-types";var qs={[zs.WaitingForNetworkChange]:{type:"loading",title:Us.t("Change Network")},[zs.WaitingForConnectingWallet]:{type:"warning",title:Us.t("Connect Wallet")},[zs.NetworkChanged]:{type:"success",title:Us.t("Network Changed")}};import{debug as tf}from"@rango-dev/logging-core";import{MessageBox as sw,Wallet as lw}from"@rango-dev/ui";import{useWallets as pw}from"@rango-dev/wallets-react";import _o,{useState as cw}from"react";import{styled as Rd}from"@rango-dev/ui";var ef=Rd("div",{display:"flex",justifyContent:"center"}),Fz=Rd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var of=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=pw(),[c,m]=cw(null),d=n?.walletType,f=d?Wi(u(d)):null,g=d?p(d):null;return _o.createElement(_o.Fragment,null,_o.createElement(sw,{type:e,title:o,description:r}),a&&!!d&&!!f&&!!g&&_o.createElement(ef,null,_o.createElement(lw,{container:B(),title:g.name,image:g.img,type:d,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:d,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(d).catch(C=>tf(C))}})),_o.createElement(lo,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>tf(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Qs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===si.WaitingForNetworkChange||e===si.WaitingForConnectingWallet||e===si.NetworkChanged;return li.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&li.createElement(of,{type:qs[e].type,title:qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==si.WaitingForNetworkChange}),e==="delete"&&li.createElement(Jd,{onClose:o,onDelete:n}),e==="cancel"&&li.createElement(Yd,{onClose:o,onCancel:r}))}i(Qs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Hs,Divider as pi,MessageBox as nf,TokenAmount as uw,Typography as Gs}from"@rango-dev/ui";import Le from"react";import{useNavigate as mw}from"react-router-dom";function Vs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:d}=t,f=mw();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(nf,{type:"success",title:Sn.t("Swap Successful")},Le.createElement(uw,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(pi,{size:12}),Le.createElement(Gs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(nf,{type:"error",title:Sn.t("Transaction Failed"),description:m}),Le.createElement(pi,{size:32}),n==="success"&&Le.createElement(Hs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Le.createElement(Gs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Le.createElement(pi,{size:12}),d&&Le.createElement(Le.Fragment,null,Le.createElement(Hs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Sn.t("Diagnosis")),Le.createElement(pi,{size:12})),Le.createElement(Hs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Gs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Vs,"SwapDetailsCompleteModal");import vw from"react";import{i18n as Cw}from"@lingui/core";import{Alert as Tf,IconButton as Tw,LinkIcon as kw}from"@rango-dev/ui";import Zt,{Fragment as ww}from"react";import{Alert as gw,ChevronDownIcon as hw,IconButton as yw}from"@rango-dev/ui";import Do,{useState as Sw}from"react";import{css as Cn,darkTheme as dw,styled as $t,Typography as fw}from"@rango-dev/ui";var rf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ci=$t("div",{width:"100%"}),af=$t(Xo,{padding:"$0 $20 $20 $20"}),Tq=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),sf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),kq=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),$o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${dw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),lf=Cn({padding:"$5 0"}),ui=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pf=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),cf=Cn({width:"100%",padding:"0 $20 $10"}),uf=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),mf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),mi=$t(fw,{wordBreak:"break-word"});import{styled as Xs}from"@rango-dev/ui";var df=Xs("div",{display:"flex",flexDirection:"column",gap:"$10"}),ff=Xs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gf=Xs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function hf(t){let{message:e}=t,[o,n]=Sw(!1);return Do.createElement(gw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Do.createElement(yw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Do.createElement(ff,{rotated:o},Do.createElement(hw,{size:12,color:"gray"}))),footer:Do.createElement(gf,{open:o},Do.createElement(mi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hf,"FailedAlert");import{i18n as yf}from"@lingui/core";import{Alert as js,Button as Sf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ks}from"rango-types";import Tn from"react";function Cf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(Sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},yf.t("Change"))}):r===Ks.WaitingForConnectingWallet?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(Sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForConnectingWallet)}},yf.t("Connect"))}):Tn.createElement(js,{type:"warning",title:n.shortMessage})}i(Cf,"WarningAlert");function Ys(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Go(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Zt.createElement(df,null,a.explorerUrl?.map((m,d,f)=>{let g=d+m.url,S=d===f.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Zt.createElement(ww,{key:g},Zt.createElement(Tf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Cw.t("View transaction"),action:m.url&&Zt.createElement(Tw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Zt.createElement(kw,{size:12}))}))}),c&&Zt.createElement(Tf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Zt.createElement(Cf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Zt.createElement(hf,{message:r}))}i(Ys,"SwapDetailsAlerts");var kf=2e3;var wf=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:Xe(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Xe(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:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Oo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:vw.createElement(Ys,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vf(t){if(Go(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(vf,"getStepState");function Zs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=_w(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=K.use.retry(),d=ie.use.isActiveTab(),f=Dw(),[g,S]=Pw(kf),C=$w(null),[y,T]=Ef(null),[k,v]=Ef(null),E=i(()=>{r(),T(null)},"onCancel"),x=Ee.use.getNotifications(),L=Ee.use.removeNotification(),w=x(),b=bw(e),A=b?.networkStatus;If(()=>{w.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):k&&v(null))},[e.status,e.requestId]),If(()=>{G?T(di.WaitingForNetworkChange):A===di.WaitingForConnectingWallet||A===di.NetworkChanged?T(A):T(null)},[A]);let P=wp(e),Q=b?xw(e,b):null,I=b?Iw(e,b):null,H=jd(e),Y=vp(e),pe=i(ye=>!!l(ye)?.mobileWallet,"isMobileWallet"),G=A===di.WaitingForNetworkChange&&!!Q&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,Q)),ee=G?s.bind(null,I.walletType,Q):void 0,W=kp(e,b),U=wf({swap:e,switchNetwork:ee,showNetworkModal:A,setNetworkModal:T,message:W,blockchains:p,swappers:u}),Z=U.length,[re,ke]=[e.steps[0],e.steps[Z-1]],_=ke.outputAmount||ke.expectedOutputAmountHumanReadable,Fe=e.steps.reduce((ye,M)=>ye+parseFloat(M.feeInUsd||""),0),ot=e.steps.find(ye=>ye.diagnosisUrl)?.diagnosisUrl,fe=N(parseFloat(N(_,6,6))*(ke.toUsdPrice||0),4,4),Oe=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),vt=_?ce(new bf(_).multipliedBy(ke.toUsdPrice||0)):"",Ve=ce(new bf(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),nt=Ke(Oe,fe),rt=W.detailedMessage.content||W.shortMessage,dt=e.status==="success"?wt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:U[Z-1].to.token.displayName,conciseAddress:Pn(e.wallets[U[Z-1].to.chain.displayName]?.address||""),chain:U[Z-1].to.chain.displayName}}):R.createElement(mf,null,R.createElement(ho,{variant:"body",size:"medium",color:"neutral700",align:"center"},rt?"":wt.t("Transaction was not sent."),P?`${wt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),rt&&R.createElement(mi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:wt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(bo,null,R.createElement(xf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(ho,{size:"medium",variant:"label",color:"error"},wt.t("Delete"))))},footer:Y&&!k&&R.createElement(xf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let ye=Yn(e,p,c);m(ye),setTimeout(()=>{f("../../")},0)}},wt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(ci,null,R.createElement("div",{className:$o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t("Request ID")}:`),R.createElement("div",{className:ui()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Nw,{variant:"ghost",onClick:S.bind(null,o||"")},R.createElement(Ew,{size:16,color:"gray"})),R.createElement(uf,{target:"_blank",href:`${ll}/swap/${o}`},R.createElement(Bw,{container:B(),content:wt.t("View on Rango Explorer"),side:"bottom"},R.createElement(Mw,{size:20}))))),R.createElement("div",{className:$o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:pf()},R.createElement(Ww,{fee:N(String(Fe),2,2),time:Uo(En(e.steps)),steps:Z}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:U[0].from.token.displayName,image:U[0].from.token.image},chain:{image:U[0].from.chain.image,displayName:U[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:_},token:{displayName:U[Z-1].to.token.displayName,image:U[Z-1].to.token.image},chain:{image:U[Z-1].to.chain.image,displayName:U[Z-1].to.chain.displayName}},percentageChange:N(nt,2,2),warningLevel:It(nt??0)})),R.createElement("div",{className:cf()},R.createElement(ho,{variant:"title",size:"small"},wt.t("Swaps steps"))),R.createElement(Aw,{size:8}),R.createElement(af,{ref:C},U.map((ye,M)=>{let V=M,X=vf(e.steps[M]),qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===U.length-1;return R.createElement(Lw,{key:V,step:ye,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:qe,tooltipContainer:B()})}))),R.createElement(Qs,{state:y,onClose:()=>T(null),onCancel:E,onDelete:n,message:W.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),R.createElement(Vs,{open:!!k,diagnosisUrl:ot,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:U[Z-1].to.token.displayName,image:U[Z-1].to.token.image},chain:{image:U[Z-1].to.chain.image},description:dt}))}i(Zs,"SwapDetails");import{i18n as gi}from"@lingui/core";import{Divider as Wf,NotFound as qw,Skeleton as wn,Typography as hi}from"@rango-dev/ui";import he from"react";import{i18n as Fw}from"@lingui/core";import{Divider as Ow,Skeleton as Uw,Typography as zw}from"@rango-dev/ui";import Te from"react";import{css as mt,styled as Js}from"@rango-dev/ui";var Af=Js("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Js("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),fi=Js("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),BQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),PQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),_Q=mt({paddingTop:"$15",display:"flex"}),$Q=mt({padding:"$15 $0"}),DQ=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),FQ=mt({paddingBottom:"$10"}),OQ=mt({display:"flex",justifyContent:"start",alignItems:"center"}),UQ=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),zQ=mt({display:"flex",alignItems:"center"}),qQ=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Nf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Rs(){return Te.createElement(Af,null,Te.createElement(nn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(zw,{variant:"title",size:"small"},Fw.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(kn,null,Te.createElement(Ct,{separator:!1}),Te.createElement("div",{className:Nf()},Te.createElement(Ow,{direction:"horizontal",size:20}),Te.createElement(Uw,{height:22,variant:"rectangular"}))),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1}))))}i(Rs,"LoadingSwapDetails");function Mf(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(le,{header:{title:gi.t("Swap and Bridge"),suffix:he.createElement(bo,null)}},o&&he.createElement(rf,null,he.createElement(ci,null,he.createElement("div",{className:$o()},he.createElement(hi,{variant:"label",size:"large",color:"neutral700"},`${gi.t("Request ID")}:`),he.createElement("div",{className:ui()},he.createElement(hi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(Wf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}),he.createElement(Wf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:$o()},he.createElement(hi,{className:lf(),variant:"label",size:"large",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(hi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})))),he.createElement(Rs,null)),!o&&he.createElement(sf,null,he.createElement(qw,{title:gi.t("Not found"),description:gi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Mf,"SwapDetailsPlaceholder");function Lf(){let{manager:t,state:e}=Gw(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=Xw(),a=Ze(),{fetchStatus:s}=h();if(!r)return el.createElement(Vw,{containerStyles:{margin:"20px"},type:"error",title:Qw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&Hw(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),m=p?.swap;return!m||l?el.createElement(Mf,{requestId:r,showSkeleton:l}):el.createElement(Zs,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(Lf,"SwapDetailsPage");function Bf(){return Lp(),ji(),jw([{path:z.home,element:ze.createElement(Jm,null)},{path:z.routes,element:ze.createElement(nd,null)},{path:z.fromSwap,children:[{index:!0,element:ze.createElement(Bs,{type:"source"})},{path:z.blockchains,element:ze.createElement(hs,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:ze.createElement(Bs,{type:"destination"})},{path:z.blockchains,element:ze.createElement(hs,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:ze.createElement(Vd,null)},{path:z.languages,element:ze.createElement(ed,null)},{path:z.exchanges,element:ze.createElement(ds,{sourceType:"Exchanges"})},{path:z.bridges,element:ze.createElement(ds,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:ze.createElement(Mm,null)},{path:z.swapDetails,element:ze.createElement(Lf,null)}]},{path:z.wallets,element:ze.createElement(qc,null)},{path:z.confirmSwap,element:ze.createElement(Cm,null)}])}i(Bf,"AppRoutes");import{useQueueManager as rv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as iv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as av}from"rango-sdk";import{useContext as sv,useEffect as lv,useState as Uf}from"react";import{globalCss as Kw}from"@rango-dev/ui";var Pf=i(()=>Kw({"@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}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("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 Yw}from"@rango-dev/wallets-react";import{useEffect as Zw,useRef as Jw}from"react";function $f(){let{connect:t,state:e}=Yw(),o=Jw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Zw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i($f,"useForceAutoConnect");import{isApprovalTX as Rw,MainEvents as yi,RouteEventType as Df,StepEventType as Ff,StepExecutionEventStatus as ev,useEvents as tv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Of}from"react";function tl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=Ee.use.setNotification(),{findToken:n}=h(),r=tv();Of(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Ff.TX_EXECUTION&&l.status===ev.TX_SENT&&!Rw(p)||l.type===Ff.SUCCEEDED){let m=t.find(f=>f.chain===p?.fromBlockchain),d=p?.fromBlockchain!==p?.toBlockchain&&t.find(f=>f.chain===p?.toBlockchain);m&&e([m],n),d&&e([d],n)}o(l,u)},"handleStepEvent");return r.on(yi.StepEvent,a),()=>r.off(yi.StepEvent,a)},[r,t.length]),Of(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Df.FAILED||l.type===Df.SUCCEEDED)&&o(l,p)},"handleRouteEvent");return r.on(yi.RouteEvent,a),()=>r.off(yi.RouteEvent,a)},[r,t.length])}i(tl,"useSubscribeToWidgetEvents");import{useManager as ov}from"@rango-dev/queue-manager-react";import{useEffect as nv}from"react";function ol(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=ov();nv(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Je(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ol,"useSyncNotifications");function nl(){$f(),Pf(),tl(),ol();let t=h().blockchains(),{canSwitchNetworkTo:e}=wr(),[o,n]=Uf(""),[r,a]=Uf(),s=sv(Un),l=t.filter(av),{fetchApiConfig:p}=_f();rv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),lv(()=>(to.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===iv(o)?.[0]&&n("")}),p().catch(console.log),to.destroy),[])}i(nl,"useBootstrap");import{styled as pv}from"@rango-dev/ui";var zf=pv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Si(){nl();let{config:t}=h(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=jt();return rl.createElement(cv,{language:o},rl.createElement(zf,{id:"swap-container",className:e()},rl.createElement(Bf,null)))}i(Si,"Main");import{setSolanaSignerConfig as Wv}from"@rango-dev/signer-solana";import al,{useEffect as Vf,useMemo as Mv}from"react";import{useState as uv}from"react";var mv=i(()=>{let[t,e]=uv(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=Sl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),qf=mv;import{checkWaitingForNetworkChange as dv,makeQueueDefinition as fv}from"@rango-dev/queue-manager-rango-preset";import{Provider as gv}from"@rango-dev/queue-manager-react";import{useWallets as hv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as yv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Sv}from"rango-types";import Cv,{useMemo as Tv}from"react";function kv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=hv(),l=Tv(()=>fv({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL")}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(Sv),S=i(k=>{let{supportedChains:v}=s(k);return Wn(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:yv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=ie.use.isActiveTab();return Cv.createElement(gv,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{dv(k)},isPaused:!T},t.children)}i(kv,"QueueManager");var Qf=kv;import{useManager as Iv}from"@rango-dev/queue-manager-react";import Ev,{createContext as Av,useContext as Nv}from"react";import{cancelSwap as wv,getCurrentBlockchainOfOrNull as vv,getCurrentStep as xv,getRelatedWalletOrNull as bv}from"@rango-dev/queue-manager-rango-preset";var Ci=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(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){let n=Yn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&wv(o)}getCurrentStepInfo(e){let o=xv(e);return{step:o,wallet:o?bv(e,o):null,network:o?vv(e,o):null}}};var Hf=Av(void 0);function il(t){let{manager:e}=Iv(),o=ie.use.isActiveTab(),n=K.use.retry(),{findToken:r}=h(),a=new Ci(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Il(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),d=h().swappers(),f=h().fetchStatus,g=jt().resetLanguage,S=Ee().getNotifications(),C={isActiveTab:o,setCurrentTabAsActive:to.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:y=>u(y,r)},meta:{blockchains:c,tokens:m,swappers:d,loadingStatus:f},resetLanguage:g,notifications:{list:S}};return Ev.createElement(Hf.Provider,{value:C},t.children)}i(il,"WidgetInfo");function Gf(){let t=Nv(Hf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Gf,"useWidget");function Ti(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=qf();return Vf(()=>{n&&r(n)},[n]),Mv(()=>{Pl({API_KEY:o?.apiKey||vn,BASE_URL:o?.apiUrl||sl})},[o.apiKey,o.apiUrl]),Vf(()=>{t.config?.signers?.customSolanaRPC&&Wv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),al.createElement(zn,{config:o,onUpdateState:e},al.createElement(Qf,{apiKey:o.apiKey},al.createElement(il,null,t.children)))}i(Ti,"WidgetProvider");function Xf(t){let e=t.config?.externalWallets;return ki.createElement(rp,null,e?ki.createElement(Si,null):ki.createElement(Ti,{config:t.config??Pi},ki.createElement(Si,null)))}i(Xf,"Widget");export{ZV as EventSeverity,JV as MainEvents,l2 as Networks,u2 as PendingSwapNetworkStatus,RV as RouteEventType,wi as SUPPORTED_FONTS,e2 as StepEventType,t2 as StepExecutionBlockedEventStatus,o2 as StepExecutionEventStatus,Se as UI_ID,a2 as WalletEvents,p2 as WalletTypes,Xf as Widget,Ti as WidgetProvider,zn as WidgetWallets,na as customizedThemeTokens,i2 as readAccountAddress,wr as useWallets,Gf as useWidget,n2 as useWidgetEvents};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|