@rango-dev/widget-embedded 0.28.3-next.5 → 0.28.3-next.7
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/BlockchainList/BlockchainList.styles.d.ts +12 -21
- package/dist/components/BlockchainList/BlockchainList.styles.d.ts.map +1 -1
- package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts +4 -7
- package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +60 -105
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
- 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.styles.d.ts +12 -21
- package/dist/components/ConfirmWalletsModal/WalletList.styles.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/components/CustomCollapsible/CustomCollapsible.styles.d.ts +16 -28
- package/dist/components/CustomCollapsible/CustomCollapsible.styles.d.ts.map +1 -1
- package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts +32 -56
- package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts.map +1 -1
- package/dist/components/HistoryGroupedList/HistoryGroupedList.styles.d.ts +24 -42
- package/dist/components/HistoryGroupedList/HistoryGroupedList.styles.d.ts.map +1 -1
- package/dist/components/Layout/Layout.styles.d.ts +16 -28
- package/dist/components/Layout/Layout.styles.d.ts.map +1 -1
- package/dist/components/Layout/PageContainer.d.ts +4 -7
- package/dist/components/Layout/PageContainer.d.ts.map +1 -1
- package/dist/components/Layout/ScrollableArea.d.ts +4 -7
- package/dist/components/Layout/ScrollableArea.d.ts.map +1 -1
- package/dist/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.styles.d.ts +4 -7
- package/dist/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.styles.d.ts.map +1 -1
- package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +56 -98
- package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -1
- package/dist/components/NoResult/NoResult.styles.d.ts +16 -28
- package/dist/components/NoResult/NoResult.styles.d.ts.map +1 -1
- package/dist/components/NotificationContent/NotificationContent.styles.d.ts +33 -57
- package/dist/components/NotificationContent/NotificationContent.styles.d.ts.map +1 -1
- package/dist/components/Quote/Quote.styles.d.ts +85 -148
- package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
- package/dist/components/Quote/QuoteCostDetails.styles.d.ts +20 -35
- package/dist/components/Quote/QuoteCostDetails.styles.d.ts.map +1 -1
- package/dist/components/Quote/QuoteSummary.styles.d.ts +8 -14
- package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts +16 -28
- package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts +40 -70
- package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts +20 -35
- package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts.map +1 -1
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts +16 -28
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -1
- package/dist/components/Quotes/Quotes.styles.d.ts +12 -21
- package/dist/components/Quotes/Quotes.styles.d.ts.map +1 -1
- package/dist/components/RefreshModal/RefreshModal.styles.d.ts +5 -8
- package/dist/components/RefreshModal/RefreshModal.styles.d.ts.map +1 -1
- package/dist/components/SearchInput/SearchInput.styles.d.ts +4 -7
- package/dist/components/SearchInput/SearchInput.styles.d.ts.map +1 -1
- package/dist/components/SettingsContainer/SettingsContainer.style.d.ts +12 -21
- package/dist/components/SettingsContainer/SettingsContainer.style.d.ts.map +1 -1
- package/dist/components/Slippage/Slippage.styles.d.ts +20 -35
- package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.styles.d.ts +60 -105
- package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.styles.d.ts +12 -21
- package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts +8 -14
- package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts.map +1 -1
- package/dist/components/SwitchFromAndTo/SwitchFromAndTo.styles.d.ts +8 -14
- package/dist/components/SwitchFromAndTo/SwitchFromAndTo.styles.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.styles.d.ts +72 -126
- package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
- package/dist/components/WalletModal/WalletModalContent.styles.d.ts +16 -28
- package/dist/components/WalletModal/WalletModalContent.styles.d.ts.map +1 -1
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.styles.d.ts +4 -7
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.styles.d.ts.map +1 -1
- package/dist/containers/App/App.styles.d.ts +4 -7
- package/dist/containers/App/App.styles.d.ts.map +1 -1
- package/dist/containers/ExpandedQuotes/ExpandedQuotes.styles.d.ts +8 -14
- package/dist/containers/ExpandedQuotes/ExpandedQuotes.styles.d.ts.map +1 -1
- package/dist/containers/Inputs/Inputs.styles.d.ts +8 -14
- package/dist/containers/Inputs/Inputs.styles.d.ts.map +1 -1
- package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +12 -21
- package/dist/containers/QuoteInfo/QuoteInfo.styles.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/types/config.d.ts +5 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/colors.d.ts +7 -10
- package/dist/utils/colors.d.ts.map +1 -1
- package/dist/utils/ui.d.ts +2 -1
- package/dist/utils/ui.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/components/HeaderButtons/HeaderButtons.styles.ts +1 -1
- package/src/components/Quote/Quote.styles.ts +5 -5
- package/src/components/TokenList/TokenList.tsx +8 -13
- package/src/store/wallets.ts +7 -2
- package/src/types/config.ts +7 -3
- package/src/utils/colors.ts +160 -117
- package/src/utils/ui.ts +28 -33
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 Zf=Object.defineProperty;var i=(t,e)=>Zf(t,"name",{value:e,configurable:!0});import{EventSeverity as t2,MainEvents as o2,RouteEventType as n2,StepEventType as r2,StepExecutionBlockedEventStatus as i2,StepExecutionEventStatus as a2,useEvents as s2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as p2,useWallets as kr,Events as c2}from"@rango-dev/wallets-react";import{Networks as m2,WalletTypes as d2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as g2}from"rango-types";import{UI_ID as Jf}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",...Jf};var cl="Roboto",ki=[{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 Di,Provider as Hg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Gg}from"rango-sdk";import On,{createContext as Vg,useEffect as np,useMemo as Xg,useRef as rp}from"react";import{useEffect as yg}from"react";import{create as fg}from"zustand";import{subscribeWithSelector as gg}from"zustand/middleware";import{RangoClient as mg}from"rango-sdk";import{BlockchainCategories as rg,WalletState as yt}from"@rango-dev/ui";import{readAccountAddress as ig}from"@rango-dev/wallets-react";import{detectInstallLink as ag,getCosmosExperimentalChainInfo as sg,isEvmAddress as lg,KEPLR_COMPATIBLE_WALLETS as ax,Networks as wl}from"@rango-dev/wallets-shared";import Ii from"bignumber.js";import{isCosmosBlockchain as pg}from"rango-types";import Rf from"bignumber.js";var Be=new Rf(0);import{WalletTypes as eg}from"@rango-dev/wallets-shared";var ul=[eg.LEAP];import{BlockchainCategories as wi}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"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 P=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 vi(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(vi,"compareContainsText");function xi(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(xi,"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=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=vi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=vi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=vi(o,t.address,e.address);if(r!==0)return r}return 0}i(Sl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case wi.ALL:return!0;case wi.UTXO:return t===xn.TRANSFER;case wi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Cl=i(t=>ki.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 Ei(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(Ei,"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:m}=e(r),d=ho(m.map(g=>g.type)),f=Ei(t(r));return{title:a,image:s,link:ag(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d}})}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(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=ig(p),m=l.length>0,d=l.includes(c),f=c===wl.Unknown;if(m&&!d&&!f)return;let S=c===wl.Unknown&&lg(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 m=u.from.blockchain,d=u.to.blockchain,f=a===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Rt,"getQuoteWallets");function 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 Ii(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:ug(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 Ii(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return cg(r)},"calculateWalletUsdValue");function cg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(cg,"numberWithThousandSeparator");var ug=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),Mn=i((t,e)=>{let o=sg(Object.entries(t).map(([,n])=>n).filter(pg));return o&&o[e]?.experimental},"isExperimentalChain");function Ln(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Ln,"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 Pe(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Pe,"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 Ai(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ai,"createTokenHash");function Pn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ii(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Ai({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(Pn,"makeTokensBalance");var Ml=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ll(t){return t.map(e=>e.state).join("-")}i(Ll,"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 Pl(t,e){return e===rg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(Pl,"filterWalletsByCategory");var Ni={API_KEY:vn};function It(t){return Ni[t]||""}i(It,"getConfig");function _l(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ni=e,Ni}i(_l,"initConfig");var $l=20,Dl=25,Wi="theme-widget",Uo=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"),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 _n,Ft=i(()=>_n||(_n=new mg(It("API_KEY"),It("BASE_URL")),_n),"httpService");var dg=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=dg;var ee=Ot(fg()(gg((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:Pn(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(d=>{let f=o.find(S=>Wn(S,d)),g=p.find(S=>S.address===d.address&&S.blockChain===d.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...d,explorerUrl:g.explorerUrl,balances:bl(g,n),loading:!1}:d});return{loading:!1,balances:Pn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Wn(m,c))?Il(c):c);return{loading:!1,balances:Pn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ai(o);return n[r]??null}}))));import{allProviders as hg}from"@rango-dev/provider-all";function $n(t,e){let o=hg({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 yg(()=>{o(),n=$n(t,e)},[t?.length]),{providers:n}}i(Ul,"useWalletProviders");import Dg,{createContext as Fg,useContext as Og,useEffect as Ug,useRef as zg}from"react";import{create as _g}from"zustand";import{persist as $g}from"zustand/middleware";var Li={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},Sg={clientUrl:void 0},Cg={liquiditySources:void 0},zl=i((t,e,o)=>({config:{...Li,...t},iframe:Sg,campaignMode:Cg,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 Bi(t,e){return e.find(o=>Pe(o,t))??null}i(Bi,"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 m=e().isTokenPinned(u,o.type),d=e().isTokenPinned(c,o.type);if(m!==d)return m?-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=>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(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,m)=>c.sort-m.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 Tg,English as kg,Finland as wg,French as vg,German as xg,Greece as bg,Italian as Ig,Japanese as Eg,Netherlands as Ag,Poland as Ng,Portuguese as Wg,Russian as Mg,Spanish as Lg,Swedish as Bg,Ukrainian as Pg}from"@rango-dev/ui";var Gl=[{title:"English",label:"English",local:"en",SVGFlag:kg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Lg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:vg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Eg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Wg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Tg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Mg},{title:"German",label:"Deutsch",local:"de",SVGFlag:xg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Pg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Bg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:wg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ag},{title:"Greek",label:"Grieks",local:"el",SVGFlag:bg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Ig},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ng}],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()($g((...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=Fg(null);function y(){let t=Og(Rl);if(Ug(()=>{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=zg();return e.current||(e.current=Jl(t.config)),Dg.createElement(Rl.Provider,{value:e.current},t.children)}i(ep,"AppStoreProvider");import{create as Qg}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(Qg()((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=Vg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function jg(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(),m=rp(),d=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(Gg).map(h=>h.name),g=i((h,C,k,x,I)=>{if(C===Di.ACCOUNTS)if(k){let b=Nn(I.supportedBlockchains),v=xl(h,k,f,b,I.isContractWallet);v.length&&u(v,a)}else c(h),d.current?d.current(h):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(C===Di.ACCOUNTS&&x.connected){let b=`${h}-${x.network}-${k}`;x.connected&&(m.current?m.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(C===Di.NETWORK&&x.network){let b=`${h}-${x.network}`;m.current?m.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,C,k,x,I)},"onUpdateState"),S=ie.use.isActiveTab(),T=Xg(()=>({onConnectWallet:h=>{m.current=h},onDisconnectWallet:h=>{d.current=h}}),[]);return On.createElement(Un.Provider,{value:T},On.createElement(Hg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(jg,"Main");function zn(t){let{config:e,...o}=t;return On.createElement(ep,{config:e},On.createElement(jg,{...o,config:e}))}i(zn,"WidgetWallets");import Ti from"react";import Kg,{Fragment as Yg}from"react";import{MemoryRouter as Zg,useInRouterContext as Jg}from"react-router";function ip({children:t}){let o=Jg()?Yg:Zg;return Kg.createElement(o,null,t)}i(ip,"AppRouter");import{I18nManager as fv}from"@rango-dev/ui";import il from"react";import qe from"react";import{useRoutes as Jw}from"react-router-dom";var z={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as Co,useRef as Zn}from"react";import At from"bignumber.js";import{create as oh}from"zustand";import{subscribeWithSelector as nh}from"zustand/middleware";import{getLastSuccessfulStep as th}from"@rango-dev/queue-manager-rango-preset";import LI from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Fi={"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")},Oi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ap=30;import{i18n as at}from"@lingui/core";import{RouteEventType as hI}from"@rango-dev/queue-manager-rango-preset";import _e from"bignumber.js";import{PendingSwapNetworkStatus as Hn}from"rango-types";function qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(qn,"isValidAddress");import{i18n as Me}from"@lingui/core";var 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 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 _e(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new _e(1e3)))??!1}i(lp,"hasHighValueLoss");function pp(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(pp,"hasLimitError");function cp(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=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 Ui(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ui,"canComputePriceImpact");var Rg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function zi(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=Rg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new _e(r.amount).multipliedBy(a||0))}return o}i(zi,"getUsdFeeOfStep");function Gn(t,e){return t.reduce((o,n)=>o.plus(zi(n,e)),Be)}i(Gn,"getTotalFeeInUsd");function qi(t){let e=Be;return e=e.plus(new _e(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:m,affiliateWallets:d,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:m??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets: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 _e(e).div(new _e(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 _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=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 _e(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(m=>r.some(d=>d.chain===m)),u=l.every(m=>r.some(d=>d.chain===m)),c=o&&a?qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(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 Qi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Qi,"isNumberOfSwapsChanged");function Hi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Hi,"isQuoteSwappersUpdated");function Gi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(Gi,"isQuoteInternalCoinsUpdated");function Np(t,e){return Qi(t,e)||Hi(t,e)||Gi(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=th(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=Bi(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Bi(s,o),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}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 d=Gn(t?.swaps,r),f=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Vn(t.swaps),u=a>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 Mp=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"),Lp=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=Oi.indexOf(o.value),a=Oi.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(oh()(nh(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 Pp(){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,m=y().fetchStatus,d=y().blockchains(),f=y().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:T}=y(),h=c?.from?.tokens,C=c?.from?.blockchains,k=c?.to?.tokens,x=c?.to?.blockchains,I=Zn(void 0),b=Zn(void 0),v=Zn(void 0),w=Zn(void 0);Co(()=>{t(c?.amount?.toString()||"")},[c?.amount]),Co(()=>{if(m==="success"){r();let E=d.find(B=>B.name===c?.from?.blockchain),A=f.find(B=>Pe(B,c?.from?.token||null));(E||!E&&v.current)&&n(E??null),A?a({token:A,meta:{blockchains:d,tokens:f}}):!A&&I.current&&a({token:null}),v.current=c?.from?.blockchain,I.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),Co(()=>{Uo(s,h)&&a({token:null}),Mi(p,C)&&n(null)},[h,C]),Co(()=>{Uo(l,k)&&a({token:null}),Mi(u,x)&&o(null)},[k,x]),Co(()=>{if(m==="success"){r();let E=d.find(B=>B.name===c?.to?.blockchain),A=f.find(B=>Pe(B,c?.to?.token||null));(E||!E&&w.current)&&o(E??null),A?e({token:A,meta:{blockchains:d,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,m]),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(Pp,"useSyncStoresWithConfig");import{useEffect as ji,useRef as rh}from"react";import{useInRouterContext as ih,useLocation as ah,useSearchParams as sh}from"react-router-dom";function Vi(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(Vi,"searchParamToToken");function Xi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Xi,"tokenToSearchParam");function Ki(){let t=ah(),[e,o]=sh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:d}=j(),f=y().fetchStatus,g=y().blockchains(),S=y().tokens(),T=ih(),{updateIframe:h,updateCampaignMode:C}=y(),k=y().isInCampaignMode(),x=rh(),I=i(()=>{let v={};for(let[ae,Q]of e.entries())ae.startsWith("utm_")&&(v[ae]=Q);let w=e.get("fromAmount"),E=e.get("fromBlockchain"),A=e.get("fromToken"),B=e.get("toBlockchain"),J=e.get("toToken"),L=e.get("autoConnect"),H=e.get("clientUrl"),K=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:E,fromToken:A,toBlockchain:B,toToken:J,autoConnect:L,clientUrl:H,liquiditySources:K,utmQueryParams:v}},"getUrlSearchParams"),b=i(v=>{for(let w in v)v[w]||delete v[w];o(v,{replace:!0})},"updateUrlSearchParams");ji(()=>{let{autoConnect:v,clientUrl:w,utmQueryParams:E}=I();T&&f==="success"&&b({fromBlockchain:n?.name,fromToken:Xi(a),toBlockchain:r?.name,toToken:Xi(s),fromAmount:l,autoConnect:v??void 0,clientUrl:w??void 0,liquiditySources:k?x.current:void 0,...E})},[t.pathname,l,n,a,r,s,k]),ji(()=>{if(!T)return;let v=I();if(!x.current&&v.liquiditySources&&(x.current=v.liquiditySources),v.fromAmount&&d(v.fromAmount),f==="success"){let w=g.find(J=>J.name===v.fromBlockchain),E=Vi(S,v.fromToken,w??null),A=g.find(J=>J.name===v.toBlockchain),B=Vi(S,v.toToken,A??null);w&&(p(w),E&&c({token:E,meta:{blockchains:g,tokens:S}})),A&&(u(A),B&&m({token:B,meta:{blockchains:g,tokens:S}}))}},[f]),ji(()=>{let{clientUrl:v,liquiditySources:w}=I();h("clientUrl",v||void 0),C("liquiditySources",w?.split(",")??void 0)},[])}i(Ki,"useSyncUrlAndStore");import{i18n as Ya}from"@lingui/core";import{useManager as MC}from"@rango-dev/queue-manager-react";import{Alert as Cm,Button as LC,css as Ja,Divider as Za,IconButton as Tm,styled as BC,Typography as PC,WalletIcon as _C}from"@rango-dev/ui";import xe,{useEffect as Qr,useLayoutEffect as $C,useRef as DC,useState as sn}from"react";import{useNavigate as FC}from"react-router-dom";import{i18n as Ct}from"@lingui/core";import{Alert as Na,BalanceErrors as hS,Button as Zc,ChevronDownIcon as yS,ChevronLeftIcon as SS,CloseIcon as CS,Divider as Ko,IconButton as Jc,MessageBox as TS,PasteIcon as kS,Typography as wr,WalletIcon as wS}from"@rango-dev/ui";import $,{useCallback as vS,useEffect as Rc,useRef as xS,useState as lo}from"react";import{useNavigate as bS}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 ph}from"@rango-dev/ui";import ch from"react";function ne(t){let{watermark:e}=ie();return ch.createElement(ph,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import nr,{useRef as dh}from"react";import*as To from"@radix-ui/react-collapsible";import{keyframes as $p,styled as er}from"@rango-dev/ui";var Yi=300,uh=$p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),mh=$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"}}}}),Zi=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:`${uh} ${Yi}ms ease-out`},false:{animation:`${mh} ${Yi}ms ease-out`}}}}),or=er("div",{transition:`all ${Yi}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=dh(null);return nr.createElement(Dp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&nr.createElement(Zi,{className:"collapsible_trigger",onClick:a},s),nr.createElement(tr,{className:"collapsible_content",open:e},r),l==="bottom"&&nr.createElement(Zi,{className:"collapsible_trigger",onClick:a},s))}i(rr,"CustomCollapsible");import{css as Fp,darkTheme as Vo,IconButton as fh,styled as Ze,TextField as gh}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%"}),hh=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(hh,{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(fh,{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(gh,{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 mS,Divider as Ea,Image as dS,MessageBox as Tr,SelectableWallet as fS,Typography as jc,WalletState as Kc}from"@rango-dev/ui";import ue,{useEffect as Yc,useState as Eo}from"react";import{WalletState as ir}from"@rango-dev/ui";import{useWallets as yh}from"@rango-dev/wallets-react";import{detectMobileScreens as Sh,KEPLR_COMPATIBLE_WALLETS as Ch,WalletTypes as ko}from"@rango-dev/wallets-shared";import{useCallback as Th,useEffect as kh,useState as wh}from"react";var vh=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}=yh(),{connectedWallets:u}=ee(),c=y().blockchains(),m=Ol(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||vh,d=vl(a,l,m,e);d=Sh()?d.filter(b=>b.showOnMobile!==!1&&a(b.type).installed):d;let f=Nl(d),[g,S]=wh(""),T=i(b=>!u.find(v=>v.walletType===b&&v.chain===e),"isExperimentalChainNotAdded"),h=i(async(b,v)=>{let w=a(b);try{if(g&&S(""),w.connected)await s(b);else{let E=!!d.find(A=>A.state===ir.CONNECTED);if(r?.multiWallets===!1&&E)return;o?.(b),await p(b,void 0,v),n?.(b)}}catch(E){S("Error: "+E?.message)}},"handleClick"),C=Th(()=>{let b=d?.filter(v=>v.state===ir.CONNECTING)||[];for(let v of b)s(v.type)},[Ll(d)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");kh(()=>()=>{C()},[]);let x=i(b=>{let v=b.find(E=>E.type===ko.DEFAULT);return!v||v.state===ir.NOT_INSTALLED?!1:b.filter(E=>E.state!=ir.NOT_INSTALLED&&![ko.DEFAULT,ko.WALLET_CONNECT_2,ko.LEDGER].includes(E.type)&&l(E.type).supportedChains.filter(A=>A.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),I=i((b,v,w)=>Mn(w,v)&&T(b)&&!Ch.includes(b)||b==ko.DEFAULT&&!x(d),"shouldExcludeWallet");return{list:f.filter(b=>!I(b.type,e??"",c)),error:g,handleClick:h,disconnectConnectingWallets:C,disconnectWallet:k}}i(wo,"useWalletList");import{i18n as zc}from"@lingui/core";import{Divider as nS,getCategoriesCount as rS,SelectableCategoryList as iS,styled as Qc,Typography as aS,Wallet as sS,WalletState as qc}from"@rango-dev/ui";import st,{useState as Sr}from"react";import{useManager as _y}from"@rango-dev/queue-manager-react";import{BottomLogo as $y,Divider as Pc,Header as Dy}from"@rango-dev/ui";import Se,{useEffect as ka,useRef as _c,useState as Fy}from"react";import{useRef as xh}from"react";function ar(){return window.self!==window.top}i(ar,"isAppLoadedIntoIframe");function Ji(){let t=xh(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(Ji,"useIframe");import{useNavigate as bh}from"react-router-dom";function Je(){let t=bh();return()=>t(-1)}i(Je,"useNavigateBack");import{createTheme as ia,darkTheme as Oh,lightTheme as Uh}from"@rango-dev/ui";import{useEffect as zh,useState as qh}from"react";import{theme as Dh,darkColors as Fh}from"@rango-dev/ui";import na from"react";function Ih(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Ih,"expandShortHexColor");function Eh(t){return/[0-9]+$/.test(t)}i(Eh,"isOverridingColor");function Ah(t,e){return t.padStart(e,"0")}i(Ah,"pad");function Ri(t){let e=Math.min(Math.max(Math.round(t),0),255);return Ah(e.toString(16),2)}i(Ri,"intToHex");function Nh(t){return`#${Ri(t.red)}${Ri(t.green)}${Ri(t.blue)}`}i(Nh,"rgbToHex");function Wh(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(Wh,"hexToRGB");function Mh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Mh,"generateShade");function Lh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(Lh,"generateTint");function Bh(t){return Jp(t,Mh)}i(Bh,"calculateShades");function Ph(t){return Jp(t,Lh)}i(Ph,"calculateTints");function Jp(t,e){let o=Wh(t),n=[];for(let r=1;r<9;r++)n.push(Nh(e(o,r)));return n}i(Jp,"calculateColors");function ea(t,e,o){let a=Ph(t).reverse().concat(t),s=Bh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(ea,"createTintsAndShades");function ta(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Eh(r)){let p=Ih(a);Object.assign(n,ea(p,r,s))}}return{...n,...e}}i(ta,"expandToGenerateThemeColors");var Rp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),_h=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Rp(o%52)+e;return Rp(o%52)+e},"toAlphabeticName"),$h=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),oa=i(t=>_h($h(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=Dh.colors,o={...e,...Fh},n,r;if(t?.light){let s={colors:ta(e,t.light)};n={id:`${Wi}-light-${oa(s)}`,tokens:s}}if(t?.dark){let s={colors:ta(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Wi}-dark-${oa(s)}`,tokens:s}}return{light:n,dark:r}}i(ra,"customizedThemeTokens");function ec(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(ec,"joinList");function sr(t){let{colors:e,fontFamily:o=cl,borderRadius:n=$l,secondaryBorderRadius:r=Dl}=t,[a,s]=qh("light"),{theme:l}=y(),{dark:p,light:u}=ra(e),c=ia({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Uh.className],d=[c.className,Oh.className];if(u){let g=ia(u.id,u.tokens);m.push(g.className)}if(p){let g=ia(p.id,p.tokens);d.push(g.className)}return zh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),S=d.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(sr,"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 tc}from"@lingui/core";import{Alert as Qh,Button as Hh}from"@rango-dev/ui";import oc from"react";function aa(t){return oc.createElement(Qh,{action:oc.createElement(Hh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},tc.t("Activate this tab")),type:"warning",variant:"alarm",title:tc.t("Another tab is open and handles transactions.")})}i(aa,"ActivateTabAlert");import{i18n as sa}from"@lingui/core";import{Button as Gh,Divider as Vh,MessageBox as Xh}from"@rango-dev/ui";import lr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return lr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},lr.createElement(Xh,{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.")},lr.createElement(Vh,{size:20}),lr.createElement(Gh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as Yh}from"@rango-dev/ui";import pc from"react";import{css as jh,darkTheme as nc,IconButton as Kh,styled as no}from"@rango-dev/ui";var St=no(Kh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${nc} &`]:{backgroundColor:"$neutral"}}}),rc=no("div",{position:"absolute",background:"$secondary500",[`.${nc} &`]:{$$color:"$colors$secondary250"},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}}),ic=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"}}}}),ac=no("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),sc=no("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),lc=jh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),pr=no("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function pa(t){return pc.createElement(St,{variant:"ghost",size:"small",onClick:t.onClick},pc.createElement(Yh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as Zh}from"@lingui/core";import{Button as Jh,Typography as Rh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(vo,null,ca.createElement(Jh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(Rh,{variant:"label",size:"medium",color:"error500"},Zh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as ey}from"@lingui/core";import{Image as ty,Tooltip as oy,WalletIcon as ny}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:lc()},o.map(r=>ro.createElement(pr,{key:r.title},ro.createElement(ty,{src:r.image,size:14})))):ey.t("Connect Wallet");return ro.createElement(oy,{container:t.container,side:"bottom",content:n},ro.createElement(St,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ro.createElement(rc,null),ro.createElement(ny,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as mr}from"@lingui/core";import{NotificationsIcon as Iy,Popover as Ey,SettingsIcon as Ay,Tooltip as dr,TransactionIcon as Ny}from"@rango-dev/ui";import Ae from"react";import{i18n as da}from"@lingui/core";import{EventSeverity as Cc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Tc,ChevronRightIcon as fy,Divider as kc,Typography as fa}from"@rango-dev/ui";import de from"react";import{useNavigate as gy}from"react-router-dom";import{create as ry}from"zustand";import{persist as iy,subscribeWithSelector as ay}from"zustand/middleware";var Ee=Ot(ry()(iy(ay((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 sy,darkTheme as ly,ListItemButton as py,styled as zt}from"@rango-dev/ui";var cc=zt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),uc=zt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),mc=zt(sy,{padding:"$5 !important"}),dc=zt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),fc=zt(py,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${ly} &`]:{backgroundColor:"$error600"}}}}}),gc=zt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),hc=zt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),yc=zt("span",{paddingRight:"$8"});import{i18n as cy}from"@lingui/core";import{Divider as uy,NoNotificationIcon as my,Typography as dy}from"@rango-dev/ui";import cr from"react";function Sc(){return cr.createElement(hc,null,cr.createElement(my,{color:"secondary",size:26}),cr.createElement(uy,{size:12}),cr.createElement(dy,{variant:"body",size:"medium",color:"neutral700"},cy.t("There are no notifications.")))}i(Sc,"NotificationNotFound");var hy=4;function ga(){let t=gy(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=y().blockchains(),a=y().tokens(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,hy),l=i(p=>{t(`${z.swaps}/${p}`)},"handleOnClick");return de.createElement(cc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(uc,null,de.createElement(fa,{variant:"label",size:"medium"},da.t("Notifications")),de.createElement(mc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(fa,{variant:"body",size:"xsmall"},da.t("Clear all")))),de.createElement(kc,{direction:"vertical",size:4})),s.length?de.createElement(dc,null,s.map((p,u)=>{let{route:c,requestId:m,event:d}=p,f=a.find(h=>Pe(h,c.from)),g=r.find(h=>h.name===c.from.blockchain),S=a.find(h=>Pe(h,c.to)),T=r.find(h=>h.name===c.to.blockchain);return de.createElement(de.Fragment,{key:m},u>0&&de.createElement(kc,{size:4}),de.createElement(fc,{onClick:()=>l(m),actionRequired:d.messageSeverity===Cc.WARNING,title:de.createElement(fa,{variant:"body",size:"small",color:d.messageSeverity===Cc.WARNING?"$foreground":"$neutral700"},da.t(d.message)),id:m,start:de.createElement(gc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Tc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Tc,{tokenImage:S?S.image:"",chainImage:T?T.logo:"",size:"small"}))),end:de.createElement(yc,null,de.createElement(fy,{size:12,color:"gray"}))}))})):de.createElement(Sc,null))}i(ga,"NotificationContent");import{useManager as yy}from"@rango-dev/queue-manager-react";import{InProgressIcon as Sy}from"@rango-dev/ui";import wc from"react";var Cy=i(()=>{let{manager:t}=yy();return Re(t).map(({swap:o})=>o).find(o=>o.status==="running")?wc.createElement(sc,null,wc.createElement(Sy,{color:"info",size:6})):null},"InProgressTransactionBadge"),vc=Cy;import{EventSeverity as Ty}from"@rango-dev/queue-manager-rango-preset";import{Typography as ky}from"@rango-dev/ui";import xc from"react";function bc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Ty.WARNING);return o?xc.createElement(ic,{isSever:n},xc.createElement(ky,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(bc,"NotificationsBadge");import{RefreshProgressButton as wy}from"@rango-dev/ui";import ha,{useEffect as vy,useState as Ic}from"react";var xy=1e3,Ec=60,by=100;function ur({onClick:t}){let[e,o]=Ic(0),[n,r]=Ic(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");vy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ec&&l()},xy):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(ac,{onTransitionEnd:()=>r(!1),isRefetched:n},ha.createElement(wy,{size:22,color:t?"black":"gray",progress:e/Ec*by})))}i(ur,"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(dr,{container:a||P(),side:"top",content:mr.t("Refresh")},Ae.createElement(ur,{onClick:e})),!l&&Ae.createElement(Ey,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ae.createElement(ga,null)},Ae.createElement("div",null,Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Notifications")},Ae.createElement(St,{size:"small",variant:"ghost"},Ae.createElement(Iy,{size:18,color:"black"}),Ae.createElement(bc,null))))),!r.includes("settings")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Settings")},Ae.createElement(St,{size:"small",variant:"ghost",onClick:n},Ae.createElement(Ay,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Transactions History")},Ae.createElement(St,{size:"small",variant:"ghost",onClick:o},Ae.createElement(Ny,{size:18,color:"black"}),Ae.createElement(vc,null))))}i(io,"HeaderButtons");import{i18n as ya}from"@lingui/core";import{Divider as Nc,MessageBox as Ly,RefreshIcon as By}from"@rango-dev/ui";import xo from"react";import{Button as Wy,styled as My}from"@rango-dev/ui";var Ac=My(Wy,{"& 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:P()},xo.createElement(Ly,{title:ya.t("Something went wrong"),type:"error",description:ya.t("Something went wrong. Please refresh the app.")},xo.createElement(Nc,{size:30}),xo.createElement(Ac,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},xo.createElement(By,{size:20,color:"primary"}),xo.createElement(Nc,{size:4,direction:"horizontal"}),ya.t("Refresh"))))}i(Sa,"RefreshModal");function Ca(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ca,"onScrollContentAttachStatusToContainer");import{css as Py,styled as Ta}from"@rango-dev/ui";var Wc="700px",fr=Py({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:Wc},fixed:{height:Wc}}}}),Lc=Ta("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Bc=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}=Ji(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=Fy(!1),c=ee.use.connectedWallets(),{config:{features:m,theme:d}}=y(),{watermark:f}=ie(),g=f==="FULL",{activeTheme:S}=sr(d||{}),T=Ke("connectWalletButton",m),{isActiveTab:h,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:x,activateCurrentTab:I}=ie(),b=Je(),{manager:v}=_y(),E=Re(v).map(({swap:K})=>K).some(K=>K.status==="running"),A=i(()=>I(eo.forceClaim,E),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),J=typeof r.hasBackButton>"u"||r.hasBackButton,L=_c(null),H=_c(null);return ka(()=>(ar()&&H.current&&e(H.current),()=>{o()}),[]),ka(()=>(L.current?.addEventListener("scroll",Ca),()=>{L.current?.removeEventListener("scroll",Ca)}),[]),ka(()=>{u(l==="failed")},[l]),Se.createElement(Mc,{height:s,id:ye.SWAP_BOX_ID,className:`${S()} ${fr()}`,ref:H},Se.createElement(Dy,{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:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&Se.createElement(ua,{onClick:r.onCancel}))}),Se.createElement(Lc,{ref:L},n),Se.createElement(la,{open:k,onClose:()=>x(!1),onConfirm:A}),Se.createElement(Bc,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($y,null))),Se.createElement(Sa,{open:p,onClose:()=>u(!1)}))}i(pe,"Layout");import{styled as Oy}from"@rango-dev/ui";var $c="$20 $20 $10 $20",Xo=Oy("div",{padding:$c,overflowY:"auto",flexGrow:1});import{styled as Uy}from"@rango-dev/ui";var me=Uy("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 Gy}from"@rango-dev/ui";import va from"react";import{i18n as bo}from"@lingui/core";import{Image as Qy,MessageBox as wa,WalletState as Hy}from"@rango-dev/ui";import ao from"react";import{keyframes as zy,styled as gr}from"@rango-dev/ui";var dW=gr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),hr=gr("div",{position:"relative"}),qy=zy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),yr=gr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${qy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Dc=gr("div",{"& img":{borderRadius:"50%"}});function Fc(t){let{state:e,image:o,error:n}=t;return e===Hy.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(hr,null,ao.createElement(Dc,null,ao.createElement(Qy,{src:o,size:45})),ao.createElement(yr,null))})}i(Fc,"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(Fc,{...n}),va.createElement(Gy,{direction:"vertical",size:32}))}i(jo,"WalletModal");import{i18n as xa}from"@lingui/core";import{Button as Xy,Checkbox as jy,Image as Uc,ListItemButton as Ky,MessageBox as Yy,Radio as Zy,RadioRoot as Jy}from"@rango-dev/ui";import{Namespace as Io}from"@rango-dev/wallets-shared";import We,{useMemo as Ry,useState as eS}from"react";import{styled as Vy}from"@rango-dev/ui";var Oc=Vy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var tS={[Io.Evm]:"ETH",[Io.Solana]:"SOLANA",[Io.Cosmos]:"COSMOS",[Io.Utxo]:"BTC",[Io.Starknet]:"STARKNET",[Io.Tron]:"TRON"},oS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function so(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=eS([]),a=y().blockchains(),s=Ry(()=>o?.map(u=>({name:u,logo:oS(a,tS[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(Jy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},We.createElement(Yy,{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(hr,null,We.createElement(pr,null,We.createElement(Uc,{src:t.image,size:45})),We.createElement(yr,null))}),We.createElement(Oc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(Ky,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Uc,{src:u.logo,size:22}),end:e?We.createElement(Zy,{value:u.name}):We.createElement(jy,{checked:n.includes(u.name)})}))))),We.createElement(Xy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},xa.t("Confirm")))}i(so,"WalletNamespacesModal");var lS=Qc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),pS=Qc(me,{textAlign:"center"}),Cr=3e3,ba=300;function Hc(){let{fetchStatus:t}=y(),[e,o]=Sr("ALL"),n=y().blockchains(),[r,a]=Sr(!1),[s,l]=Sr(null),[p,u]=Sr(""),c=null,m=ie.use.isActiveTab(),{list:d,handleClick:f,error:g,disconnectConnectingWallets:S}=wo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},ba)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},Cr)}}),T=i(()=>{S(),a(!1)},"handleCloseWalletModal"),h=d.find(w=>w.type===p),C=h?.image||"",k=h?.state||qc.NOT_INSTALLED,x=Bl(d,n),b=rS(x)!==1,v=Pl(d,e);return st.createElement(pe,{header:{title:zc.t("Connect Wallets")}},st.createElement(pS,null,b&&st.createElement(st.Fragment,null,st.createElement(iS,{setCategory:o,category:e,blockchains:x,isLoading:t==="loading"}),st.createElement(nS,{size:24})),st.createElement(aS,{variant:"title",size:"xmedium",align:"center"},zc.t("Choose a wallet to connect.")),st.createElement(lS,null,v.map((w,E)=>{let A=`wallet-${E}-${w.type}`;return st.createElement(sS,{key:A,...w,container:P(),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:!m})}),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(Hc,"WalletsPage");import{keyframes as cS,styled as Ia}from"@rango-dev/ui";var Gc=Ia("div",{position:"relative"}),uS=cS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Vc=Ia("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${uS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Xc=Ia("div",{"& img":{borderRadius:"50%"}});var gS=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,m]=Eo(""),[d,f]=Eo(null),[g,S]=Eo(!1),[T,h]=Eo(null),[C,k]=Eo(null),{suggestAndConnect:x}=kr(),I=null,{list:b,error:v,handleClick:w,disconnectWallet:E,disconnectConnectingWallets:A}=wo({chain:e,onBeforeConnect:W=>{I=setTimeout(()=>{m(W)},ba)},onConnect:W=>{s?.(W),I&&clearTimeout(I),setTimeout(()=>{m("")},Cr)}}),[B,J]=Eo(b),L=b.length,H=r&&L-r>0,K=i(async W=>{S(!1),h("in-progress");try{await x(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");Yc(()=>{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);Yc(()=>{let W=null;return(T==="completed"||T==="rejected")&&(W=setTimeout(()=>h(null),Cr)),()=>{W&&clearTimeout(W)}},[T]);let oe=i(()=>{A(),m("")},"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,gS):"",re=Mn(u(),e),Te=!p.find(Ue=>Ue.walletType===W.type&&Ue.chain===e),_=re&&Te&&W.state===Kc.CONNECTED,Oe=_?lt.t({id:"Add {chain} chain",values:{chain:e}}):Y,nt=i(async()=>{W.state===Kc.DISCONNECTED?W.namespaces?ae(W):w(W.type):W.namespaces&&!Y?(await E(W.type),ae(W)):_?(f({walletType:W.type,chain:e,address:U??""}),S(!0)):n({walletType:W.type,chain:e,address:U??""})},"onClick"),fe=d?.chain?Dn(d.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:v}),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}),!!d&&ue.createElement(ne,{open:!!d&&g,container:Q,onClose:()=>{f(null)}},ue.createElement(Tr,{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(mS,{onClick:K.bind(null,d),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(Tr,{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(Gc,null,ue.createElement(Xc,null,ue.createElement(dS,{src:W.image,size:45})),ue.createElement(Vc,null))}),T==="completed"&&ue.createElement(Tr,{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(Tr,{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(fS,{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(jc,{variant:"label",size:"medium"},lt.t("Show more wallets"),ue.createElement(jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",L-(r??0)))))}i(Aa,"WalletList");var IS=2;function eu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=bS(),l=y().config,p=xS(null),u=y().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:d,setQuoteWalletConfirmed:f,customDestination:g,setCustomDestination:S}=j(),{connectedWallets:T,selectWallets:h}=ee(),[C,k]=lo(""),[x,I]=lo([]),[b,v]=lo(""),[w,E]=lo(null),[A,B]=lo(!!g),J=navigator?.userAgent.includes("Firefox"),L=Rt({filter:"all",quote:c}),H=Rt({filter:"required",quote:c}),K=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),ae=i(M=>H.includes(M),"isWalletRequiredFor"),Q=vS(()=>T.filter(M=>M.selected&&L.includes(M.chain)),[T.length,L.length]),[oe,W]=lo(Q()),[U,Y]=lo([]),re=i((M,G)=>Y(V=>V.concat({blockchain:M,walletType:G})),"addNextSelectedWallets"),Te=x.length>0,_=i((M,G)=>!!oe.find(V=>V.walletType===M&&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(M=>{let G=!1;return M.map(V=>!G&&V.chain===K?.name?(G=!0,{...V,selected:!0}):V)})},"resetCustomDestination"),fe=i(()=>S(""),"handleClearCustomDestination"),Ue=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let G=await navigator.clipboard.readText();S(G),p?.current?.focus()}},"handlePasteCustomDestination"),xt=i(M=>{M?ae(K?.name??"")||W(G=>G.map(V=>V.chain===K?.name?{...V,selected:!1}:V)):nt()},"handleCustomDestinationCollapsibleOpenChange"),Xe=i(M=>{if(C&&k(""),_(M.walletType,M.chain))return;let V=T.find(Qe=>Qe.walletType===M.walletType&&Qe.chain===M.chain);V&&(n(),M.chain===K?.name&&A&&!ae(K.name)&&(B(!1),S(null)),W(Qe=>Qe.filter(gt=>gt.chain!==M.chain).concat({...V,selected:!0})))},"onChange"),rt=i(()=>{let M=oe.filter(G=>G.selected);h(M),m(M),f(!0),o()},"onConfirmBalance"),it=i(async()=>{I([]),v(""),E(null);let M=await r?.({selectedWallets:oe.filter(V=>V.selected),customDestination:g}),G=M.warnings;G?.balance?.messages&&I(G.balance.messages),G?.quoteUpdate&&E(G.quoteUpdate),M.error&&v(sp(M.error)),!M.error&&!G?.balance?.messages.length?rt():I(G?.balance?.messages??[])},"onConfirmWallets"),ft=i(()=>g?$.createElement(Jc,{onClick:fe,variant:"ghost"},$.createElement(CS,{size:12,color:"gray"})):J?null:$.createElement(Jc,{onClick:Ue,variant:"ghost"},$.createElement(kS,{size:16})),"renderCustomDestinationSuffix");Rc(()=>{W(M=>{let G=[];return M.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&&L.includes(V.chain))),G})},[T.length,L.length]),Rc(()=>{let M=[];U.length>0&&(U.forEach(G=>{let V=T.find(Qe=>Qe.chain===G.blockchain&&Qe.walletType===G.walletType);V?Xe(V):M.push(G)}),Y(M))},[T.length,U.length]);let ke=document.getElementById(ye.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{d||s("../",{replace:!0}),o()},dismissible:!C,container:ke,...!C&&{footer:$.createElement(jp,null,$.createElement(Zc,{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(SS,{size:16})),$.createElement(wr,{variant:"headline",size:"small"},Ct.t({id:"Your {blockchainName} wallets",values:{blockchainName:je(C,u)}})))},anchor:"center"},$.createElement(ne,{open:Te,onClose:I.bind(null,[]),container:ke},$.createElement(TS,{title:Ct.t("Insufficient account balance"),type:"error",description:$.createElement(hS,{messages:x??[]})},$.createElement(Zc,{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:_,selectWallet:Xe,onShowMore:()=>k(C),onConnect:M=>{re(C,M)}}))),!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,L.map((M,G)=>{let V=u.find(Jt=>Jt.name===M),Qe=`wallet-${G}`,gt=G===L.length-1;return $.createElement("div",{key:Qe},$.createElement(Op,null,$.createElement(wr,{variant:"title",size:"xmedium"},Ct.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),$.createElement(wr,{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:M,isSelected:_,selectWallet:Xe,limit:IS,onShowMore:()=>k(V?.name??""),onConnect:Jt=>{re(M,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(wS,{size:18,color:"info"}),$.createElement(Ko,{size:4,direction:"horizontal"}),$.createElement(wr,{variant:"label",size:"medium",color:A?"$neutral600":void 0},Ct.t("Send to a different address"))),$.createElement(or,{orientation:A?"up":"down"},$.createElement(yS,{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(M,u)}),value:g||"",suffix:ft(),onChange:Jt=>{let Yf=Jt.target.value;S(Yf)},...!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(eu,"ConfirmWalletsModal");import{i18n as GS}from"@lingui/core";import{Alert as VS,Button as XS,InfoIcon as jS}from"@rango-dev/ui";import Ge from"react";import{Alert as NS,Button as WS,Divider as La,NoRouteIcon as MS,RefreshIcon as LS,Typography as su}from"@rango-dev/ui";import He from"react";import{i18n as tu}from"@lingui/core";var ES=24,AS=60;function ou(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:tu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:tu.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(ou,"makeInfo");var Wa=(o=>(o[o.small=ES]="small",o[o.large=AS]="large",o))(Wa||{}),Ma=(o=>(o.small="small",o.large="medium",o))(Ma||{});import{styled as vr}from"@rango-dev/ui";var nu=vr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ru=vr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),iu=vr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),au=vr("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=ou(o,r,()=>a(s,!0),e);return He.createElement(nu,null,He.createElement(MS,{size:Wa[n],color:"gray"}),He.createElement(La,{size:4}),He.createElement(su,{variant:"title",size:Ma[n]},te().noResultError.title),n==="large"&&He.createElement(La,{size:4}),!!l.description&&He.createElement(ru,{size:n},He.createElement(su,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),He.createElement(La,{size:n==="large"?"24":"4"}),!!l.alert&&He.createElement(iu,{size:n},He.createElement(NS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&He.createElement(WS,{size:"xsmall",type:l.alert.type,prefix:He.createElement(au,null,He.createElement(LS,{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 PS,Divider as _S,MessageBox as $S,Typography as DS,WarningIcon as FS}from"@rango-dev/ui";import Nt from"react";import{Typography as uu}from"@rango-dev/ui";import Pa from"react";import{darkTheme as BS,styled as xr}from"@rango-dev/ui";var lu=xr("div",{width:"100%"}),Ba=xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),pu=xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${BS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),cu=xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function mu(t){let{title:e,value:o,valueColor:n}=t;return Pa.createElement(pu,null,Pa.createElement(uu,{size:"medium",variant:"label",className:"_title"},e),Pa.createElement(uu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(mu,"QuoteErrorsModalItem");function du(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(PS,{type:"primary",size:"large",prefix:Nt.createElement(FS,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Nt.createElement($S,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),Nt.createElement(Ba,null,Nt.createElement(_S,{size:"4"}),Nt.createElement(DS,{size:"small",variant:"title"},Zo.t("Details")),Nt.createElement(Ba,null,l.map((p,u)=>Nt.createElement(mu,{key:u,...p})))))}i(du,"HighValueLossWarningModal");import{i18n as _a}from"@lingui/core";function fu(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=_a.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=_a.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=_a.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(fu,"makeAlerts");import{i18n as Ao}from"@lingui/core";import{Button as gu,Divider as hu,MessageBox as OS,Typography as US}from"@rango-dev/ui";import po from"react";import{useNavigate as zS}from"react-router-dom";function yu(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=zS(),u=e??o;return po.createElement(ne,{anchor:"bottom",open:n,prefix:po.createElement(gu,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},po.createElement(US,{variant:"label",size:"medium",color:"$neutral900"},Ao.t("Change settings"))),container:P(),onClose:r},po.createElement(OS,{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(hu,{size:18}),po.createElement(hu,{size:32}),po.createElement(gu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ao.t("Confirm anyway"))))}i(yu,"SlippageWarningModal");import{Button as qS,MessageBox as QS,WarningIcon as HS}from"@rango-dev/ui";import br from"react";function Su(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return br.createElement(ne,{footer:br.createElement(qS,{type:"primary",size:"large",prefix:br.createElement(HS,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},br.createElement(QS,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(Su,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,f=fu(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),Ge.createElement(Ge.Fragment,null,d&&Ge.createElement(Yo,{error:o,fetch:s}),!!f&&Ge.createElement(lu,null,Ge.createElement(VS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Ge.createElement(cu,{onClick:l},Ge.createElement(jS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Ge.createElement(XS,{size:"xxsmall",type:f.alertType,onClick:c},GS.t("Change"))}})),e&&Ge.createElement(Ge.Fragment,null,e.type===0&&Ge.createElement(du,{...m,warning:e}),(e.type===3||e.type===2)&&Ge.createElement(yu,{...m,warning:e}),e.type===1&&Ge.createElement(Su,{...m,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import bC from"bignumber.js";import Or from"react";import{i18n as co}from"@lingui/core";import{Alert as mC,Divider as Wo,FullExpandedQuote as dC,InfoIcon as fC,QuoteTag as gC,StepDetails as hC,TokenAmount as yC,Tooltip as Zu,Typography as Mo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as SC,useState as CC}from"react";import{styled as $a}from"@rango-dev/ui";var Da=$a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Cu=$a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Tu=$a("div",{width:"100%",display:"flex"});import*as Ir from"@radix-ui/react-collapsible";import{Button as KS,css as Ro,darkTheme as we,Image as ku,styled as $e,Typography as YS}from"@rango-dev/ui";var ZS=300,wu=$e(Ir.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),vu=Ro({padding:"$10 $15"}),xu=$e(KS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),bu=$e("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),Iu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),Eu=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"}}),Au=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Nu=$e(Ir.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:{[`& ${ku}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${ku}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Wu=$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 ${ZS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),yB=$e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Lu=$e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Bu=$e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Oa=$e(YS,{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"}),Er=$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 RS,CloseIcon as eC,Divider as Wr,IconButton as tC,QuoteCost as oC,Tooltip as nC,Typography as pt}from"@rango-dev/ui";import Z,{useState as Ou}from"react";import{css as JS,styled as Ar}from"@rango-dev/ui";var Nr=Ar("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),za=Ar("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),$u=Ar("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Du=Ar("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Fu=JS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var rC=i(t=>t.fee.isZero()?null:Z.createElement(Nr,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 Uu(t){let[e,o]=Ou(!1),[n,r]=Ou(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],d=P(),f=dp(m);return Z.createElement(Z.Fragment,null,Z.createElement(oC,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Vt.t("View more info"):void 0,tooltipContainer:d}),Z.createElement(ne,{container:d,open:e,header:Z.createElement(Du,null,Z.createElement(pt,{variant:"title",size:"medium"},Vt.t("Gas & Fee Explanation")),Z.createElement(tC,{onClick:()=>o(!1),variant:"ghost"},Z.createElement(eC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement($u,null,Z.createElement(pt,{variant:"title",size:"small"},Vt.t("Details")),Z.createElement(Wr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((T,h)=>{let C=`payable-fee-${h}`,k=qi(T);return Z.createElement(Nr,{key:C},Z.createElement(pt,{variant:"label",size:"medium",color:"neutral600"},Fi[g]),Z.createElement(nC,{content:ce(T.amount),container:d},Z.createElement(pt,{variant:"label",size:"medium"},N(T.amount,2,2)," ",T.asset.symbol," ($",N(k,4,4),")")))})),Z.createElement(Nr,{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:Fu()},Z.createElement(pt,{size:"small",variant:"body",color:"neutral700"},n?Vt.t("Hide non-payable fees"):Vt.t("Show non-payable fees")),Z.createElement(Wr,{size:4,direction:"horizontal"}),Z.createElement(or,{orientation:n?"up":"down"},Z.createElement(RS,{size:12,color:"gray"}))),open:n},Z.createElement(pt,{size:"small",variant:"title"},Vt.t("Description")),Z.createElement(Wr,{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(Wr,{size:10}),Object.entries(f.nonePayable).map(([g,S],T)=>{let h=mp(S),C=Fi[g],k=`non-payable-fee-${T}`;return Z.createElement(rC,{key:k,fee:h,label:C})}),Z.createElement(za,null)))))}i(Uu,"QuoteCostDetails");import{i18n as Qu}from"@lingui/core";import{TokenAmount as Hu}from"@rango-dev/ui";import Mr from"react";import{css as iC,styled as aC}from"@rango-dev/ui";var zu=aC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qu=iC({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(zu,null,Mr.createElement(Hu,{direction:"horizontal",label:Qu.t("Swap input"),type:"input",tooltipContainer:P(),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(Hu,{direction:"horizontal",tooltipContainer:P(),label:Qu.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 Ku}from"@lingui/core";import{ChevronDownIcon as pC,ChevronRightIcon as cC,Divider as qa,Image as uC,Tooltip as $r,Typography as Br}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as sC,useState as tn}from"react";var Gu=480,Vu=768,Xu=1024,ju=1200,lC=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<=Gu),n(window.innerWidth>Gu&&window.innerWidth<=Vu),a(window.innerWidth>Vu&&window.innerWidth<=Xu),l(window.innerWidth>Xu&&window.innerWidth<=ju),u(window.innerWidth>ju)},"handleResize");return sC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Lr=lC;var Pr=4,_r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement($r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Wu,{className:n,state:a},F.createElement(uC,{src:o,size:16})))},"ImageComponent");function Yu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Mp(r),{isTablet:m,isMobile:d}=Lr();return F.createElement(Nu,{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(Br,{variant:"body",size:"xsmall"},Ku.t("Via:")),F.createElement(qa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,T=F.createElement(Fa,null,F.createElement(cC,{size:12,color:"black"}));return d||m?F.createElement(F.Fragment,{key:S},F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,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($r,{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(Br,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:No()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Ku.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($r,{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($r,{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(Br,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(qa,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(pC,{size:12,color:"black"}))))}i(Yu,"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:m=!1,container:d}=t,f=y().blockchains(),g=y().tokens(),S=y().swappers(),{customSlippage:T,slippage:h}=y(),C=T||h,[k,x]=CC(t.expanded),I=SC(null),b=N(o.value,6,6),v=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",E=Ye(o.usdValue,n.usdValue??null),A=N(E,2,2),B=Et(E??0),J=i((re,Te)=>re.map((_,Oe)=>{let nt,fe=r?.type===3&&r.swap.swapperId===_.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(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:je(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Oe===0&&!Te?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Oe===0?o.value:_.fromAmount),realUsdValue:ce(new Qa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:je(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new Qa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:nt,alerts:Xe||rt?D.createElement(Cu,{dense:m},D.createElement(mC,{variant:"alarm",type:Xe?"error":"warning",title:it,footer:D.createElement(Tu,null,fe&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Ue||xt)&&!fe&&D.createElement("div",null,D.createElement(Mo,{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(Mo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Fo(_.estimatedTimeInSeconds),fee:N(zi(_,g),2,2),internalSwaps:_.internalSwaps?J(_.internalSwaps):void 0}}),"getQuoteSteps"),L=J(e?.swaps??[]),H=L.length,K=d||P(),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 m?D.createElement(dC,{selected:l,fee:U,time:oe,tooltipContainer:Do(),steps:L,tags:ae,feeWarning:Y,percentageChange:A,warningLevel:B,outputPrice:{value:v,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(bu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:Iu()},!p&&ae.length?D.createElement(D.Fragment,null,D.createElement(_u,null,ae.map((re,Te)=>{let _=`${re.value}_${Te}`;return D.createElement(D.Fragment,{key:_},D.createElement(gC,{label:re.label,value:re.value}),D.createElement(Wo,{size:4,direction:"horizontal"}))})),D.createElement(Er,null),!Q&&D.createElement(Wo,{size:4})):null,D.createElement("div",{id:"portal-root",className:Eu()},D.createElement(Uu,{quote:e,time:oe,fee:U,feeWarning:Y,showModalFee:u,steps:H}),Q&&D.createElement(xu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Mo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},co.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Au()},D.createElement(Bu,null,D.createElement(fC,{size:12,color:"gray"})),D.createElement(Pu,null,D.createElement(Oa,{size:"small",variant:"body"},`${b} ${L[0].from.token.displayName} = `),D.createElement(Zu,{content:ce(n.value),container:K,open:n.value?void 0:!1},D.createElement(Oa,{size:"small",variant:"body"},"\xA0",`${v} ${L[L.length-1].to.token.displayName}`))),D.createElement(Zu,{content:ce(n.usdValue),container:K},D.createElement(Wo,{size:2,direction:"horizontal"}),D.createElement(Mo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&D.createElement(yC,{tooltipContainer:K,type:"output",direction:"vertical",price:{value:v,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:L[H-1].to.token.displayName,image:L[H-1].to.token.image},chain:{image:L[H-1].to.chain.image},percentageChange:A,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:L[0].from,to:L[H-1].to,percentageChange:A,warningLevel:B}),D.createElement(Wo,{size:4}))),D.createElement(wu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:x},D.createElement(Yu,{type:s,quoteRef:I,selected:l,setExpanded:x,container:K,expanded:k,steps:L}),D.createElement(Mu,{open:k},D.createElement(Lu,null),D.createElement("div",{className:vu()},L.map((re,Te)=>{let _=`item-${Te}`;return D.createElement(hC,{type:"quote-details",key:_,tooltipContainer:K,step:re,hasSeparator:Te!==L.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as vC,Skeleton as xC}from"@rango-dev/ui";import Mt from"react";import{darkTheme as TC,styled as Dr}from"@rango-dev/ui";var Ju=Dr("div",{$$color:"$colors$neutral100",[`.${TC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ru=Dr("div",{paddingTop:"$2"}),em=Dr("div",{paddingLeft:"$8"}),tm=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as um,Divider as ct,Skeleton as Ve}from"@rango-dev/ui";import q from"react";import{css as kC,styled as Wt}from"@rango-dev/ui";var Ga=Wt("div",{display:"flex"}),om=Wt("div",{padding:"$10 $0 $20"}),nm=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),rm=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),im=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),am=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),sm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),lm=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),pm=Wt("div",{padding:"$15 $0 $15 $0"}),cm=kC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(im,null,q.createElement(sm,null,q.createElement(um,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(ct,{size:8,direction:"horizontal"}),q.createElement(lm,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(Er,null),!r&&q.createElement(ct,{size:4})),q.createElement("div",{className:cm()},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(om,null,q.createElement(Ve,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(nm,null,q.createElement(rm,null,q.createElement(um,{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(pm,null,n,q.createElement(am,null),n),q.createElement(ct,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as hm,Divider as Xa,NextIcon as wC,Skeleton as Fr}from"@rango-dev/ui";import ve from"react";import{styled as rn}from"@rango-dev/ui";var mm=rn("div",{display:"flex",alignItems:"start"}),dm=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}),fm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),gm=rn("div",{display:"flex",alignItems:"center"});function Tt(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(gm,null,ve.createElement(Fr,{height:22,width:22,variant:"circular"}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Fr,{height:15,width:148,variant:"rounded"})),ve.createElement(mm,null,ve.createElement(tm,{hideSeparator:!e}),ve.createElement(dm,{extraSpace:e},ve.createElement(Va,null,ve.createElement(hm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Fr,{height:12,variant:"rounded"})),ve.createElement(fm,null,ve.createElement(wC,{color:"gray",size:16})),ve.createElement(Va,null,ve.createElement(hm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Fr,{height:12,variant:"rounded"})))))}i(Tt,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(Ju,{expanded:o,rounded:e!=="basic"},Mt.createElement(nn,{type:e,tagHidden:n}),Mt.createElement(Ru,null,Mt.createElement(xC,{height:15,variant:"rounded"})),o&&Mt.createElement(em,null,Mt.createElement(vC,{size:24}),Mt.createElement(Tt,null),Mt.createElement(Tt,null),Mt.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:m,fullExpandedMode:d=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:T}=j(),h=e?.outputAmount?new bC(e?.outputAmount):null,C=e?.outputAmount?Xn(e?.outputAmount,Kn(e)||T?.usdPrice):null,x=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Or.createElement(Da,null,Or.createElement(an,{tagHidden:l,type:o,expanded:s})):x?Or.createElement(Da,{onClick:()=>p?.(e)},Or.createElement(Ha,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:d,input:{value:g,usdValue:S?.toString()??""},output:{value:h?.toString()??"",usdValue:C?.toString()??""}})):null}i(uo,"QuoteInfo");import{calculatePendingSwap as NC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as WC}from"react";import{useRef as IC,useState as EC}from"react";var AC=2e3;function Ur({request:t}){let[e,o]=EC(!1),n=IC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,AC)),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(Ur,"useFetch");function ym(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ym,"useFetchConfirmQuote");function zr(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(zr,"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 Sm(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)}:Qi(t,e)?r.quoteUpdate={type:0}:Hi(t,e)?r.quoteUpdate={type:1}:Gi(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(Sm,"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(),m=y().blockchains(),d=y().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:T}=ym();return WC(()=>S,[]),{loading:T,fetch:i(async C=>{let k=C.selectedWallets,x=C?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=k.reduce((v,w)=>(v[w.chain]=w.address,v),{}),b={requestId:r?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await g(b,!0).then(v=>{let{result:w}=v;zr({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let E={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(E);let A={slippage:f.toString(),disabledSwappersGroups:c},B=Sm(r??void 0,E,{fromToken:t,toToken:e,meta:{blockchains:m,tokens:d},selectedWallets:k,userSlippage:f});B.quoteUpdate&&s(!1),l();let J=!!B.balance,L=NC(o.toString(),w,Sp(k),A,!J,{blockchains:m,tokens:d});return{quote:E,swap:L,error:null,warnings:B}})}catch(v){return qr(v)}},"fetch"),cancelFetch:S}}i(Ka,"useConfirmSwap");var OC=BC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Tm}`]:{width:"$48",height:"$48"}}),UC=Ja({flexGrow:1,paddingRight:"$10"}),zC=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),qC=Ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function km(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=FC(),[l,p]=sn(""),u=!n,[c,m]=sn(!1),[d,f]=sn(!1),{isActiveTab:g}=ie(),S=y().getDisabledLiquiditySources(),T=DC(S),{manager:h}=MC(),{fetch:C,loading:k,cancelFetch:x}=Ka(),[I,b]=sn({swap:null,error:null,warnings:null}),[v,w]=sn(!1),E=i(async({selectedWallets:Q,customDestination:oe})=>{let W=await C?.({selectedWallets:Q,customDestination:oe});return b(W),W},"onConfirmSwap"),A=i(async()=>{if(I.swap&&n)try{await h?.create("swap",{swapDetails:I.swap},{id:I.swap.requestId});let Q=`../${z.swaps}/${I.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()=>{I?.warnings?.quote&&!a?w(!0):await B()},"onStartConfirmSwap"),L=i(async()=>{b({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(Q=>{b(Q)}).catch(Q=>console.error(Q))},"onRefresh");Qr(()=>{!!T.current.length&&!S.length&&L(),T.current=S},[S.length]),Qr(()=>{u&&x()},[u]),Qr(()=>{u&&m(u)},[u]),Qr(()=>{u||C({selectedWallets:o,customDestination:r}).then(Q=>b(Q)).catch(Q=>console.error(Q))},[]),$C(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=I.warnings?.quote??null,K=I.error,ae=[];if(l&&ae.push(xe.createElement(Cm,{type:"error",variant:"alarm",title:l})),I.warnings?.quoteUpdate&&ae.push(xe.createElement(Cm,{variant:"alarm",type:"warning",title:I.warnings.quoteUpdate&&Rn(I.warnings.quoteUpdate)})),H||K){let Q=`../${z.settings}`;ae.push(xe.createElement(Jo,{warning:H,error:K,couldChangeSettings:!1,refetchQuote:L,showWarningModal:v,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(OC,null,xe.createElement("div",{className:UC()},xe.createElement(LC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!I.error||!g,onClick:J},Ya.t("Start Swap"))),xe.createElement(Tm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!g,onClick:m.bind(null,!0)},xe.createElement(_C,{size:24})))},c&&xe.createElement(eu,{open:c,onClose:()=>m(!1),onCancel:x,loading:k,onCheckBalance:E}),xe.createElement(me,null,xe.createElement("div",{className:qC()},xe.createElement(PC,{variant:"title",size:"small"},Ya.t("You get")),xe.createElement("div",{className:zC()},xe.createElement(ur,{onClick:!k&&!c&&!v?L:void 0}))),xe.createElement(Za,{size:"12"}),ec(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:I.error,loading:k,warning:I.warnings?.quote??null})))}i(km,"ConfirmSwapPage");import{i18n as Gr}from"@lingui/core";import{useManager as rT}from"@rango-dev/queue-manager-react";import{Divider as Lm,NotFound as iT,styled as aT}from"@rango-dev/ui";import Bt,{useState as sT}from"react";import{useNavigate as lT}from"react-router-dom";import{i18n as GC}from"@lingui/core";import{Divider as Im,GroupedVirtualizedList as VC,Skeleton as XC,SwapListItem as Em,Typography as jC}from"@rango-dev/ui";import De,{useCallback as Am,useEffect as KC,useRef as YC,useState as ZC}from"react";function wm(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(wm,"calculateGroupsSoFar");import{css as QC,darkTheme as HC,styled as ln}from"@rango-dev/ui";var Ra=QC(),vm=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",[`.${HC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),xm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),bm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var JC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=ZC([]),l=YC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Am(wm,[]),d=Am(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,JC),s(m(u,l.current)))},[e.length]);if(KC(()=>{r||d()},[r,d]),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(XC,{variant:"text",width:60,size:"small"}),De.createElement(Im,{size:16})),De.createElement(Im,{size:4}),De.createElement(xm,null,S.map((C,k)=>De.createElement(Em,{isLoading:!0,key:k}))))))}return De.createElement(VC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:f=>De.createElement(es,null,De.createElement(ts,null,De.createElement(jC,{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(vm,{key:S.requestId},De.createElement(Em,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===GC.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 eT,IconButton as tT,SearchIcon as oT,TextField as nT}from"@rango-dev/ui";import pn from"react";import{styled as RC}from"@rango-dev/ui";var Nm=RC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(nT,{prefix:pn.createElement(Nm,null,pn.createElement(oT,{color:"black"})),suffix:!!s.length&&pn.createElement(tT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(eT,{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(Lt,"SearchInput");import{i18n as Hr}from"@lingui/core";import Wm from"dayjs";var Mm=i(t=>{let e=new Map([["today",{title:Hr.t("Today"),swaps:[]}],["week",{title:Hr.t("This week"),swaps:[]}],["month",{title:Hr.t("This month"),swaps:[]}],["year",{title:Hr.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=Wm();t.forEach(p=>{let u=Number(p.creationTime),c=Wm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var pT=aT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),cT=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 Bm(){let t=lT(),{manager:e,state:o}=rT(),n=Re(e).map(({swap:c})=>c),[r,a]=sT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>ht(c.inputAmount,r)||ht(c.status,r)||cT(c.steps,r)||ht(c.requestId,r)));let u=!p?.length&&!s;return Bt.createElement(pe,{header:{title:Gr.t("History")}},Bt.createElement(me,null,Bt.createElement(Lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Gr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Bt.createElement(Lm,{size:"16"}),Bt.createElement(pT,null,u&&Bt.createElement(bm,null,Bt.createElement(Lm,{size:32}),Bt.createElement(iT,{title:Gr.t("No results found"),description:r?Gr.t("Try using different keywords"):""})),!u&&Bt.createElement(os,{list:p,onSwapClick:t,groupBy:Mm,isLoading:s}))))}i(Bm,"HistoryPage");import{i18n as NT}from"@lingui/core";import{Button as WT,Divider as Zm,styled as MT,WarningIcon as LT}from"@rango-dev/ui";import BT from"bignumber.js";import ze,{useEffect as Jm,useState as Rm}from"react";import{useNavigate as PT}from"react-router-dom";import{i18n as hT}from"@lingui/core";import{Header as yT}from"@rango-dev/ui";import Xt,{useEffect as ST,useState as CT}from"react";import{i18n as mT}from"@lingui/core";import{Divider as rs,FullExpandedQuote as dT,Typography as fT}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"}),$m=ns("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as uT}from"@rango-dev/ui";import Dm from"react";function Vr(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 Dm.createElement($m,null,Dm.createElement(uT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Vr,"SelectStrategy");var Fm=3;function un(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:d,sortStrategy:f,error:g}=j(),{slippage:S,customSlippage:T}=y(),h=y().tokens(),C=l||P(),k=!!u&&u.results.length,x=T??S,I=i(w=>{if(!m||!d||!u)return null;let E={requestAmount:u.requestAmount,...w};return So(E,{fromToken:m,toToken:d,userSlippage:x,tokens:h})},"getQuoteWarning"),b=g?.type===0||g?.type===1,v=u?.results?Yn(f,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement(_m,null,ge.createElement(fT,{size:"xmedium",variant:"title"},mT.t("Sort by")),ge.createElement(Vr,{container:C})),ge.createElement(rs,{size:"10"})),e&&Array.from({length:Fm},(w,E)=>ge.createElement(ge.Fragment,{key:E},s?ge.createElement(dT,{loading:!0}):ge.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Fm-1&&ge.createElement(rs,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?v.map((w,E)=>{let A=I(w),B=ja(w.swaps),J=v.length-1===E;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:L=>{B||c("warning",A),c("error",B?.options||null),o(L)},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 gT,styled as Om}from"@rango-dev/ui";var Um=Om("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${gT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),zm=Om("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var TT=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=CT(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",m=Do();return ST(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},TT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Xt.createElement(Um,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${fr()}`,id:ye.EXPANDED_BOX_ID},Xt.createElement(yT,{title:hT.t("Routes"),suffix:Xt.createElement(Xt.Fragment,null,Xt.createElement(Vr,{container:m}),Xt.createElement(io,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Xt.createElement(zm,null,Xt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:c})))}i(is,"ExpandedQuotes");import{i18n as jm}from"@lingui/core";import{SwapInput as Km}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as vT}from"@rango-dev/ui";import ss from"react";import{keyframes as kT,styled as qm}from"@rango-dev/ui";var as=450,wT=kT({"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)"}}),Qm=qm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Hm=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:`${wT} ${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(Qm,null,ss.createElement(Hm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},as),t()}},ss.createElement(vT,{size:12})))}i(ls,"SwitchFromAndToButton");import{styled as Gm}from"@rango-dev/ui";var Vm=Gm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Xm=Gm("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:m,outputAmount:d,outputUsdValue:f,selectedQuote:g}=j(),{connectedWallets:S,getBalanceFor:T}=ee(),h=a?T(a):null,C=Ln(h)?.amount??"0",k=s&&a?N(h?.amount,h?.decimals):"0",x=!!s&&Ml(S,s.name),I=!Ui(g,c,m),b=!Ui(g,c,f),v=!m||!f||!f.gt(0)?null:Ye(m.toString(),f.toString());return mn.createElement(Vm,null,mn.createElement(Xm,null,mn.createElement(Km,{label:jm.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:I?void 0:N(m,4,4),realUsdValue:I?void 0:ce(m),error:I?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ls,null)),mn.createElement(Km,{sharpBottomStyle:!r&&(!!g||e),label:jm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Ye(m,f),2,2),warningLevel:Et(v??0),price:{value:N(d,6,6),usdValue:b?void 0:N(f,4,4),realValue:ce(d),realUsdValue:b?void 0:ce(f),error:b?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ps,"Inputs");import{useCallback as xT,useEffect as bT,useRef as IT,useState as ET}from"react";function Ym(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Ym,"useFetchAllQuotes");var AT=600;function Xr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Ym(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=ee.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:m,selectedQuote:d,sortStrategy:f,resetQuote:g,error:S,warning:T,setSelectedQuote:h,updateQuotePartialState:C}=j(),{slippage:k,customSlippage:x,affiliatePercent:I,affiliateRef:b,affiliateWallets:v,fetchStatus:w}=y(),E=y().getLiquiditySources(),A=y().getDisabledLiquiditySources(),B=y().excludeLiquiditySources(),[J,L]=ET(!0),H=IT(c),K=x??k,Q=!p||!u||Pe(p,u)||!Oo(c),oe=i(Y=>{L(Y)},"resetState"),W=i(Y=>{let{fromToken:re,toToken:Te,inputAmount:_,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:_,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),M=Lp(d,ke,ft.requestAmount);L(!1),C("quotes",ft),h(M),zr({diagnosisMessages:ft.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let G=M&&So(M,{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),L(!1))})}},"fetch"),U=xT(yl(Y=>{W(Y)},AT),[Q]);return bT(()=>{if(!t){L(!1);return}if(w!=="success")return;if(Q){L(!1),(d||S||T)&&g();return}if(!Oo(c)||m?.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:E,excludeLiquiditySources:B,disabledLiquiditySources:A,slippage:K,affiliateRef:b,affiliatePercent:I,affiliateWallets:v}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,Q,E?.length,n,A.length,K,b,I,JSON.stringify(v)]),{fetch:()=>W({inputAmount:c,fromToken:p,toToken:u,liquiditySources:E,excludeLiquiditySources:B,disabledLiquiditySources:A,slippage:K,affiliateRef:b,affiliatePercent:I,affiliateWallets:v}),loading:J}}i(Xr,"useSwapInput");var _T=MT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),$T=300;function ed(){let t=PT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:d}=j(),[f,g]=Rm(!1),{isLargeScreen:S,isExtraLargeScreen:T}=Lr(),{fetch:h,loading:C}=Xr({refetchQuote:a}),{config:k,fetchStatus:x}=y(),{connectedWallets:I}=ee(),{isActiveTab:b}=ie(),[v,w]=Rm(!1),A=up({fetchMetaStatus:x,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Fl(S,T,k?.variant),J=!!n&&!!e&&!!o&&new BT(n).gt(0)&&!Ip(e,o),L=J&&x==="success"&&C,ae=(!B||B&&p?.results.length)&&(l||s);Jm(()=>{c(),d("refetchQuote",!0)},[]),Jm(()=>{g(J)},[J]);let Q=(r||s)&&!v?h:void 0,oe=i(U=>{B&&f?(g(!1),setTimeout(()=>{t(U)},$T)):t(U)},"onHandleNavigation"),W=i(U=>{r?.requestId!==U.requestId&&(w(!1),u(U))},"onClickOnQuote");return ze.createElement(_T,null,ze.createElement(pe,{height:"auto",footer:ze.createElement(WT,{type:"primary",size:"large",disabled:A.disabled||!b,prefix:A.action==="confirm-warning"&&ze.createElement(LT,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||NT.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:L,fetchMetaStatus:x,isExpandable:B,onClickToken:U=>{oe(U==="from"?z.fromSwap:z.toSwap)}}),ze.createElement(Zm,{size:"2"}),B?null:ze.createElement(uo,{quote:r,loading:L,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),oe(z.routes)}:void 0}),ae?ze.createElement(ze.Fragment,null,ze.createElement(Zm,{size:"10"}),ze.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:h,showWarningModal:v,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),oe(z.confirmSwap)},onChangeSettings:()=>oe(z.settings)})):null)),B?ze.createElement(is,{loading:L,onClickOnQuote:W,fetch:h,onClickRefresh:Q,isVisible:f}):null)}i(ed,"Home");import{i18n as td}from"@lingui/core";import{Alert as DT,Divider as FT,List as OT,ListItemButton as UT,Radio as zT,RadioRoot as qT,Typography as QT}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 od(){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(QT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:kt.createElement(zT,{value:s}),start:kt.createElement(p,null)}});return kt.createElement(pe,{header:{title:td.t("Language")}},kt.createElement(me,null,kt.createElement(DT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),kt.createElement(FT,{size:"8"}),kt.createElement(qT,{value:t},kt.createElement(OT,{type:kt.createElement(UT,{title:td.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(od,"LanguagePage");import{i18n as Pt}from"@lingui/core";import{Button as jT,Checkbox as KT,Image as YT,ListItemButton as ZT,NotFound as JT,Typography as RT}from"@rango-dev/ui";import Fe,{useState as ek}from"react";import{Checkbox as VT,Skeleton as rd}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 HT,styled as GT}from"@rango-dev/ui";var nd=GT(HT,{height:61});var XT=30;function ds(){return fn.createElement(dn,null,Array.from(Array(XT),(t,e)=>fn.createElement(nd,{hasDivider:!0,key:e,start:fn.createElement(rd,{variant:"circular",width:35,height:35}),title:fn.createElement(rd,{variant:"text",size:"large",width:90}),end:fn.createElement(VT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=ek(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=Fn(o,n),u={Exchanges:Pt.t("Exchanges"),Bridges:Pt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(h=>c.includes(h.type)),d=m.length===m.filter(h=>h.selected).length,f=i(()=>{m.forEach(h=>{d?s(h.groupTitle):h.selected||s(h.groupTitle)})},"toggleAllSources"),g=m.map(h=>{let{selected:C,groupTitle:k,logo:x}=h;return{start:Fe.createElement(YT,{src:x,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Fe.createElement(KT,{checked:C,disabled:l}),title:Fe.createElement(RT,{variant:"title",size:"xmedium"},Pt.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:Pt.t(t),suffix:Fe.createElement(us,null,Fe.createElement(jT,{variant:"ghost",size:"xsmall",onClick:f},d?Pt.t("Deselect all"):Pt.t("Select all")))}},Fe.createElement(me,{view:!0},Fe.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Pt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Fe.createElement(ds,null),!T.length&&r?Fe.createElement(ms,null,Fe.createElement(JT,{title:Pt.t("No results found"),description:Pt.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(ZT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as tk}from"@lingui/core";import jr from"react";import{useNavigate as ok}from"react-router-dom";function id(){let t=ok(),e=Je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Xr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return jr.createElement(pe,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:tk.t("Routes"),suffix:jr.createElement(io,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},jr.createElement(me,null,jr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(id,"RoutesPage");import{i18n as dd}from"@lingui/core";import{Divider as fd,getCategoriesCount as uk,SelectableCategoryList as mk}from"@rango-dev/ui";import _t,{useState as gd}from"react";import{i18n as gs}from"@lingui/core";import{Divider as ud,Image as ak,ListItemButton as sk,NotFound as lk,Typography as md}from"@rango-dev/ui";import et,{useEffect as pk,useState as ck}from"react";var ad=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 nk,styled as sd}from"@rango-dev/ui";var ld=sd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Kr=sd(Xo,{padding:0,margin:0,listStyle:"none",[`& ${nk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as rk,Skeleton as pd}from"@rango-dev/ui";import Yr from"react";var ik=20;function cd(){return Yr.createElement(Kr,null,Array.from(Array(ik),t=>Yr.createElement(rk,{key:t,hasDivider:!0,start:Yr.createElement(pd,{variant:"circular",width:35,height:35}),title:Yr.createElement(pd,{variant:"text",size:"large",width:90})})))}i(cd,"LoadingBlockchainList");function hs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=ck(e),{fetchStatus:l}=y();pk(()=>{s([...ad(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?et.createElement(et.Fragment,null,et.createElement(ud,{size:32}),et.createElement(lk,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):et.createElement(Kr,{as:"ul",key:`${r}-${o}`},a.map(u=>et.createElement(sk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:et.createElement(ak,{src:u.logo,size:30}),title:et.createElement(md,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return et.createElement(ld,null,et.createElement(md,{variant:"label",size:"large"},gs.t("Select Blockchain")),et.createElement(ud,{size:4}),l==="loading"&&et.createElement(cd,null),l==="success"&&p())}i(hs,"BlockchainList");function ys(t){let{type:e}=t,o=Je(),[n,r]=gd(""),[a,s]=gd("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),d=uk(c)!==1;return _t.createElement(pe,{header:{title:dd.t("Select Blockchain")}},_t.createElement(me,{view:!0},d&&_t.createElement(_t.Fragment,null,_t.createElement(mk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),_t.createElement(fd,{size:24})),_t.createElement(Lt,{value:n,autoFocus:!0,placeholder:dd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),_t.createElement(fd,{size:16}),_t.createElement(hs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ys,"SelectBlockchainPage");import{i18n as ti}from"@lingui/core";import{Divider as $d}from"@rango-dev/ui";import mo,{useState as Nk}from"react";import{useNavigate as Wk}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Zr,Divider as Cd,Image as Td,Skeleton as yk,Tooltip as Sk,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as gk}from"react";var hd=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(dk),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(fk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function dk(t,e){let o=hd,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(dk,"sortByMostUsedBlockchains");function fk(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(fk,"generateSortByPreferredBlockchainsFor");function yd(t,e){return!!e.list.find(o=>o.name===t)}i(yd,"isInVisibleList");function Cs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();gk(()=>{if(e?.selected){let a=Ss(t,o,e);yd(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 hk}from"@rango-dev/ui";var Sd=hk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Ck=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,m=s.more.length===1,d=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Cd,{size:12}),Ne.createElement(ks,{variant:"label",size:"large"},Ts.t("Select Blockchain")),Ne.createElement(Cd,{size:12}),Ne.createElement(Sd,null,l==="loading"&&Array.from(Array(Ck),f=>Ne.createElement(yk,{key:f,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Zr,{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(Sk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:P()},Ne.createElement(Zr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ne.createElement(Td,{src:f.logo,size:30})))),m?Ne.createElement(Zr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(Td,{src:s.more[0].logo,size:30})):null,d?Ne.createElement(Zr,{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 Ls}from"@lingui/core";import{darkTheme as Md,Divider as Bo,ExternalLinkIcon as wk,Image as vk,ListItemButton as xk,NotFound as bk,PinIcon as Ik,Skeleton as Ld,Typography as ei,VirtualizedList as Ek}from"@rango-dev/ui";import X,{useEffect as Bd,useState as Pd}from"react";import{Divider as Nd,ListItem as kk,Skeleton as gn}from"@rango-dev/ui";import ut from"react";import{css as Lo,darkTheme as kd,ImageContainer as Tk,styled as tt,Typography as wd}from"@rango-dev/ui";var vs=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),xs=Lo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),bs=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Is=Lo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${kd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Es=Lo({}),As=Lo(),vd=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"}}),Jr=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"}),Ms=tt(wd,{}),xd=tt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${As}`]:{$$color:"$colors$neutral600",[`.${kd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rr=tt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),tU=tt("div",{display:"flex",alignItems:"center"}),bd=tt("div",{position:"relative",[`& ${Tk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Id=tt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ed=tt(wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Ad=tt("a",{"& svg:hover":{color:"$colors$info"}});function Wd(t){return ut.createElement(Jr,null,Array.from(Array(t.size),e=>ut.createElement(kk,{key:e,hasDivider:!0,start:ut.createElement(gn,{variant:"circular",width:35,height:35}),end:ut.createElement(Rr,null,ut.createElement(gn,{variant:"text",size:"large",width:70}),ut.createElement(Nd,{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(Nd,{size:4}),ut.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Wd,"LoadingTokenList");var Bs=20,Ak=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(ei,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Bo,{direction:"horizontal",size:4}),X.createElement(Ws,{css:a},X.createElement(Ms,{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(Ad,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(wk,{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:m,loading:d}=ee(),{isTokenPinned:f}=y(),g=i(()=>{s(e.slice(0,a.length+Bs))},"loadNextPage");Bd(()=>{c(e.length>a.length)},[a.length]),Bd(()=>{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(bk,{title:Ls.t("No results found"),description:Ls.t("Try using different keywords")})):X.createElement(Ek,{endReached:u?g:void 0,itemContent:T=>{let h=a[T],C=Ln(m(h)),k=h.address||"",x=p.find(w=>w.name===h.blockchain),I=ea(x.color,"main"),b={$$color:I.main250,[`.${Md} &`]:{$$color:I.main850},backgroundColor:"$$color"},v={$$color:I.main600,[`.${Md} &`]:{$$color:I.main200},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(xk,{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(bd,null,X.createElement(vk,{src:h.image,size:30}),f(h,t.type)&&X.createElement(Id,null,X.createElement(Ik,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||h.name||!h.name&&!k?X.createElement(Ns,null,X.createElement(ei,{variant:"title",size:"xmedium"},h.symbol),X.createElement(Bo,{direction:"horizontal",size:4}),X.createElement(Ws,{css:b},X.createElement(Ms,{variant:"body",size:"xsmall",css:v},h.blockchain))):void 0,description:x?.info&&k&&x.type!=="COSMOS"?Ak({address:k,token:a[T],customCssForTag:b,customCssForTagTitle:v,name:h.name,url:x.info.addressUrl.split("{wallet}").join(k)}):h.name||void 0,end:d?X.createElement(Rr,null,X.createElement(Ld,{variant:"text",size:"large",width:70}),X.createElement(Bo,{size:4}),X.createElement(Ld,{variant:"text",size:"medium",width:50})):C&&X.createElement(xd,null,X.createElement(Ed,{variant:"title",size:"small"},C.amount),X.createElement("div",null),C.usdValue&&X.createElement(ei,{variant:"body",className:As(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(vd,null,X.createElement(ei,{variant:"label",size:"large"},Ls.t("Select Token")),X.createElement(Bo,{size:4}),l==="loading"&&X.createElement(Wd,{size:Bs}),l==="success"&&X.createElement(Jr,{as:"ul"},S()))}i(_d,"TokenList");function Ps(t){let{type:e}=t,o=Wk(),n=Je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=ee.use.getBalanceFor(),[m,d]=Nk(""),g=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),T=y().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),h=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),C=i(x=>{e==="source"?s({token:x,meta:{blockchains:S,tokens:T}}):l({token:x,meta:{blockchains:S,tokens:T}})},"updateToken"),k={source:ti.t("Source"),destination:ti.t("Destination")};return mo.createElement(pe,{header:{title:ti.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:x=>{h(x)}}),mo.createElement($d,{size:24}),mo.createElement(Lt,{value:m,autoFocus:!0,placeholder:ti.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:x=>d(x.target.value)}),mo.createElement($d,{size:16}),mo.createElement(_d,{list:T,selectedBlockchain:g,searchedFor:m,type:e,onChange:x=>{C(x);let I=S.find(b=>x.blockchain===b.name);I&&h(I),n()}})))}i(Ps,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as tw,Button as ow,styled as nw}from"@rango-dev/ui";import fo from"react";import{useInRouterContext as rw,useSearchParams as iw}from"react-router-dom";import{i18n as qd}from"@lingui/core";import{Divider as Pk,InfoIcon as _k,TextField as $k,Tooltip as Dk,Typography as Qd}from"@rango-dev/ui";import mt from"react";import{Chip as Mk,styled as hn,TextField as Lk}from"@rango-dev/ui";var Dd=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Fd=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Lk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Od=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),oi=hn("div",{maxWidth:"280px",padding:"$10"}),Ud=hn(Mk,{width:"61px",flexShrink:0});import{i18n as _s}from"@lingui/core";import{Typography as Bk}from"@rango-dev/ui";import yn from"react";function zd(){return yn.createElement(oi,null,yn.createElement(Bk,{variant:"label",size:"medium",color:"neutral700"},_s.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,_s.t("Warning")),":",_s.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(zd,"SlippageTooltipContent");function $s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return mt.createElement(Dd,null,mt.createElement(Od,null,mt.createElement(Qd,{variant:"title",size:"xmedium"},qd.t("Slippage tolerance per swap")),mt.createElement(Pk,{direction:"horizontal",size:4}),mt.createElement(Dk,{container:P(),side:"top",sideOffset:4,content:mt.createElement(zd,null)},mt.createElement(_k,{color:"gray"}))),mt.createElement(Fd,null,Vl.map((r,a)=>{let s=`slippage-${a}`;return mt.createElement(Ud,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),mt.createElement($k,{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(Qd,{variant:"body",size:"small"},"%"),placeholder:qd.t("Custom")})))}i($s,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as Hd,BridgesIcon as Fk,ChevronRightIcon as Ds,DarkModeIcon as Gd,Divider as ni,ExchangeIcon as Ok,InfinityIcon as Uk,InfoIcon as zk,LanguageIcon as qk,LightModeIcon as Vd,List as Qk,ListItem as Hk,ListItemButton as Gk,Skeleton as Vk,styled as Xk,Switch as jk,Tabs as Kk,Tooltip as Yk,Typography as ot}from"@rango-dev/ui";import O from"react";import{useNavigate as Zk}from"react-router-dom";var Jk=Xk("div",{width:"202px",height:"$40"}),Rk=[{id:"light",icon:O.createElement(Vd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:O.createElement(Gd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:O.createElement(Hd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Auto"))}],ew=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Hd,{...e});case"dark":return O.createElement(Gd,{...e});default:return O.createElement(Vd,{...e})}},"getThemeIcon");function Xd(){let t=Zk(),{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(),m=Ke("theme",c),d=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,x=T.filter(H=>H.type==="DEX"),I=x.length,b=x.filter(H=>H.selected).length,v=i((H,K)=>{switch(l){case"loading":return O.createElement(Vk,{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,v(k,C),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(Fk,{color:"gray",size:16})},E={id:"exchange-item",title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:O.createElement(O.Fragment,null,v(b,I),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement(Ok,{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(qk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(ot,{variant:"body",size:"medium"},s),O.createElement(ni,{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(ni,{direction:"horizontal",size:4}),O.createElement(Yk,{side:"top",sideOffset:4,container:P(),content:O.createElement(oi,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(zk,{color:"gray"}))),start:O.createElement(Uk,{color:"gray",size:16}),end:O.createElement(jk,{checked:g}),onClick:S},J={id:"theme-item",type:O.createElement(Hk,null),title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Theme")),end:O.createElement(Jk,null,O.createElement(Kk,{container:P(),items:Rk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:ew(n)},L=d?[]:[w,E];return f||L.push(A),L.push(B),!e?.singleTheme&&!m&&L.push(J),O.createElement(Qk,{type:O.createElement(Gk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:L})}i(Xd,"SettingsLists");var aw=nw("div",{paddingLeft:"$8"});function jd(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=iw(),r=rw(),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(tw,{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(aw,null,fo.createElement(ow,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),fo.createElement($s,null),fo.createElement(Xd,null)))}i(jd,"SettingsPage");import{i18n as Xw}from"@lingui/core";import{cancelSwap as jw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Kw}from"@rango-dev/queue-manager-react";import{Alert as Yw}from"@rango-dev/ui";import tl from"react";import{useParams as Zw}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Aw,getCurrentStep as Nw,getRelatedWalletOrNull as Ww}from"@rango-dev/queue-manager-rango-preset";import{Button as If,CopyIcon as Mw,Divider as Lw,IconButton as Bw,QuoteCost as Pw,RangoExplorerIcon as _w,StepDetails as $w,Tooltip as Dw,Typography as go,useCopyToClipboard as Fw}from"@rango-dev/ui";import{useWallets as Ow}from"@rango-dev/wallets-react";import Ef from"bignumber.js";import{PendingSwapNetworkStatus as mi}from"rango-types";import R,{useEffect as Af,useRef as Uw,useState as Nf}from"react";import{useNavigate as zw}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var sw=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Kd(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"):`${sw[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Kd,"timeSince");function Yd(t){return t.finishTime?Kd(parseInt(t.finishTime)):Kd(parseInt(t.creationTime))}i(Yd,"getSwapDate");import{PendingSwapNetworkStatus as ai}from"rango-types";import si from"react";import{i18n as ri}from"@lingui/core";import{Button as Zd,Divider as Os,MessageBox as lw}from"@rango-dev/ui";import Yt from"react";var Jd=i(({onCancel:t,onClose:e})=>Yt.createElement(Yt.Fragment,null,Yt.createElement(Os,{size:20}),Yt.createElement(lw,{type:"error",title:ri.t("Cancel Swap"),description:ri.t("Are you sure you want to cancel this swap?")}),Yt.createElement(Os,{size:32}),Yt.createElement(Zd,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Cancel it")),Yt.createElement(Os,{size:12}),Yt.createElement(Zd,{variant:"outlined",type:"primary",size:"large",onClick:e},ri.t("No, Continue"))),"CancelContent");import{i18n as ii}from"@lingui/core";import{Button as Rd,Divider as Us,MessageBox as pw,Typography as cw}from"@rango-dev/ui";import $t from"react";var ef=i(({onDelete:t,onClose:e})=>$t.createElement($t.Fragment,null,$t.createElement(Us,{size:20}),$t.createElement(pw,{type:"error",title:ii.t("Delete Transaction"),description:ii.t("Are you sure you want to delete this swap?")}),$t.createElement(Us,{size:32}),$t.createElement(Rd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Delete it")),$t.createElement(Us,{size:12}),$t.createElement(Rd,{variant:"outlined",type:"primary",size:"large",onClick:e},$t.createElement(cw,{variant:"title",size:"medium",color:"primary"},ii.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 nf}from"@rango-dev/logging-core";import{MessageBox as uw,Wallet as mw}from"@rango-dev/ui";import{useWallets as dw}from"@rango-dev/wallets-react";import Po,{useState as fw}from"react";import{styled as tf}from"@rango-dev/ui";var of=tf("div",{display:"flex",justifyContent:"center"}),Qz=tf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var rf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=dw(),[c,m]=fw(null),d=n?.walletType,f=d?Ei(u(d)):null,g=d?p(d):null;return Po.createElement(Po.Fragment,null,Po.createElement(uw,{type:e,title:o,description:r}),a&&!!d&&!!f&&!!g&&Po.createElement(of,null,Po.createElement(mw,{container:P(),title:g.name,image:g.img,type:d,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:d,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(d).catch(T=>nf(T))}})),Po.createElement(so,{open:!!c,onClose:()=>m(null),onConfirm:T=>{l(c?.providerType,void 0,T).catch(h=>nf(h)),m(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===ai.WaitingForNetworkChange||e===ai.WaitingForConnectingWallet||e===ai.NetworkChanged;return si.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&si.createElement(rf,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ai.WaitingForNetworkChange}),e==="delete"&&si.createElement(ef,{onClose:o,onDelete:n}),e==="cancel"&&si.createElement(Jd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Gs,Divider as li,MessageBox as af,TokenAmount as gw,Typography as Vs}from"@rango-dev/ui";import Le from"react";import{useNavigate as hw}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:m,diagnosisUrl:d}=t,f=hw();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(af,{type:"success",title:Sn.t("Swap Successful")},Le.createElement(gw,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(li,{size:12}),Le.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(af,{type:"error",title:Sn.t("Transaction Failed"),description:m}),Le.createElement(li,{size:32}),n==="success"&&Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Le.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Le.createElement(li,{size:12}),d&&Le.createElement(Le.Fragment,null,Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Sn.t("Diagnosis")),Le.createElement(li,{size:12})),Le.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import Ew from"react";import{i18n as vw}from"@lingui/core";import{Alert as wf,IconButton as xw,LinkIcon as bw}from"@rango-dev/ui";import Zt,{Fragment as Iw}from"react";import{Alert as Cw,ChevronDownIcon as Tw,IconButton as kw}from"@rango-dev/ui";import $o,{useState as ww}from"react";import{css as Cn,darkTheme as yw,styled as Dt,Typography as Sw}from"@rango-dev/ui";var sf=Dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),pi=Dt("div",{width:"100%"}),lf=Dt(Xo,{padding:"$0 $20 $20 $20"}),bq=Dt("div",{display:"flex",flexDirection:"column",gap:"$10"}),pf=Dt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Iq=Dt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),_o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${yw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),cf=Cn({padding:"$5 0"}),ci=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),uf=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),mf=Cn({width:"100%",padding:"0 $20 $10"}),df=Dt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),ff=Dt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ui=Dt(Sw,{wordBreak:"break-word"});import{styled as js}from"@rango-dev/ui";var gf=js("div",{display:"flex",flexDirection:"column",gap:"$10"}),hf=js("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),yf=js("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Sf(t){let{message:e}=t,[o,n]=ww(!1);return $o.createElement(Cw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$o.createElement(kw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$o.createElement(hf,{rotated:o},$o.createElement(Tw,{size:12,color:"gray"}))),footer:$o.createElement(yf,{open:o},$o.createElement(ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Sf,"FailedAlert");import{i18n as Cf}from"@lingui/core";import{Alert as Ks,Button as Tf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ys}from"rango-types";import Tn from"react";function kf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(Tf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Cf.t("Change"))}):r===Ys.WaitingForConnectingWallet?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(Tf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},Cf.t("Connect"))}):Tn.createElement(Ks,{type:"warning",title:n.shortMessage})}i(kf,"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(gf,null,a.explorerUrl?.map((m,d,f)=>{let g=d+m.url,S=d===f.length-1,T=(S&&u||p)&&!c,h=S&&a.status==="failed";return Zt.createElement(Iw,{key:g},Zt.createElement(wf,{type:S&&(T&&"loading"||h&&"error")||"success",title:m.description?`${m.description} Tx`:vw.t("View transaction"),action:m.url&&Zt.createElement(xw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Zt.createElement(bw,{size:12}))}))}),c&&Zt.createElement(wf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Zt.createElement(kf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Zt.createElement(Sf,{message:r}))}i(Zs,"SwapDetailsAlerts");var vf=2e3;var xf=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:Ew.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function bf(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(bf,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Ow(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),m=j.use.retry(),d=ie.use.isActiveTab(),f=zw(),[g,S]=Fw(vf),T=Uw(null),[h,C]=Nf(null),[k,x]=Nf(null),I=i(()=>{r(),C(null)},"onCancel"),b=Ee.use.getNotifications(),v=Ee.use.removeNotification(),w=b(),E=Nw(e),A=E?.networkStatus;Af(()=>{w.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),v(e.requestId)):k&&x(null))},[e.status,e.requestId]),Af(()=>{Q?C(mi.WaitingForNetworkChange):A===mi.WaitingForConnectingWallet||A===mi.NetworkChanged?C(A):C(null)},[A]);let B=vp(e),J=E?Aw(e,E):null,L=E?Ww(e,E):null,H=Yd(e),K=xp(e),ae=i(ke=>!!l(ke)?.mobileWallet,"isMobileWallet"),Q=A===mi.WaitingForNetworkChange&&!!J&&!!L?.walletType&&(ae(L.walletType)||a(L.walletType,J)),oe=Q?s.bind(null,L.walletType,J):void 0,W=wp(e,E),U=xf({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]],_=Te.outputAmount||Te.expectedOutputAmountHumanReadable,Oe=e.steps.reduce((ke,M)=>ke+parseFloat(M.feeInUsd||""),0),nt=e.steps.find(ke=>ke.diagnosisUrl)?.diagnosisUrl,fe=N(parseFloat(N(_,6,6))*(Te.toUsdPrice||0),4,4),Ue=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),xt=_?ce(new Ef(_).multipliedBy(Te.toUsdPrice||0)):"",Xe=ce(new Ef(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(_,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(ff,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(ui,{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(If,{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(If,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},vt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(pi,null,R.createElement("div",{className:_o()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${vt.t("Request ID")}:`),R.createElement("div",{className:ci()},R.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Bw,{variant:"ghost",onClick:S.bind(null,o||"")},R.createElement(Mw,{size:16,color:"gray"})),R.createElement(df,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(Dw,{container:P(),content:vt.t("View on Rango Explorer"),side:"bottom"},R.createElement(_w,{size:20}))))),R.createElement("div",{className:_o()},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:uf()},R.createElement(Pw,{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(_,6,6),usdValue:fe,realUsdValue:xt,realValue:_},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:mf()},R.createElement(go,{variant:"title",size:"small"},vt.t("Swaps steps"))),R.createElement(Lw,{size:8}),R.createElement(lf,{ref:T},U.map((ke,M)=>{let G=M,V=bf(e.steps[M]),Qe=V==="error"||V==="in-progress"||V==="warning"||V==="completed"&&M===U.length-1;return R.createElement($w,{key:G,step:ke,type:"swap-progress",ref:T,state:V,hasSeparator:M!==0,tabIndex:G,isFocused:Qe,tooltipContainer:P()})}))),R.createElement(Hs,{state:h,onClose:()=>C(null),onCancel:I,onDelete:n,message:W.detailedMessage.content,currentStepWallet:L,walletButtonDisabled:!d}),R.createElement(Xs,{open:!!k,diagnosisUrl:nt,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:fe,realUsdValue:xt,realValue:ce(_),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 fi}from"@lingui/core";import{Divider as Lf,NotFound as Vw,Skeleton as wn,Typography as gi}from"@rango-dev/ui";import he from"react";import{i18n as qw}from"@lingui/core";import{Divider as Qw,Skeleton as Hw,Typography as Gw}from"@rango-dev/ui";import Ce from"react";import{css as dt,styled as Rs}from"@rango-dev/ui";var Wf=Rs("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),di=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),FQ=dt({display:"flex",justifyContent:"space-between",alignItems:"center"}),OQ=dt({display:"flex",justifyContent:"space-between",alignItems:"center"}),UQ=dt({paddingTop:"$15",display:"flex"}),zQ=dt({padding:"$15 $0"}),qQ=dt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),QQ=dt({paddingBottom:"$10"}),HQ=dt({display:"flex",justifyContent:"start",alignItems:"center"}),GQ=dt({paddingTop:"$5",display:"flex",alignItems:"center"}),VQ=dt({display:"flex",alignItems:"center"}),XQ=dt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Mf=dt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function el(){return Ce.createElement(Wf,null,Ce.createElement(nn,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Gw,{variant:"title",size:"small"},qw.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1}),Ce.createElement("div",{className:Mf()},Ce.createElement(Qw,{direction:"horizontal",size:20}),Ce.createElement(Hw,{height:22,variant:"rectangular"}))),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1}))))}i(el,"LoadingSwapDetails");function Bf(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(pe,{header:{title:fi.t("Swap and Bridge"),suffix:he.createElement(vo,null)}},o&&he.createElement(sf,null,he.createElement(pi,null,he.createElement("div",{className:_o()},he.createElement(gi,{variant:"label",size:"large",color:"neutral700"},`${fi.t("Request ID")}:`),he.createElement("div",{className:ci()},he.createElement(gi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(Lf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}),he.createElement(Lf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:_o()},he.createElement(gi,{className:cf(),variant:"label",size:"large",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(gi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})))),he.createElement(el,null)),!o&&he.createElement(pf,null,he.createElement(Vw,{title:fi.t("Not found"),description:fi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Bf,"SwapDetailsPlaceholder");function Pf(){let{manager:t,state:e}=Kw(),o=!e.loadedFromPersistor,n=Re(t),{requestId:r}=Zw(),a=Je(),{fetchStatus:s}=y();if(!r)return tl.createElement(Yw,{containerStyles:{margin:"20px"},type:"error",title:Xw.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&&jw(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),m=p?.swap;return!m||l?tl.createElement(Bf,{requestId:r,showSkeleton:l}):tl.createElement(Js,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(Pf,"SwapDetailsPage");function _f(){return Pp(),Ki(),Jw([{path:z.home,element:qe.createElement(ed,null)},{path:z.routes,element:qe.createElement(id,null)},{path:z.fromSwap,children:[{index:!0,element:qe.createElement(Ps,{type:"source"})},{path:z.blockchains,element:qe.createElement(ys,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:qe.createElement(Ps,{type:"destination"})},{path:z.blockchains,element:qe.createElement(ys,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:qe.createElement(jd,null)},{path:z.languages,element:qe.createElement(od,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(Bm,null)},{path:z.swapDetails,element:qe.createElement(Pf,null)}]},{path:z.wallets,element:qe.createElement(Hc,null)},{path:z.confirmSwap,element:qe.createElement(km,null)}])}i(_f,"AppRoutes");import{useQueueManager as lv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as pv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as cv}from"rango-sdk";import{useContext as uv,useEffect as mv,useState as qf}from"react";import{globalCss as Rw}from"@rango-dev/ui";var $f=i(()=>Rw({"@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 Df(){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(Df,"useFetchApiConfig");import{useWallets as ev}from"@rango-dev/wallets-react";import{useEffect as tv,useRef as ov}from"react";function Ff(){let{connect:t,state:e}=ev(),o=ov({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);tv(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Ff,"useForceAutoConnect");import{isApprovalTX as nv,MainEvents as hi,RouteEventType as Of,StepEventType as Uf,StepExecutionEventStatus as rv,useEvents as iv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as zf}from"react";function ol(){let t=y().tokens(),e=ee.use.connectedWallets(),o=ee.use.getWalletsDetails(),n=Ee.use.setNotification(),r=iv();zf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Uf.TX_EXECUTION&&l.status===rv.TX_SENT&&!nv(p)||l.type===Uf.SUCCEEDED){let m=e.find(f=>f.chain===p?.fromBlockchain),d=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);m&&o([m],t),d&&o([d],t)}n(l,u)},"handleStepEvent");return r.on(hi.StepEvent,a),()=>r.off(hi.StepEvent,a)},[r,e.length]),zf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Of.FAILED||l.type===Of.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(hi.RouteEvent,a),()=>r.off(hi.RouteEvent,a)},[r,e.length])}i(ol,"useSubscribeToWidgetEvents");import{useManager as av}from"@rango-dev/queue-manager-react";import{useEffect as sv}from"react";function nl(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=av();sv(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Re(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(nl,"useSyncNotifications");function rl(){Ff(),$f(),ol(),nl();let t=y().blockchains(),{canSwitchNetworkTo:e}=kr(),[o,n]=qf(""),[r,a]=qf(),s=uv(Un),l=t.filter(cv),{fetchApiConfig:p}=Df();lv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),mv(()=>(eo.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===pv(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(rl,"useBootstrap");import{styled as dv}from"@rango-dev/ui";var Qf=dv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function yi(){rl();let{config:t}=y(),{activeTheme:e}=sr(t?.theme||{}),{activeLanguage:o}=jt();return il.createElement(fv,{language:o},il.createElement(Qf,{id:"swap-container",className:e()},il.createElement(_f,null)))}i(yi,"Main");import{setSolanaSignerConfig as Pv}from"@rango-dev/signer-solana";import sl,{useEffect as jf,useMemo as _v}from"react";import{useState as gv}from"react";var hv=i(()=>{let[t,e]=gv(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"),Hf=hv;import{checkWaitingForNetworkChange as yv,makeQueueDefinition as Sv}from"@rango-dev/queue-manager-rango-preset";import{Provider as Cv}from"@rango-dev/queue-manager-react";import{useWallets as Tv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as kv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as wv}from"rango-types";import vv,{useMemo as xv}from"react";function bv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Tv(),l=xv(()=>Sv({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}))},m=i(async(k,x)=>{if(a(k,x))return r(k,x)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,x)=>(k[x.name]=x,k),{}),g=p.filter(wv),S=i(k=>{let{supportedChains:x}=s(k);return Nn(x)},"getSupportedChainNames"),T=e(),h={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:kv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:T,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},C=ie.use.isActiveTab();return vv.createElement(Cv,{queuesDefs:[l],context:h,onPersistedDataLoaded:k=>{yv(k)},isPaused:!C},t.children)}i(bv,"QueueManager");var Gf=bv;import{useManager as Wv}from"@rango-dev/queue-manager-react";import Mv,{createContext as Lv,useContext as Bv}from"react";import{cancelSwap as Iv,getCurrentBlockchainOfOrNull as Ev,getCurrentStep as Av,getRelatedWalletOrNull as Nv}from"@rango-dev/queue-manager-rango-preset";var Si=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&&Iv(o)}getCurrentStepInfo(e){let o=Av(e);return{step:o,wallet:o?Nv(e,o):null,network:o?Ev(e,o):null}}};var Vf=Lv(void 0);function al(t){let{manager:e}=Wv(),o=ie.use.isActiveTab(),n=j.use.retry(),r=new Si(e,{retrySwap:n}),a=ee.use.connectedWallets(),s=ee.use.loading(),l=El(a),p=ee.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),m=y().swappers(),d=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:m,loadingStatus:d},resetLanguage:f,notifications:{list:g}};return Mv.createElement(Vf.Provider,{value:S},t.children)}i(al,"WidgetInfo");function Xf(){let t=Bv(Vf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Xf,"useWidget");function Ci(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Hf();return jf(()=>{n&&r(n)},[n]),_v(()=>{_l({API_KEY:o?.apiKey||vn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),jf(()=>{t.config?.signers?.customSolanaRPC&&Pv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),sl.createElement(zn,{config:o,onUpdateState:e},sl.createElement(Gf,{apiKey:o.apiKey},sl.createElement(al,null,t.children)))}i(Ci,"WidgetProvider");function Kf(t){let e=t.config?.externalWallets;return Ti.createElement(ip,null,e?Ti.createElement(yi,null):Ti.createElement(Ci,{config:t.config??Li},Ti.createElement(yi,null)))}i(Kf,"Widget");export{t2 as EventSeverity,o2 as MainEvents,m2 as Networks,g2 as PendingSwapNetworkStatus,n2 as RouteEventType,ki as SUPPORTED_FONTS,r2 as StepEventType,i2 as StepExecutionBlockedEventStatus,a2 as StepExecutionEventStatus,ye as UI_ID,c2 as WalletEvents,d2 as WalletTypes,Kf as Widget,Ci as WidgetProvider,zn as WidgetWallets,ra as customizedThemeTokens,p2 as readAccountAddress,kr as useWallets,Xf as useWidget,s2 as useWidgetEvents};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|