@rango-dev/widget-embedded 0.28.3-next.5 → 0.28.3-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +1 -0
- package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/store/wallets.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +2 -2
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +86 -23
- package/src/components/ConfirmWalletsModal/WalletList.tsx +4 -2
- package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -0
- package/src/store/wallets.ts +7 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var jf=Object.defineProperty;var i=(t,e)=>jf(t,"name",{value:e,configurable:!0});import{EventSeverity as HV,MainEvents as GV,RouteEventType as VV,StepEventType as XV,StepExecutionBlockedEventStatus as jV,StepExecutionEventStatus as KV,useEvents as YV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as JV,useWallets as Tr,Events as RV}from"@rango-dev/wallets-react";import{Networks as t2,WalletTypes as o2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as r2}from"rango-types";import{UI_ID as Kf}from"@rango-dev/ui";var kn="c6381a79-2817-4602-83bf-6a641a409e32",al="https://api.rango.exchange",sl="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Kf};var ll="Roboto",Ti=[{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 Dn,{createContext as Qg,useEffect as tp,useMemo as Hg,useRef as op}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 tg,WalletState as dt}from"@rango-dev/ui";import{readAccountAddress as og}from"@rango-dev/wallets-react";import{detectInstallLink as ng,getCosmosExperimentalChainInfo as rg,isEvmAddress as ig,KEPLR_COMPATIBLE_WALLETS as Kv,Networks as Tl}from"@rango-dev/wallets-shared";import bi from"bignumber.js";import{isCosmosBlockchain as ag}from"rango-types";import Yf from"bignumber.js";var _e=new Yf(0);import{WalletTypes as Zf}from"@rango-dev/wallets-shared";var pl=[Zf.LEAP];import{BlockchainCategories as ki}from"@rango-dev/ui";import{TransactionType as wn}from"rango-sdk";function uo(t){return Array.from(new Set(t))}i(uo,"removeDuplicateFrom");function xi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(xi,"areEqual");function gl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(gl,"debounce");function vt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(vt,"containsText");function ml(t,e){return t.toLowerCase()===e.toLowerCase()}i(ml,"exactText");function dl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(dl,"startWithText");var B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Po=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function fl(t,e,o){let n=!!e&&ml(e,t),r=!!o&&ml(o,t);return n!==r?n?-1:1:0}i(fl,"compareExactMatchText");function wi(t,e,o){let n=!!e&&vt(e,t),r=!!o&&vt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareContainsText");function vi(t,e,o){let n=!!e&&dl(e,t),r=!!o&&dl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(vi,"compareStartWithText");function hl(t,e,o){if(!o)return 0;let n=fl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=fl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=vi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=vi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=vi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r!==0)return r}return 0}i(hl,"compareWithSearchFor");var vn=i((t,e)=>{switch(e){case ki.ALL:return!0;case ki.UTXO:return t===wn.TRANSFER;case ki.OTHER:return t!==wn.TRANSFER&&t!==wn.COSMOS&&t!==wn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),yl=i(t=>Ti.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as Cl}from"bignumber.js";var $o=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Cl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Cl(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 xn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Do=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function le(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(le,"formatTooltipNumbers");function Ii(t){switch(!0){case t.connected:return dt.CONNECTED;case t.connecting:return dt.CONNECTING;case!t.installed:return dt.NOT_INSTALLED;default:return dt.DISCONNECTED}}i(Ii,"mapStatusToWalletState");function kl(t,e,o,n){return o.filter(r=>!pl.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:f}=e(r),d=uo(f.map(h=>h.type)),m=Ii(t(r));return{title:a,image:s,link:ng(l),state:m,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d}})}i(kl,"mapWalletTypesToWalletInfo");function En(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(En,"walletAndSupportedChainsNames");function wl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(f=>f.chain===p)){let f={address:u,chain:p,walletType:t};a.push(f)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=og(p),f=l.length>0,d=l.includes(c),m=c===Tl.Unknown;if(f&&!d&&!m)return;let S=c===Tl.Unknown&&ig(u);if(m&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(wl,"prepareAccountsForWalletStore");function Yt(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 f=u.from.blockchain,d=u.to.blockchain,m=a===o.swaps.length-1,h=c===p.length-1;(!m&&!h||m&&l!==f||e==="all")&&n.add(f),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Yt,"getQuoteWallets");function An(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(An,"isAccountAndWalletMatched");function vl(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 bi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:lg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(vl,"makeBalanceFor");function xl(t){return{...t,loading:!1,error:!0}}i(xl,"resetConnectedWalletState");var bl=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 bi(a?.amount||_e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),_e)||_e).toString();return sg(r)},"calculateWalletUsdValue");function sg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(sg,"numberWithThousandSeparator");var lg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),Nn=i((t,e)=>{let o=rg(Object.entries(t).map(([,n])=>n).filter(ag));return o&&o[e]?.experimental},"isExperimentalChain");function Wn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Wn,"formatBalance");function Il(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(Il,"compareTokenBalance");function Pe(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Pe,"areTokensEqual");function El(t){return t.sort((e,o)=>+(o.state===dt.CONNECTED)-+(e.state===dt.CONNECTED)||+(o.state===dt.DISCONNECTED||o.state===dt.CONNECTING)-+(e.state===dt.DISCONNECTED||e.state===dt.CONNECTING))}i(El,"sortWalletsBasedOnConnectionState");function Ln(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(Ln,"getConciseAddress");function Al({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Al,"getAddress");function Ei(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ei,"createTokenHash");function Mn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new bi(o?.usdPrice??_e).multipliedBy(o?.amount).toString():""},r=o?Ei({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Mn,"makeTokensBalance");var Nl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Wl(t){return t.map(e=>e.state).join("-")}i(Wl,"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 Ml(t,e){return e===tg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(vn(n,e))return!0;return!1})}i(Ml,"filterWalletsByCategory");var Ai={API_KEY:kn};function xt(t){return Ai[t]||""}i(xt,"getConfig");function Bl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ai=e,Ai}i(Bl,"initConfig");var _l=20,Pl=25,Ni="theme-widget",Fo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Pe(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Pe(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Wi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),$l=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Bn,$t=i(()=>Bn||(Bn=new pg(xt("API_KEY"),xt("BASE_URL")),Bn),"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"),Dt=cg;var ee=Dt(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.find(p=>p.chain===s.chain&&p.selected);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Mn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>An(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await $t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let m=o.find(S=>An(S,d)),h=p.find(S=>S.address===d.address&&S.blockChain===d.chain);return h?.failed&&m&&r&&a([m],n,!1),m&&h?{...d,explorerUrl:h.explorerUrl,balances:vl(h,n),loading:!1}:d});return{loading:!1,balances:Mn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(f=>An(f,c))?xl(c):c);return{loading:!1,balances:Mn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ei(o);return n[r]??null}}))));import{allProviders as dg}from"@rango-dev/provider-all";function _n(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(_n,"matchAndGenerateProviders");function Dl(t,e){return _n(t,e).map(r=>r.config.type)}i(Dl,"configWalletsToWalletName");function Fl(t,e){let o=ee.use.clearConnectedWallet(),n=_n(t,e);return fg(()=>{o(),n=_n(t,e)},[t?.length]),{providers:n}}i(Fl,"useWalletProviders");import _g,{createContext as Pg,useContext as $g,useEffect as Dg,useRef as Fg}from"react";import{create as Mg}from"zustand";import{persist as Bg}from"zustand/middleware";var Li={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},gg={clientUrl:void 0},hg={liquiditySources:void 0},Ol=i((t,e,o)=>({config:{...Li,...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 Pn(t,e){return e.find(o=>o.name===t)?.displayName}i(Pn,"getBlockchainDisplayNameFor");function Ve(t,e){return e.find(o=>o.name===t)?.shortName}i(Ve,"getBlockchainShortNameFor");function Oo(t,e){return e.find(o=>o.id===t)?.title}i(Oo,"getSwapperDisplayName");function Mi(t,e){return e.find(o=>Pe(o,t))??null}i(Mi,"findToken");function Bi(t,e){return e.find(o=>o.name===t)??null}i(Bi,"findBlockchain");function _i(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(_i,"isTokenNative");function $n(t,e){let o=t.map(a=>a.swapperGroup),n=[];return uo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i($n,"getUniqueSwappersGroups");function Ul(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ul,"sortLiquiditySourcesByGroupTitle");function Xe(t,e){return e?.[t]==="hidden"}i(Xe,"isFeatureHidden");function zl(t,e){return e?.[t]==="enabled"}i(zl,"isFeatureEnabled");var ql=i((t,e)=>({_blockchainsMapByName:new Map,_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let a=e().config,s=(o.type==="source"?a.from?.tokens:a.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(u=>s&&Fo(u,s)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(vt(u.symbol,o.searchFor)||vt(u.address||"",o.searchFor)||vt(u.name||"",o.searchFor)):!0).sort((u,c)=>{let f=e().isTokenPinned(u,o.type),d=e().isTokenPinned(c,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let g=o.getBalanceFor(u),C=o.getBalanceFor(c),k=Il(g,C);if(k!==0)return k}let m=r.get(u.blockchain),h=r.get(c.blockchain),S=_i(u,m),T=_i(c,h);if(S!==T)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let g=hl(u,c,o.searchFor);if(g)return g}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:m&&h?m.sort-h.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Pe(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Ul)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await $t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=[],s=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(c=>{p.add(c.blockchain),a.push(c)}),n.blockchains.sort((c,f)=>c.sort-f.sort).forEach(c=>{c.enabled&&p.has(c.name)&&r.set(c.name,c)}),t({_blockchainsMapByName:r,_tokens:a,_popularTokens:s,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as 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 Lg}from"@rango-dev/ui";var Ql=[{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:Lg},{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}],Uo="en";var Hl=[.5,1,3],Gl=1,Vl=5,Xl=100,jl=0;var Kl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Gl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=uo(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=Xe("theme",n),s=Xe("language",n),l=Xe("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Uo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Yl(t){return Mg()(Bg((...e)=>({...ql(...e),...Kl(...e),...Ol(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Yl,"createAppStore");var Zl=Pg(null);function y(){let t=$g(Zl);if(Dg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function Jl(t){let e=Fg();return e.current||(e.current=Yl(t.config)),_g.createElement(Zl.Provider,{value:e.current},t.children)}i(Jl,"AppStoreProvider");import{create as Ug}from"zustand";var Rl="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Rl),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var re=Dt(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})}}))),Zt=new zo({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});var Fn=Qg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Gg(t){let{updateConfig:e,updateSettings:o,fetch:n}=y(),r=y().blockchains(),a=y().tokens(),s=y().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Fl(s.wallets,l),{connectWallet:u,disconnectWallet:c}=ee(),f=op(),d=op();tp(()=>{n().catch(console.log)},[]),tp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let m=r.filter(qg).map(g=>g.name),h=i((g,C,k,v,E)=>{if(C===$i.ACCOUNTS)if(k){let b=En(E.supportedBlockchains),x=wl(g,k,m,b,E.isContractWallet);x.length&&u(x,a)}else c(g),d.current?d.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(C===$i.ACCOUNTS&&v.connected){let b=`${g}-${v.network}-${k}`;v.connected&&(f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(C===$i.NETWORK&&v.network){let b=`${g}-${v.network}`;f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(g,C,k,v,E)},"onUpdateState"),S=re.use.isActiveTab(),T=Hg(()=>({onConnectWallet:g=>{f.current=g},onDisconnectWallet:g=>{d.current=g}}),[]);return Dn.createElement(Fn.Provider,{value:T},Dn.createElement(zg,{allBlockChains:r,providers:p,onUpdateState:h,autoConnect:!!S},t.children))}i(Gg,"Main");function On(t){let{config:e,...o}=t;return Dn.createElement(Jl,{config:e},Dn.createElement(Gg,{...o,config:e}))}i(On,"WidgetWallets");import Ci from"react";import Vg,{Fragment as Xg}from"react";import{MemoryRouter as jg,useInRouterContext as Kg}from"react-router";function np({children:t}){let o=Kg()?Xg:jg;return Vg.createElement(o,null,t)}i(np,"AppRouter");import{I18nManager as nv}from"@rango-dev/ui";import nl from"react";import qe from"react";import{useRoutes as zw}from"react-router-dom";var Q={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 go,useRef as Kn}from"react";import It from"bignumber.js";import{create as Rg}from"zustand";import{subscribeWithSelector as eh}from"zustand/middleware";import{getLastSuccessfulStep as Jg}from"@rango-dev/queue-manager-rango-preset";import kI from"bignumber.js";import{i18n as qo}from"@lingui/core";var Di={"Network Fee":qo.t("Network Fee"),"Swapper Fee":qo.t("Protocol Fee"),"Affiliate Fee":qo.t("Affiliate Fee"),"Outbound network fee":qo.t("Outbound Fee"),"Rango Fee":qo.t("Rango Fee")},Fi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],rp=30;import{i18n as nt}from"@lingui/core";import{RouteEventType as iI}from"@rango-dev/queue-manager-rango-preset";import $e from"bignumber.js";import{PendingSwapNetworkStatus as qn}from"rango-types";function Un(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Un,"isValidAddress");import{i18n as Me}from"@lingui/core";var te=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 ip(t){switch(t.type){case 0:return t.diagnosisMessage??te().noResultError.title;case 1:return te().genericServerError;default:return""}}i(ip,"getQuoteErrorMessage");import{i18n as zn}from"@lingui/core";var Jt=i(()=>({connectWallet:zn.t("Connect Wallet"),swap:zn.t("Swap"),swapAnyway:zn.t("Swap anyway"),ethWarning:zn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ap(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new $e(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new $e(1e3)))??!1}i(ap,"hasHighValueLoss");function sp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new $e(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $e(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(sp,"hasLimitError");function lp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new $e(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new $e(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 $e(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $e(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=nt.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=nt.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=nt.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=nt.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(lp,"getLimitErrorMessage");function pp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Jt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Jt().swap,action:"confirm-swap",disabled:!0}:s?{title:Jt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Jt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Jt().swap,action:"confirm-swap",disabled:!1}:{title:Jt().connectWallet,action:"connect-wallet",disabled:!1}}i(pp,"getSwapButtonState");function Oi(t,e,o){return!((!o||o.lte(_e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Oi,"canComputePriceImpact");var Yg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function Ui(t,e){let o=_e;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=Yg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new $e(r.amount).multipliedBy(a||0))}return o}i(Ui,"getUsdFeeOfStep");function Qn(t,e){return t.reduce((o,n)=>o.plus(Ui(n,e)),_e)}i(Qn,"getTotalFeeInUsd");function zi(t){let e=_e;return e=e.plus(new $e(t.amount).multipliedBy(t.price||0)),e}i(zi,"getUsdFee");function cp(t){return t.reduce((e,o)=>e.plus(zi(o)),_e)}i(cp,"getTotalFeesInUsd");function up(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(up,"getFeesGroup");function mp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(mp,"checkSlippageErrors");function dp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(dp,"checkSlippageWarnings");function Hn(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(Hn,"getMinRequiredSlippage");function fp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(fp,"hasProperSlippage");function gp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:f,affiliateWallets:d,destination:m,enableCentralizedSwappers:h}=t,S=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:f??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:T,selectedWallets:S??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:h}}i(gp,"createQuoteRequestBody");function hp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(hp,"getWalletsForNewSwap");function mo(t){return t?.outputAmount||null}i(mo,"getQuoteOutputAmount");function yp(t,e){return new $e(e).div(new $e(t)).minus(1).multipliedBy(100).toNumber()}i(yp,"getPercentageChange");function Sp(t,e){let o=mo(t),n=mo(e);if(!o||!n)return!1;let r=je(o,n);return r?r<=-1:!0}i(Sp,"isOutputAmountChangedALot");function Cp(t,e,o){let n=t.validationStatus,r=Yt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>bp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new $e(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new $e(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=nt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=nt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=nt.t(" for input and network fee")),nt.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:Ve(s.asset.blockchain,o)}})})}i(Cp,"generateBalanceWarnings");function Gn(t,e){return(t?new $e(t):_e).multipliedBy(e||0)}i(Gn,"calcOutputUsdValue");function Qo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==qn.NetworkChanged}i(Qo,"isNetworkStatusInWarningState");function Tp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Qo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case qn.WaitingForConnectingWallet:n=n||nt.t("Waiting for connecting wallet");break;case qn.WaitingForQueue:n=n||nt.t("Waiting for other running tasks to be finished");break;case qn.WaitingForNetworkChange:n=n||nt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Tp,"getSwapMessages");function kp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(kp,"getLastConvertedTokenInFailedSwap");function wp(t){return t.status==="failed"}i(wp,"shouldRetrySwap");function vp(t,e,o,n,r,a){if(!n||t)return!0;let s=Yt({filter:"all",quote:n}),l=Yt({filter:"required",quote:n}),p=s.every(f=>r.some(d=>d.chain===f)),u=l.every(f=>r.some(d=>d.chain===f)),c=o&&a?Un(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(vp,"isConfirmSwapDisabled");function xp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(xp,"isTokensIdentical");function Xn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Xn,"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!xi(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!xi(o,n)}i(Hi,"isQuoteInternalCoinsUpdated");function Ep(t,e){return qi(t,e)||Qi(t,e)||Hi(t,e)}i(Ep,"isQuoteChanged");function bp(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(bp,"getRequiredBalanceOfWallet");function bt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(bt,"getPriceImpactLevel");function Ap(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Jg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Bi(a?a.toBlockchain:n.fromBlockchain,e),p=Bi(r.toBlockchain,e),u=Mi(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Mi(s,o),f=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:f}}i(Ap,"createRetryQuote");function fo(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Rt(o,t.requestAmount),l=Rt(n,t?.outputAmount??"");if(t&&s&&l){let c=je(s.toString(),l.toString());if(!!c&&ap(s,c)){let d=Qn(t?.swaps,r),m=bt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Hn(t.swaps),u=a>Vl;if(fp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:dp(t,a),minRequiredSlippage:p};return null}i(fo,"generateQuoteWarnings");function je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:yp(t.toString(),e.toString());return n&&n<0?n:null}i(je,"getPriceImpact");var Np=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),jn=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"),Lp=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 Rt=i((t,e)=>t?.usdPrice?new It(e||_e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),X=Dt(Rg()(eh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(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=_e;return Do(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Gn(e?.outputAmount,Xn(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 It(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:Rt(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 It(0),outputUsdValue:new It(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Rt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=Ap(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Rt(s??null,u),outputUsdValue:new It(0),toBlockchain:l,toToken:p,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Rt(e.toToken,e.outputAmount?.toString()||""):new It(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 Mp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=X(),c=y().config,f=y().fetchStatus,d=y().blockchains(),m=y().tokens(),{setAffiliateRef:h,setAffiliatePercent:S,setAffiliateWallets:T}=y(),g=c?.from?.tokens,C=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=Kn(void 0),b=Kn(void 0),x=Kn(void 0),w=Kn(void 0);go(()=>{t(c?.amount?.toString()||"")},[c?.amount]),go(()=>{if(f==="success"){r();let I=d.find(L=>L.name===c?.from?.blockchain),W=m.find(L=>Pe(L,c?.from?.token||null));(I||!I&&x.current)&&n(I??null),W?a({token:W,meta:{blockchains:d,tokens:m}}):!W&&E.current&&a({token:null}),x.current=c?.from?.blockchain,E.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,f]),go(()=>{Fo(s,g)&&a({token:null}),Wi(p,C)&&n(null)},[g,C]),go(()=>{Fo(l,k)&&a({token:null}),Wi(u,v)&&o(null)},[k,v]),go(()=>{if(f==="success"){r();let I=d.find(L=>L.name===c?.to?.blockchain),W=m.find(L=>Pe(L,c?.to?.token||null));(I||!I&&w.current)&&o(I??null),W?e({token:W,meta:{blockchains:d,tokens:m}}):!W&&b.current&&e({token:null}),w.current=c?.to?.blockchain,b.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,f]),go(()=>{h(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),T(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Mp,"useSyncStoresWithConfig");import{useEffect as Xi,useRef as th}from"react";import{useInRouterContext as oh,useLocation as nh,useSearchParams as rh}from"react-router-dom";function Gi(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Gi,"searchParamToToken");function Vi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vi,"tokenToSearchParam");function ji(){let t=nh(),[e,o]=rh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:f,setInputAmount:d}=X(),m=y().fetchStatus,h=y().blockchains(),S=y().tokens(),T=oh(),{updateIframe:g,updateCampaignMode:C}=y(),k=y().isInCampaignMode(),v=th(),E=i(()=>{let x={};for(let[me,z]of e.entries())me.startsWith("utm_")&&(x[me]=z);let w=e.get("fromAmount"),I=e.get("fromBlockchain"),W=e.get("fromToken"),L=e.get("toBlockchain"),j=e.get("toToken"),M=e.get("autoConnect"),U=e.get("clientUrl"),J=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:W,toBlockchain:L,toToken:j,autoConnect:M,clientUrl:U,liquiditySources:J,utmQueryParams:x}},"getUrlSearchParams"),b=i(x=>{for(let w in x)x[w]||delete x[w];o(x,{replace:!0})},"updateUrlSearchParams");Xi(()=>{let{autoConnect:x,clientUrl:w,utmQueryParams:I}=E();T&&m==="success"&&b({fromBlockchain:n?.name,fromToken:Vi(a),toBlockchain:r?.name,toToken:Vi(s),fromAmount:l,autoConnect:x??void 0,clientUrl:w??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Xi(()=>{if(!T)return;let x=E();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&d(x.fromAmount),m==="success"){let w=h.find(j=>j.name===x.fromBlockchain),I=Gi(S,x.fromToken,w??null),W=h.find(j=>j.name===x.toBlockchain),L=Gi(S,x.toToken,W??null);w&&(p(w),I&&c({token:I,meta:{blockchains:h,tokens:S}})),W&&(u(W),L&&f({token:L,meta:{blockchains:h,tokens:S}}))}},[m]),Xi(()=>{let{clientUrl:x,liquiditySources:w}=E();g("clientUrl",x||void 0),C("liquiditySources",w?.split(",")??void 0)},[])}i(ji,"useSyncUrlAndStore");import{i18n as ja}from"@lingui/core";import{useManager as TC}from"@rango-dev/queue-manager-react";import{Alert as ym,Button as kC,css as Ya,Divider as Ka,IconButton as Sm,styled as wC,Typography as vC,WalletIcon as xC}from"@rango-dev/ui";import xe,{useEffect as qr,useLayoutEffect as bC,useRef as IC,useState as rn}from"react";import{useNavigate as EC}from"react-router-dom";import{i18n as gt}from"@lingui/core";import{Alert as Ea,BalanceErrors as iS,Button as Yc,ChevronDownIcon as aS,ChevronLeftIcon as sS,CloseIcon as lS,Divider as Xo,IconButton as Zc,MessageBox as pS,PasteIcon as cS,Typography as kr,WalletIcon as uS}from"@rango-dev/ui";import _,{useEffect as mS,useRef as dS,useState as xo}from"react";import{useNavigate as fS}from"react-router-dom";import{i18n as Yn}from"@lingui/core";function Zn(t){switch(t.type){case 0:return Yn.t("Route has been updated.");case 3:return Yn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Yn.t("Route swappers has been updated.");case 2:return Yn.t("Route internal coins has been updated.");default:return""}}i(Zn,"getQuoteUpdateWarningMessage");import{Modal as ah}from"@rango-dev/ui";import sh from"react";function ne(t){let{watermark:e}=re();return sh.createElement(ah,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import tr,{useRef as ch}from"react";import*as ho from"@radix-ui/react-collapsible";import{keyframes as _p,styled as Jn}from"@rango-dev/ui";var Ki=300,lh=_p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),ph=_p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Pp=Jn(ho.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Yi=Jn(ho.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Rn=Jn(ho.Content,{overflow:"hidden",variants:{open:{true:{animation:`${lh} ${Ki}ms ease-out`},false:{animation:`${ph} ${Ki}ms ease-out`}}}}),er=Jn("div",{transition:`all ${Ki}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function or(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ch(null);return tr.createElement(Pp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&tr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s),tr.createElement(Rn,{className:"collapsible_content",open:e},r),l==="bottom"&&tr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s))}i(or,"CustomCollapsible");import{css as $p,darkTheme as Ho,IconButton as uh,styled as Ke,TextField as mh}from"@rango-dev/ui";var Dp=Ke("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Fp=Ke("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),dh=Ke("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Op=Ke(dh,{alignSelf:"stretch",minHeight:"93px"}),Up=Ke("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zp=Ke(uh,{position:"absolute",left:"$20"}),qp=Ke("div",{paddingTop:"$20"}),Qp=$p({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Hp=Ke("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=Ke("div",{display:"flex"}),Xp=Ke(mh,{backgroundColor:"$neutral100",padding:"$15"}),jp=Ke("div",{overflow:"visible",width:"100%"}),Kp=Ke("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Ho} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as it}from"@lingui/core";import{Button as tS,Divider as ba,Image as oS,MessageBox as Cr,SelectableWallet as nS,Typography as Xc,WalletState as jc}from"@rango-dev/ui";import pe,{useEffect as Kc,useState as vo}from"react";import{WalletState as nr}from"@rango-dev/ui";import{useWallets as fh}from"@rango-dev/wallets-react";import{detectMobileScreens as gh,KEPLR_COMPATIBLE_WALLETS as hh,WalletTypes as yo}from"@rango-dev/wallets-shared";import{useCallback as yh,useEffect as Sh,useState as Ch}from"react";var Th=Object.values(yo);function So(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=y(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=fh(),{connectedWallets:u}=ee(),c=y().blockchains(),f=Dl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Th,d=kl(a,l,f,e);d=gh()?d.filter(b=>b.showOnMobile!==!1&&a(b.type).installed):d;let m=El(d),[h,S]=Ch(""),T=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),g=i(async(b,x)=>{let w=a(b);try{if(h&&S(""),w.connected)await s(b);else{let I=!!d.find(W=>W.state===nr.CONNECTED);if(r?.multiWallets===!1&&I)return;o?.(b),await p(b,void 0,x),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),C=yh(()=>{let b=d?.filter(x=>x.state===nr.CONNECTING)||[];for(let x of b)s(x.type)},[Wl(d)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");Sh(()=>()=>{C()},[]);let v=i(b=>{let x=b.find(I=>I.type===yo.DEFAULT);return!x||x.state===nr.NOT_INSTALLED?!1:b.filter(I=>I.state!=nr.NOT_INSTALLED&&![yo.DEFAULT,yo.WALLET_CONNECT_2,yo.LEDGER].includes(I.type)&&l(I.type).supportedChains.filter(W=>W.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,x,w)=>Nn(w,x)&&T(b)&&!hh.includes(b)||b==yo.DEFAULT&&!v(d),"shouldExcludeWallet");return{list:m.filter(b=>!E(b.type,e??"",c)),error:h,handleClick:g,disconnectConnectingWallets:C,disconnectWallet:k}}i(So,"useWalletList");import{i18n as Uc}from"@lingui/core";import{Divider as Vy,getCategoriesCount as Xy,SelectableCategoryList as jy,styled as qc,Typography as Ky,Wallet as Yy,WalletState as zc}from"@rango-dev/ui";import rt,{useState as yr}from"react";import{useManager as xy}from"@rango-dev/queue-manager-react";import{BottomLogo as by,Divider as Bc,Header as Iy}from"@rango-dev/ui";import Ce,{useEffect as Ca,useRef as _c,useState as Ey}from"react";import{useRef as kh}from"react";function rr(){return window.self!==window.top}i(rr,"isAppLoadedIntoIframe");function Zi(){let t=kh(null),{iframe:e}=y(),o=rr()&&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 wh}from"react-router-dom";function Ye(){let t=wh();return()=>t(-1)}i(Ye,"useNavigateBack");import{createTheme as na,darkTheme as Ah,lightTheme as Nh}from"@rango-dev/ui";import{useEffect as Wh,useState as Lh}from"react";import{theme as Ih,darkColors as Eh}from"@rango-dev/ui";import ta from"react";function vh(t,e,o){let p=[],u=90;for(let d=0;d<9;d++)p.push(u),d+1===4?u=0:u-=d>=4?6:10;let c=o?p.slice().reverse():p,f={};for(let d=0;d<9;d++){let m=100+d*100,h=c[d],S={[`${e}${m}`]:ir(t,h)};Object.assign(f,S)}return{...f,[e]:t}}i(vh,"generateShades");function ir(t,e){let[o,n,r]=Yp(t);return`#${Ji(o+e)}${Ji(n+e)}${Ji(r+e)}`}i(ir,"generateShade");function Yp(t){let r=parseInt(t.slice(1,3),16),a=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return[r,a,s]}i(Yp,"convertToRGB");function Ji(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Ji,"clamp");function Zp(t){let[s,l,p]=Yp(t);return(s*299+l*587+p*114)/1e3>188}i(Zp,"isBright");var Ri=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let a in o){let s=o[a];s&&s!==t[a]&&(n=!0,a==="background"||a==="foreground"?r={...r,[a]:s}:r={...r,...vh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Jp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),xh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Jp(o%52)+e;return Jp(o%52)+e},"toAlphabeticName"),bh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ea=i(t=>xh(bh(5381,JSON.stringify(t))>>>0),"toHash");function oa(t){let e=Ih.colors,o=Ri({...e,...Eh},!0,t?.dark),n=Ri(e,!1,t?.light),r=Object.keys(o).length>0,a=Object.keys(n).length>0,s,l;if(a){let p={colors:n};s={id:`${Ni}-light-${ea(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Ni}-dark-${ea(p)}`,tokens:p}}return{light:s,dark:l}}i(oa,"customizedThemeTokens");function Rp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ta.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ta.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ta.cloneElement(e,{key:l}))}}),o}i(Rp,"joinList");function ar(t){let{colors:e,fontFamily:o=ll,borderRadius:n=_l,secondaryBorderRadius:r=Pl}=t,[a,s]=Lh("light"),{theme:l}=y(),{dark:p,light:u}=oa(e),c=na({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[c.className,Nh.className],d=[c.className,Ah.className];if(u){let h=na(u.id,u.tokens);f.push(h.className)}if(p){let h=na(p.id,p.tokens);d.push(h.className)}return Wh(()=>{let h=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",h),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",h)}},[]),{activeTheme:i(()=>{let h=f.join(" "),S=d.join(" ");return l==="auto"?a==="dark"?S:h:l==="dark"?S:h},"getActiveTheme")}}i(ar,"useTheme");var Ze=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as ec}from"@lingui/core";import{Alert as Mh,Button as Bh}from"@rango-dev/ui";import tc from"react";function ra(t){return tc.createElement(Mh,{action:tc.createElement(Bh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},ec.t("Activate this tab")),type:"warning",variant:"alarm",title:ec.t("Another tab is open and handles transactions.")})}i(ra,"ActivateTabAlert");import{i18n as ia}from"@lingui/core";import{Button as _h,Divider as Ph,MessageBox as $h}from"@rango-dev/ui";import sr from"react";function aa(t){let{open:e,onClose:o,onConfirm:n}=t;return sr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},sr.createElement($h,{title:ia.t("Activate current tab"),type:"warning",description:ia.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.")},sr.createElement(Ph,{size:20}),sr.createElement(_h,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ia.t("Confirm"))))}i(aa,"ActivateTabModal");import{ChevronLeftIcon as Oh}from"@rango-dev/ui";import lc from"react";import{css as Dh,darkTheme as oc,IconButton as Fh,styled as eo}from"@rango-dev/ui";var ft=eo(Fh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${oc} &`]:{backgroundColor:"$neutral"}}}),nc=eo("div",{position:"absolute",background:"$secondary500",[`.${oc} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Co=eo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),rc=eo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),ic=eo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ac=eo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),sc=Dh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),lr=eo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function sa(t){return lc.createElement(ft,{variant:"ghost",size:"small",onClick:t.onClick},lc.createElement(Oh,{color:"black",size:16}))}i(sa,"BackButton");import{i18n as Uh}from"@lingui/core";import{Button as zh,Typography as qh}from"@rango-dev/ui";import la from"react";function pa(t){return la.createElement(Co,null,la.createElement(zh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},la.createElement(qh,{variant:"label",size:"medium",color:"error500"},Uh.t("Cancel"))))}i(pa,"CancelButton");import{i18n as Qh}from"@lingui/core";import{Image as Hh,Tooltip as Gh,WalletIcon as Vh}from"@rango-dev/ui";import to from"react";function ca(t){let{list:e}=So({}),o=e.filter(r=>r.state==="connected"),n=o.length?to.createElement("div",{className:sc()},o.map(r=>to.createElement(lr,{key:r.title},to.createElement(Hh,{src:r.image,size:14})))):Qh.t("Connect Wallet");return to.createElement(Gh,{container:t.container,side:"bottom",content:n},to.createElement(ft,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&to.createElement(nc,null),to.createElement(Vh,{size:18,color:"black"})))}i(ca,"WalletButton");import{i18n as ur}from"@lingui/core";import{NotificationsIcon as gy,Popover as hy,SettingsIcon as yy,Tooltip as mr,TransactionIcon as Sy}from"@rango-dev/ui";import Ne from"react";import{i18n as ua}from"@lingui/core";import{EventSeverity as Sc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Cc,ChevronRightIcon as ny,Divider as Tc,Typography as ma}from"@rango-dev/ui";import de from"react";import{useNavigate as ry}from"react-router-dom";import{create as Xh}from"zustand";import{persist as jh,subscribeWithSelector as Kh}from"zustand/middleware";var Ae=Dt(Xh()(jh(Kh((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 Yh,darkTheme as Zh,ListItemButton as Jh,styled as Ot}from"@rango-dev/ui";var pc=Ot("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),cc=Ot("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),uc=Ot(Yh,{padding:"$5 !important"}),mc=Ot("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),dc=Ot(Jh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${Zh} &`]:{backgroundColor:"$error600"}}}}}),fc=Ot("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),gc=Ot("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),hc=Ot("span",{paddingRight:"$8"});import{i18n as Rh}from"@lingui/core";import{Divider as ey,NoNotificationIcon as ty,Typography as oy}from"@rango-dev/ui";import pr from"react";function yc(){return pr.createElement(gc,null,pr.createElement(ty,{color:"secondary",size:26}),pr.createElement(ey,{size:12}),pr.createElement(oy,{variant:"body",size:"medium",color:"neutral700"},Rh.t("There are no notifications.")))}i(yc,"NotificationNotFound");var iy=4;function da(){let t=ry(),{getNotifications:e,clearNotifications:o}=Ae(),n=e(),r=y().blockchains(),a=y().tokens(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,iy),l=i(p=>{t(`${Q.swaps}/${p}`)},"handleOnClick");return de.createElement(pc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(cc,null,de.createElement(ma,{variant:"label",size:"medium"},ua.t("Notifications")),de.createElement(uc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(ma,{variant:"body",size:"xsmall"},ua.t("Clear all")))),de.createElement(Tc,{direction:"vertical",size:4})),s.length?de.createElement(mc,null,s.map((p,u)=>{let{route:c,requestId:f,event:d}=p,m=a.find(g=>Pe(g,c.from)),h=r.find(g=>g.name===c.from.blockchain),S=a.find(g=>Pe(g,c.to)),T=r.find(g=>g.name===c.to.blockchain);return de.createElement(de.Fragment,{key:f},u>0&&de.createElement(Tc,{size:4}),de.createElement(dc,{onClick:()=>l(f),actionRequired:d.messageSeverity===Sc.WARNING,title:de.createElement(ma,{variant:"body",size:"small",color:d.messageSeverity===Sc.WARNING?"$foreground":"$neutral700"},ua.t(d.message)),id:f,start:de.createElement(fc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Cc,{tokenImage:m?m.image:"",chainImage:h?h.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Cc,{tokenImage:S?S.image:"",chainImage:T?T.logo:"",size:"small"}))),end:de.createElement(hc,null,de.createElement(ny,{size:12,color:"gray"}))}))})):de.createElement(yc,null))}i(da,"NotificationContent");import{useManager as ay}from"@rango-dev/queue-manager-react";import{InProgressIcon as sy}from"@rango-dev/ui";import kc from"react";var ly=i(()=>{let{manager:t}=ay();return Ze(t).map(({swap:o})=>o).find(o=>o.status==="running")?kc.createElement(ac,null,kc.createElement(sy,{color:"info",size:6})):null},"InProgressTransactionBadge"),wc=ly;import{EventSeverity as py}from"@rango-dev/queue-manager-rango-preset";import{Typography as cy}from"@rango-dev/ui";import vc from"react";function xc(){let{getNotifications:t}=Ae(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===py.WARNING);return o?vc.createElement(rc,{isSever:n},vc.createElement(cy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(xc,"NotificationsBadge");import{RefreshProgressButton as uy}from"@rango-dev/ui";import fa,{useEffect as my,useState as bc}from"react";var dy=1e3,Ic=60,fy=100;function cr({onClick:t}){let[e,o]=bc(0),[n,r]=bc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");my(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},dy):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 fa.createElement(ft,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},fa.createElement(ic,{onTransitionEnd:()=>r(!1),isRefetched:n},fa.createElement(uy,{size:22,color:t?"black":"gray",progress:e/Ic*fy})))}i(cr,"RefreshButton");function oo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Xe("notification",s)||r.includes("notifications");return Ne.createElement(Ne.Fragment,null,!r.includes("refresh")&&Ne.createElement(mr,{container:a||B(),side:"top",content:ur.t("Refresh")},Ne.createElement(cr,{onClick:e})),!l&&Ne.createElement(hy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ne.createElement(da,null)},Ne.createElement("div",null,Ne.createElement(mr,{container:B(),side:"top",content:ur.t("Notifications")},Ne.createElement(ft,{size:"small",variant:"ghost"},Ne.createElement(gy,{size:18,color:"black"}),Ne.createElement(xc,null))))),!r.includes("settings")&&Ne.createElement(mr,{container:B(),side:"top",content:ur.t("Settings")},Ne.createElement(ft,{size:"small",variant:"ghost",onClick:n},Ne.createElement(yy,{size:18,color:"black"}))),!r.includes("history")&&Ne.createElement(mr,{container:B(),side:"top",content:ur.t("Transactions History")},Ne.createElement(ft,{size:"small",variant:"ghost",onClick:o},Ne.createElement(Sy,{size:18,color:"black"}),Ne.createElement(wc,null))))}i(oo,"HeaderButtons");import{i18n as ga}from"@lingui/core";import{Divider as Ac,MessageBox as ky,RefreshIcon as wy}from"@rango-dev/ui";import To from"react";import{Button as Cy,styled as Ty}from"@rango-dev/ui";var Ec=Ty(Cy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ha(t){let{open:e,onClose:o}=t;return To.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},To.createElement(ky,{title:ga.t("Something went wrong"),type:"error",description:ga.t("Something went wrong. Please refresh the app.")},To.createElement(Ac,{size:30}),To.createElement(Ec,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},To.createElement(wy,{size:20,color:"primary"}),To.createElement(Ac,{size:4,direction:"horizontal"}),ga.t("Refresh"))))}i(ha,"RefreshModal");function ya(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(ya,"onScrollContentAttachStatusToContainer");import{css as vy,styled as Sa}from"@rango-dev/ui";var Nc="700px",dr=vy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),Wc=Sa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Lc=Sa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Mc=Sa("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 se(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Zi(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=Ey(!1),c=ee.use.connectedWallets(),{config:{features:f,theme:d}}=y(),{watermark:m}=re(),h=m==="FULL",{activeTheme:S}=ar(d||{}),T=Xe("connectWalletButton",f),{isActiveTab:g,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=re(),b=Ye(),{manager:x}=xy(),I=Ze(x).map(({swap:J})=>J).some(J=>J.status==="running"),W=i(()=>E(Zt.forceClaim,I),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),j=typeof r.hasBackButton>"u"||r.hasBackButton,M=_c(null),U=_c(null);return Ca(()=>(rr()&&U.current&&e(U.current),()=>{o()}),[]),Ca(()=>(M.current?.addEventListener("scroll",ya),()=>{M.current?.removeEventListener("scroll",ya)}),[]),Ca(()=>{u(l==="failed")},[l]),Ce.createElement(Wc,{height:s,id:Se.SWAP_BOX_ID,className:`${S()} ${dr()}`,ref:U},Ce.createElement(Iy,{prefix:Ce.createElement(Ce.Fragment,null,j&&Ce.createElement(sa,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ce.createElement(Ce.Fragment,null,r.suffix,r.onWallet&&!T&&Ce.createElement(ca,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&Ce.createElement(pa,{onClick:r.onCancel}))}),Ce.createElement(Lc,{ref:M},n),Ce.createElement(aa,{open:k,onClose:()=>v(!1),onConfirm:W}),Ce.createElement(Mc,null,Ce.createElement("div",{className:"footer__content"},C&&!g&&Ce.createElement("div",{className:"footer__alert"},Ce.createElement(ra,{onActivateTab:W}),Ce.createElement(Bc,{size:10})),a),Ce.createElement(Bc,{size:12}),Ce.createElement("div",{className:`footer__logo ${h?"logo__show":"logo__hidden"}`},Ce.createElement(by,null))),Ce.createElement(ha,{open:p,onClose:()=>u(!1)}))}i(se,"Layout");import{styled as Ay}from"@rango-dev/ui";var Pc="$20 $20 $10 $20",Go=Ay("div",{padding:Pc,overflowY:"auto",flexGrow:1});import{styled as Ny}from"@rango-dev/ui";var ue=Ny("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 _y}from"@rango-dev/ui";import ka from"react";import{i18n as ko}from"@lingui/core";import{Image as My,MessageBox as Ta,WalletState as By}from"@rango-dev/ui";import no from"react";import{keyframes as Wy,styled as fr}from"@rango-dev/ui";var oW=fr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),gr=fr("div",{position:"relative"}),Ly=Wy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),hr=fr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ly} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=fr("div",{"& img":{borderRadius:"50%"}});function Dc(t){let{state:e,image:o,error:n}=t;return e===By.CONNECTED?no.createElement(Ta,{type:"success",title:ko.t("Wallet Connected"),description:ko.t("Your wallet is connected, you can use it to swap.")}):n?no.createElement(Ta,{type:"error",title:ko.t("Failed to Connect"),description:n||ko.t("Your wallet is not connected. Please try again.")}):no.createElement(Ta,{type:"loading",title:ko.t("Connecting to your wallet"),description:ko.t("Click connect in your wallet popup."),icon:no.createElement(gr,null,no.createElement($c,null,no.createElement(My,{src:o,size:45})),no.createElement(hr,null))})}i(Dc,"ModalContent");function Vo(t){let{open:e,onClose:o,...n}=t;return ka.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},ka.createElement(Dc,{...n}),ka.createElement(_y,{direction:"vertical",size:32}))}i(Vo,"WalletModal");import{i18n as wa}from"@lingui/core";import{Button as $y,Checkbox as Dy,Image as Oc,ListItemButton as Fy,MessageBox as Oy,Radio as Uy,RadioRoot as zy}from"@rango-dev/ui";import{Namespace as wo}from"@rango-dev/wallets-shared";import Le,{useMemo as qy,useState as Qy}from"react";import{styled as Py}from"@rango-dev/ui";var Fc=Py("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Hy={[wo.Evm]:"ETH",[wo.Solana]:"SOLANA",[wo.Cosmos]:"COSMOS",[wo.Utxo]:"BTC",[wo.Starknet]:"STARKNET",[wo.Tron]:"TRON"},Gy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function ro(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Qy([]),a=y().blockchains(),s=qy(()=>o?.map(u=>({name:u,logo:Gy(a,Hy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(f=>f!==u):c.concat(u))},"onSelect"),p=i(u=>e?Le.createElement(zy,{value:n?.[0]},u):Le.createElement(Le.Fragment,null,u),"wrapRadioRoot");return Le.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Le.createElement(Oy,{type:"info",title:wa.t("Select chain types"),description:wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Le.createElement(gr,null,Le.createElement(lr,null,Le.createElement(Oc,{src:t.image,size:45})),Le.createElement(hr,null))}),Le.createElement(Fc,null,p(Le.createElement(Le.Fragment,null,s?.map(u=>Le.createElement(Fy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Le.createElement(Oc,{src:u.logo,size:22}),end:e?Le.createElement(Uy,{value:u.name}):Le.createElement(Dy,{checked:n.includes(u.name)})}))))),Le.createElement($y,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},wa.t("Confirm")))}i(ro,"WalletNamespacesModal");var Zy=qc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Jy=qc(ue,{textAlign:"center"}),Sr=3e3,va=300;function Qc(){let{fetchStatus:t}=y(),[e,o]=yr("ALL"),n=y().blockchains(),[r,a]=yr(!1),[s,l]=yr(null),[p,u]=yr(""),c=null,f=re.use.isActiveTab(),{list:d,handleClick:m,error:h,disconnectConnectingWallets:S}=So({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},va)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},Sr)}}),T=i(()=>{S(),a(!1)},"handleCloseWalletModal"),g=d.find(w=>w.type===p),C=g?.image||"",k=g?.state||zc.NOT_INSTALLED,v=Ll(d,n),b=Xy(v)!==1,x=Ml(d,e);return rt.createElement(se,{header:{title:Uc.t("Connect Wallets")}},rt.createElement(Jy,null,b&&rt.createElement(rt.Fragment,null,rt.createElement(jy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),rt.createElement(Vy,{size:24})),rt.createElement(Ky,{variant:"title",size:"xmedium",align:"center"},Uc.t("Choose a wallet to connect.")),rt.createElement(Zy,null,x.map((w,I)=>{let W=`wallet-${I}-${w.type}`;return rt.createElement(Yy,{key:W,...w,container:B(),onClick:L=>{w.namespaces&&w.state===zc.DISCONNECTED?l({providerType:L,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):m(L)},isLoading:t==="loading",disabled:!f})}),rt.createElement(Vo,{open:!!r,onClose:T,image:C,state:k,error:h}),rt.createElement(ro,{open:!!s,onClose:()=>l(null),onConfirm:w=>{m(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Qc,"WalletsPage");import{keyframes as Ry,styled as xa}from"@rango-dev/ui";var Hc=xa("div",{position:"relative"}),eS=Ry({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Gc=xa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${eS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Vc=xa("div",{"& img":{borderRadius:"50%"}});var rS=7;function Ia(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=re.use.isActiveTab(),l=ee.use.connectedWallets(),{blockchains:p}=y(),[u,c]=vo(""),[f,d]=vo(null),[m,h]=vo(!1),[S,T]=vo(null),[g,C]=vo(null),{suggestAndConnect:k}=Tr(),v=null,{list:E,error:b,handleClick:x,disconnectWallet:w,disconnectConnectingWallets:I}=So({chain:e,onBeforeConnect:A=>{v=setTimeout(()=>{c(A)},va)},onConnect:()=>{v&&clearTimeout(v),setTimeout(()=>{c("")},Sr)}}),[W,L]=vo(E),j=E.length,M=r&&j-r>0,U=i(async A=>{h(!1),T("in-progress");try{await k(A.walletType,A.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain"),J=i(A=>{C({providerType:A.type,providerImage:A.image,availableNamespaces:A.namespaces,singleNamespace:A.singleNamespace})},"handleOpenNamespacesModal");Kc(()=>{L(A=>{let oe=E.findIndex(q=>o(q.type,e));return M&&oe>1?[E[oe]].concat(E.filter((q,R)=>R!==oe)):A.map(q=>E.find(R=>R.type===q.type)??q)})},[JSON.stringify(E)]);let me=document.getElementById(Se.SWAP_BOX_ID);Kc(()=>{let A=null;return(S==="completed"||S==="rejected")&&(A=setTimeout(()=>T(null),Sr)),()=>{A&&clearTimeout(A)}},[S]);let z=i(()=>{I(),c("")},"handleCloseWalletModal");return pe.createElement(pe.Fragment,null,W.slice(0,r).map(A=>{let oe=Al({connectedWallets:l,walletType:A.type,chain:e}),q=oe?Ln(oe,rS):"",R=Nn(p(),e),fe=!l.find(be=>be.walletType===A.type&&be.chain===e),ye=R&&fe&&A.state===jc.CONNECTED,P=ye?it.t({id:"Add {chain} chain",values:{chain:e}}):q,Ue=i(async()=>{A.state===jc.DISCONNECTED?A.namespaces?J(A):x(A.type):A.namespaces&&!q?(await w(A.type),J(A)):ye?(d({walletType:A.type,chain:e,address:oe??""}),h(!0)):n({walletType:A.type,chain:e,address:oe??""})},"onClick"),ke=f?.chain?Pn(f.chain,p()):void 0;return pe.createElement(pe.Fragment,{key:`${A.title}_${ke}`},pe.createElement(Vo,{open:u===A.type,onClose:z,image:A.image,state:A.state,error:b}),pe.createElement(ro,{open:!!g,onClose:()=>C(null),onConfirm:be=>{x(g?.providerType,be),C(null)},image:g?.providerImage,namespaces:g?.availableNamespaces,singleNamespace:g?.singleNamespace}),!!f&&pe.createElement(ne,{open:!!f&&m,container:me,onClose:()=>{d(null)}},pe.createElement(Cr,{title:it.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ke}}),type:"warning",description:it.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ke}})},pe.createElement(ba,{size:18}),pe.createElement(ba,{size:32}),pe.createElement(tS,{onClick:U.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},it.t("Confirm")))),S&&pe.createElement(ne,{open:!!S,onClose:T.bind(null,null),container:me},S==="in-progress"&&pe.createElement(Cr,{type:"loading",title:it.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ke}}),description:it.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ke}}),icon:pe.createElement(Hc,null,pe.createElement(Vc,null,pe.createElement(oS,{src:A.image,size:45})),pe.createElement(Gc,null))}),S==="completed"&&pe.createElement(Cr,{type:"success",title:it.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ke}}),description:it.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ke}})}),S==="rejected"&&pe.createElement(Cr,{type:"error",title:it.t("Request Rejected"),description:it.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ke}})}),pe.createElement(ba,{direction:"vertical",size:32})),pe.createElement(nS,{key:A.type,description:P,onClick:Ue,selected:o(A.type,e),disabled:!s,...A}))}),M&&pe.createElement(Op,{selected:!1,onClick:a},pe.createElement(Xc,{variant:"label",size:"medium"},it.t("Show more wallets"),pe.createElement(Xc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(Ia,"WalletList");var gS=2;function Jc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=y().config,l=dS(null),p=y().blockchains(),{selectedQuote:u,setSelectedWallets:c,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:h}=X(),{connectedWallets:S,selectWallets:T}=ee(),[g,C]=xo(""),[k,v]=xo([]),[E,b]=xo(""),[x,w]=xo(null),[I,W]=xo(!!m),L=navigator?.userAgent.includes("Firefox"),j=Yt({filter:"all",quote:u}),M=Yt({filter:"required",quote:u}),U=p.find(D=>D.name===u?.swaps[u?.swaps.length-1].to.blockchain),J=i(D=>M.includes(D),"isWalletRequiredFor"),me=i(()=>S.filter(D=>D.selected&&j.includes(D.chain)),"getInitialSelectableWallets"),[z,A]=xo(me()),oe=k.length>0,q=i((D,K)=>!!z.find(V=>V.walletType===D&&V.chain===K&&V.selected&&(J(K)||!J(K)&&!m)),"isSelected"),R=!!m&&I&&U&&!Un(U,m),fe=i(()=>{W(!1),h(null),A(D=>{let K=!1;return D.map(V=>!K&&V.chain===U?.name?(K=!0,{...V,selected:!0}):V)})},"resetCustomDestination"),ye=i(()=>h(""),"handleClearCustomDestination"),P=i(async D=>{if(D.preventDefault(),navigator.clipboard!==void 0){let K=await navigator.clipboard.readText();h(K),l?.current?.focus()}},"handlePasteCustomDestination"),Ue=i(D=>{D?J(U?.name??"")||A(K=>K.map(V=>V.chain===U?.name?{...V,selected:!1}:V)):fe()},"handleCustomDestinationCollapsibleOpenChange"),ke=i(D=>{if(g&&C(""),q(D.walletType,D.chain))return;let V=S.find(ce=>ce.walletType===D.walletType&&ce.chain===D.chain);V&&(n(),D.chain===U?.name&&I&&(W(!1),h(null)),A(ce=>ce.filter(wt=>wt.chain!==D.chain).concat({...V,selected:!0})))},"onChange"),be=i(()=>{let D=z.filter(K=>K.selected);T(D),c(D),d(!0),o()},"onConfirmBalance"),Tt=i(async()=>{v([]),b(""),w(null);let D=await r?.({selectedWallets:z.filter(V=>V.selected),customDestination:m}),K=D.warnings;K?.balance?.messages&&v(K.balance.messages),K?.quoteUpdate&&w(K.quoteUpdate),D.error&&b(ip(D.error)),!D.error&&!K?.balance?.messages.length?be():v(K?.balance?.messages??[])},"onConfirmWallets"),kt=i(()=>m?_.createElement(Zc,{onClick:ye,variant:"ghost"},_.createElement(lS,{size:12,color:"gray"})):L?null:_.createElement(Zc,{onClick:P,variant:"ghost"},_.createElement(cS,{size:16})),"renderCustomDestinationSuffix");mS(()=>{A(D=>D.concat(S.filter(K=>!!!D.find(ce=>ce.chain===K.chain)&&K.selected&&j.includes(K.chain))))},[S.length]);let tt=document.getElementById(Se.SWAP_BOX_ID),ut=fS();return _.createElement(ne,{open:e,onClose:()=>{f||ut("../",{replace:!0}),o()},dismissible:!g,container:tt,...!g&&{footer:_.createElement(Vp,null,_.createElement(Yc,{loading:a,disabled:vp(a,I,m,u,z,U),onClick:Tt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},gt.t("Confirm")))},...g&&{styles:{container:{padding:"$0"}},header:_.createElement(Up,null,_.createElement(zp,{variant:"ghost",onClick:C.bind(null,"")},_.createElement(sS,{size:16})),_.createElement(kr,{variant:"headline",size:"small"},gt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ve(g,p)}})))},anchor:"center"},_.createElement(ne,{open:oe,onClose:v.bind(null,[]),container:tt},_.createElement(pS,{title:gt.t("Insufficient account balance"),type:"error",description:_.createElement(iS,{messages:k??[]})},_.createElement(Yc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:be},gt.t("Proceed anyway")))),g&&_.createElement(qp,null,_.createElement("div",{className:Qp()},_.createElement(Ia,{chain:g,isSelected:q,selectWallet:ke,onShowMore:C.bind(null,g)}))),!g&&_.createElement(_.Fragment,null,E&&_.createElement(_.Fragment,null,_.createElement(Ea,{variant:"alarm",type:"error",title:gt.t(E)}),_.createElement(Xo,{size:12})),x&&_.createElement(_.Fragment,null,_.createElement(Ea,{variant:"alarm",type:"warning",title:Zn(x)}),_.createElement(Xo,{size:12})),_.createElement(jp,null,j.map((D,K)=>{let V=p.find(ot=>ot.name===D),ce=`wallet-${K}`,wt=K===j.length-1;return _.createElement("div",{key:ce},_.createElement(Dp,null,_.createElement(kr,{variant:"title",size:"xmedium"},gt.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),_.createElement(kr,{variant:"label",color:"$neutral700",size:"medium"},gt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),_.createElement(Xo,{size:24}),_.createElement(Fp,null,_.createElement(Ia,{chain:D,isSelected:q,selectWallet:ke,limit:gS,onShowMore:()=>C(V?.name??"")})),!wt&&_.createElement(Xo,{size:32}),wt&&s?.customDestination&&_.createElement(Hp,null,_.createElement(or,{onOpenChange:Ue,hasSelected:!0,open:I,triggerAnchor:"top",trigger:_.createElement(Kp,null,_.createElement("div",{className:"button__content"},_.createElement(uS,{size:18,color:"info"}),_.createElement(Xo,{size:4,direction:"horizontal"}),_.createElement(kr,{variant:"label",size:"medium",color:I?"$neutral600":void 0},gt.t("Send to a different address"))),_.createElement(er,{orientation:I?"up":"down"},_.createElement(aS,{size:10,color:"secondary"}))),onClickTrigger:()=>W(ot=>!ot)},_.createElement(Xp,{ref:l,style:{padding:0,paddingRight:m?"8px":"5px"},autoFocus:!0,placeholder:gt.t("Enter {blockchainName} address",{blockchainName:Pn(D,p)}),value:m||"",suffix:kt(),onChange:ot=>{let _o=ot.target.value;_o.length?h(_o.length?_o:null):(W(!1),h(null))},...!m&&{autoFocus:!0}})),R&&_.createElement("div",{className:Gp()},_.createElement(Ea,{variant:"alarm",type:"error",title:gt.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Jc,"ConfirmWalletsModal");import{i18n as _S}from"@lingui/core";import{Alert as PS,Button as $S,InfoIcon as DS}from"@rango-dev/ui";import He from"react";import{Alert as SS,Button as CS,Divider as Wa,NoRouteIcon as TS,RefreshIcon as kS,Typography as iu}from"@rango-dev/ui";import Qe from"react";import{i18n as Rc}from"@lingui/core";var hS=24,yS=60;function eu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:Rc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Rc.t("Reset")}},description:te().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:te().noResultError.description}}i(eu,"makeInfo");var Aa=(o=>(o[o.small=hS]="small",o[o.large=yS]="large",o))(Aa||{}),Na=(o=>(o.small="small",o.large="medium",o))(Na||{});import{styled as wr}from"@rango-dev/ui";var tu=wr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ou=wr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),nu=wr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),ru=wr("div",{padding:"$6 $0"});function jo(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=eu(o,r,()=>a(s,!0),e);return Qe.createElement(tu,null,Qe.createElement(TS,{size:Aa[n],color:"gray"}),Qe.createElement(Wa,{size:4}),Qe.createElement(iu,{variant:"title",size:Na[n]},te().noResultError.title),n==="large"&&Qe.createElement(Wa,{size:4}),!!l.description&&Qe.createElement(ou,{size:n},Qe.createElement(iu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Qe.createElement(Wa,{size:n==="large"?"24":"4"}),!!l.alert&&Qe.createElement(nu,{size:n},Qe.createElement(SS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Qe.createElement(CS,{size:"xsmall",type:l.alert.type,prefix:Qe.createElement(ru,null,Qe.createElement(kS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(jo,"NoResult");import{i18n as Ko}from"@lingui/core";import{Button as vS,Divider as xS,MessageBox as bS,Typography as IS,WarningIcon as ES}from"@rango-dev/ui";import Et from"react";import{Typography as pu}from"@rango-dev/ui";import Ma from"react";import{darkTheme as wS,styled as vr}from"@rango-dev/ui";var au=vr("div",{width:"100%"}),La=vr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),su=vr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${wS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lu=vr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function cu(t){let{title:e,value:o,valueColor:n}=t;return Ma.createElement(su,null,Ma.createElement(pu,{size:"medium",variant:"label",className:"_title"},e),Ma.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:Ko.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Ko.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Ko.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Ko.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return Et.createElement(ne,{footer:Et.createElement(vS,{type:"primary",size:"large",prefix:Et.createElement(ES,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Et.createElement(bS,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),Et.createElement(La,null,Et.createElement(xS,{size:"4"}),Et.createElement(IS,{size:"small",variant:"title"},Ko.t("Details")),Et.createElement(La,null,l.map((p,u)=>Et.createElement(cu,{key:u,...p})))))}i(uu,"HighValueLossWarningModal");import{i18n as Ba}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=Ba.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&&(bt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=te().highValueLossError.title),t.type===1&&(o.title=te().unknownPriceError.title),t.type===2&&(o.title=Ba.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=Ba.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(mu,"makeAlerts");import{i18n as bo}from"@lingui/core";import{Button as du,Divider as fu,MessageBox as AS,Typography as NS}from"@rango-dev/ui";import io from"react";import{useNavigate as WS}from"react-router-dom";function gu(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=WS(),u=e??o;return io.createElement(ne,{anchor:"bottom",open:n,prefix:io.createElement(du,{size:"small",variant:"ghost",onClick:()=>p("../"+Q.settings)},io.createElement(NS,{variant:"label",size:"medium",color:"$neutral900"},bo.t("Change settings"))),container:B(),onClose:r},io.createElement(AS,{type:"warning",title:s.type===3?bo.t("High slippage"):bo.t("Low slippage"),description:s.type===3?bo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):bo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},io.createElement(fu,{size:18}),io.createElement(fu,{size:32}),io.createElement(du,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},bo.t("Confirm anyway"))))}i(gu,"SlippageWarningModal");import{Button as LS,MessageBox as MS,WarningIcon as BS}from"@rango-dev/ui";import xr from"react";function hu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return xr.createElement(ne,{footer:xr.createElement(LS,{type:"primary",size:"large",prefix:xr.createElement(BS,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},xr.createElement(MS,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(hu,"UnknownPriceWarningModal");function Yo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,f={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,m=mu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),He.createElement(He.Fragment,null,d&&He.createElement(jo,{error:o,fetch:s}),!!m&&He.createElement(au,null,He.createElement(PS,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:He.createElement(lu,{onClick:l},He.createElement(DS,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:He.createElement($S,{size:"xxsmall",type:m.alertType,onClick:c},_S.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(uu,{...f,warning:e}),(e.type===3||e.type===2)&&He.createElement(gu,{...f,warning:e}),e.type===1&&He.createElement(hu,{...f,warning:e})))}i(Yo,"QuoteWarningsAndErrors");import fC from"bignumber.js";import Fr from"react";import{i18n as ao}from"@lingui/core";import{Alert as tC,Divider as Eo,FullExpandedQuote as oC,InfoIcon as nC,QuoteTag as rC,StepDetails as iC,TokenAmount as aC,Tooltip as Ku,Typography as Ao}from"@rango-dev/ui";import za from"bignumber.js";import $,{useRef as sC,useState as lC}from"react";import{styled as _a}from"@rango-dev/ui";var Pa=_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 br from"@radix-ui/react-collapsible";import{Button as FS,css as Zo,darkTheme as we,Image as Cu,styled as De,Typography as OS}from"@rango-dev/ui";var US=300,Tu=De(br.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$info300",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),ku=Zo({padding:"$10 $15"}),wu=De(FS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),vu=De("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$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),xu=Zo({width:"100%",padding:"$15 $15 $10 $15"}),bu=Zo({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Io=Zo({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Iu=Zo({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Eu=De(br.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$info300",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Au=De("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=De(Rn,{width:"100%",background:"inherit"}),$a=De("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${US}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),aB=De("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Wu=De("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Lu=De("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Da=De(OS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Mu=De("div",{display:"flex",flexWrap:"wrap"}),Fa=De("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=De("div",{display:"flex"}),Ir=De("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Ht}from"@lingui/core";import{ChevronDownIcon as qS,CloseIcon as QS,Divider as Nr,IconButton as HS,QuoteCost as GS,Tooltip as VS,Typography as at}from"@rango-dev/ui";import Y,{useState as Du}from"react";import{css as zS,styled as Er}from"@rango-dev/ui";var Ar=Er("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Oa=Er("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),_u=Er("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Pu=Er("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),$u=zS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var XS=i(t=>t.fee.isZero()?null:Y.createElement(Ar,null,Y.createElement(at,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(at,{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,f=s?.swaps??[],d=B(),m=up(f);return Y.createElement(Y.Fragment,null,Y.createElement(GS,{onClickFee:c?h=>{h.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Ht.t("View more info"):void 0,tooltipContainer:d}),Y.createElement(ne,{container:d,open:e,header:Y.createElement(Pu,null,Y.createElement(at,{variant:"title",size:"medium"},Ht.t("Gas & Fee Explanation")),Y.createElement(HS,{onClick:()=>o(!1),variant:"ghost"},Y.createElement(QS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(_u,null,Y.createElement(at,{variant:"title",size:"small"},Ht.t("Details")),Y.createElement(Nr,{size:10}),Object.entries(m.payable).flatMap(([h,S])=>S.map((T,g)=>{let C=`payable-fee-${g}`,k=zi(T);return Y.createElement(Ar,{key:C},Y.createElement(at,{variant:"label",size:"medium",color:"neutral600"},Di[h]),Y.createElement(VS,{content:le(T.amount),container:d},Y.createElement(at,{variant:"label",size:"medium"},N(T.amount,2,2)," ",T.asset.symbol," ($",N(k,4,4),")")))})),Y.createElement(Ar,{className:"total_payable_fee"},Y.createElement(at,{variant:"label",size:"medium"},Ht.t("Total Payable Fee")),Y.createElement(at,{variant:"label",size:"medium"},"$",N(l,4,4))),Y.createElement(Oa,null),Object.keys(m.nonePayable).length&&Y.createElement(or,{triggerAnchor:"bottom",onClickTrigger:()=>r(h=>!h),trigger:Y.createElement("div",{className:$u()},Y.createElement(at,{size:"small",variant:"body",color:"neutral700"},n?Ht.t("Hide non-payable fees"):Ht.t("Show non-payable fees")),Y.createElement(Nr,{size:4,direction:"horizontal"}),Y.createElement(er,{orientation:n?"up":"down"},Y.createElement(qS,{size:12,color:"gray"}))),open:n},Y.createElement(at,{size:"small",variant:"title"},Ht.t("Description")),Y.createElement(Nr,{size:4}),Y.createElement(at,{size:"small",variant:"body",color:"neutral700"},Ht.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),Y.createElement(Nr,{size:10}),Object.entries(m.nonePayable).map(([h,S],T)=>{let g=cp(S),C=Di[h],k=`non-payable-fee-${T}`;return Y.createElement(XS,{key:k,fee:g,label:C})}),Y.createElement(Oa,null)))))}i(Fu,"QuoteCostDetails");import{i18n as zu}from"@lingui/core";import{TokenAmount as qu}from"@rango-dev/ui";import Wr from"react";import{css as jS,styled as KS}from"@rango-dev/ui";var Ou=KS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Uu=jS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Jo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Wr.createElement(Ou,null,Wr.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}}),Wr.createElement("div",{className:Uu()}),Wr.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(Jo,"QuoteSummary");import{i18n as Xu}from"@lingui/core";import{ChevronDownIcon as JS,ChevronRightIcon as RS,Divider as Ua,Image as eC,Tooltip as Pr,Typography as Mr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as YS,useState as Ro}from"react";var Qu=480,Hu=768,Gu=1024,Vu=1200,ZS=i(()=>{let[t,e]=Ro(!1),[o,n]=Ro(!1),[r,a]=Ro(!1),[s,l]=Ro(!1),[p,u]=Ro(!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 YS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Lr=ZS;var Br=4,_r=6,en=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return F.createElement(Pr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Au,{className:n,state:a},F.createElement(eC,{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:f,isMobile:d}=Lr();return F.createElement(Eu,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(h=>!h)}},F.createElement("div",{className:Io()},F.createElement(Mr,{variant:"body",size:"xsmall"},Xu.t("Via:")),F.createElement(Ua,{direction:"horizontal",size:4}),r.map((m,h)=>{let S=`item-${h}`,T=F.createElement($a,null,F.createElement(RS,{size:12,color:"black"}));return d||f?F.createElement(F.Fragment,{key:S},F.createElement(en,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),h!==u-1&&F.createElement(F.Fragment,null,T)):F.createElement(F.Fragment,{key:S},u<=Br||u>Br&&h<Br-1?F.createElement(F.Fragment,null,F.createElement(en,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),h!==u-1&&F.createElement(F.Fragment,null,T)):h===Br-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Io()},T,r.map((g,C)=>{let k=`image-${C}`;return C>=h&&F.createElement(F.Fragment,{key:k},F.createElement(en,{content:g.swapper.displayName,src:g.swapper.image,state:g.state,open:!1}),C!==u-1&&F.createElement(F.Fragment,null,T))}))},F.createElement(Fa,{state:r.find((g,C)=>C>=h&&(g.state==="error"||g.state==="warning"))?.state},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",u-h))))})),F.createElement("div",{className:Io()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Io()},F.createElement(Mr,{variant:"body",size:"xsmall"},Xu.t("Chains:")),F.createElement(Ua,{direction:"horizontal",size:4}),c.map((m,h)=>F.createElement(F.Fragment,{key:m.displayName},c.length<=_r||c.length>_r&&h<_r-1?F.createElement(Pr,{container:p,side:"bottom",content:m.displayName,sideOffset:4},F.createElement(en,{content:"",src:m.image,open:!1,className:h!==0?"blockchainImage":""})):h===_r-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Io()},c.map((S,T)=>T>=h&&F.createElement(en,{key:S.displayName,content:"",src:S.image,open:!1,className:T>h?"blockchainImage":"",container:l})))},F.createElement(Fa,{className:"blockchainImage"},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",c.length-h))))),F.createElement(Ua,{direction:"horizontal",size:32}))),F.createElement($a,{orientation:a?"up":"down"},F.createElement(JS,{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:f=!1,container:d}=t,m=y().blockchains(),h=y().tokens(),S=y().swappers(),{customSlippage:T,slippage:g}=y(),C=T||g,[k,v]=lC(t.expanded),E=sC(null),b=N(o.value,6,6),x=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",I=je(o.usdValue,n.usdValue??null),W=N(I,2,2),L=bt(I??0),j=i((fe,ye)=>fe.map((P,Ue)=>{let ke,be=r?.type===3&&r.swap.swapperId===P.swapperId,Tt=r?.type===4&&r.recommendedSlippages?.has(Ue),kt=a?.type===2&&a.recommendedSlippages?.has(Ue),tt=be||Tt,ut=kt;tt?ke="error":ut&&(ke="warning");let D=tt?ao.t("Slippage Error"):ao.t("Slippage Warning");return be&&(D=ao.t("Bridge Limit Error")),{swapper:{displayName:Oo(P.swapperId,S),image:P.swapperLogo},from:{token:{displayName:P.from.symbol,image:P.from.logo},chain:{displayName:Ve(P.from.blockchain,m),image:P.from.blockchainLogo},price:{value:Ue===0&&!ye?N(o.value,6,6):N(P.fromAmount,6,6),usdValue:N((P.from.usdPrice??0)*parseFloat(P.fromAmount),4,4),realValue:le(Ue===0?o.value:P.fromAmount),realUsdValue:le(new za(P.from.usdPrice??0).multipliedBy(P.fromAmount))}},to:{token:{displayName:P.to.symbol,image:P.to.logo},chain:{displayName:Ve(P.to.blockchain,m),image:P.to.blockchainLogo},price:{value:N(P.toAmount,6,6),usdValue:N((P.to.usdPrice??0)*parseFloat(P.toAmount),4,4),realValue:le(P.toAmount),realUsdValue:le(new za(P.to.usdPrice??0).multipliedBy(P.toAmount))}},state:ke,alerts:tt||ut?$.createElement(yu,{dense:f},$.createElement(tC,{variant:"alarm",type:tt?"error":"warning",title:D,footer:$.createElement(Su,null,be&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ao.t({id:"Yours: {amount} {symbol}",values:{amount:N(P.fromAmount,6,6),symbol:P?.from.symbol}}))),(Tt||kt)&&!be&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ao.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Ue)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Ue)}}})),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ao.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:$o(P.estimatedTimeInSeconds),fee:N(Ui(P,h),2,2),internalSwaps:P.internalSwaps?j(P.internalSwaps):void 0}}),"getQuoteSteps"),M=j(e?.swaps??[]),U=M.length,J=d||B(),me=Lp(t.quote.tags||[]),z=!!c,A=$o(xn(e?.swaps)),oe=Qn(e?.swaps??[],h),q=N(oe,2,2),R=oe.gte(new za(rp));return f?$.createElement(oC,{selected:l,fee:q,time:A,tooltipContainer:Po(),steps:M,tags:me,feeWarning:R,percentageChange:W,warningLevel:L,outputPrice:{value:x,usdValue:w,realValue:le(n.value),realUsdValue:le(n.usdValue)}}):$.createElement(vu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:xu()},!p&&me.length?$.createElement($.Fragment,null,$.createElement(Bu,null,me.map((fe,ye)=>{let P=`${fe.value}_${ye}`;return $.createElement($.Fragment,{key:P},$.createElement(rC,{label:fe.label,value:fe.value}),$.createElement(Eo,{size:4,direction:"horizontal"}))})),$.createElement(Ir,null),!z&&$.createElement(Eo,{size:4})):null,$.createElement("div",{id:"portal-root",className:bu()},$.createElement(Fu,{quote:e,time:A,fee:q,feeWarning:R,showModalFee:u,steps:U}),z&&$.createElement(wu,{onClick:fe=>{fe.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Ao,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},ao.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:Iu()},$.createElement(Lu,null,$.createElement(nC,{size:12,color:"gray"})),$.createElement(Mu,null,$.createElement(Da,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),$.createElement(Ku,{content:le(n.value),container:J,open:n.value?void 0:!1},$.createElement(Da,{size:"small",variant:"body"},"\xA0",`${x} ${M[M.length-1].to.token.displayName}`))),$.createElement(Ku,{content:le(n.usdValue),container:J},$.createElement(Eo,{size:2,direction:"horizontal"}),$.createElement(Ao,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(aC,{tooltipContainer:J,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:le(n.value),realUsdValue:le(n.usdValue)},token:{displayName:M[U-1].to.token.displayName,image:M[U-1].to.token.image},chain:{image:M[U-1].to.chain.image},percentageChange:W,warningLevel:L}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Jo,{from:M[0].from,to:M[U-1].to,percentageChange:W,warningLevel:L}),$.createElement(Eo,{size:4}))),$.createElement(Tu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(ju,{type:s,quoteRef:E,selected:l,setExpanded:v,container:J,expanded:k,steps:M}),$.createElement(Nu,{open:k},$.createElement(Wu,null),$.createElement("div",{className:ku()},M.map((fe,ye)=>{let P=`item-${ye}`;return $.createElement(iC,{type:"quote-details",key:P,tooltipContainer:J,step:fe,hasSeparator:ye!==M.length-1,state:fe.state})})))))}i(qa,"Quote");import{Divider as mC,Skeleton as dC}from"@rango-dev/ui";import Nt from"react";import{darkTheme as pC,styled as $r}from"@rango-dev/ui";var Yu=$r("div",{$$color:"$colors$neutral100",[`.${pC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Zu=$r("div",{paddingTop:"$2"}),Ju=$r("div",{paddingLeft:"$8"}),Ru=$r("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 st,Skeleton as Ge}from"@rango-dev/ui";import H from"react";import{css as cC,styled as At}from"@rango-dev/ui";var Qa=At("div",{display:"flex"}),em=At("div",{padding:"$10 $0 $20"}),tm=At("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),om=At("div",{display:"flex",justifyContent:"start",alignItems:"center"}),nm=At("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),rm=At("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),im=At("div",{width:"65%",display:"flex",justifyContent:"start"}),am=At("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),sm=At("div",{padding:"$15 $0 $15 $0"}),lm=cC({display:"flex",justifyContent:"space-between",alignItems:"center"});function tn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(nm,null,H.createElement(im,null,H.createElement(pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(st,{size:8,direction:"horizontal"}),H.createElement(am,null,H.createElement(Ge,{height:10,width:60,variant:"rounded"}),H.createElement(st,{size:4}),H.createElement(Ge,{height:15,variant:"rounded"}))),H.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Qa,null,H.createElement(Ge,{width:65,height:20,variant:"rounded"}),H.createElement(st,{size:4,direction:"horizontal"}),H.createElement(Ge,{width:65,height:20,variant:"rounded"}),H.createElement(st,{size:4,direction:"horizontal"}),H.createElement(Ge,{width:65,height:20,variant:"rounded"})),H.createElement(Ir,null),!r&&H.createElement(st,{size:4})),H.createElement("div",{className:lm()},H.createElement(Qa,null,H.createElement(Ge,{width:60,height:10,variant:"rounded"}),H.createElement(st,{size:4,direction:"horizontal"}),H.createElement(Ge,{width:60,height:10,variant:"rounded"}),H.createElement(st,{size:4,direction:"horizontal"}),H.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(em,null,H.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(tm,null,H.createElement(om,null,H.createElement(pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(st,{direction:"horizontal",size:4}),H.createElement(Ge,{height:15,width:150,variant:"rounded"})),H.createElement(st,{size:10}),H.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(st,{size:4}),H.createElement(sm,null,n,H.createElement(rm,null),n),H.createElement(st,{size:12})))}i(tn,"QuoteSummarySkeleton");import{ChainToken as fm,Divider as Ga,NextIcon as uC,Skeleton as Dr}from"@rango-dev/ui";import ve from"react";import{styled as on}from"@rango-dev/ui";var cm=on("div",{display:"flex",alignItems:"start"}),um=on("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ha=on("div",{display:"flex",alignItems:"center",flexGrow:1}),mm=on("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dm=on("div",{display:"flex",alignItems:"center"});function ht(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(dm,null,ve.createElement(Dr,{height:22,width:22,variant:"circular"}),ve.createElement(Ga,{direction:"horizontal",size:8}),ve.createElement(Dr,{height:15,width:148,variant:"rounded"})),ve.createElement(cm,null,ve.createElement(Ru,{hideSeparator:!e}),ve.createElement(um,{extraSpace:e},ve.createElement(Ha,null,ve.createElement(fm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Ga,{direction:"horizontal",size:8}),ve.createElement(Dr,{height:12,variant:"rounded"})),ve.createElement(mm,null,ve.createElement(uC,{color:"gray",size:16})),ve.createElement(Ha,null,ve.createElement(fm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Ga,{direction:"horizontal",size:8}),ve.createElement(Dr,{height:12,variant:"rounded"})))))}i(ht,"StepSkeleton");function nn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Nt.createElement(Yu,{expanded:o,rounded:e!=="basic"},Nt.createElement(tn,{type:e,tagHidden:n}),Nt.createElement(Zu,null,Nt.createElement(dC,{height:15,variant:"rounded"})),o&&Nt.createElement(Ju,null,Nt.createElement(mC,{size:24}),Nt.createElement(ht,null),Nt.createElement(ht,null),Nt.createElement(ht,{separator:!1})))}i(nn,"QuoteSkeleton");function so(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:f,fullExpandedMode:d=!1,container:m}=t,{inputAmount:h,inputUsdValue:S,toToken:T}=X(),g=e?.outputAmount?new fC(e?.outputAmount):null,C=e?.outputAmount?Gn(e?.outputAmount,Xn(e)||T?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Fr.createElement(Pa,null,Fr.createElement(nn,{tagHidden:l,type:o,expanded:s})):v?Fr.createElement(Pa,{onClick:()=>p?.(e)},Fr.createElement(qa,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:d,input:{value:h,usdValue:S?.toString()??""},output:{value:g?.toString()??"",usdValue:C?.toString()??""}})):null}i(so,"QuoteInfo");import{calculatePendingSwap as SC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as CC}from"react";import{useRef as gC,useState as hC}from"react";var yC=2e3;function Or({request:t}){let[e,o]=hC(!1),n=gC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,yC)),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(Or,"useFetch");function gm(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await $t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(gm,"useFetchConfirmQuote");function Ur(t){if(!t.swaps)throw new Error(te().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Va(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ur,"throwErrorIfResponseIsNotValid");function Va(t){if(sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=lp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=mp(t);if(o){let n=Hn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Va,"getQuoteError");function hm(t,e,o){let n=!1;t&&(n=Ep(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=fo(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Sp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(mo(e)),percentageChange:N(je(mo(t)??"",mo(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=Cp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(hm,"generateWarnings");function zr(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(zr,"handleQuoteErrors");function Xa(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=X(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),f=y().blockchains(),d=y().tokens(),m=u||p,{fetch:h,cancelFetch:S,loading:T}=gm();return CC(()=>S,[]),{loading:T,fetch:i(async C=>{let k=C.selectedWallets,v=C?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let E=k.reduce((x,w)=>(x[w.chain]=w.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await h(b,!0).then(x=>{let{result:w}=x;Ur({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let I={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(I);let W={slippage:m.toString(),disabledSwappersGroups:c},L=hm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:f,tokens:d},selectedWallets:k,userSlippage:m});L.quoteUpdate&&s(!1),l();let j=!!L.balance,M=SC(o.toString(),w,hp(k),W,!j,{blockchains:f,tokens:d});return{quote:I,swap:M,error:null,warnings:L}})}catch(x){return zr(x)}},"fetch"),cancelFetch:S}}i(Xa,"useConfirmSwap");var AC=wC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Sm}`]:{width:"$48",height:"$48"}}),NC=Ya({flexGrow:1,paddingRight:"$10"}),WC=Ya({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),LC=Ya({display:"flex",justifyContent:"space-between",alignItems:"center"});function Cm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=X(),s=EC(),[l,p]=rn(""),u=!n,[c,f]=rn(!1),[d,m]=rn(!1),{isActiveTab:h}=re(),S=y().getDisabledLiquiditySources(),T=IC(S),{manager:g}=TC(),{fetch:C,loading:k,cancelFetch:v}=Xa(),[E,b]=rn({swap:null,error:null,warnings:null}),[x,w]=rn(!1),I=i(async({selectedWallets:z,customDestination:A})=>{let oe=await C?.({selectedWallets:z,customDestination:A});return b(oe),oe},"onConfirmSwap"),W=i(async()=>{if(E.swap&&n)try{await g?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let z=`../${Q.swaps}/${E.swap.requestId}`;s(z,{replace:!0}),setTimeout(()=>{e("")},0)}catch(z){p("Error: "+z?.message)}},"addNewSwap"),L=i(async()=>{m(!0),await W(),m(!1)},"onConfirm"),j=i(async()=>{E?.warnings?.quote&&!a?w(!0):await L()},"onStartConfirmSwap"),M=i(async()=>{b({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(z=>{b(z)}).catch(z=>console.error(z))},"onRefresh");qr(()=>{!!T.current.length&&!S.length&&M(),T.current=S},[S.length]),qr(()=>{u&&v()},[u]),qr(()=>{u&&f(u)},[u]),qr(()=>{u||C({selectedWallets:o,customDestination:r}).then(z=>b(z)).catch(z=>console.error(z))},[]),bC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let U=E.warnings?.quote??null,J=E.error,me=[];if(l&&me.push(xe.createElement(ym,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&me.push(xe.createElement(ym,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Zn(E.warnings.quoteUpdate)})),U||J){let z=`../${Q.settings}`;me.push(xe.createElement(Yo,{warning:U,error:J,couldChangeSettings:!1,refetchQuote:M,showWarningModal:x,confirmationDisabled:!h,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await W()},onChangeSettings:()=>s(z)}))}return xe.createElement(se,{header:{title:ja.t("Confirm Swap"),onWallet:()=>{let z=`../${Q.wallets}`;s(z)}},footer:xe.createElement(AC,null,xe.createElement("div",{className:NC()},xe.createElement(kC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!E.error||!h,onClick:j},ja.t("Start Swap"))),xe.createElement(Sm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!h,onClick:f.bind(null,!0)},xe.createElement(xC,{size:24})))},c&&xe.createElement(Jc,{open:c,onClose:()=>f(!1),onCancel:v,loading:k,onCheckBalance:I}),xe.createElement(ue,null,xe.createElement("div",{className:LC()},xe.createElement(vC,{variant:"title",size:"small"},ja.t("You get")),xe.createElement("div",{className:WC()},xe.createElement(cr,{onClick:!k&&!c&&!x?M:void 0}))),xe.createElement(Ka,{size:"12"}),Rp(me.map((z,A)=>({element:z,key:`alert-${A}`})),xe.createElement(Ka,{size:10})),me.length>0?xe.createElement(Ka,{size:10}):null,xe.createElement(so,{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 Hr}from"@lingui/core";import{useManager as XC}from"@rango-dev/queue-manager-react";import{Divider as Wm,NotFound as jC,styled as KC}from"@rango-dev/ui";import Lt,{useState as YC}from"react";import{useNavigate as ZC}from"react-router-dom";import{i18n as _C}from"@lingui/core";import{Divider as xm,GroupedVirtualizedList as PC,Skeleton as $C,SwapListItem as bm,Typography as DC}from"@rango-dev/ui";import Fe,{useCallback as Im,useEffect as FC,useRef as OC,useState as UC}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 MC,darkTheme as BC,styled as an}from"@rango-dev/ui";var Za=MC(),km=an("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ja=an("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Za}`]:{$$color:"$colors$neutral600",[`.${BC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ra=an("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),wm=an("div",{gap:"$10",display:"flex",flexDirection:"column"}),vm=an("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var zC=10;function es(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=UC([]),l=OC(0),{swaps:p,groupCounts:u,groups:c}=n(e),f=Im(Tm,[]),d=Im(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,zC),s(f(u,l.current)))},[e.length]);if(FC(()=>{r||d()},[r,d]),r){let m=[1,2];return Fe.createElement(Fe.Fragment,null,[m,m].map((S,T)=>Fe.createElement(Ja,{key:T},Fe.createElement(Ra,null,Fe.createElement($C,{variant:"text",width:60,size:"small"}),Fe.createElement(xm,{size:16})),Fe.createElement(xm,{size:4}),Fe.createElement(wm,null,S.map((C,k)=>Fe.createElement(bm,{isLoading:!0,key:k}))))))}return Fe.createElement(PC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>Fe.createElement(Ja,null,Fe.createElement(Ra,null,Fe.createElement(DC,{variant:"label",size:"medium",className:Za()},c[m]))),itemContent:(m,h)=>{let S=p[m];if(!S)return null;let T=S.steps[0],g=S.steps[S.steps.length-1];return Fe.createElement(km,{key:S.requestId},Fe.createElement(bm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[h]===_C.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:le(S.inputAmount)},to:{token:{image:g.toLogo,displayName:g.toSymbol},blockchain:{image:g.toBlockchainLogo||""},amount:N(g.outputAmount||g.expectedOutputAmountHumanReadable||"",6,6),realAmount:le(g.outputAmount||g.expectedOutputAmountHumanReadable)}}}))}})}i(es,"HistoryGroupedList");import{CloseIcon as QC,IconButton as HC,SearchIcon as GC,TextField as VC}from"@rango-dev/ui";import sn from"react";import{styled as qC}from"@rango-dev/ui";var Em=qC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Wt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return sn.createElement(VC,{prefix:sn.createElement(Em,null,sn.createElement(GC,{color:"black"})),suffix:!!s.length&&sn.createElement(HC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},sn.createElement(QC,{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(Wt,"SearchInput");import{i18n as Qr}from"@lingui/core";import Am from"dayjs";var Nm=i(t=>{let e=new Map([["today",{title:Qr.t("Today"),swaps:[]}],["week",{title:Qr.t("This week"),swaps:[]}],["month",{title:Qr.t("This month"),swaps:[]}],["year",{title:Qr.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 f=new Date(u).getFullYear().toString();o(f,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 JC=KC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),RC=i((t,e)=>t?.length?t.filter(o=>mt(o.fromBlockchain,e)||mt(o.toBlockchain,e)||mt(o.toSymbol,e)||mt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Lm(){let t=ZC(),{manager:e,state:o}=XC(),n=Ze(e).map(({swap:c})=>c),[r,a]=YC(""),s=!o.loadedFromPersistor,l=i(c=>{let f=c.target.value;a(f)},"searchHandler"),p=n;r&&(p=n.filter(c=>mt(c.inputAmount,r)||mt(c.status,r)||RC(c.steps,r)||mt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(se,{header:{title:Hr.t("History")}},Lt.createElement(ue,null,Lt.createElement(Wt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Hr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Wm,{size:"16"}),Lt.createElement(JC,null,u&&Lt.createElement(vm,null,Lt.createElement(Wm,{size:32}),Lt.createElement(jC,{title:Hr.t("No results found"),description:r?Hr.t("Try using different keywords"):""})),!u&&Lt.createElement(es,{list:p,onSwapClick:t,groupBy:Nm,isLoading:s}))))}i(Lm,"HistoryPage");import{i18n as ST}from"@lingui/core";import{Button as CT,Divider as Km,styled as TT,WarningIcon as kT}from"@rango-dev/ui";import wT from"bignumber.js";import ze,{useEffect as Ym,useState as Zm}from"react";import{useNavigate as vT}from"react-router-dom";import{i18n as iT}from"@lingui/core";import{Header as aT}from"@rango-dev/ui";import Gt,{useEffect as sT,useState as lT}from"react";import{i18n as tT}from"@lingui/core";import{Divider as os,FullExpandedQuote as oT,Typography as nT}from"@rango-dev/ui";import ge from"react";import{styled as ts}from"@rango-dev/ui";var Mm=ts("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Bm=ts("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),_m=ts("div",{width:"146px"});import{i18n as ln}from"@lingui/core";import{Select as eT}from"@rango-dev/ui";import Pm from"react";function Gr(t){let{updateQuotePartialState:e,sortStrategy:o}=X(),n=[{value:"SMART",label:ln.t("Smart Routing")},{value:"FEE",label:ln.t("Lowest Fee")},{value:"SPEED",label:ln.t("Fastest Transfer")},{value:"NET_OUTPUT",label:ln.t("Maximum Return")},{value:"PRICE",label:ln.t("Maximum Output")}];return Pm.createElement(_m,null,Pm.createElement(eT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Gr,"SelectStrategy");var $m=3;function pn(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:f,toToken:d,sortStrategy:m,error:h}=X(),{slippage:S,customSlippage:T}=y(),g=y().tokens(),C=l||B(),k=!!u&&u.results.length,v=T??S,E=i(w=>{if(!f||!d||!u)return null;let I={requestAmount:u.requestAmount,...w};return fo(I,{fromToken:f,toToken:d,userSlippage:v,tokens:g})},"getQuoteWarning"),b=h?.type===0||h?.type===1,x=u?.results?jn(m,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement(Bm,null,ge.createElement(nT,{size:"xmedium",variant:"title"},tT.t("Sort by")),ge.createElement(Gr,{container:C})),ge.createElement(os,{size:"10"})),e&&Array.from({length:$m},(w,I)=>ge.createElement(ge.Fragment,{key:I},s?ge.createElement(oT,{loading:!0}):ge.createElement(nn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==$m-1&&ge.createElement(os,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?x.map((w,I)=>{let W=E(w),L=Va(w.swaps),j=x.length-1===I;return ge.createElement(ge.Fragment,{key:w.requestId},ge.createElement(so,{showModalFee:r,container:C,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:L?.options||null,warning:W,fullExpandedMode:s,onClick:M=>{L||c("warning",W),c("error",L?.options||null),o(M)},type:"list-item"}),!j&&ge.createElement(os,{size:16}))}):b&&ge.createElement(Mm,null,ge.createElement(jo,{size:s?"large":"small",error:h,fetch:n}))))}i(pn,"Quotes");import{darkTheme as rT,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",[`.${rT} &`]:{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 pT=100;function ns(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=lT(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",f=Po();return sT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},pT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Gt.createElement(Fm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${dr()}`,id:Se.EXPANDED_BOX_ID},Gt.createElement(aT,{title:iT.t("Routes"),suffix:Gt.createElement(Gt.Fragment,null,Gt.createElement(Gr,{container:f}),Gt.createElement(oo,{container:f,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Gt.createElement(Om,null,Gt.createElement(pn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Po(),onClickOnQuote:n,fullExpandedMode:c})))}i(ns,"ExpandedQuotes");import{i18n as Vm}from"@lingui/core";import{SwapInput as Xm}from"@rango-dev/ui";import cn from"react";import{ReverseIcon as mT}from"@rango-dev/ui";import is from"react";import{keyframes as cT,styled as Um}from"@rango-dev/ui";var rs=450,uT=cT({"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:`${uT} ${rs}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 as(){let t=X.use.switchFromAndTo();return is.createElement(zm,null,is.createElement(qm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},rs),t()}},is.createElement(mT,{size:12})))}i(as,"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 ss(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:f,outputAmount:d,outputUsdValue:m,selectedQuote:h}=X(),{connectedWallets:S,getBalanceFor:T}=ee(),g=a?T(a):null,C=Wn(g)?.amount??"0",k=s&&a?N(g?.amount,g?.decimals):"0",v=!!s&&Nl(S,s.name),E=!Oi(h,c,f),b=!Oi(h,c,m),x=!f||!m||!m.gt(0)?null:je(f.toString(),m.toString());return cn.createElement(Hm,null,cn.createElement(Gm,null,cn.createElement(Xm,{label:Vm.t("From"),mode:"From",onInputChange:u,balance:C,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(f,4,4),realUsdValue:E?void 0:le(f),error:E?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),cn.createElement(as,null)),cn.createElement(Xm,{sharpBottomStyle:!r&&(!!h||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(je(f,m),2,2),warningLevel:bt(x??0),price:{value:N(d,6,6),usdValue:b?void 0:N(m,4,4),realValue:le(d),realUsdValue:b?void 0:le(m),error:b?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ss,"Inputs");import{useCallback as dT,useEffect as fT,useRef as gT,useState as hT}from"react";function jm(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await $t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(jm,"useFetchAllQuotes");var yT=600;function Vr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=jm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=ee.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:f,selectedQuote:d,sortStrategy:m,resetQuote:h,error:S,warning:T,setSelectedQuote:g,updateQuotePartialState:C}=X(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=y(),I=y().getLiquiditySources(),W=y().getDisabledLiquiditySources(),L=y().excludeLiquiditySources(),[j,M]=hT(!0),U=gT(c),J=v??k,z=!p||!u||Pe(p,u)||!Do(c),A=i(R=>{M(R)},"resetState"),oe=i(R=>{let{fromToken:fe,toToken:ye,inputAmount:P,liquiditySources:Ue,excludeLiquiditySources:ke,disabledLiquiditySources:be,slippage:Tt,affiliateRef:kt,affiliatePercent:tt,affiliateWallets:ut}=R;if(j||A(!0),!z&&fe&&ye){h();let D=gp({fromToken:fe,toToken:ye,inputAmount:P,liquiditySources:Ue,excludeLiquiditySources:ke,disabledLiquiditySources:be,wallets:s,slippage:Tt,affiliateRef:kt,affiliatePercent:tt,affiliateWallets:ut,enableCentralizedSwappers:a});zl("experimentalRoute",r)&&(D.experimental=!0),e(D).then(K=>{let V=jn(m,K.results),ce=Wp(d,V,K.requestAmount);M(!1),C("quotes",K),g(ce),Ur({diagnosisMessages:K.diagnosisMessages,requestId:ce?.requestId||"",swaps:ce?.swaps});let wt=ce&&fo(ce,{fromToken:fe,toToken:ye,userSlippage:J,tokens:l});C("warning",wt)}).catch(K=>{let{error:V}=zr(K);(V?.type===0||V?.type===1)&&h(),V?.type!==2&&(C("error",V),M(!1))})}},"fetch"),q=dT(gl(R=>{oe(R)},yT),[z]);return fT(()=>{if(!t){M(!1);return}if(w!=="success")return;if(z){M(!1),(d||S||T)&&h();return}if(!Do(c)||f?.eq(0)){A(!1),o();return}h(),A(!0);let R=oe;return U.current&&U.current!=c&&(R=q),U.current=c,R({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:J,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,z,I?.length,n,W.length,J,b,E,JSON.stringify(x)]),{fetch:()=>oe({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:J,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:j}}i(Vr,"useSwapInput");var xT=TT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),bT=300;function Jm(){let t=vT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:f,updateQuotePartialState:d}=X(),[m,h]=Zm(!1),{isLargeScreen:S,isExtraLargeScreen:T}=Lr(),{fetch:g,loading:C}=Vr({refetchQuote:a}),{config:k,fetchStatus:v}=y(),{connectedWallets:E}=ee(),{isActiveTab:b}=re(),[x,w]=Zm(!1),W=pp({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=$l(S,T,k?.variant),j=!!n&&!!e&&!!o&&new wT(n).gt(0)&&!xp(e,o),M=j&&v==="success"&&C,me=(!L||L&&p?.results.length)&&(l||s);Ym(()=>{c(),d("refetchQuote",!0)},[]),Ym(()=>{h(j)},[j]);let z=(r||s)&&!x?g:void 0,A=i(q=>{L&&m?(h(!1),setTimeout(()=>{t(q)},bT)):t(q)},"onHandleNavigation"),oe=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return ze.createElement(xT,null,ze.createElement(se,{height:"auto",footer:ze.createElement(CT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&ze.createElement(kT,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?A(Q.wallets):W.action==="confirm-warning"?w(!0):A(Q.confirmSwap)}},W.title),header:{onWallet:()=>{A(Q.wallets)},hasBackButton:!1,title:k.title||ST.t("Swap"),suffix:ze.createElement(oo,{hidden:L?["refresh"]:void 0,onClickRefresh:z,onClickHistory:()=>A(Q.swaps),onClickSettings:()=>{A(Q.settings)}})}},ze.createElement(ue,null,ze.createElement(ss,{fetchingQuote:M,fetchMetaStatus:v,isExpandable:L,onClickToken:q=>{A(q==="from"?Q.fromSwap:Q.toSwap)}}),ze.createElement(Km,{size:"2"}),L?null:ze.createElement(so,{quote:r,loading:M,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),A(Q.routes)}:void 0}),me?ze.createElement(ze.Fragment,null,ze.createElement(Km,{size:"10"}),ze.createElement(Yo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:g,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),f(!0),A(Q.confirmSwap)},onChangeSettings:()=>A(Q.settings)})):null)),L?ze.createElement(ns,{loading:M,onClickOnQuote:oe,fetch:g,onClickRefresh:z,isVisible:m}):null)}i(Jm,"Home");import{i18n as Rm}from"@lingui/core";import{Alert as IT,Divider as ET,List as AT,ListItemButton as NT,Radio as WT,RadioRoot as LT,Typography as MT}from"@rango-dev/ui";import yt from"react";function Vt(){let{setLanguage:t,language:e,config:o}=y(),n=Ql,r=o?.language||Uo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Uo),resetLanguage:()=>t(null)}}i(Vt,"useLanguage");function ed(){let{activeLanguage:t,changeLanguage:e,languages:o}=Vt(),n=Ye(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:yt.createElement(MT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:yt.createElement(WT,{value:s}),start:yt.createElement(p,null)}});return yt.createElement(se,{header:{title:Rm.t("Language")}},yt.createElement(ue,null,yt.createElement(IT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),yt.createElement(ET,{size:"8"}),yt.createElement(LT,{value:t},yt.createElement(AT,{type:yt.createElement(NT,{title:Rm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(ed,"LanguagePage");import{i18n as Mt}from"@lingui/core";import{Button as DT,Checkbox as FT,Image as OT,ListItemButton as UT,NotFound as zT,Typography as qT}from"@rango-dev/ui";import Oe,{useState as QT}from"react";import{Checkbox as PT,Skeleton as od}from"@rango-dev/ui";import mn from"react";import{styled as ls}from"@rango-dev/ui";var un=ls("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ps=ls("div",{width:80,display:"flex",justifyContent:"flex-end"}),cs=ls("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as BT,styled as _T}from"@rango-dev/ui";var td=_T(BT,{height:61});var $T=30;function us(){return mn.createElement(un,null,Array.from(Array($T),(t,e)=>mn.createElement(td,{hasDivider:!0,key:e,start:mn.createElement(od,{variant:"circular",width:35,height:35}),title:mn.createElement(od,{variant:"text",size:"large",width:90}),end:mn.createElement(PT,{checked:!1})})))}i(us,"LoadingLiquiditySourceList");function ms({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=QT(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=$n(o,n),u={Exchanges:Mt.t("Exchanges"),Bridges:Mt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let f=p.filter(g=>c.includes(g.type)),d=f.length===f.filter(g=>g.selected).length,m=i(()=>{f.forEach(g=>{d?s(g.groupTitle):g.selected||s(g.groupTitle)})},"toggleAllSources"),h=f.map(g=>{let{selected:C,groupTitle:k,logo:v}=g;return{start:Oe.createElement(OT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Oe.createElement(FT,{checked:C,disabled:l}),title:Oe.createElement(qT,{variant:"title",size:"xmedium"},Mt.t(k)),...g}}),S=i(g=>{let C=g.target.value;a(C)},"searchHandler"),T=h;return r&&(T=h.filter(g=>mt(g.groupTitle,r))),Oe.createElement(se,{header:{title:Mt.t(t),suffix:Oe.createElement(ps,null,Oe.createElement(DT,{variant:"ghost",size:"xsmall",onClick:m},d?Mt.t("Deselect all"):Mt.t("Select all")))}},Oe.createElement(ue,{view:!0},Oe.createElement(Wt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Mt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Oe.createElement(us,null),!T.length&&r?Oe.createElement(cs,null,Oe.createElement(zT,{title:Mt.t("No results found"),description:Mt.t("Try using different keywords")})):e==="success"&&Oe.createElement(un,{disabled:l},T.map(g=>{let{groupTitle:C,...k}=g;return Oe.createElement(Oe.Fragment,{key:g.id},Oe.createElement(UT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ms,"LiquiditySourcePage");import{i18n as HT}from"@lingui/core";import Xr from"react";import{useNavigate as GT}from"react-router-dom";function nd(){let t=GT(),e=Ye(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=X(),{fetch:l,loading:p}=Vr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${Q.settings}`,f=`../${Q.wallets}`;return Xr.createElement(se,{header:{onWallet:()=>{t(f),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:HT.t("Routes"),suffix:Xr.createElement(oo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Xr.createElement(ue,null,Xr.createElement(pn,{fetch:l,loading:p,onClickOnQuote:u})))}i(nd,"RoutesPage");import{i18n as ud}from"@lingui/core";import{Divider as md,getCategoriesCount as ek,SelectableCategoryList as tk}from"@rango-dev/ui";import Bt,{useState as dd}from"react";import{i18n as ds}from"@lingui/core";import{Divider as pd,Image as KT,ListItemButton as YT,NotFound as ZT,Typography as cd}from"@rango-dev/ui";import Je,{useEffect as JT,useState as RT}from"react";var rd=i((t,e,o)=>t.filter(n=>vn(n.type,o)).filter(n=>vt(n.name,e)||vt(n.displayName,e)),"filterBlockchains");import{ImageContainer as VT,styled as id}from"@rango-dev/ui";var ad=id("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),jr=id(Go,{padding:0,margin:0,listStyle:"none",[`& ${VT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as XT,Skeleton as sd}from"@rango-dev/ui";import Kr from"react";var jT=20;function ld(){return Kr.createElement(jr,null,Array.from(Array(jT),t=>Kr.createElement(XT,{key:t,hasDivider:!0,start:Kr.createElement(sd,{variant:"circular",width:35,height:35}),title:Kr.createElement(sd,{variant:"text",size:"large",width:90})})))}i(ld,"LoadingBlockchainList");function fs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=RT(e),{fetchStatus:l}=y();JT(()=>{s([...rd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Je.createElement(Je.Fragment,null,Je.createElement(pd,{size:32}),Je.createElement(ZT,{title:ds.t("No results found"),description:ds.t("Try using different keywords")})):Je.createElement(jr,{as:"ul",key:`${r}-${o}`},a.map(u=>Je.createElement(YT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Je.createElement(KT,{src:u.logo,size:30}),title:Je.createElement(cd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Je.createElement(ad,null,Je.createElement(cd,{variant:"label",size:"large"},ds.t("Select Blockchain")),Je.createElement(pd,{size:4}),l==="loading"&&Je.createElement(ld,null),l==="success"&&p())}i(fs,"BlockchainList");function gs(t){let{type:e}=t,o=Ye(),[n,r]=dd(""),[a,s]=dd("ALL"),l=X.use.setToBlockchain(),p=X.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),d=ek(c)!==1;return Bt.createElement(se,{header:{title:ud.t("Select Blockchain")}},Bt.createElement(ue,{view:!0},d&&Bt.createElement(Bt.Fragment,null,Bt.createElement(tk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Bt.createElement(md,{size:24})),Bt.createElement(Wt,{value:n,autoFocus:!0,placeholder:ud.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Bt.createElement(md,{size:16}),Bt.createElement(fs,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(gs,"SelectBlockchainPage");import{i18n as ei}from"@lingui/core";import{Divider as _d}from"@rango-dev/ui";import lo,{useState as Sk}from"react";import{useNavigate as Ck}from"react-router-dom";import{i18n as Ss}from"@lingui/core";import{BlockchainsChip as Yr,Divider as yd,Image as Sd,Skeleton as ak,Tooltip as sk,Typography as Cs}from"@rango-dev/ui";import We from"react";import{useEffect as rk}from"react";var fd=["ETH","COSMOS","OSMOSIS"];function hs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ok),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(nk(s)),r=n.splice(a)}return{list:n,more:r}}i(hs,"prepare");function ok(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(ok,"sortByMostUsedBlockchains");function nk(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(nk,"generateSortByPreferredBlockchainsFor");function gd(t,e){return!!e.list.find(o=>o.name===t)}i(gd,"isInVisibleList");function ys(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();rk(()=>{if(e?.selected){let a=hs(t,o,e);gd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=hs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ys,"usePrepareBlockchainList");import{styled as ik}from"@rango-dev/ui";var hd=ik("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var lk=12;function Ts(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ys(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=X.use.resetToBlockchain(),u=X.use.resetFromBlockchain(),c=s.more.length>0,f=s.more.length===1,d=!f&&c;return We.createElement(We.Fragment,null,We.createElement(yd,{size:12}),We.createElement(Cs,{variant:"label",size:"large"},Ss.t("Select Blockchain")),We.createElement(yd,{size:12}),We.createElement(hd,null,l==="loading"&&Array.from(Array(lk),m=>We.createElement(ak,{key:m,variant:"rounded",height:50})),l==="success"&&We.createElement(We.Fragment,null,We.createElement(Yr,{selected:!n,onClick:()=>{o==="from"?u():p()}},We.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss.t("All"))),s.list.map(m=>We.createElement(sk,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:B()},We.createElement(Yr,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},We.createElement(Sd,{src:m.logo,size:30})))),f?We.createElement(Yr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},We.createElement(Sd,{src:s.more[0].logo,size:30})):null,d?We.createElement(Yr,{onClick:a,key:"more-blockchains"},We.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss._("More +{count}",{count:s.more.length}))):null)))}i(Ts,"BlockchainsSection");import{i18n as Ws}from"@lingui/core";import{darkTheme as Nd,Divider as Wo,ExternalLinkIcon as uk,Image as mk,ListItemButton as dk,NotFound as fk,PinIcon as gk,Skeleton as Wd,Typography as Rr,VirtualizedList as hk}from"@rango-dev/ui";import G,{useEffect as Ld,useState as Md}from"react";import{Divider as Ed,ListItem as ck,Skeleton as dn}from"@rango-dev/ui";import lt from"react";import{css as No,darkTheme as Cd,ImageContainer as pk,styled as Re,Typography as Td}from"@rango-dev/ui";var ks=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ws=No({position:"relative",height:12,width:"30%",maxWidth:"150px"}),vs=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),xs=No({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"}}),bs=No({}),Is=No(),kd=Re("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Es=Re("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Zr=Re("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ws}`]:{[`& .${xs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${bs}`]:{bottom:"-15px"},[`& .${ks}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${vs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),As=Re("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ns=Re(Td,{}),wd=Re("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Is}`]:{$$color:"$colors$neutral600",[`.${Cd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Jr=Re("div",{display:"flex",alignItems:"end",flexDirection:"column"}),HO=Re("div",{display:"flex",alignItems:"center"}),vd=Re("div",{position:"relative",[`& ${pk}`]:{borderRadius:"$xm",overflow:"hidden"}}),xd=Re("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),bd=Re(Td,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Id=Re("a",{"& svg:hover":{color:"$colors$info"}});function Ad(t){return lt.createElement(Zr,null,Array.from(Array(t.size),e=>lt.createElement(ck,{key:e,hasDivider:!0,start:lt.createElement(dn,{variant:"circular",width:35,height:35}),end:lt.createElement(Jr,null,lt.createElement(dn,{variant:"text",size:"large",width:70}),lt.createElement(Ed,{size:4}),lt.createElement(dn,{variant:"text",size:"medium",width:50})),title:lt.createElement("div",null,lt.createElement(dn,{variant:"text",size:"large",width:90}),lt.createElement(Ed,{size:4}),lt.createElement(dn,{variant:"text",size:"medium",width:90}))})))}i(Ad,"LoadingTokenList");var Ls=20,yk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:ws()},o?G.createElement("div",{className:ks()},o):G.createElement(Es,{className:vs()},G.createElement(Rr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(As,{css:a},G.createElement(Ns,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${xs()} ${!o&&bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Wo,{size:4,direction:"horizontal"}),G.createElement(Id,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(uk,{size:12}))))},"renderDesc");function Bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Md(e),l=y().fetchStatus,p=y().blockchains(),[u,c]=Md(!0),{getBalanceFor:f,loading:d}=ee(),{isTokenPinned:m}=y(),h=i(()=>{s(e.slice(0,a.length+Ls))},"loadNextPage");Ld(()=>{c(e.length>a.length)},[a.length]),Ld(()=>{s(e.slice(0,Ls))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Wo,{size:32}),G.createElement(fk,{title:Ws.t("No results found"),description:Ws.t("Try using different keywords")})):G.createElement(hk,{endReached:u?h:void 0,itemContent:T=>{let g=a[T],C=Wn(f(g)),k=g.address||"",v=p.find(I=>I.name===g.blockchain),E=ir(v?.color||"",Zp(v?.color||"")?5:125),b=ir(v?.color||"",-100),x={$$color:E,[`.${Nd} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${Nd} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(dk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":T,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,hasDivider:!0,onClick:()=>n(a[T]),start:G.createElement(vd,null,G.createElement(mk,{src:g.image,size:30}),m(g,t.type)&&G.createElement(xd,null,G.createElement(gk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||g.name||!g.name&&!k?G.createElement(Es,null,G.createElement(Rr,{variant:"title",size:"xmedium"},g.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(As,{css:x},G.createElement(Ns,{variant:"body",size:"xsmall",css:w},g.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?yk({address:k,token:a[T],customCssForTag:x,customCssForTagTitle:w,name:g.name,url:v.info.addressUrl.split("{wallet}").join(k)}):g.name||void 0,end:d?G.createElement(Jr,null,G.createElement(Wd,{variant:"text",size:"large",width:70}),G.createElement(Wo,{size:4}),G.createElement(Wd,{variant:"text",size:"medium",width:50})):C&&G.createElement(wd,null,G.createElement(bd,{variant:"title",size:"small"},C.amount),G.createElement("div",null),C.usdValue&&G.createElement(Rr,{variant:"body",className:Is(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(kd,null,G.createElement(Rr,{variant:"label",size:"large"},Ws.t("Select Token")),G.createElement(Wo,{size:4}),l==="loading"&&G.createElement(Ad,{size:Ls}),l==="success"&&G.createElement(Zr,{as:"ul"},S()))}i(Bd,"TokenList");function Ms(t){let{type:e}=t,o=Ck(),n=Ye(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=X(),c=ee.use.getBalanceFor(),[f,d]=Sk(""),h=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),T=y().tokens({type:e,blockchain:h,searchFor:f,getBalanceFor:c}),g=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),C=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:T}}):l({token:v,meta:{blockchains:S,tokens:T}})},"updateToken"),k={source:ei.t("Source"),destination:ei.t("Destination")};return lo.createElement(se,{header:{title:ei.t("Swap {type}",{type:k[e]})}},lo.createElement(ue,null,lo.createElement(Ts,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(Q.blockchains),onChange:v=>{g(v)}}),lo.createElement(_d,{size:24}),lo.createElement(Wt,{value:f,autoFocus:!0,placeholder:ei.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),lo.createElement(_d,{size:16}),lo.createElement(Bd,{list:T,selectedBlockchain:h,searchedFor:f,type:e,onChange:v=>{C(v);let E=S.find(b=>v.blockchain===b.name);E&&g(E),n()}})))}i(Ms,"SelectSwapItemsPage");import{i18n as $s}from"@lingui/core";import{Alert as Hk,Button as Gk,styled as Vk}from"@rango-dev/ui";import po from"react";import{useInRouterContext as Xk,useSearchParams as jk}from"react-router-dom";import{i18n as Ud}from"@lingui/core";import{Divider as vk,InfoIcon as xk,TextField as bk,Tooltip as Ik,Typography as zd}from"@rango-dev/ui";import pt from"react";import{Chip as Tk,styled as fn,TextField as kk}from"@rango-dev/ui";var Pd=fn("div",{paddingTop:"$5",padding:"$10 $5"}),$d=fn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${kk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Dd=fn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ti=fn("div",{maxWidth:"280px",padding:"$10"}),Fd=fn(Tk,{width:"61px",flexShrink:0});import{i18n as Bs}from"@lingui/core";import{Typography as wk}from"@rango-dev/ui";import gn from"react";function Od(){return gn.createElement(ti,null,gn.createElement(wk,{variant:"label",size:"medium",color:"neutral700"},Bs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),gn.createElement("br",null),gn.createElement("br",null),gn.createElement("b",null,Bs.t("Warning")),":",Bs.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}=y();return pt.createElement(Pd,null,pt.createElement(Dd,null,pt.createElement(zd,{variant:"title",size:"xmedium"},Ud.t("Slippage tolerance per swap")),pt.createElement(vk,{direction:"horizontal",size:4}),pt.createElement(Ik,{container:B(),side:"top",sideOffset:4,content:pt.createElement(Od,null)},pt.createElement(xk,{color:"gray"}))),pt.createElement($d,null,Hl.map((r,a)=>{let s=`slippage-${a}`;return pt.createElement(Fd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),pt.createElement(bk,{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>=jl&&s<=Xl?n(s):n(null)},suffix:o&&pt.createElement(zd,{variant:"body",size:"small"},"%"),placeholder:Ud.t("Custom")})))}i(_s,"Slippage");import{i18n as St}from"@lingui/core";import{AutoThemeIcon as qd,BridgesIcon as Ek,ChevronRightIcon as Ps,DarkModeIcon as Qd,Divider as oi,ExchangeIcon as Ak,InfinityIcon as Nk,InfoIcon as Wk,LanguageIcon as Lk,LightModeIcon as Hd,List as Mk,ListItem as Bk,ListItemButton as _k,Skeleton as Pk,styled as $k,Switch as Dk,Tabs as Fk,Tooltip as Ok,Typography as et}from"@rango-dev/ui";import O from"react";import{useNavigate as Uk}from"react-router-dom";var zk=$k("div",{width:"202px",height:"$40"}),qk=[{id:"light",icon:O.createElement(Hd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},St.t("Light"))},{id:"dark",icon:O.createElement(Qd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},St.t("Dark"))},{id:"auto",icon:O.createElement(qd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},St.t("Auto"))}],Qk=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=Uk(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Vt(),s=a.find(U=>U.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),f=Xe("theme",c),d=Xe("liquiditySource",c),m=Xe("language",c),h=y().infiniteApprove,S=y().toggleInfiniteApprove,T=$n(p,u),g=T.filter(U=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(U.type)),C=g.length,k=g.filter(U=>U.selected).length,v=T.filter(U=>U.type==="DEX"),E=v.length,b=v.filter(U=>U.selected).length,x=i((U,J)=>{switch(l){case"loading":return O.createElement(Pk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(et,{variant:"body",size:"medium",color:"$error500"},St.t("Loading failed"));default:return O.createElement(et,{variant:"body",size:"medium"},`${U} / ${J}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(et,{variant:"title",size:"xmedium"},St.t("Bridges")),end:O.createElement(O.Fragment,null,x(k,C),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Ps,{color:"black"})),onClick:()=>t(Q.bridges),start:O.createElement(Ek,{color:"gray",size:16})},I={id:"exchange-item",title:O.createElement(et,{variant:"title",size:"xmedium"},St.t("Exchanges")),end:O.createElement(O.Fragment,null,x(b,E),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Ps,{color:"black"})),start:O.createElement(Ak,{color:"gray",size:16}),onClick:()=>t(Q.exchanges)},W={id:"language-item",title:O.createElement(et,{variant:"title",size:"xmedium"},St.t("Language")),start:O.createElement(Lk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(et,{variant:"body",size:"medium"},s),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Ps,{color:"black"})),onClick:()=>t(Q.languages)},L={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(et,{variant:"title",size:"xmedium"},St.t("Infinite approval")),O.createElement(oi,{direction:"horizontal",size:4}),O.createElement(Ok,{side:"top",sideOffset:4,container:B(),content:O.createElement(ti,null,O.createElement(et,{variant:"label",size:"medium",color:"neutral700"},St.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(Wk,{color:"gray"}))),start:O.createElement(Nk,{color:"gray",size:16}),end:O.createElement(Dk,{checked:h}),onClick:S},j={id:"theme-item",type:O.createElement(Bk,null),title:O.createElement(et,{variant:"title",size:"xmedium"},St.t("Theme")),end:O.createElement(zk,null,O.createElement(Fk,{container:B(),items:qk,value:n,onChange:U=>o(U.id),type:"primary",borderRadius:"small"})),start:Qk(n)},M=d?[]:[w,I];return m||M.push(W),M.push(L),!e?.singleTheme&&!f&&M.push(j),O.createElement(Mk,{type:O.createElement(_k,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(Gd,"SettingsLists");var Kk=Vk("div",{paddingLeft:"$8"});function Vd(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=jk(),r=Xk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return po.createElement(se,{header:{title:$s.t("Settings")}},po.createElement(ue,null,o&&po.createElement(Hk,{type:"info",variant:"alarm",title:$s.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:po.createElement(Kk,null,po.createElement(Gk,{type:"secondary",size:"small",onClick:a},$s.t("Reset")))}),po.createElement(_s,null),po.createElement(Gd,null)))}i(Vd,"SettingsPage");import{i18n as $w}from"@lingui/core";import{cancelSwap as Dw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Fw}from"@rango-dev/queue-manager-react";import{Alert as Ow}from"@rango-dev/ui";import Rs from"react";import{useParams as Uw}from"react-router-dom";import{i18n as Ct}from"@lingui/core";import{getCurrentBlockchainOfOrNull as yw,getCurrentStep as Sw,getRelatedWalletOrNull as Cw}from"@rango-dev/queue-manager-rango-preset";import{Button as xf,CopyIcon as Tw,Divider as kw,IconButton as ww,QuoteCost as vw,RangoExplorerIcon as xw,StepDetails as bw,Tooltip as Iw,Typography as co,useCopyToClipboard as Ew}from"@rango-dev/ui";import{useWallets as Aw}from"@rango-dev/wallets-react";import bf from"bignumber.js";import{PendingSwapNetworkStatus as ui}from"rango-types";import Z,{useEffect as If,useRef as Nw,useState as Ef}from"react";import{useNavigate as Ww}from"react-router-dom";import{i18n as Xt}from"@lingui/core";var Yk=[Xt.t("Sunday"),Xt.t("Monday"),Xt.t("Tuesday"),Xt.t("Wednesday"),Xt.t("Thursday"),Xt.t("Friday"),Xt.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()?Xt.t("Today"):`${Yk[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 ii}from"rango-types";import ai from"react";import{i18n as ni}from"@lingui/core";import{Button as Kd,Divider as Ds,MessageBox as Zk}from"@rango-dev/ui";import jt from"react";var Yd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Ds,{size:20}),jt.createElement(Zk,{type:"error",title:ni.t("Cancel Swap"),description:ni.t("Are you sure you want to cancel this swap?")}),jt.createElement(Ds,{size:32}),jt.createElement(Kd,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Cancel it")),jt.createElement(Ds,{size:12}),jt.createElement(Kd,{variant:"outlined",type:"primary",size:"large",onClick:e},ni.t("No, Continue"))),"CancelContent");import{i18n as ri}from"@lingui/core";import{Button as Zd,Divider as Fs,MessageBox as Jk,Typography as Rk}from"@rango-dev/ui";import _t from"react";var Jd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Fs,{size:20}),_t.createElement(Jk,{type:"error",title:ri.t("Delete Transaction"),description:ri.t("Are you sure you want to delete this swap?")}),_t.createElement(Fs,{size:32}),_t.createElement(Zd,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Delete it")),_t.createElement(Fs,{size:12}),_t.createElement(Zd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(Rk,{variant:"title",size:"medium",color:"primary"},ri.t("No, Cancel")))),"DeleteContent");import{i18n as Os}from"@lingui/core";import{PendingSwapNetworkStatus as Us}from"rango-types";var zs={[Us.WaitingForNetworkChange]:{type:"loading",title:Os.t("Change Network")},[Us.WaitingForConnectingWallet]:{type:"warning",title:Os.t("Connect Wallet")},[Us.NetworkChanged]:{type:"success",title:Os.t("Network Changed")}};import{debug as tf}from"@rango-dev/logging-core";import{MessageBox as ew,Wallet as tw}from"@rango-dev/ui";import{useWallets as ow}from"@rango-dev/wallets-react";import Lo,{useState as nw}from"react";import{styled as Rd}from"@rango-dev/ui";var ef=Rd("div",{display:"flex",justifyContent:"center"}),Mz=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}=ow(),[c,f]=nw(null),d=n?.walletType,m=d?Ii(u(d)):null,h=d?p(d):null;return Lo.createElement(Lo.Fragment,null,Lo.createElement(ew,{type:e,title:o,description:r}),a&&!!d&&!!m&&!!h&&Lo.createElement(ef,null,Lo.createElement(tw,{container:B(),title:h.name,image:h.img,type:d,state:m,link:h.installLink,disabled:s,onClick:async()=>{h.namespaces?f({providerType:d,providerImage:h.img,availableNamespaces:h.namespaces,singleNamespace:h.singleNamespace}):l(d).catch(T=>tf(T))}})),Lo.createElement(ro,{open:!!c,onClose:()=>f(null),onConfirm:T=>{l(c?.providerType,void 0,T).catch(g=>tf(g)),f(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===ii.WaitingForNetworkChange||e===ii.WaitingForConnectingWallet||e===ii.NetworkChanged;return ai.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&ai.createElement(of,{type:zs[e].type,title:zs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ii.WaitingForNetworkChange}),e==="delete"&&ai.createElement(Jd,{onClose:o,onDelete:n}),e==="cancel"&&ai.createElement(Yd,{onClose:o,onCancel:r}))}i(qs,"SwapDetailsModal");import{i18n as hn}from"@lingui/core";import{Button as Qs,Divider as si,MessageBox as nf,TokenAmount as rw,Typography as Hs}from"@rango-dev/ui";import Be from"react";import{useNavigate as iw}from"react-router-dom";function Gs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:f,diagnosisUrl:d}=t,m=iw();return Be.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Be.createElement(nf,{type:"success",title:hn.t("Swap Successful")},Be.createElement(rw,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Be.createElement(si,{size:12}),Be.createElement(Hs,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Be.createElement(nf,{type:"error",title:hn.t("Transaction Failed"),description:f}),Be.createElement(si,{size:32}),n==="success"&&Be.createElement(Qs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Be.createElement(Hs,{variant:"title",size:"medium",color:"neutral100"},hn.t("Done"))),Be.createElement(si,{size:12}),d&&Be.createElement(Be.Fragment,null,Be.createElement(Qs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},hn.t("Diagnosis")),Be.createElement(si,{size:12})),Be.createElement(Qs,{variant:"outlined",type:"primary",size:"large",onClick:o},Be.createElement(Hs,{variant:"title",size:"medium",color:"primary"},hn.t("See Details"))))}i(Gs,"SwapDetailsCompleteModal");import hw from"react";import{i18n as mw}from"@lingui/core";import{Alert as Tf,IconButton as dw,LinkIcon as fw}from"@rango-dev/ui";import Kt,{Fragment as gw}from"react";import{Alert as lw,ChevronDownIcon as pw,IconButton as cw}from"@rango-dev/ui";import Bo,{useState as uw}from"react";import{css as yn,darkTheme as aw,styled as Pt,Typography as sw}from"@rango-dev/ui";var rf=Pt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),li=Pt("div",{width:"100%"}),af=Pt(Go,{padding:"$0 $20 $20 $20"}),fq=Pt("div",{display:"flex",flexDirection:"column",gap:"$10"}),sf=Pt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),gq=Pt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Mo=yn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${aw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),lf=yn({padding:"$5 0"}),pi=yn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pf=yn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),cf=yn({width:"100%",padding:"0 $20 $10"}),uf=Pt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),mf=Pt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ci=Pt(sw,{wordBreak:"break-word"});import{styled as Vs}from"@rango-dev/ui";var df=Vs("div",{display:"flex",flexDirection:"column",gap:"$10"}),ff=Vs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gf=Vs("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]=uw(!1);return Bo.createElement(lw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Bo.createElement(cw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Bo.createElement(ff,{rotated:o},Bo.createElement(pw,{size:12,color:"gray"}))),footer:Bo.createElement(gf,{open:o},Bo.createElement(ci,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hf,"FailedAlert");import{i18n as yf}from"@lingui/core";import{Alert as Xs,Button as Sf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as js}from"rango-types";import Sn from"react";function Cf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(Sf,{size:"xxsmall",type:"warning",onClick:()=>{o(js.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},yf.t("Change"))}):r===js.WaitingForConnectingWallet?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(Sf,{size:"xxsmall",type:"warning",onClick:()=>{o(js.WaitingForConnectingWallet)}},yf.t("Connect"))}):Sn.createElement(Xs,{type:"warning",title:n.shortMessage})}i(Cf,"WarningAlert");function Ks(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Qo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Kt.createElement(df,null,a.explorerUrl?.map((f,d,m)=>{let h=d+f.url,S=d===m.length-1,T=(S&&u||p)&&!c,g=S&&a.status==="failed";return Kt.createElement(gw,{key:h},Kt.createElement(Tf,{type:S&&(T&&"loading"||g&&"error")||"success",title:f.description?`${f.description} Tx`:mw.t("View transaction"),action:f.url&&Kt.createElement(dw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Kt.createElement(fw,{size:12}))}))}),c&&Kt.createElement(Tf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Kt.createElement(Cf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Kt.createElement(hf,{message:r}))}i(Ks,"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:Ve(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ve(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:Ve(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ve(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Oo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:hw.createElement(Ks,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vf(t){if(Qo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(vf,"getStepState");function Ys(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Aw(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),f=X.use.retry(),d=re.use.isActiveTab(),m=Ww(),[h,S]=Ew(kf),T=Nw(null),[g,C]=Ef(null),[k,v]=Ef(null),E=i(()=>{r(),C(null)},"onCancel"),b=Ae.use.getNotifications(),x=Ae.use.removeNotification(),w=b(),I=Sw(e),W=I?.networkStatus;If(()=>{w.find(ce=>ce.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),If(()=>{z?C(ui.WaitingForNetworkChange):W===ui.WaitingForConnectingWallet||W===ui.NetworkChanged?C(W):C(null)},[W]);let L=kp(e),j=I?yw(e,I):null,M=I?Cw(e,I):null,U=jd(e),J=wp(e),me=i(V=>!!l(V)?.mobileWallet,"isMobileWallet"),z=W===ui.WaitingForNetworkChange&&!!j&&!!M?.walletType&&(me(M.walletType)||a(M.walletType,j)),A=z?s.bind(null,M.walletType,j):void 0,oe=Tp(e,I),q=wf({swap:e,switchNetwork:A,showNetworkModal:W,setNetworkModal:C,message:oe,blockchains:p,swappers:u}),R=q.length,[fe,ye]=[e.steps[0],e.steps[R-1]],P=ye.outputAmount||ye.expectedOutputAmountHumanReadable,Ue=e.steps.reduce((V,ce)=>V+parseFloat(ce.feeInUsd||""),0),ke=e.steps.find(V=>V.diagnosisUrl)?.diagnosisUrl,be=N(parseFloat(N(P,6,6))*(ye.toUsdPrice||0),4,4),Tt=N(parseFloat(e.inputAmount)*(fe.fromUsdPrice||0),4,4),kt=P?le(new bf(P).multipliedBy(ye.toUsdPrice||0)):"",tt=le(new bf(e.inputAmount).multipliedBy(fe.fromUsdPrice||0)),ut=je(Tt,be),D=oe.detailedMessage.content||oe.shortMessage,K=e.status==="success"?Ct.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(P,6,6),token:q[R-1].to.token.displayName,conciseAddress:Ln(e.wallets[q[R-1].to.chain.displayName]?.address||""),chain:q[R-1].to.chain.displayName}}):Z.createElement(mf,null,Z.createElement(co,{variant:"body",size:"medium",color:"neutral700",align:"center"},D?"":Ct.t("Transaction was not sent."),L?`${Ct.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),D&&Z.createElement(ci,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",D));return Z.createElement(se,{header:{title:Ct.t("Swap and Bridge"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(Co,null,Z.createElement(xf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},Z.createElement(co,{size:"medium",variant:"label",color:"error"},Ct.t("Delete"))))},footer:J&&!k&&Z.createElement(xf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{f(e,{blockchains:p,tokens:c}),setTimeout(()=>{m("../../")},0)}},Ct.t("Try again"))},Z.createElement(ue,{compact:!0,view:!0},Z.createElement(li,null,Z.createElement("div",{className:Mo()},Z.createElement(co,{variant:"label",size:"large",color:"neutral700"},`${Ct.t("Request ID")}:`),Z.createElement("div",{className:pi()},Z.createElement(co,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(ww,{variant:"ghost",onClick:S.bind(null,o||"")},Z.createElement(Tw,{size:16,color:"gray"})),Z.createElement(uf,{target:"_blank",href:`${sl}/swap/${o}`},Z.createElement(Iw,{container:B(),content:Ct.t("View on Rango Explorer"),side:"bottom"},Z.createElement(xw,{size:20}))))),Z.createElement("div",{className:Mo()},Z.createElement(co,{variant:"label",size:"large",color:"neutral700"},`${Ct.t(e.finishTime?"Finished at":"Created at")}:`),Z.createElement(co,{variant:"label",size:"small",color:"neutral700"},U))),Z.createElement("div",{className:pf()},Z.createElement(vw,{fee:N(String(Ue),2,2),time:$o(xn(e.steps)),steps:R}),Z.createElement(Jo,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Tt,realUsdValue:tt,realValue:e.inputAmount},token:{displayName:q[0].from.token.displayName,image:q[0].from.token.image},chain:{image:q[0].from.chain.image,displayName:q[0].from.chain.displayName}},to:{price:{value:N(P,6,6),usdValue:be,realUsdValue:kt,realValue:P},token:{displayName:q[R-1].to.token.displayName,image:q[R-1].to.token.image},chain:{image:q[R-1].to.chain.image,displayName:q[R-1].to.chain.displayName}},percentageChange:N(ut,2,2),warningLevel:bt(ut??0)})),Z.createElement("div",{className:cf()},Z.createElement(co,{variant:"title",size:"small"},Ct.t("Swaps steps"))),Z.createElement(kw,{size:8}),Z.createElement(af,{ref:T},q.map((V,ce)=>{let wt=ce,ot=vf(e.steps[ce]),_o=ot==="error"||ot==="in-progress"||ot==="warning"||ot==="completed"&&ce===q.length-1;return Z.createElement(bw,{key:wt,step:V,type:"swap-progress",ref:T,state:ot,hasSeparator:ce!==0,tabIndex:wt,isFocused:_o,tooltipContainer:B()})}))),Z.createElement(qs,{state:g,onClose:()=>C(null),onCancel:E,onDelete:n,message:oe.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!d}),Z.createElement(Gs,{open:!!k,diagnosisUrl:ke,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(P,6,6),usdValue:be,realUsdValue:kt,realValue:le(P),percentageChange:N(ut,2,2),token:{displayName:q[R-1].to.token.displayName,image:q[R-1].to.token.image},chain:{image:q[R-1].to.chain.image},description:K}))}i(Ys,"SwapDetails");import{i18n as di}from"@lingui/core";import{Divider as Wf,NotFound as Pw,Skeleton as Tn,Typography as fi}from"@rango-dev/ui";import he from"react";import{i18n as Lw}from"@lingui/core";import{Divider as Mw,Skeleton as Bw,Typography as _w}from"@rango-dev/ui";import Te from"react";import{css as ct,styled as Zs}from"@rango-dev/ui";var Af=Zs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Cn=Zs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),mi=Zs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),EQ=ct({display:"flex",justifyContent:"space-between",alignItems:"center"}),AQ=ct({display:"flex",justifyContent:"space-between",alignItems:"center"}),NQ=ct({paddingTop:"$15",display:"flex"}),WQ=ct({padding:"$15 $0"}),LQ=ct({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),MQ=ct({paddingBottom:"$10"}),BQ=ct({display:"flex",justifyContent:"start",alignItems:"center"}),_Q=ct({paddingTop:"$5",display:"flex",alignItems:"center"}),PQ=ct({display:"flex",alignItems:"center"}),$Q=ct({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Nf=ct({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Js(){return Te.createElement(Af,null,Te.createElement(tn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(_w,{variant:"title",size:"small"},Lw.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(Cn,null,Te.createElement(ht,{separator:!1}),Te.createElement("div",{className:Nf()},Te.createElement(Mw,{direction:"horizontal",size:20}),Te.createElement(Bw,{height:22,variant:"rectangular"}))),Te.createElement(mi,null),Te.createElement(Cn,null,Te.createElement(ht,{separator:!1})),Te.createElement(mi,null),Te.createElement(Cn,null,Te.createElement(ht,{separator:!1})),Te.createElement(mi,null),Te.createElement(Cn,null,Te.createElement(ht,{separator:!1}))))}i(Js,"LoadingSwapDetails");function Lf(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(se,{header:{title:di.t("Swap and Bridge"),suffix:he.createElement(Co,null)}},o&&he.createElement(rf,null,he.createElement(li,null,he.createElement("div",{className:Mo()},he.createElement(fi,{variant:"label",size:"large",color:"neutral700"},`${di.t("Request ID")}:`),he.createElement("div",{className:pi()},he.createElement(fi,{variant:"label",size:"small",color:"neutral700"},he.createElement(Tn,{width:60,height:10,variant:"rounded"})),he.createElement(Wf,{direction:"horizontal",size:4}),he.createElement(Tn,{width:16,height:16,variant:"rectangular"}),he.createElement(Wf,{direction:"horizontal",size:4}),he.createElement(Tn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:Mo()},he.createElement(fi,{className:lf(),variant:"label",size:"large",color:"neutral700"},he.createElement(Tn,{width:60,height:10,variant:"rounded"})),he.createElement(fi,{variant:"label",size:"small",color:"neutral700"},he.createElement(Tn,{width:60,height:10,variant:"rounded"})))),he.createElement(Js,null)),!o&&he.createElement(sf,null,he.createElement(Pw,{title:di.t("Not found"),description:di.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Lf,"SwapDetailsPlaceholder");function Mf(){let{manager:t,state:e}=Fw(),o=!e.loadedFromPersistor,n=Ze(t),{requestId:r}=Uw(),a=Ye(),{fetchStatus:s}=y();if(!r)return Rs.createElement(Ow,{containerStyles:{margin:"20px"},type:"error",title:$w.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&&Dw(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),f=p?.swap;return!f||l?Rs.createElement(Lf,{requestId:r,showSkeleton:l}):Rs.createElement(Ys,{swap:f,requestId:r,onCancel:u,onDelete:c})}i(Mf,"SwapDetailsPage");function Bf(){return Mp(),ji(),zw([{path:Q.home,element:qe.createElement(Jm,null)},{path:Q.routes,element:qe.createElement(nd,null)},{path:Q.fromSwap,children:[{index:!0,element:qe.createElement(Ms,{type:"source"})},{path:Q.blockchains,element:qe.createElement(gs,{type:"source"})}]},{path:Q.toSwap,children:[{index:!0,element:qe.createElement(Ms,{type:"destination"})},{path:Q.blockchains,element:qe.createElement(gs,{type:"destination"})}]},{path:Q.settings,children:[{index:!0,element:qe.createElement(Vd,null)},{path:Q.languages,element:qe.createElement(ed,null)},{path:Q.exchanges,element:qe.createElement(ms,{sourceType:"Exchanges"})},{path:Q.bridges,element:qe.createElement(ms,{sourceType:"Bridges"})}]},{path:Q.swaps,children:[{index:!0,element:qe.createElement(Lm,null)},{path:Q.swapDetails,element:qe.createElement(Mf,null)}]},{path:Q.wallets,element:qe.createElement(Qc,null)},{path:Q.confirmSwap,element:qe.createElement(Cm,null)}])}i(Bf,"AppRoutes");import{useQueueManager as Zw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Jw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Rw}from"rango-sdk";import{useContext as ev,useEffect as tv,useState as Uf}from"react";import{globalCss as qw}from"@rango-dev/ui";var _f=i(()=>qw({"@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 Pf(){let{setWatermark:t}=re();return{fetchApiConfig:i(async()=>{let o=await fetch(`${xt("BASE_URL")}/meta/dapp/config?apiKey=${xt("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(Pf,"useFetchApiConfig");import{useWallets as Qw}from"@rango-dev/wallets-react";import{useEffect as Hw,useRef as Gw}from"react";function $f(){let{connect:t,state:e}=Qw(),o=Gw({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Hw(()=>{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 Vw,MainEvents as gi,RouteEventType as Df,StepEventType as Ff,StepExecutionEventStatus as Xw,useEvents as jw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Of}from"react";function el(){let t=y().tokens(),e=ee.use.connectedWallets(),o=ee.use.getWalletsDetails(),n=Ae.use.setNotification(),r=jw();Of(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Ff.TX_EXECUTION&&l.status===Xw.TX_SENT&&!Vw(p)||l.type===Ff.SUCCEEDED){let f=e.find(m=>m.chain===p?.fromBlockchain),d=p?.fromBlockchain!==p?.toBlockchain&&e.find(m=>m.chain===p?.toBlockchain);f&&o([f],t),d&&o([d],t)}n(l,u)},"handleStepEvent");return r.on(gi.StepEvent,a),()=>r.off(gi.StepEvent,a)},[r,e.length]),Of(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Df.FAILED||l.type===Df.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(gi.RouteEvent,a),()=>r.off(gi.RouteEvent,a)},[r,e.length])}i(el,"useSubscribeToWidgetEvents");import{useManager as Kw}from"@rango-dev/queue-manager-react";import{useEffect as Yw}from"react";function tl(){let{isSynced:t,syncNotifications:e}=Ae(),{manager:o,state:n}=Kw();Yw(()=>{Ae.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ze(o))},[Ae.persist.hasHydrated(),n.loadedFromPersistor,t])}i(tl,"useSyncNotifications");function ol(){$f(),_f(),el(),tl();let t=y().blockchains(),{canSwitchNetworkTo:e}=Tr(),[o,n]=Uf(""),[r,a]=Uf(),s=ev(Fn),l=t.filter(Rw),{fetchApiConfig:p}=Pf();Zw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),tv(()=>(Zt.init(),Ae.persist.hasHydrated()||Ae.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Jw(o)?.[0]&&n("")}),p().catch(console.log),Zt.destroy),[])}i(ol,"useBootstrap");import{styled as ov}from"@rango-dev/ui";var zf=ov("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function hi(){ol();let{config:t}=y(),{activeTheme:e}=ar(t?.theme||{}),{activeLanguage:o}=Vt();return nl.createElement(nv,{language:o},nl.createElement(zf,{id:"swap-container",className:e()},nl.createElement(Bf,null)))}i(hi,"Main");import{setSolanaSignerConfig as vv}from"@rango-dev/signer-solana";import il,{useEffect as Vf,useMemo as xv}from"react";import{useState as rv}from"react";var iv=i(()=>{let[t,e]=rv(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=yl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),qf=iv;import{checkWaitingForNetworkChange as av,makeQueueDefinition as sv}from"@rango-dev/queue-manager-rango-preset";import{Provider as lv}from"@rango-dev/queue-manager-react";import{useWallets as pv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as cv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as uv}from"rango-types";import mv,{useMemo as dv}from"react";function fv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=pv(),l=dv(()=>sv({API_KEY:t.apiKey||xt("API_KEY"),BASE_URL:xt("BASE_URL")}),[t.apiKey]),p=y().blockchains(),c={blockchains:ee.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},f=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),h=p.filter(uv),S=i(k=>{let{supportedChains:v}=s(k);return En(v)},"getSupportedChainNames"),T=e(),g={meta:{blockchains:m,evmBasedChains:h,evmNetworkChainInfo:cv(h),getSupportedChainNames:S},getSigners:o,wallets:c,providers:T,switchNetwork:f,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},C=re.use.isActiveTab();return mv.createElement(lv,{queuesDefs:[l],context:g,onPersistedDataLoaded:k=>{av(k)},isPaused:!C},t.children)}i(fv,"QueueManager");var Qf=fv;import{useManager as Cv}from"@rango-dev/queue-manager-react";import Tv,{createContext as kv,useContext as wv}from"react";import{cancelSwap as gv,getCurrentBlockchainOfOrNull as hv,getCurrentStep as yv,getRelatedWalletOrNull as Sv}from"@rango-dev/queue-manager-rango-preset";var yi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ze(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&gv(o)}getCurrentStepInfo(e){let o=yv(e);return{step:o,wallet:o?Sv(e,o):null,network:o?hv(e,o):null}}};var Hf=kv(void 0);function rl(t){let{manager:e}=Cv(),o=re.use.isActiveTab(),n=X.use.retry(),r=new yi(e,{retrySwap:n}),a=ee.use.connectedWallets(),s=ee.use.loading(),l=bl(a),p=ee.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),f=y().swappers(),d=y().fetchStatus,m=Vt().resetLanguage,h=Ae().getNotifications(),S={isActiveTab:o,setCurrentTabAsActive:Zt.forceClaim,history:r,wallets:{isLoading:s,details:a,totalBalance:l,refetch:p},meta:{blockchains:u,tokens:c,swappers:f,loadingStatus:d},resetLanguage:m,notifications:{list:h}};return Tv.createElement(Hf.Provider,{value:S},t.children)}i(rl,"WidgetInfo");function Gf(){let t=wv(Hf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Gf,"useWidget");function Si(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=qf();return Vf(()=>{n&&r(n)},[n]),xv(()=>{Bl({API_KEY:o?.apiKey||kn,BASE_URL:o?.apiUrl||al})},[o.apiKey,o.apiUrl]),Vf(()=>{t.config?.signers?.customSolanaRPC&&vv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),il.createElement(On,{config:o,onUpdateState:e},il.createElement(Qf,{apiKey:o.apiKey},il.createElement(rl,null,t.children)))}i(Si,"WidgetProvider");function Xf(t){let e=t.config?.externalWallets;return Ci.createElement(np,null,e?Ci.createElement(hi,null):Ci.createElement(Si,{config:t.config??Li},Ci.createElement(hi,null)))}i(Xf,"Widget");export{HV as EventSeverity,GV as MainEvents,t2 as Networks,r2 as PendingSwapNetworkStatus,VV as RouteEventType,Ti as SUPPORTED_FONTS,XV as StepEventType,jV as StepExecutionBlockedEventStatus,KV as StepExecutionEventStatus,Se as UI_ID,RV as WalletEvents,o2 as WalletTypes,Xf as Widget,Si as WidgetProvider,On as WidgetWallets,oa as customizedThemeTokens,JV as readAccountAddress,Tr as useWallets,Gf as useWidget,YV as useWidgetEvents};
|
|
1
|
+
var Jf=Object.defineProperty;var i=(t,e)=>Jf(t,"name",{value:e,configurable:!0});import{EventSeverity as jV,MainEvents as KV,RouteEventType as YV,StepEventType as ZV,StepExecutionBlockedEventStatus as JV,StepExecutionEventStatus as RV,useEvents as e2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as o2,useWallets as wr,Events as n2}from"@rango-dev/wallets-react";import{Networks as i2,WalletTypes as a2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as l2}from"rango-types";import{UI_ID as Rf}from"@rango-dev/ui";var vn="c6381a79-2817-4602-83bf-6a641a409e32",ll="https://api.rango.exchange",pl="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Rf};var cl="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 Fi,Provider as Gg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Vg}from"rango-sdk";import On,{createContext as Xg,useEffect as np,useMemo as jg,useRef as rp}from"react";import{useEffect as Sg}from"react";import{create as gg}from"zustand";import{subscribeWithSelector as hg}from"zustand/middleware";import{RangoClient as dg}from"rango-sdk";import{BlockchainCategories as ig,WalletState as yt}from"@rango-dev/ui";import{readAccountAddress as ag}from"@rango-dev/wallets-react";import{detectInstallLink as sg,getCosmosExperimentalChainInfo as lg,isEvmAddress as pg,KEPLR_COMPATIBLE_WALLETS as Rv,Networks as wl}from"@rango-dev/wallets-shared";import Ei from"bignumber.js";import{isCosmosBlockchain as cg}from"rango-types";import eg from"bignumber.js";var Be=new eg(0);import{WalletTypes as tg}from"@rango-dev/wallets-shared";var ul=[tg.LEAP];import{BlockchainCategories as vi}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function Ii(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ii,"areEqual");function yl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(yl,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");function fl(t,e){return t.toLowerCase()===e.toLowerCase()}i(fl,"exactText");function gl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(gl,"startWithText");var _=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Do=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function hl(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:0}i(hl,"compareExactMatchText");function xi(t,e,o){let n=!!e&&bt(e,t),r=!!o&&bt(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&&gl(e,t),r=!!o&&gl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareStartWithText");function Sl(t,e,o){if(!o)return 0;let n=hl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=hl(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(Sl,"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"),Cl=i(t=>wi.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as kl}from"bignumber.js";var Fo=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 kl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new kl(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 In=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var ht=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Oo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Ai(t){switch(!0){case t.connected:return yt.CONNECTED;case t.connecting:return yt.CONNECTING;case!t.installed:return yt.NOT_INSTALLED;default:return yt.DISCONNECTED}}i(Ai,"mapStatusToWalletState");function vl(t,e,o,n){return o.filter(r=>!ul.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:d}=e(r),m=ho(d.map(g=>g.type)),f=Ai(t(r));return{title:a,image:s,link:sg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(vl,"mapWalletTypesToWalletInfo");function Nn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Nn,"walletAndSupportedChainsNames");function xl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(d=>d.chain===p)){let d={address:u,chain:p,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=ag(p),d=l.length>0,m=l.includes(c),f=c===wl.Unknown;if(d&&!m&&!f)return;let S=c===wl.Unknown&&pg(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(xl,"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 d=u.from.blockchain,m=u.to.blockchain,f=a===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(m)})}e==="all"&&n.add(l)}),Array.from(n)}i(Rt,"getQuoteWallets");function Wn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Wn,"isAccountAndWalletMatched");function bl(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 Ei(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:mg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(bl,"makeBalanceFor");function Il(t){return{...t,loading:!1,error:!0}}i(Il,"resetConnectedWalletState");var El=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 Ei(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return ug(r)},"calculateWalletUsdValue");function ug(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ug,"numberWithThousandSeparator");var mg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),Ln=i((t,e)=>{let o=lg(Object.entries(t).map(([,n])=>n).filter(cg));return o&&o[e]?.experimental},"isExperimentalChain");function Mn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Mn,"formatBalance");function Al(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(Al,"compareTokenBalance");function _e(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(_e,"areTokensEqual");function Nl(t){return t.sort((e,o)=>+(o.state===yt.CONNECTED)-+(e.state===yt.CONNECTED)||+(o.state===yt.DISCONNECTED||o.state===yt.CONNECTING)-+(e.state===yt.DISCONNECTED||e.state===yt.CONNECTING))}i(Nl,"sortWalletsBasedOnConnectionState");function Bn(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(Bn,"getConciseAddress");function Wl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Wl,"getAddress");function Ni(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ni,"createTokenHash");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 Ei(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Ni({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 Ll=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 Bl(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(Bl,"filterBlockchainsByWalletTypes");function _l(t,e){return e===ig.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(_l,"filterWalletsByCategory");var Wi={API_KEY:vn};function It(t){return Wi[t]||""}i(It,"getConfig");function Pl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Wi=e,Wi}i(Pl,"initConfig");var $l=20,Dl=25,Li="theme-widget",Uo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>_e(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>_e(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Mi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Fl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Pn,Ft=i(()=>Pn||(Pn=new dg(It("API_KEY"),It("BASE_URL")),Pn),"httpService");var fg=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=fg;var ee=Ot(gg()(hg((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=>Wn(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(m=>{let f=o.find(S=>Wn(S,m)),g=p.find(S=>S.address===m.address&&S.blockChain===m.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...m,explorerUrl:g.explorerUrl,balances:bl(g,n),loading:!1}:m});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(d=>Wn(d,c))?Il(c):c);return{loading:!1,balances:_n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ni(o);return n[r]??null}}))));import{allProviders as yg}from"@rango-dev/provider-all";function $n(t,e){let o=yg({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($n,"matchAndGenerateProviders");function Ol(t,e){return $n(t,e).map(r=>r.config.type)}i(Ol,"configWalletsToWalletName");function Ul(t,e){let o=ee.use.clearConnectedWallet(),n=$n(t,e);return Sg(()=>{o(),n=$n(t,e)},[t?.length]),{providers:n}}i(Ul,"useWalletProviders");import Fg,{createContext as Og,useContext as Ug,useEffect as zg,useRef as qg}from"react";import{create as $g}from"zustand";import{persist as Dg}from"zustand/middleware";var Bi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},Cg={clientUrl:void 0},Tg={liquiditySources:void 0},zl=i((t,e,o)=>({config:{...Bi,...t},iframe:Cg,campaignMode:Tg,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 Dn(t,e){return e.find(o=>o.name===t)?.displayName}i(Dn,"getBlockchainDisplayNameFor");function je(t,e){return e.find(o=>o.name===t)?.shortName}i(je,"getBlockchainShortNameFor");function zo(t,e){return e.find(o=>o.id===t)?.title}i(zo,"getSwapperDisplayName");function _i(t,e){return e.find(o=>_e(o,t))??null}i(_i,"findToken");function Pi(t,e){return e.find(o=>o.name===t)??null}i(Pi,"findBlockchain");function $i(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($i,"isTokenNative");function Fn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return ho(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 ql(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(ql,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function Ql(t,e){return e?.[t]==="enabled"}i(Ql,"isFeatureEnabled");var Hl=i((t,e)=>({_blockchainsMapByName:new Map,_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let a=e().config,s=(o.type==="source"?a.from?.tokens:a.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(u=>s&&Uo(u,s)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(bt(u.symbol,o.searchFor)||bt(u.address||"",o.searchFor)||bt(u.name||"",o.searchFor)):!0).sort((u,c)=>{let d=e().isTokenPinned(u,o.type),m=e().isTokenPinned(c,o.type);if(d!==m)return d?-1:1;if(o.getBalanceFor){let h=o.getBalanceFor(u),C=o.getBalanceFor(c),k=Al(h,C);if(k!==0)return k}let f=r.get(u.blockchain),g=r.get(c.blockchain),S=$i(u,f),T=$i(c,g);if(S!==T)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let h=Sl(u,c,o.searchFor);if(h)return h}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>_e(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(ql)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=[],s=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(c=>{p.add(c.blockchain),a.push(c)}),n.blockchains.sort((c,d)=>c.sort-d.sort).forEach(c=>{c.enabled&&p.has(c.name)&&r.set(c.name,c)}),t({_blockchainsMapByName:r,_tokens:a,_popularTokens:s,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as kg,English as wg,Finland as vg,French as xg,German as bg,Greece as Ig,Italian as Eg,Japanese as Ag,Netherlands as Ng,Poland as Wg,Portuguese as Lg,Russian as Mg,Spanish as Bg,Swedish as _g,Ukrainian as Pg}from"@rango-dev/ui";var Gl=[{title:"English",label:"English",local:"en",SVGFlag:wg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Bg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:xg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Ag},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Lg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:kg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Mg},{title:"German",label:"Deutsch",local:"de",SVGFlag:bg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Pg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:_g},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:vg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ng},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Ig},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Eg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Wg}],qo="en";var Vl=[.5,1,3],Xl=1,jl=5,Kl=100,Yl=0;var Zl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Xl,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=ho(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=Ke("theme",n),s=Ke("language",n),l=Ke("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 Jl(t){return $g()(Dg((...e)=>({...Hl(...e),...Zl(...e),...zl(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(Jl,"createAppStore");var Rl=Og(null);function y(){let t=Ug(Rl);if(zg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function ep(t){let e=qg();return e.current||(e.current=Jl(t.config)),Fg.createElement(Rl.Provider,{value:e.current},t.children)}i(ep,"AppStoreProvider");import{create as Hg}from"zustand";var tp="rango-widget";var Qo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(tp),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(Hg()((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})}}))),eo=new Qo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var Un=Xg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Kg(t){let{updateConfig:e,updateSettings:o,fetch:n}=y(),r=y().blockchains(),a=y().tokens(),s=y().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Ul(s.wallets,l),{connectWallet:u,disconnectWallet:c}=ee(),d=rp(),m=rp();np(()=>{n().catch(console.log)},[]),np(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(Vg).map(h=>h.name),g=i((h,C,k,v,E)=>{if(C===Fi.ACCOUNTS)if(k){let b=Nn(E.supportedBlockchains),x=xl(h,k,f,b,E.isContractWallet);x.length&&u(x,a)}else c(h),m.current?m.current(h):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(C===Fi.ACCOUNTS&&v.connected){let b=`${h}-${v.network}-${k}`;v.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(C===Fi.NETWORK&&v.network){let b=`${h}-${v.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,C,k,v,E)},"onUpdateState"),S=ie.use.isActiveTab(),T=jg(()=>({onConnectWallet:h=>{d.current=h},onDisconnectWallet:h=>{m.current=h}}),[]);return On.createElement(Un.Provider,{value:T},On.createElement(Gg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Kg,"Main");function zn(t){let{config:e,...o}=t;return On.createElement(ep,{config:e},On.createElement(Kg,{...o,config:e}))}i(zn,"WidgetWallets");import ki from"react";import Yg,{Fragment as Zg}from"react";import{MemoryRouter as Jg,useInRouterContext as Rg}from"react-router";function ip({children:t}){let o=Rg()?Zg:Jg;return Yg.createElement(o,null,t)}i(ip,"AppRouter");import{I18nManager as sv}from"@rango-dev/ui";import il from"react";import qe from"react";import{useRoutes as Gw}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 Co,useRef as Zn}from"react";import At from"bignumber.js";import{create as nh}from"zustand";import{subscribeWithSelector as rh}from"zustand/middleware";import{getLastSuccessfulStep as oh}from"@rango-dev/queue-manager-rango-preset";import bI from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Oi={"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")},Ui=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ap=30;import{i18n as at}from"@lingui/core";import{RouteEventType as pI}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 Le}from"@lingui/core";var te=i(()=>({genericServerError:Le.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Le.t("Please reset your liquidity sources."),description:Le.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Le.t("No Routes Found."),description:Le.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Le.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Le.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Le.t("High Price Impact"),title:Le.t("Price impact is too high!"),description:Le.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Le.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Le.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Le.t("USD Price Unknown"),title:Le.t("USD Price Unknown, Cannot calculate Price Impact."),description:Le.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Le.t("Confirm USD Price Unknown")}}),"errorMessages");function sp(t){switch(t.type){case 0:return t.diagnosisMessage??te().noResultError.title;case 1:return te().genericServerError;default:return""}}i(sp,"getQuoteErrorMessage");import{i18n as Qn}from"@lingui/core";var to=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 lp(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(lp,"hasHighValueLoss");function pp(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(pp,"hasLimitError");function cp(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=at.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=at.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=at.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=at.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(cp,"getLimitErrorMessage");function up(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(up,"getSwapButtonState");function zi(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(zi,"canComputePriceImpact");var eh=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function qi(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=eh(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(qi,"getUsdFeeOfStep");function Gn(t,e){return t.reduce((o,n)=>o.plus(qi(n,e)),Be)}i(Gn,"getTotalFeeInUsd");function Qi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(Qi,"getUsdFee");function mp(t){return t.reduce((e,o)=>e.plus(Qi(o)),Be)}i(mp,"getTotalFeesInUsd");function dp(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(dp,"getFeesGroup");function fp(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(fp,"checkSlippageErrors");function gp(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(gp,"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 hp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(hp,"hasProperSlippage");function yp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:d,affiliateWallets:m,destination:f,enableCentralizedSwappers:g}=t,S=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:d??void 0,affiliateWallets:m??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:T,selectedWallets:S??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(yp,"createQuoteRequestBody");function Sp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Sp,"getWalletsForNewSwap");function yo(t){return t?.outputAmount||null}i(yo,"getQuoteOutputAmount");function Cp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(Cp,"getPercentageChange");function Tp(t,e){let o=yo(t),n=yo(e);if(!o||!n)return!1;let r=Ye(o,n);return r?r<=-1:!0}i(Tp,"isOutputAmountChangedALot");function kp(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=>Ep(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=at.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=at.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=at.t(" for input and network fee")),at.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:je(s.asset.blockchain,o)}})})}i(kp,"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 wp(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||at.t("Waiting for connecting wallet");break;case Hn.WaitingForQueue:n=n||at.t("Waiting for other running tasks to be finished");break;case Hn.WaitingForNetworkChange:n=n||at.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(wp,"getSwapMessages");function vp(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(vp,"getLastConvertedTokenInFailedSwap");function xp(t){return t.status==="failed"}i(xp,"shouldRetrySwap");function bp(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(d=>r.some(m=>m.chain===d)),u=l.every(d=>r.some(m=>m.chain===d)),c=o&&a?qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(bp,"isConfirmSwapDisabled");function Ip(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ip,"isTokensIdentical");function Kn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Kn,"getQuoteToTokenUsdPrice");function Hi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Hi,"isNumberOfSwapsChanged");function Gi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ii(o,n)}i(Gi,"isQuoteSwappersUpdated");function Vi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ii(o,n)}i(Vi,"isQuoteInternalCoinsUpdated");function Np(t,e){return Hi(t,e)||Gi(t,e)||Vi(t,e)}i(Np,"isQuoteChanged");function Ep(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(Ep,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function Wp(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=oh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Pi(a?a.toBlockchain:n.fromBlockchain,e),p=Pi(r.toBlockchain,e),u=_i(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=_i(s,o),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(Wp,"createRetryQuote");function So(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=Ye(s.toString(),l.toString());if(!!c&&lp(s,c)){let m=Gn(t?.swaps,r),f=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:m,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Vn(t.swaps),u=a>jl;if(hp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:gp(t,a),minRequiredSlippage:p};return null}i(So,"generateQuoteWarnings");function Ye(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Cp(t.toString(),e.toString());return n&&n<0?n:null}i(Ye,"getPriceImpact");var Lp=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"),Yn=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"),Mp=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"),Bp=i(t=>{let e=i((o,n)=>{let r=Ui.indexOf(o.value),a=Ui.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new At(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(nh()(rh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new At(0),outputUsdValue:new At(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 Oo(o.inputAmount)?(e&&(n=e?.outputAmount?new At(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 At(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:oo(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 At(0),outputUsdValue:new At(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=Wp(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:oo(s??null,u),outputUsdValue:new At(0),toBlockchain:l,toToken:p,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new At(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 _p(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=y().config,d=y().fetchStatus,m=y().blockchains(),f=y().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:T}=y(),h=c?.from?.tokens,C=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=Zn(void 0),b=Zn(void 0),x=Zn(void 0),w=Zn(void 0);Co(()=>{t(c?.amount?.toString()||"")},[c?.amount]),Co(()=>{if(d==="success"){r();let I=m.find(B=>B.name===c?.from?.blockchain),A=f.find(B=>_e(B,c?.from?.token||null));(I||!I&&x.current)&&n(I??null),A?a({token:A,meta:{blockchains:m,tokens:f}}):!A&&E.current&&a({token:null}),x.current=c?.from?.blockchain,E.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,d]),Co(()=>{Uo(s,h)&&a({token:null}),Mi(p,C)&&n(null)},[h,C]),Co(()=>{Uo(l,k)&&a({token:null}),Mi(u,v)&&o(null)},[k,v]),Co(()=>{if(d==="success"){r();let I=m.find(B=>B.name===c?.to?.blockchain),A=f.find(B=>_e(B,c?.to?.token||null));(I||!I&&w.current)&&o(I??null),A?e({token:A,meta:{blockchains:m,tokens:f}}):!A&&b.current&&e({token:null}),w.current=c?.to?.blockchain,b.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,d]),Co(()=>{g(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),T(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(_p,"useSyncStoresWithConfig");import{useEffect as Ki,useRef as ih}from"react";import{useInRouterContext as ah,useLocation as sh,useSearchParams as lh}from"react-router-dom";function Xi(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Xi,"searchParamToToken");function ji(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(ji,"tokenToSearchParam");function Yi(){let t=sh(),[e,o]=lh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=j(),f=y().fetchStatus,g=y().blockchains(),S=y().tokens(),T=ah(),{updateIframe:h,updateCampaignMode:C}=y(),k=y().isInCampaignMode(),v=ih(),E=i(()=>{let x={};for(let[ae,Q]of e.entries())ae.startsWith("utm_")&&(x[ae]=Q);let w=e.get("fromAmount"),I=e.get("fromBlockchain"),A=e.get("fromToken"),B=e.get("toBlockchain"),J=e.get("toToken"),M=e.get("autoConnect"),H=e.get("clientUrl"),K=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:A,toBlockchain:B,toToken:J,autoConnect:M,clientUrl:H,liquiditySources:K,utmQueryParams:x}},"getUrlSearchParams"),b=i(x=>{for(let w in x)x[w]||delete x[w];o(x,{replace:!0})},"updateUrlSearchParams");Ki(()=>{let{autoConnect:x,clientUrl:w,utmQueryParams:I}=E();T&&f==="success"&&b({fromBlockchain:n?.name,fromToken:ji(a),toBlockchain:r?.name,toToken:ji(s),fromAmount:l,autoConnect:x??void 0,clientUrl:w??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Ki(()=>{if(!T)return;let x=E();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&m(x.fromAmount),f==="success"){let w=g.find(J=>J.name===x.fromBlockchain),I=Xi(S,x.fromToken,w??null),A=g.find(J=>J.name===x.toBlockchain),B=Xi(S,x.toToken,A??null);w&&(p(w),I&&c({token:I,meta:{blockchains:g,tokens:S}})),A&&(u(A),B&&d({token:B,meta:{blockchains:g,tokens:S}}))}},[f]),Ki(()=>{let{clientUrl:x,liquiditySources:w}=E();h("clientUrl",x||void 0),C("liquiditySources",w?.split(",")??void 0)},[])}i(Yi,"useSyncUrlAndStore");import{i18n as Ya}from"@lingui/core";import{useManager as xC}from"@rango-dev/queue-manager-react";import{Alert as Tm,Button as bC,css as Ja,Divider as Za,IconButton as km,styled as IC,Typography as EC,WalletIcon as AC}from"@rango-dev/ui";import xe,{useEffect as Hr,useLayoutEffect as NC,useRef as WC,useState as sn}from"react";import{useNavigate as LC}from"react-router-dom";import{i18n as Ct}from"@lingui/core";import{Alert as Na,BalanceErrors as pS,Button as Jc,ChevronDownIcon as cS,ChevronLeftIcon as uS,CloseIcon as mS,Divider as Ko,IconButton as Rc,MessageBox as dS,PasteIcon as fS,Typography as vr,WalletIcon as gS}from"@rango-dev/ui";import $,{useCallback as hS,useEffect as eu,useRef as yS,useState as lo}from"react";import{useNavigate as SS}from"react-router-dom";import{i18n as Jn}from"@lingui/core";function Rn(t){switch(t.type){case 0:return Jn.t("Route has been updated.");case 3:return Jn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Jn.t("Route swappers has been updated.");case 2:return Jn.t("Route internal coins has been updated.");default:return""}}i(Rn,"getQuoteUpdateWarningMessage");import{Modal as ch}from"@rango-dev/ui";import uh from"react";function ne(t){let{watermark:e}=ie();return uh.createElement(ch,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import nr,{useRef as fh}from"react";import*as To from"@radix-ui/react-collapsible";import{keyframes as $p,styled as er}from"@rango-dev/ui";var Zi=300,mh=$p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),dh=$p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Dp=er(To.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Ji=er(To.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),tr=er(To.Content,{overflow:"hidden",variants:{open:{true:{animation:`${mh} ${Zi}ms ease-out`},false:{animation:`${dh} ${Zi}ms ease-out`}}}}),or=er("div",{transition:`all ${Zi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function rr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=fh(null);return nr.createElement(Dp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&nr.createElement(Ji,{className:"collapsible_trigger",onClick:a},s),nr.createElement(tr,{className:"collapsible_content",open:e},r),l==="bottom"&&nr.createElement(Ji,{className:"collapsible_trigger",onClick:a},s))}i(rr,"CustomCollapsible");import{css as Fp,darkTheme as Vo,IconButton as gh,styled as Ze,TextField as hh}from"@rango-dev/ui";var Op=Ze("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Up=Ze("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),yh=Ze("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"}}}}),zp=Ze(yh,{alignSelf:"stretch",minHeight:"93px"}),qp=Ze("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Qp=Ze(gh,{position:"absolute",left:"$20"}),Hp=Ze("div",{paddingTop:"$20"}),Gp=Fp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Vp=Ze("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Xp=Fp({paddingTop:"$5"}),jp=Ze("div",{display:"flex"}),Kp=Ze(hh,{backgroundColor:"$neutral100",padding:"$15"}),Yp=Ze("div",{overflow:"visible",width:"100%"}),Zp=Ze("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 lt}from"@lingui/core";import{Button as iS,Divider as Ea,Image as aS,MessageBox as kr,SelectableWallet as sS,Typography as Kc,WalletState as Yc}from"@rango-dev/ui";import ue,{useEffect as Zc,useState as Eo}from"react";import{WalletState as ir}from"@rango-dev/ui";import{useWallets as Sh}from"@rango-dev/wallets-react";import{detectMobileScreens as Ch,KEPLR_COMPATIBLE_WALLETS as Th,WalletTypes as ko}from"@rango-dev/wallets-shared";import{useCallback as kh,useEffect as wh,useState as vh}from"react";var xh=Object.values(ko);function wo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=y(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=Sh(),{connectedWallets:u}=ee(),c=y().blockchains(),d=Ol(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||xh,m=vl(a,l,d,e);m=Ch()?m.filter(b=>b.showOnMobile!==!1&&a(b.type).installed):m;let f=Nl(m),[g,S]=vh(""),T=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),h=i(async(b,x)=>{let w=a(b);try{if(g&&S(""),w.connected)await s(b);else{let I=!!m.find(A=>A.state===ir.CONNECTED);if(r?.multiWallets===!1&&I)return;o?.(b),await p(b,void 0,x),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),C=kh(()=>{let b=m?.filter(x=>x.state===ir.CONNECTING)||[];for(let x of b)s(x.type)},[Ml(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");wh(()=>()=>{C()},[]);let v=i(b=>{let x=b.find(I=>I.type===ko.DEFAULT);return!x||x.state===ir.NOT_INSTALLED?!1:b.filter(I=>I.state!=ir.NOT_INSTALLED&&![ko.DEFAULT,ko.WALLET_CONNECT_2,ko.LEDGER].includes(I.type)&&l(I.type).supportedChains.filter(A=>A.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,x,w)=>Ln(w,x)&&T(b)&&!Th.includes(b)||b==ko.DEFAULT&&!v(m),"shouldExcludeWallet");return{list:f.filter(b=>!E(b.type,e??"",c)),error:g,handleClick:h,disconnectConnectingWallets:C,disconnectWallet:k}}i(wo,"useWalletList");import{i18n as qc}from"@lingui/core";import{Divider as Yy,getCategoriesCount as Zy,SelectableCategoryList as Jy,styled as Hc,Typography as Ry,Wallet as eS,WalletState as Qc}from"@rango-dev/ui";import st,{useState as Cr}from"react";import{useManager as Ay}from"@rango-dev/queue-manager-react";import{BottomLogo as Ny,Divider as Pc,Header as Wy}from"@rango-dev/ui";import Se,{useEffect as ka,useRef as $c,useState as Ly}from"react";import{useRef as bh}from"react";function ar(){return window.self!==window.top}i(ar,"isAppLoadedIntoIframe");function Ri(){let t=bh(null),{iframe:e}=y(),o=ar()&&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(Ri,"useIframe");import{useNavigate as Ih}from"react-router-dom";function Je(){let t=Ih();return()=>t(-1)}i(Je,"useNavigateBack");import{createTheme as ia,darkTheme as Mh,lightTheme as Bh}from"@rango-dev/ui";import{useEffect as _h,useState as Ph}from"react";import{theme as Wh,darkColors as Lh}from"@rango-dev/ui";import na from"react";function Eh(t,e,o){let p=[],u=90;for(let m=0;m<9;m++)p.push(u),m+1===4?u=0:u-=m>=4?6:10;let c=o?p.slice().reverse():p,d={};for(let m=0;m<9;m++){let f=100+m*100,g=c[m],S={[`${e}${f}`]:sr(t,g)};Object.assign(d,S)}return{...d,[e]:t}}i(Eh,"generateShades");function sr(t,e){let[o,n,r]=Jp(t);return`#${ea(o+e)}${ea(n+e)}${ea(r+e)}`}i(sr,"generateShade");function Jp(t){let r=parseInt(t.slice(1,3),16),a=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return[r,a,s]}i(Jp,"convertToRGB");function ea(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(ea,"clamp");function Rp(t){let[s,l,p]=Jp(t);return(s*299+l*587+p*114)/1e3>188}i(Rp,"isBright");var ta=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let a in o){let s=o[a];s&&s!==t[a]&&(n=!0,a==="background"||a==="foreground"?r={...r,[a]:s}:r={...r,...Eh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var ec=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ah=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=ec(o%52)+e;return ec(o%52)+e},"toAlphabeticName"),Nh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),oa=i(t=>Ah(Nh(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=Wh.colors,o=ta({...e,...Lh},!0,t?.dark),n=ta(e,!1,t?.light),r=Object.keys(o).length>0,a=Object.keys(n).length>0,s,l;if(a){let p={colors:n};s={id:`${Li}-light-${oa(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Li}-dark-${oa(p)}`,tokens:p}}return{light:s,dark:l}}i(ra,"customizedThemeTokens");function tc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>na.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(na.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(na.cloneElement(e,{key:l}))}}),o}i(tc,"joinList");function lr(t){let{colors:e,fontFamily:o=cl,borderRadius:n=$l,secondaryBorderRadius:r=Dl}=t,[a,s]=Ph("light"),{theme:l}=y(),{dark:p,light:u}=ra(e),c=ia({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,Bh.className],m=[c.className,Mh.className];if(u){let g=ia(u.id,u.tokens);d.push(g.className)}if(p){let g=ia(p.id,p.tokens);m.push(g.className)}return _h(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),S=m.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(lr,"useTheme");var Re=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 oc}from"@lingui/core";import{Alert as $h,Button as Dh}from"@rango-dev/ui";import nc from"react";function aa(t){return nc.createElement($h,{action:nc.createElement(Dh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},oc.t("Activate this tab")),type:"warning",variant:"alarm",title:oc.t("Another tab is open and handles transactions.")})}i(aa,"ActivateTabAlert");import{i18n as sa}from"@lingui/core";import{Button as Fh,Divider as Oh,MessageBox as Uh}from"@rango-dev/ui";import pr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:_()},pr.createElement(Uh,{title:sa.t("Activate current tab"),type:"warning",description:sa.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(Oh,{size:20}),pr.createElement(Fh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as Qh}from"@rango-dev/ui";import cc from"react";import{css as zh,darkTheme as rc,IconButton as qh,styled as no}from"@rango-dev/ui";var St=no(qh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${rc} &`]:{backgroundColor:"$neutral"}}}),ic=no("div",{position:"absolute",background:"$secondary500",[`.${rc} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),vo=no("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),ac=no("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"}}}}),sc=no("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),lc=no("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),pc=zh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=no("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function pa(t){return cc.createElement(St,{variant:"ghost",size:"small",onClick:t.onClick},cc.createElement(Qh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as Hh}from"@lingui/core";import{Button as Gh,Typography as Vh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(vo,null,ca.createElement(Gh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(Vh,{variant:"label",size:"medium",color:"error500"},Hh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as Xh}from"@lingui/core";import{Image as jh,Tooltip as Kh,WalletIcon as Yh}from"@rango-dev/ui";import ro from"react";function ma(t){let{list:e}=wo({}),o=e.filter(r=>r.state==="connected"),n=o.length?ro.createElement("div",{className:pc()},o.map(r=>ro.createElement(cr,{key:r.title},ro.createElement(jh,{src:r.image,size:14})))):Xh.t("Connect Wallet");return ro.createElement(Kh,{container:t.container,side:"bottom",content:n},ro.createElement(St,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ro.createElement(ic,null),ro.createElement(Yh,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as Cy,Popover as Ty,SettingsIcon as ky,Tooltip as fr,TransactionIcon as wy}from"@rango-dev/ui";import Ae from"react";import{i18n as da}from"@lingui/core";import{EventSeverity as Tc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as kc,ChevronRightIcon as sy,Divider as wc,Typography as fa}from"@rango-dev/ui";import de from"react";import{useNavigate as ly}from"react-router-dom";import{create as Zh}from"zustand";import{persist as Jh,subscribeWithSelector as Rh}from"zustand/middleware";var Ee=Ot(Zh()(Jh(Rh((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 ey,darkTheme as ty,ListItemButton as oy,styled as zt}from"@rango-dev/ui";var uc=zt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),mc=zt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),dc=zt(ey,{padding:"$5 !important"}),fc=zt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),gc=zt(oy,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${ty} &`]:{backgroundColor:"$error600"}}}}}),hc=zt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),yc=zt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),Sc=zt("span",{paddingRight:"$8"});import{i18n as ny}from"@lingui/core";import{Divider as ry,NoNotificationIcon as iy,Typography as ay}from"@rango-dev/ui";import ur from"react";function Cc(){return ur.createElement(yc,null,ur.createElement(iy,{color:"secondary",size:26}),ur.createElement(ry,{size:12}),ur.createElement(ay,{variant:"body",size:"medium",color:"neutral700"},ny.t("There are no notifications.")))}i(Cc,"NotificationNotFound");var py=4;function ga(){let t=ly(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=y().blockchains(),a=y().tokens(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,py),l=i(p=>{t(`${z.swaps}/${p}`)},"handleOnClick");return de.createElement(uc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(mc,null,de.createElement(fa,{variant:"label",size:"medium"},da.t("Notifications")),de.createElement(dc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(fa,{variant:"body",size:"xsmall"},da.t("Clear all")))),de.createElement(wc,{direction:"vertical",size:4})),s.length?de.createElement(fc,null,s.map((p,u)=>{let{route:c,requestId:d,event:m}=p,f=a.find(h=>_e(h,c.from)),g=r.find(h=>h.name===c.from.blockchain),S=a.find(h=>_e(h,c.to)),T=r.find(h=>h.name===c.to.blockchain);return de.createElement(de.Fragment,{key:d},u>0&&de.createElement(wc,{size:4}),de.createElement(gc,{onClick:()=>l(d),actionRequired:m.messageSeverity===Tc.WARNING,title:de.createElement(fa,{variant:"body",size:"small",color:m.messageSeverity===Tc.WARNING?"$foreground":"$neutral700"},da.t(m.message)),id:d,start:de.createElement(hc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(kc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(kc,{tokenImage:S?S.image:"",chainImage:T?T.logo:"",size:"small"}))),end:de.createElement(Sc,null,de.createElement(sy,{size:12,color:"gray"}))}))})):de.createElement(Cc,null))}i(ga,"NotificationContent");import{useManager as cy}from"@rango-dev/queue-manager-react";import{InProgressIcon as uy}from"@rango-dev/ui";import vc from"react";var my=i(()=>{let{manager:t}=cy();return Re(t).map(({swap:o})=>o).find(o=>o.status==="running")?vc.createElement(lc,null,vc.createElement(uy,{color:"info",size:6})):null},"InProgressTransactionBadge"),xc=my;import{EventSeverity as dy}from"@rango-dev/queue-manager-rango-preset";import{Typography as fy}from"@rango-dev/ui";import bc from"react";function Ic(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===dy.WARNING);return o?bc.createElement(ac,{isSever:n},bc.createElement(fy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Ic,"NotificationsBadge");import{RefreshProgressButton as gy}from"@rango-dev/ui";import ha,{useEffect as hy,useState as Ec}from"react";var yy=1e3,Ac=60,Sy=100;function mr({onClick:t}){let[e,o]=Ec(0),[n,r]=Ec(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");hy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ac&&l()},yy):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 ha.createElement(St,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ha.createElement(sc,{onTransitionEnd:()=>r(!1),isRefetched:n},ha.createElement(gy,{size:22,color:t?"black":"gray",progress:e/Ac*Sy})))}i(mr,"RefreshButton");function io(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ke("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(fr,{container:a||_(),side:"top",content:dr.t("Refresh")},Ae.createElement(mr,{onClick:e})),!l&&Ae.createElement(Ty,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:_(),content:Ae.createElement(ga,null)},Ae.createElement("div",null,Ae.createElement(fr,{container:_(),side:"top",content:dr.t("Notifications")},Ae.createElement(St,{size:"small",variant:"ghost"},Ae.createElement(Cy,{size:18,color:"black"}),Ae.createElement(Ic,null))))),!r.includes("settings")&&Ae.createElement(fr,{container:_(),side:"top",content:dr.t("Settings")},Ae.createElement(St,{size:"small",variant:"ghost",onClick:n},Ae.createElement(ky,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(fr,{container:_(),side:"top",content:dr.t("Transactions History")},Ae.createElement(St,{size:"small",variant:"ghost",onClick:o},Ae.createElement(wy,{size:18,color:"black"}),Ae.createElement(xc,null))))}i(io,"HeaderButtons");import{i18n as ya}from"@lingui/core";import{Divider as Wc,MessageBox as by,RefreshIcon as Iy}from"@rango-dev/ui";import xo from"react";import{Button as vy,styled as xy}from"@rango-dev/ui";var Nc=xy(vy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Sa(t){let{open:e,onClose:o}=t;return xo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:_()},xo.createElement(by,{title:ya.t("Something went wrong"),type:"error",description:ya.t("Something went wrong. Please refresh the app.")},xo.createElement(Wc,{size:30}),xo.createElement(Nc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},xo.createElement(Iy,{size:20,color:"primary"}),xo.createElement(Wc,{size:4,direction:"horizontal"}),ya.t("Refresh"))))}i(Sa,"RefreshModal");function Ca(t){let e=t.target;if(e){let o=e.scrollTop,n=_();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ca,"onScrollContentAttachStatusToContainer");import{css as Ey,styled as Ta}from"@rango-dev/ui";var Lc="700px",gr=Ey({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),Mc=Ta("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Lc},fixed:{height:Lc}}}}),Bc=Ta("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),_c=Ta("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 pe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ri(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=Ly(!1),c=ee.use.connectedWallets(),{config:{features:d,theme:m}}=y(),{watermark:f}=ie(),g=f==="FULL",{activeTheme:S}=lr(m||{}),T=Ke("connectWalletButton",d),{isActiveTab:h,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ie(),b=Je(),{manager:x}=Ay(),I=Re(x).map(({swap:K})=>K).some(K=>K.status==="running"),A=i(()=>E(eo.forceClaim,I),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),J=typeof r.hasBackButton>"u"||r.hasBackButton,M=$c(null),H=$c(null);return ka(()=>(ar()&&H.current&&e(H.current),()=>{o()}),[]),ka(()=>(M.current?.addEventListener("scroll",Ca),()=>{M.current?.removeEventListener("scroll",Ca)}),[]),ka(()=>{u(l==="failed")},[l]),Se.createElement(Mc,{height:s,id:ye.SWAP_BOX_ID,className:`${S()} ${gr()}`,ref:H},Se.createElement(Wy,{prefix:Se.createElement(Se.Fragment,null,J&&Se.createElement(pa,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!T&&Se.createElement(ma,{container:_(),onClick:B,isConnected:!!c?.length}),r.onCancel&&Se.createElement(ua,{onClick:r.onCancel}))}),Se.createElement(Bc,{ref:M},n),Se.createElement(la,{open:k,onClose:()=>v(!1),onConfirm:A}),Se.createElement(_c,null,Se.createElement("div",{className:"footer__content"},C&&!h&&Se.createElement("div",{className:"footer__alert"},Se.createElement(aa,{onActivateTab:A}),Se.createElement(Pc,{size:10})),a),Se.createElement(Pc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(Ny,null))),Se.createElement(Sa,{open:p,onClose:()=>u(!1)}))}i(pe,"Layout");import{styled as My}from"@rango-dev/ui";var Dc="$20 $20 $10 $20",Xo=My("div",{padding:Dc,overflowY:"auto",flexGrow:1});import{styled as By}from"@rango-dev/ui";var me=By("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 Fy}from"@rango-dev/ui";import va from"react";import{i18n as bo}from"@lingui/core";import{Image as $y,MessageBox as wa,WalletState as Dy}from"@rango-dev/ui";import ao from"react";import{keyframes as _y,styled as hr}from"@rango-dev/ui";var aW=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),yr=hr("div",{position:"relative"}),Py=_y({"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:`${Py} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Fc=hr("div",{"& img":{borderRadius:"50%"}});function Oc(t){let{state:e,image:o,error:n}=t;return e===Dy.CONNECTED?ao.createElement(wa,{type:"success",title:bo.t("Wallet Connected"),description:bo.t("Your wallet is connected, you can use it to swap.")}):n?ao.createElement(wa,{type:"error",title:bo.t("Failed to Connect"),description:n||bo.t("Your wallet is not connected. Please try again.")}):ao.createElement(wa,{type:"loading",title:bo.t("Connecting to your wallet"),description:bo.t("Click connect in your wallet popup."),icon:ao.createElement(yr,null,ao.createElement(Fc,null,ao.createElement($y,{src:o,size:45})),ao.createElement(Sr,null))})}i(Oc,"ModalContent");function jo(t){let{open:e,onClose:o,...n}=t;return va.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},va.createElement(Oc,{...n}),va.createElement(Fy,{direction:"vertical",size:32}))}i(jo,"WalletModal");import{i18n as xa}from"@lingui/core";import{Button as Uy,Checkbox as zy,Image as zc,ListItemButton as qy,MessageBox as Qy,Radio as Hy,RadioRoot as Gy}from"@rango-dev/ui";import{Namespace as Io}from"@rango-dev/wallets-shared";import We,{useMemo as Vy,useState as Xy}from"react";import{styled as Oy}from"@rango-dev/ui";var Uc=Oy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var jy={[Io.Evm]:"ETH",[Io.Solana]:"SOLANA",[Io.Cosmos]:"COSMOS",[Io.Utxo]:"BTC",[Io.Starknet]:"STARKNET",[Io.Tron]:"TRON"},Ky=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function so(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Xy([]),a=y().blockchains(),s=Vy(()=>o?.map(u=>({name:u,logo:Ky(a,jy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(d=>d!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(Gy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},We.createElement(Qy,{type:"info",title:xa.t("Select chain types"),description:xa.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(zc,{src:t.image,size:45})),We.createElement(Sr,null))}),We.createElement(Uc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(qy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(zc,{src:u.logo,size:22}),end:e?We.createElement(Hy,{value:u.name}):We.createElement(zy,{checked:n.includes(u.name)})}))))),We.createElement(Uy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},xa.t("Confirm")))}i(so,"WalletNamespacesModal");var tS=Hc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),oS=Hc(me,{textAlign:"center"}),Tr=3e3,ba=300;function Gc(){let{fetchStatus:t}=y(),[e,o]=Cr("ALL"),n=y().blockchains(),[r,a]=Cr(!1),[s,l]=Cr(null),[p,u]=Cr(""),c=null,d=ie.use.isActiveTab(),{list:m,handleClick:f,error:g,disconnectConnectingWallets:S}=wo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},ba)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},Tr)}}),T=i(()=>{S(),a(!1)},"handleCloseWalletModal"),h=m.find(w=>w.type===p),C=h?.image||"",k=h?.state||Qc.NOT_INSTALLED,v=Bl(m,n),b=Zy(v)!==1,x=_l(m,e);return st.createElement(pe,{header:{title:qc.t("Connect Wallets")}},st.createElement(oS,null,b&&st.createElement(st.Fragment,null,st.createElement(Jy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),st.createElement(Yy,{size:24})),st.createElement(Ry,{variant:"title",size:"xmedium",align:"center"},qc.t("Choose a wallet to connect.")),st.createElement(tS,null,x.map((w,I)=>{let A=`wallet-${I}-${w.type}`;return st.createElement(eS,{key:A,...w,container:_(),onClick:B=>{w.namespaces&&w.state===Qc.DISCONNECTED?l({providerType:B,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(B)},isLoading:t==="loading",disabled:!d})}),st.createElement(jo,{open:!!r,onClose:T,image:C,state:k,error:g}),st.createElement(so,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Gc,"WalletsPage");import{keyframes as nS,styled as Ia}from"@rango-dev/ui";var Vc=Ia("div",{position:"relative"}),rS=nS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Xc=Ia("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${rS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),jc=Ia("div",{"& img":{borderRadius:"50%"}});var lS=7;function Aa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=ee.use.connectedWallets(),{blockchains:u}=y(),[c,d]=Eo(""),[m,f]=Eo(null),[g,S]=Eo(!1),[T,h]=Eo(null),[C,k]=Eo(null),{suggestAndConnect:v}=wr(),E=null,{list:b,error:x,handleClick:w,disconnectWallet:I,disconnectConnectingWallets:A}=wo({chain:e,onBeforeConnect:W=>{E=setTimeout(()=>{d(W)},ba)},onConnect:W=>{s?.(W),E&&clearTimeout(E),setTimeout(()=>{d("")},Tr)}}),[B,J]=Eo(b),M=b.length,H=r&&M-r>0,K=i(async W=>{S(!1),h("in-progress");try{await v(W.walletType,W.chain),h("completed")}catch{h("rejected")}},"addExperimentalChain"),ae=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");Zc(()=>{J(W=>{let U=b.findIndex(Y=>o(Y.type,e));return H&&U>1?[b[U]].concat(b.filter((Y,re)=>re!==U)):W.map(Y=>b.find(re=>re.type===Y.type)??Y)})},[JSON.stringify(b)]);let Q=document.getElementById(ye.SWAP_BOX_ID);Zc(()=>{let W=null;return(T==="completed"||T==="rejected")&&(W=setTimeout(()=>h(null),Tr)),()=>{W&&clearTimeout(W)}},[T]);let oe=i(()=>{A(),d("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,B.slice(0,r).map(W=>{let U=Wl({connectedWallets:p,walletType:W.type,chain:e}),Y=U?Bn(U,lS):"",re=Ln(u(),e),Te=!p.find(Ue=>Ue.walletType===W.type&&Ue.chain===e),P=re&&Te&&W.state===Yc.CONNECTED,Oe=P?lt.t({id:"Add {chain} chain",values:{chain:e}}):Y,nt=i(async()=>{W.state===Yc.DISCONNECTED?W.namespaces?ae(W):w(W.type):W.namespaces&&!Y?(await I(W.type),ae(W)):P?(f({walletType:W.type,chain:e,address:U??""}),S(!0)):n({walletType:W.type,chain:e,address:U??""})},"onClick"),fe=m?.chain?Dn(m.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${fe}`},ue.createElement(jo,{open:c===W.type,onClose:oe,image:W.image,state:W.state,error:x}),ue.createElement(so,{open:!!C,onClose:()=>k(null),onConfirm:Ue=>{w(C?.providerType,Ue),k(null)},image:C?.providerImage,namespaces:C?.availableNamespaces,singleNamespace:C?.singleNamespace}),!!m&&ue.createElement(ne,{open:!!m&&g,container:Q,onClose:()=>{f(null)}},ue.createElement(kr,{title:lt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),type:"warning",description:lt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}})},ue.createElement(Ea,{size:18}),ue.createElement(Ea,{size:32}),ue.createElement(iS,{onClick:K.bind(null,m),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},lt.t("Confirm")))),T&&ue.createElement(ne,{open:!!T,onClose:h.bind(null,null),container:Q},T==="in-progress"&&ue.createElement(kr,{type:"loading",title:lt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),description:lt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}}),icon:ue.createElement(Vc,null,ue.createElement(jc,null,ue.createElement(aS,{src:W.image,size:45})),ue.createElement(Xc,null))}),T==="completed"&&ue.createElement(kr,{type:"success",title:lt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:fe}}),description:lt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:fe}})}),T==="rejected"&&ue.createElement(kr,{type:"error",title:lt.t("Request Rejected"),description:lt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:fe}})}),ue.createElement(Ea,{direction:"vertical",size:32})),ue.createElement(sS,{key:W.type,description:Oe,onClick:nt,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(zp,{selected:!1,onClick:a},ue.createElement(Kc,{variant:"label",size:"medium"},lt.t("Show more wallets"),ue.createElement(Kc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",M-(r??0)))))}i(Aa,"WalletList");var CS=2;function tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=SS(),l=y().config,p=yS(null),u=y().blockchains(),{selectedQuote:c,setSelectedWallets:d,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:f,customDestination:g,setCustomDestination:S}=j(),{connectedWallets:T,selectWallets:h}=ee(),[C,k]=lo(""),[v,E]=lo([]),[b,x]=lo(""),[w,I]=lo(null),[A,B]=lo(!!g),J=navigator?.userAgent.includes("Firefox"),M=Rt({filter:"all",quote:c}),H=Rt({filter:"required",quote:c}),K=u.find(L=>L.name===c?.swaps[c?.swaps.length-1].to.blockchain),ae=i(L=>H.includes(L),"isWalletRequiredFor"),Q=hS(()=>T.filter(L=>L.selected&&M.includes(L.chain)),[T.length,M.length]),[oe,W]=lo(Q()),[U,Y]=lo([]),re=i((L,G)=>Y(V=>V.concat({blockchain:L,walletType:G})),"addNextSelectedWallets"),Te=v.length>0,P=i((L,G)=>!!oe.find(V=>V.walletType===L&&V.chain===G&&V.selected&&(ae(G)||!ae(G)&&!g)),"isSelected"),Oe=!!g&&A&&K&&!qn(K,g),nt=i(()=>{B(!1),S(null),W(L=>{let G=!1;return L.map(V=>!G&&V.chain===K?.name?(G=!0,{...V,selected:!0}):V)})},"resetCustomDestination"),fe=i(()=>S(""),"handleClearCustomDestination"),Ue=i(async L=>{if(L.preventDefault(),navigator.clipboard!==void 0){let G=await navigator.clipboard.readText();S(G),p?.current?.focus()}},"handlePasteCustomDestination"),xt=i(L=>{L?ae(K?.name??"")||W(G=>G.map(V=>V.chain===K?.name?{...V,selected:!1}:V)):nt()},"handleCustomDestinationCollapsibleOpenChange"),Xe=i(L=>{if(C&&k(""),P(L.walletType,L.chain))return;let V=T.find(Qe=>Qe.walletType===L.walletType&&Qe.chain===L.chain);V&&(n(),L.chain===K?.name&&A&&!ae(K.name)&&(B(!1),S(null)),W(Qe=>Qe.filter(gt=>gt.chain!==L.chain).concat({...V,selected:!0})))},"onChange"),rt=i(()=>{let L=oe.filter(G=>G.selected);h(L),d(L),f(!0),o()},"onConfirmBalance"),it=i(async()=>{E([]),x(""),I(null);let L=await r?.({selectedWallets:oe.filter(V=>V.selected),customDestination:g}),G=L.warnings;G?.balance?.messages&&E(G.balance.messages),G?.quoteUpdate&&I(G.quoteUpdate),L.error&&x(sp(L.error)),!L.error&&!G?.balance?.messages.length?rt():E(G?.balance?.messages??[])},"onConfirmWallets"),ft=i(()=>g?$.createElement(Rc,{onClick:fe,variant:"ghost"},$.createElement(mS,{size:12,color:"gray"})):J?null:$.createElement(Rc,{onClick:Ue,variant:"ghost"},$.createElement(fS,{size:16})),"renderCustomDestinationSuffix");eu(()=>{W(L=>{let G=[];return L.forEach(V=>{!T.some(gt=>gt.chain===V.chain&>.walletType===V.walletType&>.address===V.address)||G.push(V)}),G=G.concat(T.filter(V=>!!!G.find(gt=>gt.chain===V.chain)&&V.selected&&M.includes(V.chain))),G})},[T.length,M.length]),eu(()=>{let L=[];U.length>0&&(U.forEach(G=>{let V=T.find(Qe=>Qe.chain===G.blockchain&&Qe.walletType===G.walletType);V?Xe(V):L.push(G)}),Y(L))},[T.length,U.length]);let ke=document.getElementById(ye.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{m||s("../",{replace:!0}),o()},dismissible:!C,container:ke,...!C&&{footer:$.createElement(jp,null,$.createElement(Jc,{loading:a,disabled:bp(a,A,g,c,oe,K),onClick:it,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ct.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:$.createElement(qp,null,$.createElement(Qp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(uS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},Ct.t({id:"Your {blockchainName} wallets",values:{blockchainName:je(C,u)}})))},anchor:"center"},$.createElement(ne,{open:Te,onClose:E.bind(null,[]),container:ke},$.createElement(dS,{title:Ct.t("Insufficient account balance"),type:"error",description:$.createElement(pS,{messages:v??[]})},$.createElement(Jc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:rt},Ct.t("Proceed anyway")))),C&&$.createElement(Hp,null,$.createElement("div",{className:Gp()},$.createElement(Aa,{chain:C,isSelected:P,selectWallet:Xe,onShowMore:()=>k(C),onConnect:L=>{re(C,L)}}))),!C&&$.createElement($.Fragment,null,b&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"error",title:Ct.t(b)}),$.createElement(Ko,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"warning",title:Rn(w)}),$.createElement(Ko,{size:12})),$.createElement(Yp,null,M.map((L,G)=>{let V=u.find(Jt=>Jt.name===L),Qe=`wallet-${G}`,gt=G===M.length-1;return $.createElement("div",{key:Qe},$.createElement(Op,null,$.createElement(vr,{variant:"title",size:"xmedium"},Ct.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},Ct.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),$.createElement(Ko,{size:24}),$.createElement(Up,null,$.createElement(Aa,{chain:L,isSelected:P,selectWallet:Xe,limit:CS,onShowMore:()=>k(V?.name??""),onConnect:Jt=>{re(L,Jt)}})),!gt&&$.createElement(Ko,{size:32}),gt&&l?.customDestination&&$.createElement(Vp,null,$.createElement(rr,{onOpenChange:xt,hasSelected:!0,open:A,triggerAnchor:"top",trigger:$.createElement(Zp,null,$.createElement("div",{className:"button__content"},$.createElement(gS,{size:18,color:"info"}),$.createElement(Ko,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:A?"$neutral600":void 0},Ct.t("Send to a different address"))),$.createElement(or,{orientation:A?"up":"down"},$.createElement(cS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Jt=>!Jt)},$.createElement(Kp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:Ct.t("Enter {blockchainName} address",{blockchainName:Dn(L,u)}),value:g||"",suffix:ft(),onChange:Jt=>{let Zf=Jt.target.value;S(Zf)},...!g&&{autoFocus:!0}})),Oe&&$.createElement("div",{className:Xp()},$.createElement(Na,{variant:"alarm",type:"error",title:Ct.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tu,"ConfirmWalletsModal");import{i18n as FS}from"@lingui/core";import{Alert as OS,Button as US,InfoIcon as zS}from"@rango-dev/ui";import Ge from"react";import{Alert as wS,Button as vS,Divider as Ma,NoRouteIcon as xS,RefreshIcon as bS,Typography as lu}from"@rango-dev/ui";import He from"react";import{i18n as ou}from"@lingui/core";var TS=24,kS=60;function nu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:ou.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:ou.t("Reset")}},description:te().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:te().noResultError.description}}i(nu,"makeInfo");var Wa=(o=>(o[o.small=TS]="small",o[o.large=kS]="large",o))(Wa||{}),La=(o=>(o.small="small",o.large="medium",o))(La||{});import{styled as xr}from"@rango-dev/ui";var ru=xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),iu=xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),au=xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),su=xr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=nu(o,r,()=>a(s,!0),e);return He.createElement(ru,null,He.createElement(xS,{size:Wa[n],color:"gray"}),He.createElement(Ma,{size:4}),He.createElement(lu,{variant:"title",size:La[n]},te().noResultError.title),n==="large"&&He.createElement(Ma,{size:4}),!!l.description&&He.createElement(iu,{size:n},He.createElement(lu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),He.createElement(Ma,{size:n==="large"?"24":"4"}),!!l.alert&&He.createElement(au,{size:n},He.createElement(wS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&He.createElement(vS,{size:"xsmall",type:l.alert.type,prefix:He.createElement(su,null,He.createElement(bS,{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 ES,Divider as AS,MessageBox as NS,Typography as WS,WarningIcon as LS}from"@rango-dev/ui";import Nt from"react";import{Typography as mu}from"@rango-dev/ui";import _a from"react";import{darkTheme as IS,styled as br}from"@rango-dev/ui";var pu=br("div",{width:"100%"}),Ba=br("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),cu=br("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${IS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uu=br("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function du(t){let{title:e,value:o,valueColor:n}=t;return _a.createElement(cu,null,_a.createElement(mu,{size:"medium",variant:"label",className:"_title"},e),_a.createElement(mu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(du,"QuoteErrorsModalItem");function fu(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 Nt.createElement(ne,{footer:Nt.createElement(ES,{type:"primary",size:"large",prefix:Nt.createElement(LS,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:_()},Nt.createElement(NS,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),Nt.createElement(Ba,null,Nt.createElement(AS,{size:"4"}),Nt.createElement(WS,{size:"small",variant:"title"},Zo.t("Details")),Nt.createElement(Ba,null,l.map((p,u)=>Nt.createElement(du,{key:u,...p})))))}i(fu,"HighValueLossWarningModal");import{i18n as Pa}from"@lingui/core";function gu(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&&(Et(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=te().highValueLossError.title),t.type===1&&(o.title=te().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(gu,"makeAlerts");import{i18n as Ao}from"@lingui/core";import{Button as hu,Divider as yu,MessageBox as MS,Typography as BS}from"@rango-dev/ui";import po from"react";import{useNavigate as _S}from"react-router-dom";function Su(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=_S(),u=e??o;return po.createElement(ne,{anchor:"bottom",open:n,prefix:po.createElement(hu,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},po.createElement(BS,{variant:"label",size:"medium",color:"$neutral900"},Ao.t("Change settings"))),container:_(),onClose:r},po.createElement(MS,{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}})},po.createElement(yu,{size:18}),po.createElement(yu,{size:32}),po.createElement(hu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ao.t("Confirm anyway"))))}i(Su,"SlippageWarningModal");import{Button as PS,MessageBox as $S,WarningIcon as DS}from"@rango-dev/ui";import Ir from"react";function Cu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ir.createElement(ne,{footer:Ir.createElement(PS,{type:"primary",size:"large",prefix:Ir.createElement(DS,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:_()},Ir.createElement($S,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(Cu,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,d={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,f=gu(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),Ge.createElement(Ge.Fragment,null,m&&Ge.createElement(Yo,{error:o,fetch:s}),!!f&&Ge.createElement(pu,null,Ge.createElement(OS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Ge.createElement(uu,{onClick:l},Ge.createElement(zS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Ge.createElement(US,{size:"xxsmall",type:f.alertType,onClick:c},FS.t("Change"))}})),e&&Ge.createElement(Ge.Fragment,null,e.type===0&&Ge.createElement(fu,{...d,warning:e}),(e.type===3||e.type===2)&&Ge.createElement(Su,{...d,warning:e}),e.type===1&&Ge.createElement(Cu,{...d,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import SC from"bignumber.js";import Ur from"react";import{i18n as co}from"@lingui/core";import{Alert as iC,Divider as Wo,FullExpandedQuote as aC,InfoIcon as sC,QuoteTag as lC,StepDetails as pC,TokenAmount as cC,Tooltip as Ju,Typography as Lo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as uC,useState as mC}from"react";import{styled as $a}from"@rango-dev/ui";var Da=$a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Tu=$a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ku=$a("div",{width:"100%",display:"flex"});import*as Er from"@radix-ui/react-collapsible";import{Button as qS,css as Ro,darkTheme as we,Image as wu,styled as $e,Typography as QS}from"@rango-dev/ui";var HS=300,vu=$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$info300",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xu=Ro({padding:"$10 $15"}),bu=$e(qS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Iu=$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$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),Eu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),Au=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"}}),Nu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wu=$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:{[`& ${wu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${wu}`]:{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$info300",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Lu=$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"}}}}),Mu=$e(tr,{width:"100%",background:"inherit"}),Fa=$e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${HS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),cB=$e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Bu=$e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),_u=$e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Oa=$e(QS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Pu=$e("div",{display:"flex",flexWrap:"wrap"}),Ua=$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"}}}}),$u=$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 VS,CloseIcon as XS,Divider as Lr,IconButton as jS,QuoteCost as KS,Tooltip as YS,Typography as pt}from"@rango-dev/ui";import Z,{useState as Uu}from"react";import{css as GS,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"}}),za=Nr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Du=Nr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Fu=Nr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Ou=GS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var ZS=i(t=>t.fee.isZero()?null:Z.createElement(Wr,null,Z.createElement(pt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(pt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function zu(t){let[e,o]=Uu(!1),[n,r]=Uu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=_(),f=dp(d);return Z.createElement(Z.Fragment,null,Z.createElement(KS,{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:m}),Z.createElement(ne,{container:m,open:e,header:Z.createElement(Fu,null,Z.createElement(pt,{variant:"title",size:"medium"},Vt.t("Gas & Fee Explanation")),Z.createElement(jS,{onClick:()=>o(!1),variant:"ghost"},Z.createElement(XS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(Du,null,Z.createElement(pt,{variant:"title",size:"small"},Vt.t("Details")),Z.createElement(Lr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((T,h)=>{let C=`payable-fee-${h}`,k=Qi(T);return Z.createElement(Wr,{key:C},Z.createElement(pt,{variant:"label",size:"medium",color:"neutral600"},Oi[g]),Z.createElement(YS,{content:ce(T.amount),container:m},Z.createElement(pt,{variant:"label",size:"medium"},N(T.amount,2,2)," ",T.asset.symbol," ($",N(k,4,4),")")))})),Z.createElement(Wr,{className:"total_payable_fee"},Z.createElement(pt,{variant:"label",size:"medium"},Vt.t("Total Payable Fee")),Z.createElement(pt,{variant:"label",size:"medium"},"$",N(l,4,4))),Z.createElement(za,null),Object.keys(f.nonePayable).length&&Z.createElement(rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:Z.createElement("div",{className:Ou()},Z.createElement(pt,{size:"small",variant:"body",color:"neutral700"},n?Vt.t("Hide non-payable fees"):Vt.t("Show non-payable fees")),Z.createElement(Lr,{size:4,direction:"horizontal"}),Z.createElement(or,{orientation:n?"up":"down"},Z.createElement(VS,{size:12,color:"gray"}))),open:n},Z.createElement(pt,{size:"small",variant:"title"},Vt.t("Description")),Z.createElement(Lr,{size:4}),Z.createElement(pt,{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.`)),Z.createElement(Lr,{size:10}),Object.entries(f.nonePayable).map(([g,S],T)=>{let h=mp(S),C=Oi[g],k=`non-payable-fee-${T}`;return Z.createElement(ZS,{key:k,fee:h,label:C})}),Z.createElement(za,null)))))}i(zu,"QuoteCostDetails");import{i18n as Hu}from"@lingui/core";import{TokenAmount as Gu}from"@rango-dev/ui";import Mr from"react";import{css as JS,styled as RS}from"@rango-dev/ui";var qu=RS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Qu=JS({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 Mr.createElement(qu,null,Mr.createElement(Gu,{direction:"horizontal",label:Hu.t("Swap input"),type:"input",tooltipContainer:_(),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}}),Mr.createElement("div",{className:Qu()}),Mr.createElement(Gu,{direction:"horizontal",tooltipContainer:_(),label:Hu.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 Yu}from"@lingui/core";import{ChevronDownIcon as oC,ChevronRightIcon as nC,Divider as qa,Image as rC,Tooltip as Dr,Typography as _r}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as eC,useState as tn}from"react";var Vu=480,Xu=768,ju=1024,Ku=1200,tC=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<=Vu),n(window.innerWidth>Vu&&window.innerWidth<=Xu),a(window.innerWidth>Xu&&window.innerWidth<=ju),l(window.innerWidth>ju&&window.innerWidth<=Ku),u(window.innerWidth>Ku)},"handleResize");return eC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Br=tC;var Pr=4,$r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||_();return F.createElement(Dr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Lu,{className:n,state:a},F.createElement(rC,{src:o,size:16})))},"ImageComponent");function Zu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||_(),u=r.length,c=Lp(r),{isTablet:d,isMobile:m}=Br();return F.createElement(Wu,{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(_r,{variant:"body",size:"xsmall"},Yu.t("Via:")),F.createElement(qa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,T=F.createElement(Fa,null,F.createElement(nC,{size:12,color:"black"}));return m||d?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,T)):F.createElement(F.Fragment,{key:S},u<=Pr||u>Pr&&g<Pr-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,T)):g===Pr-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},T,r.map((h,C)=>{let k=`image-${C}`;return C>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:h.swapper.displayName,src:h.swapper.image,state:h.state,open:!1}),C!==u-1&&F.createElement(F.Fragment,null,T))}))},F.createElement(Ua,{state:r.find((h,C)=>C>=g&&(h.state==="error"||h.state==="warning"))?.state},F.createElement(_r,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:No()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:No()},F.createElement(_r,{variant:"body",size:"xsmall"},Yu.t("Chains:")),F.createElement(qa,{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,T)=>T>=g&&F.createElement(on,{key:S.displayName,content:"",src:S.image,open:!1,className:T>g?"blockchainImage":"",container:l})))},F.createElement(Ua,{className:"blockchainImage"},F.createElement(_r,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(qa,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(oC,{size:12,color:"black"}))))}i(Zu,"QuoteTrigger");function Ha(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:d=!1,container:m}=t,f=y().blockchains(),g=y().tokens(),S=y().swappers(),{customSlippage:T,slippage:h}=y(),C=T||h,[k,v]=mC(t.expanded),E=uC(null),b=N(o.value,6,6),x=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",I=Ye(o.usdValue,n.usdValue??null),A=N(I,2,2),B=Et(I??0),J=i((re,Te)=>re.map((P,Oe)=>{let nt,fe=r?.type===3&&r.swap.swapperId===P.swapperId,Ue=r?.type===4&&r.recommendedSlippages?.has(Oe),xt=a?.type===2&&a.recommendedSlippages?.has(Oe),Xe=fe||Ue,rt=xt;Xe?nt="error":rt&&(nt="warning");let it=Xe?co.t("Slippage Error"):co.t("Slippage Warning");return fe&&(it=co.t("Bridge Limit Error")),{swapper:{displayName:zo(P.swapperId,S),image:P.swapperLogo},from:{token:{displayName:P.from.symbol,image:P.from.logo},chain:{displayName:je(P.from.blockchain,f),image:P.from.blockchainLogo},price:{value:Oe===0&&!Te?N(o.value,6,6):N(P.fromAmount,6,6),usdValue:N((P.from.usdPrice??0)*parseFloat(P.fromAmount),4,4),realValue:ce(Oe===0?o.value:P.fromAmount),realUsdValue:ce(new Qa(P.from.usdPrice??0).multipliedBy(P.fromAmount))}},to:{token:{displayName:P.to.symbol,image:P.to.logo},chain:{displayName:je(P.to.blockchain,f),image:P.to.blockchainLogo},price:{value:N(P.toAmount,6,6),usdValue:N((P.to.usdPrice??0)*parseFloat(P.toAmount),4,4),realValue:ce(P.toAmount),realUsdValue:ce(new Qa(P.to.usdPrice??0).multipliedBy(P.toAmount))}},state:nt,alerts:Xe||rt?D.createElement(Tu,{dense:d},D.createElement(iC,{variant:"alarm",type:Xe?"error":"warning",title:it,footer:D.createElement(ku,null,fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {amount} {symbol}",values:{amount:N(P.fromAmount,6,6),symbol:P?.from.symbol}}))),(Ue||xt)&&!fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Oe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Oe)}}})),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Fo(P.estimatedTimeInSeconds),fee:N(qi(P,g),2,2),internalSwaps:P.internalSwaps?J(P.internalSwaps):void 0}}),"getQuoteSteps"),M=J(e?.swaps??[]),H=M.length,K=m||_(),ae=Bp(t.quote.tags||[]),Q=!!c,oe=Fo(In(e?.swaps)),W=Gn(e?.swaps??[],g),U=N(W,2,2),Y=W.gte(new Qa(ap));return d?D.createElement(aC,{selected:l,fee:U,time:oe,tooltipContainer:Do(),steps:M,tags:ae,feeWarning:Y,percentageChange:A,warningLevel:B,outputPrice:{value:x,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(Iu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:Eu()},!p&&ae.length?D.createElement(D.Fragment,null,D.createElement($u,null,ae.map((re,Te)=>{let P=`${re.value}_${Te}`;return D.createElement(D.Fragment,{key:P},D.createElement(lC,{label:re.label,value:re.value}),D.createElement(Wo,{size:4,direction:"horizontal"}))})),D.createElement(Ar,null),!Q&&D.createElement(Wo,{size:4})):null,D.createElement("div",{id:"portal-root",className:Au()},D.createElement(zu,{quote:e,time:oe,fee:U,feeWarning:Y,showModalFee:u,steps:H}),Q&&D.createElement(bu,{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"},co.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Nu()},D.createElement(_u,null,D.createElement(sC,{size:12,color:"gray"})),D.createElement(Pu,null,D.createElement(Oa,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),D.createElement(Ju,{content:ce(n.value),container:K,open:n.value?void 0:!1},D.createElement(Oa,{size:"small",variant:"body"},"\xA0",`${x} ${M[M.length-1].to.token.displayName}`))),D.createElement(Ju,{content:ce(n.usdValue),container:K},D.createElement(Wo,{size:2,direction:"horizontal"}),D.createElement(Lo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&D.createElement(cC,{tooltipContainer:K,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:M[H-1].to.token.displayName,image:M[H-1].to.token.image},chain:{image:M[H-1].to.chain.image},percentageChange:A,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:M[0].from,to:M[H-1].to,percentageChange:A,warningLevel:B}),D.createElement(Wo,{size:4}))),D.createElement(vu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},D.createElement(Zu,{type:s,quoteRef:E,selected:l,setExpanded:v,container:K,expanded:k,steps:M}),D.createElement(Mu,{open:k},D.createElement(Bu,null),D.createElement("div",{className:xu()},M.map((re,Te)=>{let P=`item-${Te}`;return D.createElement(pC,{type:"quote-details",key:P,tooltipContainer:K,step:re,hasSeparator:Te!==M.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as hC,Skeleton as yC}from"@rango-dev/ui";import Lt from"react";import{darkTheme as dC,styled as Fr}from"@rango-dev/ui";var Ru=Fr("div",{$$color:"$colors$neutral100",[`.${dC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),em=Fr("div",{paddingTop:"$2"}),tm=Fr("div",{paddingLeft:"$8"}),om=Fr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as mm,Divider as ct,Skeleton as Ve}from"@rango-dev/ui";import q from"react";import{css as fC,styled as Wt}from"@rango-dev/ui";var Ga=Wt("div",{display:"flex"}),nm=Wt("div",{padding:"$10 $0 $20"}),rm=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),im=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),am=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),sm=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),lm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),pm=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),cm=Wt("div",{padding:"$15 $0 $15 $0"}),um=fC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(am,null,q.createElement(lm,null,q.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(ct,{size:8,direction:"horizontal"}),q.createElement(pm,null,q.createElement(Ve,{height:10,width:60,variant:"rounded"}),q.createElement(ct,{size:4}),q.createElement(Ve,{height:15,variant:"rounded"}))),q.createElement(Ve,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(Ga,null,q.createElement(Ve,{width:65,height:20,variant:"rounded"}),q.createElement(ct,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:65,height:20,variant:"rounded"}),q.createElement(ct,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:65,height:20,variant:"rounded"})),q.createElement(Ar,null),!r&&q.createElement(ct,{size:4})),q.createElement("div",{className:um()},q.createElement(Ga,null,q.createElement(Ve,{width:60,height:10,variant:"rounded"}),q.createElement(ct,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:60,height:10,variant:"rounded"}),q.createElement(ct,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:60,height:10,variant:"rounded"})),r&&q.createElement(Ve,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(nm,null,q.createElement(Ve,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(rm,null,q.createElement(im,null,q.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(ct,{direction:"horizontal",size:4}),q.createElement(Ve,{height:15,width:150,variant:"rounded"})),q.createElement(ct,{size:10}),q.createElement(Ve,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(ct,{size:4}),q.createElement(cm,null,n,q.createElement(sm,null),n),q.createElement(ct,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as ym,Divider as Xa,NextIcon as gC,Skeleton as Or}from"@rango-dev/ui";import ve from"react";import{styled as rn}from"@rango-dev/ui";var dm=rn("div",{display:"flex",alignItems:"start"}),fm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Va=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),gm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),hm=rn("div",{display:"flex",alignItems:"center"});function Tt(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(hm,null,ve.createElement(Or,{height:22,width:22,variant:"circular"}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Or,{height:15,width:148,variant:"rounded"})),ve.createElement(dm,null,ve.createElement(om,{hideSeparator:!e}),ve.createElement(fm,{extraSpace:e},ve.createElement(Va,null,ve.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Or,{height:12,variant:"rounded"})),ve.createElement(gm,null,ve.createElement(gC,{color:"gray",size:16})),ve.createElement(Va,null,ve.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Or,{height:12,variant:"rounded"})))))}i(Tt,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Lt.createElement(Ru,{expanded:o,rounded:e!=="basic"},Lt.createElement(nn,{type:e,tagHidden:n}),Lt.createElement(em,null,Lt.createElement(yC,{height:15,variant:"rounded"})),o&&Lt.createElement(tm,null,Lt.createElement(hC,{size:24}),Lt.createElement(Tt,null),Lt.createElement(Tt,null),Lt.createElement(Tt,{separator:!1})))}i(an,"QuoteSkeleton");function uo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:d,fullExpandedMode:m=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:T}=j(),h=e?.outputAmount?new SC(e?.outputAmount):null,C=e?.outputAmount?Xn(e?.outputAmount,Kn(e)||T?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ur.createElement(Da,null,Ur.createElement(an,{tagHidden:l,type:o,expanded:s})):v?Ur.createElement(Da,{onClick:()=>p?.(e)},Ur.createElement(Ha,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:m,input:{value:g,usdValue:S?.toString()??""},output:{value:h?.toString()??"",usdValue:C?.toString()??""}})):null}i(uo,"QuoteInfo");import{calculatePendingSwap as wC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as vC}from"react";import{useRef as CC,useState as TC}from"react";var kC=2e3;function zr({request:t}){let[e,o]=TC(!1),n=CC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,kC)),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 Sm(){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(Sm,"useFetchConfirmQuote");function qr(t){if(!t.swaps)throw new Error(te().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=ja(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(qr,"throwErrorIfResponseIsNotValid");function ja(t){if(pp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=cp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=fp(t);if(o){let n=Vn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(ja,"getQuoteError");function Cm(t,e,o){let n=!1;t&&(n=Np(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=So(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Tp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(yo(e)),percentageChange:N(Ye(yo(t)??"",yo(e)??""),null,2)}:Hi(t,e)?r.quoteUpdate={type:0}:Gi(t,e)?r.quoteUpdate={type:1}:Vi(t,e)&&(r.quoteUpdate={type:2}));let s=kp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Cm,"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 Ka(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),d=y().blockchains(),m=y().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:T}=Sm();return vC(()=>S,[]),{loading:T,fetch:i(async C=>{let k=C.selectedWallets,v=C?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let E=k.reduce((x,w)=>(x[w.chain]=w.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await g(b,!0).then(x=>{let{result:w}=x;qr({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let I={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(I);let A={slippage:f.toString(),disabledSwappersGroups:c},B=Cm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});B.quoteUpdate&&s(!1),l();let J=!!B.balance,M=wC(o.toString(),w,Sp(k),A,!J,{blockchains:d,tokens:m});return{quote:I,swap:M,error:null,warnings:B}})}catch(x){return Qr(x)}},"fetch"),cancelFetch:S}}i(Ka,"useConfirmSwap");var MC=IC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${km}`]:{width:"$48",height:"$48"}}),BC=Ja({flexGrow:1,paddingRight:"$10"}),_C=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),PC=Ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function wm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=LC(),[l,p]=sn(""),u=!n,[c,d]=sn(!1),[m,f]=sn(!1),{isActiveTab:g}=ie(),S=y().getDisabledLiquiditySources(),T=WC(S),{manager:h}=xC(),{fetch:C,loading:k,cancelFetch:v}=Ka(),[E,b]=sn({swap:null,error:null,warnings:null}),[x,w]=sn(!1),I=i(async({selectedWallets:Q,customDestination:oe})=>{let W=await C?.({selectedWallets:Q,customDestination:oe});return b(W),W},"onConfirmSwap"),A=i(async()=>{if(E.swap&&n)try{await h?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let Q=`../${z.swaps}/${E.swap.requestId}`;s(Q,{replace:!0}),setTimeout(()=>{e("")},0)}catch(Q){p("Error: "+Q?.message)}},"addNewSwap"),B=i(async()=>{f(!0),await A(),f(!1)},"onConfirm"),J=i(async()=>{E?.warnings?.quote&&!a?w(!0):await B()},"onStartConfirmSwap"),M=i(async()=>{b({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(Q=>{b(Q)}).catch(Q=>console.error(Q))},"onRefresh");Hr(()=>{!!T.current.length&&!S.length&&M(),T.current=S},[S.length]),Hr(()=>{u&&v()},[u]),Hr(()=>{u&&d(u)},[u]),Hr(()=>{u||C({selectedWallets:o,customDestination:r}).then(Q=>b(Q)).catch(Q=>console.error(Q))},[]),NC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=E.warnings?.quote??null,K=E.error,ae=[];if(l&&ae.push(xe.createElement(Tm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&ae.push(xe.createElement(Tm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Rn(E.warnings.quoteUpdate)})),H||K){let Q=`../${z.settings}`;ae.push(xe.createElement(Jo,{warning:H,error:K,couldChangeSettings:!1,refetchQuote:M,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await A()},onChangeSettings:()=>s(Q)}))}return xe.createElement(pe,{header:{title:Ya.t("Confirm Swap"),onWallet:()=>{let Q=`../${z.wallets}`;s(Q)}},footer:xe.createElement(MC,null,xe.createElement("div",{className:BC()},xe.createElement(bC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:J},Ya.t("Start Swap"))),xe.createElement(km,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},xe.createElement(AC,{size:24})))},c&&xe.createElement(tu,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),xe.createElement(me,null,xe.createElement("div",{className:PC()},xe.createElement(EC,{variant:"title",size:"small"},Ya.t("You get")),xe.createElement("div",{className:_C()},xe.createElement(mr,{onClick:!k&&!c&&!x?M:void 0}))),xe.createElement(Za,{size:"12"}),tc(ae.map((Q,oe)=>({element:Q,key:`alert-${oe}`})),xe.createElement(Za,{size:10})),ae.length>0?xe.createElement(Za,{size:10}):null,xe.createElement(uo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(wm,"ConfirmSwapPage");import{i18n as Vr}from"@lingui/core";import{useManager as ZC}from"@rango-dev/queue-manager-react";import{Divider as Bm,NotFound as JC,styled as RC}from"@rango-dev/ui";import Bt,{useState as eT}from"react";import{useNavigate as tT}from"react-router-dom";import{i18n as FC}from"@lingui/core";import{Divider as Em,GroupedVirtualizedList as OC,Skeleton as UC,SwapListItem as Am,Typography as zC}from"@rango-dev/ui";import De,{useCallback as Nm,useEffect as qC,useRef as QC,useState as HC}from"react";function vm(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(vm,"calculateGroupsSoFar");import{css as $C,darkTheme as DC,styled as ln}from"@rango-dev/ui";var Ra=$C(),xm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),es=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ra}`]:{$$color:"$colors$neutral600",[`.${DC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),Im=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var GC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=HC([]),l=QC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=Nm(vm,[]),m=Nm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,GC),s(d(u,l.current)))},[e.length]);if(qC(()=>{r||m()},[r,m]),r){let f=[1,2];return De.createElement(De.Fragment,null,[f,f].map((S,T)=>De.createElement(es,{key:T},De.createElement(ts,null,De.createElement(UC,{variant:"text",width:60,size:"small"}),De.createElement(Em,{size:16})),De.createElement(Em,{size:4}),De.createElement(bm,null,S.map((C,k)=>De.createElement(Am,{isLoading:!0,key:k}))))))}return De.createElement(OC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>De.createElement(es,null,De.createElement(ts,null,De.createElement(zC,{variant:"label",size:"medium",className:Ra()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let T=S.steps[0],h=S.steps[S.steps.length-1];return De.createElement(xm,{key:S.requestId},De.createElement(Am,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:_(),onlyShowTime:c[g]===FC.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:ce(S.inputAmount)},to:{token:{image:h.toLogo,displayName:h.toSymbol},blockchain:{image:h.toBlockchainLogo||""},amount:N(h.outputAmount||h.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(h.outputAmount||h.expectedOutputAmountHumanReadable)}}}))}})}i(os,"HistoryGroupedList");import{CloseIcon as XC,IconButton as jC,SearchIcon as KC,TextField as YC}from"@rango-dev/ui";import pn from"react";import{styled as VC}from"@rango-dev/ui";var Wm=VC("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(YC,{prefix:pn.createElement(Wm,null,pn.createElement(KC,{color:"black"})),suffix:!!s.length&&pn.createElement(jC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(XC,{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 Lm from"dayjs";var Mm=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=Lm();t.forEach(p=>{let u=Number(p.creationTime),c=Lm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let d=new Date(u).getFullYear().toString();o(d,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var oT=RC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),nT=i((t,e)=>t?.length?t.filter(o=>ht(o.fromBlockchain,e)||ht(o.toBlockchain,e)||ht(o.toSymbol,e)||ht(o.fromSymbol,e)).length:!1,"isStepContainsText");function _m(){let t=tT(),{manager:e,state:o}=ZC(),n=Re(e).map(({swap:c})=>c),[r,a]=eT(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>ht(c.inputAmount,r)||ht(c.status,r)||nT(c.steps,r)||ht(c.requestId,r)));let u=!p?.length&&!s;return Bt.createElement(pe,{header:{title:Vr.t("History")}},Bt.createElement(me,null,Bt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Vr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Bt.createElement(Bm,{size:"16"}),Bt.createElement(oT,null,u&&Bt.createElement(Im,null,Bt.createElement(Bm,{size:32}),Bt.createElement(JC,{title:Vr.t("No results found"),description:r?Vr.t("Try using different keywords"):""})),!u&&Bt.createElement(os,{list:p,onSwapClick:t,groupBy:Mm,isLoading:s}))))}i(_m,"HistoryPage");import{i18n as wT}from"@lingui/core";import{Button as vT,Divider as Jm,styled as xT,WarningIcon as bT}from"@rango-dev/ui";import IT from"bignumber.js";import ze,{useEffect as Rm,useState as ed}from"react";import{useNavigate as ET}from"react-router-dom";import{i18n as pT}from"@lingui/core";import{Header as cT}from"@rango-dev/ui";import Xt,{useEffect as uT,useState as mT}from"react";import{i18n as iT}from"@lingui/core";import{Divider as rs,FullExpandedQuote as aT,Typography as sT}from"@rango-dev/ui";import ge from"react";import{styled as ns}from"@rango-dev/ui";var Pm=ns("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),$m=ns("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Dm=ns("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as rT}from"@rango-dev/ui";import Fm from"react";function Xr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),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 Fm.createElement(Dm,null,Fm.createElement(rT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Xr,"SelectStrategy");var Om=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:d,toToken:m,sortStrategy:f,error:g}=j(),{slippage:S,customSlippage:T}=y(),h=y().tokens(),C=l||_(),k=!!u&&u.results.length,v=T??S,E=i(w=>{if(!d||!m||!u)return null;let I={requestAmount:u.requestAmount,...w};return So(I,{fromToken:d,toToken:m,userSlippage:v,tokens:h})},"getQuoteWarning"),b=g?.type===0||g?.type===1,x=u?.results?Yn(f,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement($m,null,ge.createElement(sT,{size:"xmedium",variant:"title"},iT.t("Sort by")),ge.createElement(Xr,{container:C})),ge.createElement(rs,{size:"10"})),e&&Array.from({length:Om},(w,I)=>ge.createElement(ge.Fragment,{key:I},s?ge.createElement(aT,{loading:!0}):ge.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),I!==Om-1&&ge.createElement(rs,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?x.map((w,I)=>{let A=E(w),B=ja(w.swaps),J=x.length-1===I;return ge.createElement(ge.Fragment,{key:w.requestId},ge.createElement(uo,{showModalFee:r,container:C,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:A,fullExpandedMode:s,onClick:M=>{B||c("warning",A),c("error",B?.options||null),o(M)},type:"list-item"}),!J&&ge.createElement(rs,{size:16}))}):b&&ge.createElement(Pm,null,ge.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as lT,styled as Um}from"@rango-dev/ui";var zm=Um("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${lT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),qm=Um("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var dT=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=mT(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",d=Do();return uT(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},dT):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),Xt.createElement(zm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:ye.EXPANDED_BOX_ID},Xt.createElement(cT,{title:pT.t("Routes"),suffix:Xt.createElement(Xt.Fragment,null,Xt.createElement(Xr,{container:d}),Xt.createElement(io,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Xt.createElement(qm,null,Xt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:c})))}i(is,"ExpandedQuotes");import{i18n as Km}from"@lingui/core";import{SwapInput as Ym}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as hT}from"@rango-dev/ui";import ss from"react";import{keyframes as fT,styled as Qm}from"@rango-dev/ui";var as=450,gT=fT({"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)"}}),Hm=Qm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gm=Qm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${gT} ${as}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 ls(){let t=j.use.switchFromAndTo();return ss.createElement(Hm,null,ss.createElement(Gm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},as),t()}},ss.createElement(hT,{size:12})))}i(ls,"SwitchFromAndToButton");import{styled as Vm}from"@rango-dev/ui";var Xm=Vm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),jm=Vm("div",{position:"relative"});function ps(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:d,outputAmount:m,outputUsdValue:f,selectedQuote:g}=j(),{connectedWallets:S,getBalanceFor:T}=ee(),h=a?T(a):null,C=Mn(h)?.amount??"0",k=s&&a?N(h?.amount,h?.decimals):"0",v=!!s&&Ll(S,s.name),E=!zi(g,c,d),b=!zi(g,c,f),x=!d||!f||!f.gt(0)?null:Ye(d.toString(),f.toString());return mn.createElement(Xm,null,mn.createElement(jm,null,mn.createElement(Ym,{label:Km.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(d,4,4),realUsdValue:E?void 0:ce(d),error:E?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:_(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ls,null)),mn.createElement(Ym,{sharpBottomStyle:!r&&(!!g||e),label:Km.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Ye(d,f),2,2),warningLevel:Et(x??0),price:{value:N(m,6,6),usdValue:b?void 0:N(f,4,4),realValue:ce(m),realUsdValue:b?void 0:ce(f),error:b?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:_()}))}i(ps,"Inputs");import{useCallback as yT,useEffect as ST,useRef as CT,useState as TT}from"react";function Zm(){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(Zm,"useFetchAllQuotes");var kT=600;function jr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Zm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=ee.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:T,setSelectedQuote:h,updateQuotePartialState:C}=j(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=y(),I=y().getLiquiditySources(),A=y().getDisabledLiquiditySources(),B=y().excludeLiquiditySources(),[J,M]=TT(!0),H=CT(c),K=v??k,Q=!p||!u||_e(p,u)||!Oo(c),oe=i(Y=>{M(Y)},"resetState"),W=i(Y=>{let{fromToken:re,toToken:Te,inputAmount:P,liquiditySources:Oe,excludeLiquiditySources:nt,disabledLiquiditySources:fe,slippage:Ue,affiliateRef:xt,affiliatePercent:Xe,affiliateWallets:rt}=Y;if(J||oe(!0),!Q&&re&&Te){g();let it=yp({fromToken:re,toToken:Te,inputAmount:P,liquiditySources:Oe,excludeLiquiditySources:nt,disabledLiquiditySources:fe,wallets:s,slippage:Ue,affiliateRef:xt,affiliatePercent:Xe,affiliateWallets:rt,enableCentralizedSwappers:a});Ql("experimentalRoute",r)&&(it.experimental=!0),e(it).then(ft=>{let ke=Yn(f,ft.results),L=Mp(m,ke,ft.requestAmount);M(!1),C("quotes",ft),h(L),qr({diagnosisMessages:ft.diagnosisMessages,requestId:L?.requestId||"",swaps:L?.swaps});let G=L&&So(L,{fromToken:re,toToken:Te,userSlippage:K,tokens:l});C("warning",G)}).catch(ft=>{let{error:ke}=Qr(ft);(ke?.type===0||ke?.type===1)&&g(),ke?.type!==2&&(C("error",ke),M(!1))})}},"fetch"),U=yT(yl(Y=>{W(Y)},kT),[Q]);return ST(()=>{if(!t){M(!1);return}if(w!=="success")return;if(Q){M(!1),(m||S||T)&&g();return}if(!Oo(c)||d?.eq(0)){oe(!1),o();return}g(),oe(!0);let Y=W;return H.current&&H.current!=c&&(Y=U),H.current=c,Y({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:B,disabledLiquiditySources:A,slippage:K,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,Q,I?.length,n,A.length,K,b,E,JSON.stringify(x)]),{fetch:()=>W({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:B,disabledLiquiditySources:A,slippage:K,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:J}}i(jr,"useSwapInput");var AT=xT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),NT=300;function td(){let t=ET(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:d,updateQuotePartialState:m}=j(),[f,g]=ed(!1),{isLargeScreen:S,isExtraLargeScreen:T}=Br(),{fetch:h,loading:C}=jr({refetchQuote:a}),{config:k,fetchStatus:v}=y(),{connectedWallets:E}=ee(),{isActiveTab:b}=ie(),[x,w]=ed(!1),A=up({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Fl(S,T,k?.variant),J=!!n&&!!e&&!!o&&new IT(n).gt(0)&&!Ip(e,o),M=J&&v==="success"&&C,ae=(!B||B&&p?.results.length)&&(l||s);Rm(()=>{c(),m("refetchQuote",!0)},[]),Rm(()=>{g(J)},[J]);let Q=(r||s)&&!x?h:void 0,oe=i(U=>{B&&f?(g(!1),setTimeout(()=>{t(U)},NT)):t(U)},"onHandleNavigation"),W=i(U=>{r?.requestId!==U.requestId&&(w(!1),u(U))},"onClickOnQuote");return ze.createElement(AT,null,ze.createElement(pe,{height:"auto",footer:ze.createElement(vT,{type:"primary",size:"large",disabled:A.disabled||!b,prefix:A.action==="confirm-warning"&&ze.createElement(bT,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?oe(z.wallets):A.action==="confirm-warning"?w(!0):oe(z.confirmSwap)}},A.title),header:{onWallet:()=>{oe(z.wallets)},hasBackButton:!1,title:k.title||wT.t("Swap"),suffix:ze.createElement(io,{hidden:B?["refresh"]:void 0,onClickRefresh:Q,onClickHistory:()=>oe(z.swaps),onClickSettings:()=>{oe(z.settings)}})}},ze.createElement(me,null,ze.createElement(ps,{fetchingQuote:M,fetchMetaStatus:v,isExpandable:B,onClickToken:U=>{oe(U==="from"?z.fromSwap:z.toSwap)}}),ze.createElement(Jm,{size:"2"}),B?null:ze.createElement(uo,{quote:r,loading:M,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{m("refetchQuote",!1),oe(z.routes)}:void 0}),ae?ze.createElement(ze.Fragment,null,ze.createElement(Jm,{size:"10"}),ze.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:h,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),oe(z.confirmSwap)},onChangeSettings:()=>oe(z.settings)})):null)),B?ze.createElement(is,{loading:M,onClickOnQuote:W,fetch:h,onClickRefresh:Q,isVisible:f}):null)}i(td,"Home");import{i18n as od}from"@lingui/core";import{Alert as WT,Divider as LT,List as MT,ListItemButton as BT,Radio as _T,RadioRoot as PT,Typography as $T}from"@rango-dev/ui";import kt from"react";function jt(){let{setLanguage:t,language:e,config:o}=y(),n=Gl,r=o?.language||qo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||qo),resetLanguage:()=>t(null)}}i(jt,"useLanguage");function nd(){let{activeLanguage:t,changeLanguage:e,languages:o}=jt(),n=Je(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:kt.createElement($T,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:kt.createElement(_T,{value:s}),start:kt.createElement(p,null)}});return kt.createElement(pe,{header:{title:od.t("Language")}},kt.createElement(me,null,kt.createElement(WT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),kt.createElement(LT,{size:"8"}),kt.createElement(PT,{value:t},kt.createElement(MT,{type:kt.createElement(BT,{title:od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(nd,"LanguagePage");import{i18n as _t}from"@lingui/core";import{Button as zT,Checkbox as qT,Image as QT,ListItemButton as HT,NotFound as GT,Typography as VT}from"@rango-dev/ui";import Fe,{useState as XT}from"react";import{Checkbox as OT,Skeleton as id}from"@rango-dev/ui";import fn from"react";import{styled as cs}from"@rango-dev/ui";var dn=cs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),us=cs("div",{width:80,display:"flex",justifyContent:"flex-end"}),ms=cs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as DT,styled as FT}from"@rango-dev/ui";var rd=FT(DT,{height:61});var UT=30;function ds(){return fn.createElement(dn,null,Array.from(Array(UT),(t,e)=>fn.createElement(rd,{hasDivider:!0,key:e,start:fn.createElement(id,{variant:"circular",width:35,height:35}),title:fn.createElement(id,{variant:"text",size:"large",width:90}),end:fn.createElement(OT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=XT(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=Fn(o,n),u={Exchanges:_t.t("Exchanges"),Bridges:_t.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(h=>c.includes(h.type)),m=d.length===d.filter(h=>h.selected).length,f=i(()=>{d.forEach(h=>{m?s(h.groupTitle):h.selected||s(h.groupTitle)})},"toggleAllSources"),g=d.map(h=>{let{selected:C,groupTitle:k,logo:v}=h;return{start:Fe.createElement(QT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Fe.createElement(qT,{checked:C,disabled:l}),title:Fe.createElement(VT,{variant:"title",size:"xmedium"},_t.t(k)),...h}}),S=i(h=>{let C=h.target.value;a(C)},"searchHandler"),T=g;return r&&(T=g.filter(h=>ht(h.groupTitle,r))),Fe.createElement(pe,{header:{title:_t.t(t),suffix:Fe.createElement(us,null,Fe.createElement(zT,{variant:"ghost",size:"xsmall",onClick:f},m?_t.t("Deselect all"):_t.t("Select all")))}},Fe.createElement(me,{view:!0},Fe.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:_t.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Fe.createElement(ds,null),!T.length&&r?Fe.createElement(ms,null,Fe.createElement(GT,{title:_t.t("No results found"),description:_t.t("Try using different keywords")})):e==="success"&&Fe.createElement(dn,{disabled:l},T.map(h=>{let{groupTitle:C,...k}=h;return Fe.createElement(Fe.Fragment,{key:h.id},Fe.createElement(HT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as jT}from"@lingui/core";import Kr from"react";import{useNavigate as KT}from"react-router-dom";function ad(){let t=KT(),e=Je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=jr({refetchQuote:n}),u=i(m=>{r(m),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,d=`../${z.wallets}`;return Kr.createElement(pe,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:jT.t("Routes"),suffix:Kr.createElement(io,{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(ad,"RoutesPage");import{i18n as fd}from"@lingui/core";import{Divider as gd,getCategoriesCount as rk,SelectableCategoryList as ik}from"@rango-dev/ui";import Pt,{useState as hd}from"react";import{i18n as gs}from"@lingui/core";import{Divider as md,Image as RT,ListItemButton as ek,NotFound as tk,Typography as dd}from"@rango-dev/ui";import et,{useEffect as ok,useState as nk}from"react";var sd=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as YT,styled as ld}from"@rango-dev/ui";var pd=ld("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Yr=ld(Xo,{padding:0,margin:0,listStyle:"none",[`& ${YT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as ZT,Skeleton as cd}from"@rango-dev/ui";import Zr from"react";var JT=20;function ud(){return Zr.createElement(Yr,null,Array.from(Array(JT),t=>Zr.createElement(ZT,{key:t,hasDivider:!0,start:Zr.createElement(cd,{variant:"circular",width:35,height:35}),title:Zr.createElement(cd,{variant:"text",size:"large",width:90})})))}i(ud,"LoadingBlockchainList");function hs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=nk(e),{fetchStatus:l}=y();ok(()=>{s([...sd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?et.createElement(et.Fragment,null,et.createElement(md,{size:32}),et.createElement(tk,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):et.createElement(Yr,{as:"ul",key:`${r}-${o}`},a.map(u=>et.createElement(ek,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:et.createElement(RT,{src:u.logo,size:30}),title:et.createElement(dd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return et.createElement(pd,null,et.createElement(dd,{variant:"label",size:"large"},gs.t("Select Blockchain")),et.createElement(md,{size:4}),l==="loading"&&et.createElement(ud,null),l==="success"&&p())}i(hs,"BlockchainList");function ys(t){let{type:e}=t,o=Je(),[n,r]=hd(""),[a,s]=hd("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),m=rk(c)!==1;return Pt.createElement(pe,{header:{title:fd.t("Select Blockchain")}},Pt.createElement(me,{view:!0},m&&Pt.createElement(Pt.Fragment,null,Pt.createElement(ik,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(gd,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:fd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Pt.createElement(gd,{size:16}),Pt.createElement(hs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ys,"SelectBlockchainPage");import{i18n as oi}from"@lingui/core";import{Divider as Dd}from"@rango-dev/ui";import mo,{useState as wk}from"react";import{useNavigate as vk}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Jr,Divider as Td,Image as kd,Skeleton as ck,Tooltip as uk,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as lk}from"react";var yd=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ak),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(sk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function ak(t,e){let o=yd,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(ak,"sortByMostUsedBlockchains");function sk(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(sk,"generateSortByPreferredBlockchainsFor");function Sd(t,e){return!!e.list.find(o=>o.name===t)}i(Sd,"isInVisibleList");function Cs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();lk(()=>{if(e?.selected){let a=Ss(t,o,e);Sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ss(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Cs,"usePrepareBlockchainList");import{styled as pk}from"@rango-dev/ui";var Cd=pk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var mk=12;function ws(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Cs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,m=!d&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Td,{size:12}),Ne.createElement(ks,{variant:"label",size:"large"},Ts.t("Select Blockchain")),Ne.createElement(Td,{size:12}),Ne.createElement(Cd,null,l==="loading"&&Array.from(Array(mk),f=>Ne.createElement(ck,{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(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts.t("All"))),s.list.map(f=>Ne.createElement(uk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:_()},Ne.createElement(Jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ne.createElement(kd,{src:f.logo,size:30})))),d?Ne.createElement(Jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(kd,{src:s.more[0].logo,size:30})):null,m?Ne.createElement(Jr,{onClick:a,key:"more-blockchains"},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts._("More +{count}",{count:s.more.length}))):null)))}i(ws,"BlockchainsSection");import{i18n as Ms}from"@lingui/core";import{darkTheme as Md,Divider as Bo,ExternalLinkIcon as gk,Image as hk,ListItemButton as yk,NotFound as Sk,PinIcon as Ck,Skeleton as Bd,Typography as ti,VirtualizedList as Tk}from"@rango-dev/ui";import X,{useEffect as _d,useState as Pd}from"react";import{Divider as Wd,ListItem as fk,Skeleton as gn}from"@rango-dev/ui";import ut from"react";import{css as Mo,darkTheme as wd,ImageContainer as dk,styled as tt,Typography as vd}from"@rango-dev/ui";var vs=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),xs=Mo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),bs=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Is=Mo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${wd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Es=Mo({}),As=Mo(),xd=tt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ns=tt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Rr=tt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${xs}`]:{[`& .${Is}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Es}`]:{bottom:"-15px"},[`& .${vs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ws=tt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ls=tt(vd,{}),bd=tt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${As}`]:{$$color:"$colors$neutral600",[`.${wd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ei=tt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),jO=tt("div",{display:"flex",alignItems:"center"}),Id=tt("div",{position:"relative",[`& ${dk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Ed=tt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ad=tt(vd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Nd=tt("a",{"& svg:hover":{color:"$colors$info"}});function Ld(t){return ut.createElement(Rr,null,Array.from(Array(t.size),e=>ut.createElement(fk,{key:e,hasDivider:!0,start:ut.createElement(gn,{variant:"circular",width:35,height:35}),end:ut.createElement(ei,null,ut.createElement(gn,{variant:"text",size:"large",width:70}),ut.createElement(Wd,{size:4}),ut.createElement(gn,{variant:"text",size:"medium",width:50})),title:ut.createElement("div",null,ut.createElement(gn,{variant:"text",size:"large",width:90}),ut.createElement(Wd,{size:4}),ut.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Ld,"LoadingTokenList");var Bs=20,kk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return X.createElement("div",{className:xs()},o?X.createElement("div",{className:vs()},o):X.createElement(Ns,{className:bs()},X.createElement(ti,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Bo,{direction:"horizontal",size:4}),X.createElement(Ws,{css:a},X.createElement(Ls,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&X.createElement("div",{className:`${Is()} ${!o&&Es()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Bo,{size:4,direction:"horizontal"}),X.createElement(Nd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(gk,{size:12}))))},"renderDesc");function $d(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Pd(e),l=y().fetchStatus,p=y().blockchains(),[u,c]=Pd(!0),{getBalanceFor:d,loading:m}=ee(),{isTokenPinned:f}=y(),g=i(()=>{s(e.slice(0,a.length+Bs))},"loadNextPage");_d(()=>{c(e.length>a.length)},[a.length]),_d(()=>{s(e.slice(0,Bs))},[e.length]);let S=i(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Bo,{size:32}),X.createElement(Sk,{title:Ms.t("No results found"),description:Ms.t("Try using different keywords")})):X.createElement(Tk,{endReached:u?g:void 0,itemContent:T=>{let h=a[T],C=Mn(d(h)),k=h.address||"",v=p.find(I=>I.name===h.blockchain),E=sr(v?.color||"",Rp(v?.color||"")?5:125),b=sr(v?.color||"",-100),x={$$color:E,[`.${Md} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${Md} &`]:{$$color:E},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(yk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":T,key:`${h.symbol}${h.address}`,id:`${h.symbol}${h.address}`,hasDivider:!0,onClick:()=>n(a[T]),start:X.createElement(Id,null,X.createElement(hk,{src:h.image,size:30}),f(h,t.type)&&X.createElement(Ed,null,X.createElement(Ck,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||h.name||!h.name&&!k?X.createElement(Ns,null,X.createElement(ti,{variant:"title",size:"xmedium"},h.symbol),X.createElement(Bo,{direction:"horizontal",size:4}),X.createElement(Ws,{css:x},X.createElement(Ls,{variant:"body",size:"xsmall",css:w},h.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?kk({address:k,token:a[T],customCssForTag:x,customCssForTagTitle:w,name:h.name,url:v.info.addressUrl.split("{wallet}").join(k)}):h.name||void 0,end:m?X.createElement(ei,null,X.createElement(Bd,{variant:"text",size:"large",width:70}),X.createElement(Bo,{size:4}),X.createElement(Bd,{variant:"text",size:"medium",width:50})):C&&X.createElement(bd,null,X.createElement(Ad,{variant:"title",size:"small"},C.amount),X.createElement("div",null),C.usdValue&&X.createElement(ti,{variant:"body",className:As(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(xd,null,X.createElement(ti,{variant:"label",size:"large"},Ms.t("Select Token")),X.createElement(Bo,{size:4}),l==="loading"&&X.createElement(Ld,{size:Bs}),l==="success"&&X.createElement(Rr,{as:"ul"},S()))}i($d,"TokenList");function _s(t){let{type:e}=t,o=vk(),n=Je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=ee.use.getBalanceFor(),[d,m]=wk(""),g=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),T=y().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),h=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),C=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:T}}):l({token:v,meta:{blockchains:S,tokens:T}})},"updateToken"),k={source:oi.t("Source"),destination:oi.t("Destination")};return mo.createElement(pe,{header:{title:oi.t("Swap {type}",{type:k[e]})}},mo.createElement(me,null,mo.createElement(ws,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:v=>{h(v)}}),mo.createElement(Dd,{size:24}),mo.createElement(Mt,{value:d,autoFocus:!0,placeholder:oi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:v=>m(v.target.value)}),mo.createElement(Dd,{size:16}),mo.createElement($d,{list:T,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{C(v);let E=S.find(b=>v.blockchain===b.name);E&&h(E),n()}})))}i(_s,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as jk,Button as Kk,styled as Yk}from"@rango-dev/ui";import fo from"react";import{useInRouterContext as Zk,useSearchParams as Jk}from"react-router-dom";import{i18n as Qd}from"@lingui/core";import{Divider as Ek,InfoIcon as Ak,TextField as Nk,Tooltip as Wk,Typography as Hd}from"@rango-dev/ui";import mt from"react";import{Chip as xk,styled as hn,TextField as bk}from"@rango-dev/ui";var Fd=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Od=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${bk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ud=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ni=hn("div",{maxWidth:"280px",padding:"$10"}),zd=hn(xk,{width:"61px",flexShrink:0});import{i18n as Ps}from"@lingui/core";import{Typography as Ik}from"@rango-dev/ui";import yn from"react";function qd(){return yn.createElement(ni,null,yn.createElement(Ik,{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(qd,"SlippageTooltipContent");function $s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return mt.createElement(Fd,null,mt.createElement(Ud,null,mt.createElement(Hd,{variant:"title",size:"xmedium"},Qd.t("Slippage tolerance per swap")),mt.createElement(Ek,{direction:"horizontal",size:4}),mt.createElement(Wk,{container:_(),side:"top",sideOffset:4,content:mt.createElement(qd,null)},mt.createElement(Ak,{color:"gray"}))),mt.createElement(Od,null,Vl.map((r,a)=>{let s=`slippage-${a}`;return mt.createElement(zd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),mt.createElement(Nk,{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>=Yl&&s<=Kl?n(s):n(null)},suffix:o&&mt.createElement(Hd,{variant:"body",size:"small"},"%"),placeholder:Qd.t("Custom")})))}i($s,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as Gd,BridgesIcon as Lk,ChevronRightIcon as Ds,DarkModeIcon as Vd,Divider as ri,ExchangeIcon as Mk,InfinityIcon as Bk,InfoIcon as _k,LanguageIcon as Pk,LightModeIcon as Xd,List as $k,ListItem as Dk,ListItemButton as Fk,Skeleton as Ok,styled as Uk,Switch as zk,Tabs as qk,Tooltip as Qk,Typography as ot}from"@rango-dev/ui";import O from"react";import{useNavigate as Hk}from"react-router-dom";var Gk=Uk("div",{width:"202px",height:"$40"}),Vk=[{id:"light",icon:O.createElement(Xd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:O.createElement(Vd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:O.createElement(Gd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Auto"))}],Xk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Gd,{...e});case"dark":return O.createElement(Vd,{...e});default:return O.createElement(Xd,{...e})}},"getThemeIcon");function jd(){let t=Hk(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=jt(),s=a.find(H=>H.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),d=Ke("theme",c),m=Ke("liquiditySource",c),f=Ke("language",c),g=y().infiniteApprove,S=y().toggleInfiniteApprove,T=Fn(p,u),h=T.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),C=h.length,k=h.filter(H=>H.selected).length,v=T.filter(H=>H.type==="DEX"),E=v.length,b=v.filter(H=>H.selected).length,x=i((H,K)=>{switch(l){case"loading":return O.createElement(Ok,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(ot,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return O.createElement(ot,{variant:"body",size:"medium"},`${H} / ${K}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:O.createElement(O.Fragment,null,x(k,C),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(Lk,{color:"gray",size:16})},I={id:"exchange-item",title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:O.createElement(O.Fragment,null,x(b,E),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement(Mk,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},A={id:"language-item",title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Language")),start:O.createElement(Pk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(ot,{variant:"body",size:"medium"},s),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),O.createElement(ri,{direction:"horizontal",size:4}),O.createElement(Qk,{side:"top",sideOffset:4,container:_(),content:O.createElement(ni,null,O.createElement(ot,{variant:"label",size:"medium",color:"neutral700"},wt.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(_k,{color:"gray"}))),start:O.createElement(Bk,{color:"gray",size:16}),end:O.createElement(zk,{checked:g}),onClick:S},J={id:"theme-item",type:O.createElement(Dk,null),title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Theme")),end:O.createElement(Gk,null,O.createElement(qk,{container:_(),items:Vk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Xk(n)},M=m?[]:[w,I];return f||M.push(A),M.push(B),!e?.singleTheme&&!d&&M.push(J),O.createElement($k,{type:O.createElement(Fk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(jd,"SettingsLists");var Rk=Yk("div",{paddingLeft:"$8"});function Kd(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Jk(),r=Zk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return fo.createElement(pe,{header:{title:Fs.t("Settings")}},fo.createElement(me,null,o&&fo.createElement(jk,{type:"info",variant:"alarm",title:Fs.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:fo.createElement(Rk,null,fo.createElement(Kk,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),fo.createElement($s,null),fo.createElement(jd,null)))}i(Kd,"SettingsPage");import{i18n as Uw}from"@lingui/core";import{cancelSwap as zw}from"@rango-dev/queue-manager-rango-preset";import{useManager as qw}from"@rango-dev/queue-manager-react";import{Alert as Qw}from"@rango-dev/ui";import tl from"react";import{useParams as Hw}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as kw,getCurrentStep as ww,getRelatedWalletOrNull as vw}from"@rango-dev/queue-manager-rango-preset";import{Button as Ef,CopyIcon as xw,Divider as bw,IconButton as Iw,QuoteCost as Ew,RangoExplorerIcon as Aw,StepDetails as Nw,Tooltip as Ww,Typography as go,useCopyToClipboard as Lw}from"@rango-dev/ui";import{useWallets as Mw}from"@rango-dev/wallets-react";import Af from"bignumber.js";import{PendingSwapNetworkStatus as di}from"rango-types";import R,{useEffect as Nf,useRef as Bw,useState as Wf}from"react";import{useNavigate as _w}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var ew=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Yd(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"):`${ew[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Yd,"timeSince");function Zd(t){return t.finishTime?Yd(parseInt(t.finishTime)):Yd(parseInt(t.creationTime))}i(Zd,"getSwapDate");import{PendingSwapNetworkStatus as si}from"rango-types";import li from"react";import{i18n as ii}from"@lingui/core";import{Button as Jd,Divider as Os,MessageBox as tw}from"@rango-dev/ui";import Yt from"react";var Rd=i(({onCancel:t,onClose:e})=>Yt.createElement(Yt.Fragment,null,Yt.createElement(Os,{size:20}),Yt.createElement(tw,{type:"error",title:ii.t("Cancel Swap"),description:ii.t("Are you sure you want to cancel this swap?")}),Yt.createElement(Os,{size:32}),Yt.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Cancel it")),Yt.createElement(Os,{size:12}),Yt.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},ii.t("No, Continue"))),"CancelContent");import{i18n as ai}from"@lingui/core";import{Button as ef,Divider as Us,MessageBox as ow,Typography as nw}from"@rango-dev/ui";import $t from"react";var tf=i(({onDelete:t,onClose:e})=>$t.createElement($t.Fragment,null,$t.createElement(Us,{size:20}),$t.createElement(ow,{type:"error",title:ai.t("Delete Transaction"),description:ai.t("Are you sure you want to delete this swap?")}),$t.createElement(Us,{size:32}),$t.createElement(ef,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Delete it")),$t.createElement(Us,{size:12}),$t.createElement(ef,{variant:"outlined",type:"primary",size:"large",onClick:e},$t.createElement(nw,{variant:"title",size:"medium",color:"primary"},ai.t("No, Cancel")))),"DeleteContent");import{i18n as zs}from"@lingui/core";import{PendingSwapNetworkStatus as qs}from"rango-types";var Qs={[qs.WaitingForNetworkChange]:{type:"loading",title:zs.t("Change Network")},[qs.WaitingForConnectingWallet]:{type:"warning",title:zs.t("Connect Wallet")},[qs.NetworkChanged]:{type:"success",title:zs.t("Network Changed")}};import{debug as rf}from"@rango-dev/logging-core";import{MessageBox as rw,Wallet as iw}from"@rango-dev/ui";import{useWallets as aw}from"@rango-dev/wallets-react";import _o,{useState as sw}from"react";import{styled as of}from"@rango-dev/ui";var nf=of("div",{display:"flex",justifyContent:"center"}),$z=of("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var af=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=aw(),[c,d]=sw(null),m=n?.walletType,f=m?Ai(u(m)):null,g=m?p(m):null;return _o.createElement(_o.Fragment,null,_o.createElement(rw,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&_o.createElement(nf,null,_o.createElement(iw,{container:_(),title:g.name,image:g.img,type:m,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?d({providerType:m,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(m).catch(T=>rf(T))}})),_o.createElement(so,{open:!!c,onClose:()=>d(null),onConfirm:T=>{l(c?.providerType,void 0,T).catch(h=>rf(h)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Hs(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(ye.SWAP_BOX_ID)||document.body},p&&li.createElement(af,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==si.WaitingForNetworkChange}),e==="delete"&&li.createElement(tf,{onClose:o,onDelete:n}),e==="cancel"&&li.createElement(Rd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Gs,Divider as pi,MessageBox as sf,TokenAmount as lw,Typography as Vs}from"@rango-dev/ui";import Me from"react";import{useNavigate as pw}from"react-router-dom";function Xs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:d,diagnosisUrl:m}=t,f=pw();return Me.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(sf,{type:"success",title:Sn.t("Swap Successful")},Me.createElement(lw,{direction:"vertical",tooltipContainer:_(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(pi,{size:12}),Me.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Me.createElement(sf,{type:"error",title:Sn.t("Transaction Failed"),description:d}),Me.createElement(pi,{size:32}),n==="success"&&Me.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Me.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Me.createElement(pi,{size:12}),m&&Me.createElement(Me.Fragment,null,Me.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},Sn.t("Diagnosis")),Me.createElement(pi,{size:12})),Me.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import Tw from"react";import{i18n as hw}from"@lingui/core";import{Alert as vf,IconButton as yw,LinkIcon as Sw}from"@rango-dev/ui";import Zt,{Fragment as Cw}from"react";import{Alert as mw,ChevronDownIcon as dw,IconButton as fw}from"@rango-dev/ui";import $o,{useState as gw}from"react";import{css as Cn,darkTheme as cw,styled as Dt,Typography as uw}from"@rango-dev/ui";var lf=Dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ci=Dt("div",{width:"100%"}),pf=Dt(Xo,{padding:"$0 $20 $20 $20"}),Sq=Dt("div",{display:"flex",flexDirection:"column",gap:"$10"}),cf=Dt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Cq=Dt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Po=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${cw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),uf=Cn({padding:"$5 0"}),ui=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),mf=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),df=Cn({width:"100%",padding:"0 $20 $10"}),ff=Dt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),gf=Dt("div",{display:"flex",flexDirection:"column",gap:"$5"}),mi=Dt(uw,{wordBreak:"break-word"});import{styled as js}from"@rango-dev/ui";var hf=js("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=js("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Sf=js("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Cf(t){let{message:e}=t,[o,n]=gw(!1);return $o.createElement(mw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$o.createElement(fw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$o.createElement(yf,{rotated:o},$o.createElement(dw,{size:12,color:"gray"}))),footer:$o.createElement(Sf,{open:o},$o.createElement(mi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Cf,"FailedAlert");import{i18n as Tf}from"@lingui/core";import{Alert as Ks,Button as kf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ys}from"rango-types";import Tn from"react";function wf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Tf.t("Change"))}):r===Ys.WaitingForConnectingWallet?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},Tf.t("Connect"))}):Tn.createElement(Ks,{type:"warning",title:n.shortMessage})}i(wf,"WarningAlert");function Zs(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(hf,null,a.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,T=(S&&u||p)&&!c,h=S&&a.status==="failed";return Zt.createElement(Cw,{key:g},Zt.createElement(vf,{type:S&&(T&&"loading"||h&&"error")||"success",title:d.description?`${d.description} Tx`:hw.t("View transaction"),action:d.url&&Zt.createElement(yw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Zt.createElement(Sw,{size:12}))}))}),c&&Zt.createElement(vf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Zt.createElement(wf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Zt.createElement(Cf,{message:r}))}i(Zs,"SwapDetailsAlerts");var xf=2e3;var bf=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:je(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:je(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:zo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:je(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:je(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:zo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Tw.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function If(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(If,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Mw(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),d=j.use.retry(),m=ie.use.isActiveTab(),f=_w(),[g,S]=Lw(xf),T=Bw(null),[h,C]=Wf(null),[k,v]=Wf(null),E=i(()=>{r(),C(null)},"onCancel"),b=Ee.use.getNotifications(),x=Ee.use.removeNotification(),w=b(),I=ww(e),A=I?.networkStatus;Nf(()=>{w.find(L=>L.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Nf(()=>{Q?C(di.WaitingForNetworkChange):A===di.WaitingForConnectingWallet||A===di.NetworkChanged?C(A):C(null)},[A]);let B=vp(e),J=I?kw(e,I):null,M=I?vw(e,I):null,H=Zd(e),K=xp(e),ae=i(ke=>!!l(ke)?.mobileWallet,"isMobileWallet"),Q=A===di.WaitingForNetworkChange&&!!J&&!!M?.walletType&&(ae(M.walletType)||a(M.walletType,J)),oe=Q?s.bind(null,M.walletType,J):void 0,W=wp(e,I),U=bf({swap:e,switchNetwork:oe,showNetworkModal:A,setNetworkModal:C,message:W,blockchains:p,swappers:u}),Y=U.length,[re,Te]=[e.steps[0],e.steps[Y-1]],P=Te.outputAmount||Te.expectedOutputAmountHumanReadable,Oe=e.steps.reduce((ke,L)=>ke+parseFloat(L.feeInUsd||""),0),nt=e.steps.find(ke=>ke.diagnosisUrl)?.diagnosisUrl,fe=N(parseFloat(N(P,6,6))*(Te.toUsdPrice||0),4,4),Ue=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),xt=P?ce(new Af(P).multipliedBy(Te.toUsdPrice||0)):"",Xe=ce(new Af(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),rt=Ye(Ue,fe),it=W.detailedMessage.content||W.shortMessage,ft=e.status==="success"?vt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(P,6,6),token:U[Y-1].to.token.displayName,conciseAddress:Bn(e.wallets[U[Y-1].to.chain.displayName]?.address||""),chain:U[Y-1].to.chain.displayName}}):R.createElement(gf,null,R.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},it?"":vt.t("Transaction was not sent."),B?`${vt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),it&&R.createElement(mi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",it));return R.createElement(pe,{header:{title:vt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(vo,null,R.createElement(Ef,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},R.createElement(go,{size:"medium",variant:"label",color:"error"},vt.t("Delete"))))},footer:K&&!k&&R.createElement(Ef,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},vt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(ci,null,R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${vt.t("Request ID")}:`),R.createElement("div",{className:ui()},R.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Iw,{variant:"ghost",onClick:S.bind(null,o||"")},R.createElement(xw,{size:16,color:"gray"})),R.createElement(ff,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(Ww,{container:_(),content:vt.t("View on Rango Explorer"),side:"bottom"},R.createElement(Aw,{size:20}))))),R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${vt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(go,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:mf()},R.createElement(Ew,{fee:N(String(Oe),2,2),time:Fo(In(e.steps)),steps:Y}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Ue,realUsdValue:Xe,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(P,6,6),usdValue:fe,realUsdValue:xt,realValue:P},token:{displayName:U[Y-1].to.token.displayName,image:U[Y-1].to.token.image},chain:{image:U[Y-1].to.chain.image,displayName:U[Y-1].to.chain.displayName}},percentageChange:N(rt,2,2),warningLevel:Et(rt??0)})),R.createElement("div",{className:df()},R.createElement(go,{variant:"title",size:"small"},vt.t("Swaps steps"))),R.createElement(bw,{size:8}),R.createElement(pf,{ref:T},U.map((ke,L)=>{let G=L,V=If(e.steps[L]),Qe=V==="error"||V==="in-progress"||V==="warning"||V==="completed"&&L===U.length-1;return R.createElement(Nw,{key:G,step:ke,type:"swap-progress",ref:T,state:V,hasSeparator:L!==0,tabIndex:G,isFocused:Qe,tooltipContainer:_()})}))),R.createElement(Hs,{state:h,onClose:()=>C(null),onCancel:E,onDelete:n,message:W.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),R.createElement(Xs,{open:!!k,diagnosisUrl:nt,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(P,6,6),usdValue:fe,realUsdValue:xt,realValue:ce(P),percentageChange:N(rt,2,2),token:{displayName:U[Y-1].to.token.displayName,image:U[Y-1].to.token.image},chain:{image:U[Y-1].to.chain.image},description:ft}))}i(Js,"SwapDetails");import{i18n as gi}from"@lingui/core";import{Divider as Bf,NotFound as Ow,Skeleton as wn,Typography as hi}from"@rango-dev/ui";import he from"react";import{i18n as Pw}from"@lingui/core";import{Divider as $w,Skeleton as Dw,Typography as Fw}from"@rango-dev/ui";import Ce from"react";import{css as dt,styled as Rs}from"@rango-dev/ui";var Lf=Rs("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),fi=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),LQ=dt({display:"flex",justifyContent:"space-between",alignItems:"center"}),MQ=dt({display:"flex",justifyContent:"space-between",alignItems:"center"}),BQ=dt({paddingTop:"$15",display:"flex"}),_Q=dt({padding:"$15 $0"}),PQ=dt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),$Q=dt({paddingBottom:"$10"}),DQ=dt({display:"flex",justifyContent:"start",alignItems:"center"}),FQ=dt({paddingTop:"$5",display:"flex",alignItems:"center"}),OQ=dt({display:"flex",alignItems:"center"}),UQ=dt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Mf=dt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function el(){return Ce.createElement(Lf,null,Ce.createElement(nn,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Fw,{variant:"title",size:"small"},Pw.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1}),Ce.createElement("div",{className:Mf()},Ce.createElement($w,{direction:"horizontal",size:20}),Ce.createElement(Dw,{height:22,variant:"rectangular"}))),Ce.createElement(fi,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1})),Ce.createElement(fi,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1})),Ce.createElement(fi,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1}))))}i(el,"LoadingSwapDetails");function _f(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(pe,{header:{title:gi.t("Swap and Bridge"),suffix:he.createElement(vo,null)}},o&&he.createElement(lf,null,he.createElement(ci,null,he.createElement("div",{className:Po()},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(Bf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}),he.createElement(Bf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:Po()},he.createElement(hi,{className:uf(),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(el,null)),!o&&he.createElement(cf,null,he.createElement(Ow,{title:gi.t("Not found"),description:gi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_f,"SwapDetailsPlaceholder");function Pf(){let{manager:t,state:e}=qw(),o=!e.loadedFromPersistor,n=Re(t),{requestId:r}=Hw(),a=Je(),{fetchStatus:s}=y();if(!r)return tl.createElement(Qw,{containerStyles:{margin:"20px"},type:"error",title:Uw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:m})=>m.requestId===r):void 0,u=i(()=>{if(p?.id){let m=t?.get(p.id);m&&zw(m)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(m){console.log(m)}},"onDelete"),d=p?.swap;return!d||l?tl.createElement(_f,{requestId:r,showSkeleton:l}):tl.createElement(Js,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(Pf,"SwapDetailsPage");function $f(){return _p(),Yi(),Gw([{path:z.home,element:qe.createElement(td,null)},{path:z.routes,element:qe.createElement(ad,null)},{path:z.fromSwap,children:[{index:!0,element:qe.createElement(_s,{type:"source"})},{path:z.blockchains,element:qe.createElement(ys,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:qe.createElement(_s,{type:"destination"})},{path:z.blockchains,element:qe.createElement(ys,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:qe.createElement(Kd,null)},{path:z.languages,element:qe.createElement(nd,null)},{path:z.exchanges,element:qe.createElement(fs,{sourceType:"Exchanges"})},{path:z.bridges,element:qe.createElement(fs,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:qe.createElement(_m,null)},{path:z.swapDetails,element:qe.createElement(Pf,null)}]},{path:z.wallets,element:qe.createElement(Gc,null)},{path:z.confirmSwap,element:qe.createElement(wm,null)}])}i($f,"AppRoutes");import{useQueueManager as tv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as ov}from"@rango-dev/wallets-shared";import{isEvmBlockchain as nv}from"rango-sdk";import{useContext as rv,useEffect as iv,useState as Qf}from"react";import{globalCss as Vw}from"@rango-dev/ui";var Df=i(()=>Vw({"@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 Ff(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${It("BASE_URL")}/meta/dapp/config?apiKey=${It("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(Ff,"useFetchApiConfig");import{useWallets as Xw}from"@rango-dev/wallets-react";import{useEffect as jw,useRef as Kw}from"react";function Of(){let{connect:t,state:e}=Xw(),o=Kw({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);jw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Of,"useForceAutoConnect");import{isApprovalTX as Yw,MainEvents as yi,RouteEventType as Uf,StepEventType as zf,StepExecutionEventStatus as Zw,useEvents as Jw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as qf}from"react";function ol(){let t=y().tokens(),e=ee.use.connectedWallets(),o=ee.use.getWalletsDetails(),n=Ee.use.setNotification(),r=Jw();qf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===zf.TX_EXECUTION&&l.status===Zw.TX_SENT&&!Yw(p)||l.type===zf.SUCCEEDED){let d=e.find(f=>f.chain===p?.fromBlockchain),m=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);d&&o([d],t),m&&o([m],t)}n(l,u)},"handleStepEvent");return r.on(yi.StepEvent,a),()=>r.off(yi.StepEvent,a)},[r,e.length]),qf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Uf.FAILED||l.type===Uf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(yi.RouteEvent,a),()=>r.off(yi.RouteEvent,a)},[r,e.length])}i(ol,"useSubscribeToWidgetEvents");import{useManager as Rw}from"@rango-dev/queue-manager-react";import{useEffect as ev}from"react";function nl(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=Rw();ev(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Re(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(nl,"useSyncNotifications");function rl(){Of(),Df(),ol(),nl();let t=y().blockchains(),{canSwitchNetworkTo:e}=wr(),[o,n]=Qf(""),[r,a]=Qf(),s=rv(Un),l=t.filter(nv),{fetchApiConfig:p}=Ff();tv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),iv(()=>(eo.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===ov(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(rl,"useBootstrap");import{styled as av}from"@rango-dev/ui";var Hf=av("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(){rl();let{config:t}=y(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=jt();return il.createElement(sv,{language:o},il.createElement(Hf,{id:"swap-container",className:e()},il.createElement($f,null)))}i(Si,"Main");import{setSolanaSignerConfig as Ev}from"@rango-dev/signer-solana";import sl,{useEffect as Kf,useMemo as Av}from"react";import{useState as lv}from"react";var pv=i(()=>{let[t,e]=lv(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=Cl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Gf=pv;import{checkWaitingForNetworkChange as cv,makeQueueDefinition as uv}from"@rango-dev/queue-manager-rango-preset";import{Provider as mv}from"@rango-dev/queue-manager-react";import{useWallets as dv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as fv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as gv}from"rango-types";import hv,{useMemo as yv}from"react";function Sv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=dv(),l=yv(()=>uv({API_KEY:t.apiKey||It("API_KEY"),BASE_URL:It("BASE_URL")}),[t.apiKey]),p=y().blockchains(),c={blockchains:ee.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},d=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),m=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(gv),S=i(k=>{let{supportedChains:v}=s(k);return Nn(v)},"getSupportedChainNames"),T=e(),h={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:fv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:T,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},C=ie.use.isActiveTab();return hv.createElement(mv,{queuesDefs:[l],context:h,onPersistedDataLoaded:k=>{cv(k)},isPaused:!C},t.children)}i(Sv,"QueueManager");var Vf=Sv;import{useManager as vv}from"@rango-dev/queue-manager-react";import xv,{createContext as bv,useContext as Iv}from"react";import{cancelSwap as Cv,getCurrentBlockchainOfOrNull as Tv,getCurrentStep as kv,getRelatedWalletOrNull as wv}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 Re(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&Cv(o)}getCurrentStepInfo(e){let o=kv(e);return{step:o,wallet:o?wv(e,o):null,network:o?Tv(e,o):null}}};var Xf=bv(void 0);function al(t){let{manager:e}=vv(),o=ie.use.isActiveTab(),n=j.use.retry(),r=new Ci(e,{retrySwap:n}),a=ee.use.connectedWallets(),s=ee.use.loading(),l=El(a),p=ee.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),d=y().swappers(),m=y().fetchStatus,f=jt().resetLanguage,g=Ee().getNotifications(),S={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:r,wallets:{isLoading:s,details:a,totalBalance:l,refetch:p},meta:{blockchains:u,tokens:c,swappers:d,loadingStatus:m},resetLanguage:f,notifications:{list:g}};return xv.createElement(Xf.Provider,{value:S},t.children)}i(al,"WidgetInfo");function jf(){let t=Iv(Xf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(jf,"useWidget");function Ti(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Gf();return Kf(()=>{n&&r(n)},[n]),Av(()=>{Pl({API_KEY:o?.apiKey||vn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),Kf(()=>{t.config?.signers?.customSolanaRPC&&Ev("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),sl.createElement(zn,{config:o,onUpdateState:e},sl.createElement(Vf,{apiKey:o.apiKey},sl.createElement(al,null,t.children)))}i(Ti,"WidgetProvider");function Yf(t){let e=t.config?.externalWallets;return ki.createElement(ip,null,e?ki.createElement(Si,null):ki.createElement(Ti,{config:t.config??Bi},ki.createElement(Si,null)))}i(Yf,"Widget");export{jV as EventSeverity,KV as MainEvents,i2 as Networks,l2 as PendingSwapNetworkStatus,YV as RouteEventType,wi as SUPPORTED_FONTS,ZV as StepEventType,JV as StepExecutionBlockedEventStatus,RV as StepExecutionEventStatus,ye as UI_ID,n2 as WalletEvents,a2 as WalletTypes,Yf as Widget,Ti as WidgetProvider,zn as WidgetWallets,ra as customizedThemeTokens,o2 as readAccountAddress,wr as useWallets,jf as useWidget,e2 as useWidgetEvents};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|