@rango-dev/widget-embedded 0.29.1-next.2 → 0.29.1-next.21
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/QueueManager.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +6 -0
- 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/NotificationContent/NotificationContent.d.ts.map +1 -1
- package/dist/components/Quote/Quote.d.ts.map +1 -1
- package/dist/components/Quote/Quote.styles.d.ts +1 -1
- package/dist/components/Quote/QuoteCostDetails.d.ts.map +1 -1
- package/dist/components/RefreshModal/RefreshModal.styles.d.ts +1 -1
- package/dist/components/SearchInput/SearchInput.types.d.ts +2 -0
- package/dist/components/SearchInput/SearchInput.types.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts +4 -0
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts.map +1 -0
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts +325 -0
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts.map +1 -0
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts +10 -0
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts.map +1 -0
- package/dist/components/WalletDerivationPathModal/index.d.ts +2 -0
- package/dist/components/WalletDerivationPathModal/index.d.ts.map +1 -0
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts +0 -2
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts.map +1 -1
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts +1 -1
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts.map +1 -1
- package/dist/constants/namespaces.d.ts +8 -0
- package/dist/constants/namespaces.d.ts.map +1 -0
- package/dist/constants/quote.d.ts +2 -1
- package/dist/constants/quote.d.ts.map +1 -1
- package/dist/constants/routing.d.ts +0 -1
- package/dist/constants/routing.d.ts.map +1 -1
- package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
- package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -1
- package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +3 -1
- package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -1
- package/dist/hooks/useBootstrap/useBootstrap.d.ts.map +1 -1
- package/dist/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.d.ts.map +1 -1
- package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
- package/dist/hooks/useWalletList.d.ts +4 -3
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/hooks/useWalletProviders/index.d.ts +2 -0
- package/dist/hooks/useWalletProviders/index.d.ts.map +1 -0
- package/dist/hooks/{useWalletProviders.d.ts → useWalletProviders/useWalletProviders.d.ts} +2 -2
- package/dist/hooks/useWalletProviders/useWalletProviders.d.ts.map +1 -0
- package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts +3 -0
- package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts.map +1 -0
- package/dist/hooks/useWidgetEvents/index.d.ts +2 -0
- package/dist/hooks/useWidgetEvents/index.d.ts.map +1 -0
- package/dist/hooks/useWidgetEvents/useWidgetEvents.d.ts +3 -0
- package/dist/hooks/useWidgetEvents/useWidgetEvents.d.ts.map +1 -0
- package/dist/index.d.ts +16 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/services/eventEmitter.d.ts +4 -0
- package/dist/services/eventEmitter.d.ts.map +1 -0
- package/dist/store/notification.d.ts.map +1 -1
- package/dist/store/quote.d.ts +2 -1
- package/dist/store/quote.d.ts.map +1 -1
- package/dist/store/slices/config.d.ts.map +1 -1
- package/dist/store/slices/settings.d.ts.map +1 -1
- package/dist/store/wallets.d.ts.map +1 -1
- package/dist/types/config.d.ts +8 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/event.d.ts +68 -0
- package/dist/types/event.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/wallets.d.ts +2 -1
- package/dist/types/wallets.d.ts.map +1 -1
- package/dist/utils/common.d.ts +2 -0
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/meta.d.ts +1 -0
- package/dist/utils/meta.d.ts.map +1 -1
- package/dist/utils/numbers.d.ts +0 -1
- package/dist/utils/numbers.d.ts.map +1 -1
- package/dist/utils/providers.d.ts +1 -0
- package/dist/utils/providers.d.ts.map +1 -1
- package/dist/utils/wallets.d.ts +4 -4
- package/dist/utils/wallets.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +7 -7
- package/src/QueueManager.tsx +4 -0
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +19 -9
- package/src/components/ConfirmWalletsModal/WalletList.tsx +81 -14
- package/src/components/HistoryGroupedList/HistoryGroupedList.tsx +5 -5
- package/src/components/NotificationContent/NotificationContent.tsx +12 -113
- package/src/components/Quote/Quote.tsx +18 -25
- package/src/components/Quote/QuoteCostDetails.tsx +10 -9
- package/src/components/SearchInput/SearchInput.types.ts +2 -0
- package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +1 -1
- package/src/components/SwapDetails/SwapDetails.tsx +9 -10
- package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +77 -11
- package/src/components/TokenList/TokenList.tsx +5 -5
- package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.ts +17 -0
- package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.tsx +154 -0
- package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.types.tsx +10 -0
- package/src/components/WalletDerivationPathModal/index.ts +1 -0
- package/src/components/WalletNamespacesModal/WalletNamespacesModal.tsx +10 -15
- package/src/components/WalletNamespacesModal/WalletNamespacesModal.types.tsx +1 -1
- package/src/constants/namespaces.ts +62 -0
- package/src/constants/quote.ts +11 -9
- package/src/constants/routing.ts +0 -2
- package/src/containers/Inputs/Inputs.tsx +4 -4
- package/src/containers/Wallets/Wallets.tsx +2 -1
- package/src/containers/WidgetInfo/WidgetInfo.tsx +3 -0
- package/src/containers/WidgetInfo/WidgetInfo.types.ts +3 -1
- package/src/hooks/useBootstrap/useBootstrap.ts +4 -0
- package/src/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.ts +8 -10
- package/src/hooks/useSyncStoresWithConfig.ts +3 -1
- package/src/hooks/useWalletList.ts +14 -9
- package/src/hooks/useWalletProviders/index.ts +1 -0
- package/src/hooks/useWalletProviders/useWalletProviders.helpers.ts +14 -0
- package/src/hooks/{useWalletProviders.ts → useWalletProviders/useWalletProviders.ts} +11 -5
- package/src/hooks/useWidgetEvents/index.ts +1 -0
- package/src/hooks/useWidgetEvents/useWidgetEvents.ts +9 -0
- package/src/index.ts +26 -2
- package/src/pages/WalletsPage.tsx +99 -26
- package/src/services/eventEmitter.ts +11 -0
- package/src/store/notification.ts +3 -1
- package/src/store/quote.ts +63 -1
- package/src/store/slices/config.ts +4 -0
- package/src/store/slices/settings.ts +6 -0
- package/src/store/wallets.ts +194 -173
- package/src/types/config.ts +9 -0
- package/src/types/event.ts +89 -0
- package/src/types/index.ts +1 -0
- package/src/types/wallets.ts +2 -1
- package/src/utils/common.ts +12 -1
- package/src/utils/meta.ts +8 -0
- package/src/utils/numbers.ts +0 -12
- package/src/utils/providers.ts +4 -0
- package/src/utils/wallets.ts +7 -5
- package/dist/components/NotificationContent/NotificationContent.styles.d.ts +0 -1559
- package/dist/components/NotificationContent/NotificationContent.styles.d.ts.map +0 -1
- package/dist/components/NotificationContent/NotificationNotFound.d.ts +0 -3
- package/dist/components/NotificationContent/NotificationNotFound.d.ts.map +0 -1
- package/dist/hooks/useWalletProviders.d.ts.map +0 -1
- package/src/components/NotificationContent/NotificationContent.styles.ts +0 -63
- package/src/components/NotificationContent/NotificationNotFound.tsx +0 -17
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var Yf=Object.defineProperty;var i=(t,e)=>Yf(t,"name",{value:e,configurable:!0});import{EventSeverity as JV,MainEvents as RV,RouteEventType as e2,StepEventType as t2,StepExecutionBlockedEventStatus as o2,StepExecutionEventStatus as n2,useEvents as r2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as a2,useWallets as vr,Events as s2}from"@rango-dev/wallets-react";import{Networks as p2,WalletTypes as c2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as m2}from"rango-types";import{UI_ID as Zf}from"@rango-dev/ui";var xn="c6381a79-2817-4602-83bf-6a641a409e32",ll="https://api.rango.exchange",pl="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Zf};var cl="Roboto",vi=[{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 qg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Qg}from"rango-sdk";import Un,{createContext as Hg,useEffect as np,useMemo as Gg,useRef as rp}from"react";import{useEffect as gg}from"react";import{create as mg}from"zustand";import{subscribeWithSelector as dg}from"zustand/middleware";import{RangoClient as cg}from"rango-sdk";import{BlockchainCategories as ng,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as rg}from"@rango-dev/wallets-react";import{detectInstallLink as ig,getCosmosExperimentalChainInfo as ag,isEvmAddress as sg,KEPLR_COMPATIBLE_WALLETS as ix,Networks as wl}from"@rango-dev/wallets-shared";import Wi from"bignumber.js";import{isCosmosBlockchain as lg}from"rango-types";import Jf from"bignumber.js";var Be=new Jf(0);import{WalletTypes as Rf}from"@rango-dev/wallets-shared";var ul=[Rf.LEAP];import{BlockchainCategories as xi}from"@rango-dev/ui";import{TransactionType as bn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function Ei(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ei,"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 xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"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 B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Fo=i(()=>document.getElementById(Se.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 bi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareContainsText");function Ii(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(Ii,"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=Ii(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ii(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=bi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ii(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=bi(o,t.address,e.address);if(r!==0)return r}return 0}i(Sl,"compareWithSearchFor");var In=i((t,e)=>{switch(e){case xi.ALL:return!0;case xi.UTXO:return t===bn.TRANSFER;case xi.OTHER:return t!==bn.TRANSFER&&t!==bn.COSMOS&&t!==bn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Cl=i(t=>vi.find(o=>o.value===t)?.url,"getFontUrlByName");function En(t,e){return e.find(o=>o.name===t)?.displayName}i(En,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Oo(t,e){return e.find(o=>o.id===t)?.title}i(Oo,"getSwapperDisplayName");function Ai(t,e){return e.find(o=>o.name===t)??null}i(Ai,"findBlockchain");function Ni(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(Ni,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as kl}from"bignumber.js";var Uo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new 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 An=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),zo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Mi(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Mi,"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=yo(m.map(g=>g.type)),f=Mi(t(r));return{title:a,image:s,link:ig(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d}})}i(vl,"mapWalletTypesToWalletInfo");function Mn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Mn,"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}=rg(p),m=l.length>0,d=l.includes(c),f=c===wl.Unknown;if(m&&!d&&!f)return;let S=c===wl.Unknown&&sg(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(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 Ln(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ln,"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 Wi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||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 Wi(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return pg(r)},"calculateWalletUsdValue");function pg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(pg,"numberWithThousandSeparator");var Bn=i((t,e)=>{let o=ag(Object.entries(t).map(([,n])=>n).filter(lg));return o&&o[e]?.experimental},"isExperimentalChain");function Pn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Pn,"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 eo(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(eo,"areTokensEqual");function Nl(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Nl,"sortWalletsBasedOnConnectionState");function _n(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(_n,"getConciseAddress");function Wl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Wl,"getAddress");function $n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Wi(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var 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===ng.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(In(n,e))return!0;return!1})}i(Pl,"filterWalletsByCategory");var Li={API_KEY:xn};function bt(t){return Li[t]||""}i(bt,"getConfig");function _l(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Li=e,Li}i(_l,"initConfig");var $l=20,Dl=25,Bi="theme-widget",qo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>eo(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>eo(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Pi=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 Dn,Ft=i(()=>Dn||(Dn=new cg(bt("API_KEY"),bt("BASE_URL")),Dn),"httpService");var ug=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=ug;var te=Ot(mg()(dg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:$n(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Ln(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=>Ln(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:$n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Ln(m,c))?Il(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as fg}from"@rango-dev/provider-all";function Fn(t,e){let o=fg({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(Fn,"matchAndGenerateProviders");function Ol(t,e){return Fn(t,e).map(r=>r.config.type)}i(Ol,"configWalletsToWalletName");function Ul(t,e){let o=te.use.clearConnectedWallet(),n=Fn(t,e);return gg(()=>{o(),n=Fn(t,e)},[t?.length]),{providers:n}}i(Ul,"useWalletProviders");import _g,{createContext as $g,useContext as Dg,useEffect as Fg,useRef as Og}from"react";import{create as Bg}from"zustand";import{persist as Pg}from"zustand/middleware";var _i={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},hg={clientUrl:void 0},yg={liquiditySources:void 0},zl=i((t,e,o)=>({config:{..._i,...t},iframe:hg,campaignMode:yg,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 On(t,e){let o=t.map(a=>a.swapperGroup),n=[];return yo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(On,"getUniqueSwappersGroups");function ql(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(ql,"sortLiquiditySourcesByGroupTitle");function je(t,e){return e?.[t]==="hidden"}i(je,"isFeatureHidden");function Ql(t,e){return e?.[t]==="enabled"}i(Ql,"isFeatureEnabled");var Hl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&qo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let d=e().isTokenPinned(c,o.type),f=e().isTokenPinned(m,o.type);if(d!==f)return d?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=Al(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Ni(c,g),y=Ni(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=Sl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>eo(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(ql)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,d)=>m.sort-d.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let d=Dt(m);a.set(d,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Sg,English as Cg,Finland as Tg,French as kg,German as wg,Greece as vg,Italian as xg,Japanese as bg,Netherlands as Ig,Poland as Eg,Portuguese as Ag,Russian as Ng,Spanish as Wg,Swedish as Mg,Ukrainian as Lg}from"@rango-dev/ui";var Gl=[{title:"English",label:"English",local:"en",SVGFlag:Cg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Wg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:kg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:bg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ag},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Sg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Ng},{title:"German",label:"Deutsch",local:"de",SVGFlag:wg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Lg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Mg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Tg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ig},{title:"Greek",label:"Grieks",local:"el",SVGFlag:vg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:xg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Eg}],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=yo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=je("theme",n),s=je("language",n),l=je("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Qo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Jl(t){return Bg()(Pg((...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=$g(null);function h(){let t=Dg(Rl);if(Fg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function ep(t){let e=Og();return e.current||(e.current=Jl(t.config)),_g.createElement(Rl.Provider,{value:e.current},t.children)}i(ep,"AppStoreProvider");import{create as zg}from"zustand";var tp="rango-widget";var Ho=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(zg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),to=new Ho({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var zn=Hg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Vg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Ul(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),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(Qg).map(y=>y.name),g=i((y,T,k,v,E)=>{if(T===Di.ACCOUNTS)if(k){let x=Mn(E.supportedBlockchains),L=xl(y,k,f,x,E.isContractWallet);L.length&&u(L,a)}else c(y),d.current?d.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Di.ACCOUNTS&&v.connected){let x=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===Di.NETWORK&&v.network){let x=`${y}-${v.network}`;m.current?m.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,E)},"onUpdateState"),S=ie.use.isActiveTab(),C=Gg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{d.current=y}}),[]);return Un.createElement(zn.Provider,{value:C},Un.createElement(qg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Vg,"Main");function qn(t){let{config:e,...o}=t;return Un.createElement(ep,{config:e},Un.createElement(Vg,{...o,config:e}))}i(qn,"WidgetWallets");import wi from"react";import Xg,{Fragment as jg}from"react";import{MemoryRouter as Kg,useInRouterContext as Yg}from"react-router";function ip({children:t}){let o=Yg()?jg:Kg;return Xg.createElement(o,null,t)}i(ip,"AppRouter");import{I18nManager as uv}from"@rango-dev/ui";import il from"react";import ze from"react";import{useRoutes as Kw}from"react-router-dom";var z={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as To,useRef as Rn}from"react";import Et 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 WI from"bignumber.js";import{i18n as Go}from"@lingui/core";var Fi={"Network Fee":Go.t("Network Fee"),"Swapper Fee":Go.t("Protocol Fee"),"Affiliate Fee":Go.t("Affiliate Fee"),"Outbound network fee":Go.t("Outbound Fee"),"Rango Fee":Go.t("Rango Fee")},Oi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ap=30;import{i18n as it}from"@lingui/core";import{RouteEventType as fI}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Gn}from"rango-types";function Qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Qn,"isValidAddress");import{i18n as Me}from"@lingui/core";var oe=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function sp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(sp,"getQuoteErrorMessage");import{i18n as Hn}from"@lingui/core";var oo=i(()=>({connectWallet:Hn.t("Connect Wallet"),swap:Hn.t("Swap"),swapAnyway:Hn.t("Swap anyway"),ethWarning:Hn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function lp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(lp,"hasHighValueLoss");function pp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(pp,"hasLimitError");function cp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(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:oo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:oo().swap,action:"confirm-swap",disabled:!0}:s?{title:oo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:oo().ethWarning,action:"confirm-warning",disabled:!1}:{title:oo().swap,action:"confirm-swap",disabled:!1}:{title:oo().connectWallet,action:"connect-wallet",disabled:!1}}i(up,"getSwapButtonState");function Ui(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ui,"canComputePriceImpact");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=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(zi,"getUsdFeeOfStep");function Vn(t,e){return t.reduce((o,n)=>o.plus(zi(n,e)),Be)}i(Vn,"getTotalFeeInUsd");function qi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(qi,"getUsdFee");function mp(t){return t.reduce((e,o)=>e.plus(qi(o)),Be)}i(mp,"getTotalFeesInUsd");function dp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(dp,"getFeesGroup");function fp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(fp,"checkSlippageErrors");function gp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(gp,"checkSlippageWarnings");function Xn(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(Xn,"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((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(yp,"createQuoteRequestBody");function Sp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Sp,"getWalletsForNewSwap");function So(t){return t?.outputAmount||null}i(So,"getQuoteOutputAmount");function Cp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(Cp,"getPercentageChange");function Tp(t,e){let o=So(t),n=So(e);if(!o||!n)return!1;let r=Ke(o,n);return r?r<=-1:!0}i(Tp,"isOutputAmountChangedALot");function kp(t,e,o){let n=t.validationStatus,r=Rt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Ep(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Xe(s.asset.blockchain,o)}})})}i(kp,"generateBalanceWarnings");function jn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(jn,"calcOutputUsdValue");function Vo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Gn.NetworkChanged}i(Vo,"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,"")),Vo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Gn.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Gn.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Gn.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(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 Yn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Yn,"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!Ei(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!Ei(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 It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function Zn(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=Ai(a?a.toBlockchain:n.fromBlockchain,e),p=Ai(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Zn,"createRetryQuote");function Co(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=no(o,t.requestAmount),l=no(n,t?.outputAmount??"");if(t&&s&&l){let c=Ke(s.toString(),l.toString());if(!!c&&lp(s,c)){let d=Vn(t?.swaps,r),f=It(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Xn(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(Co,"generateQuoteWarnings");function Ke(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(Ke,"getPriceImpact");var Wp=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"),Mp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Lp=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 no=i((t,e)=>t?.usdPrice?new Et(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),K=Ot(Rg()(eh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Et(0),outputUsdValue:new Et(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Be;return zo(o.inputAmount)?(e&&(n=e?.outputAmount?new Et(e?.outputAmount):null,r=jn(e?.outputAmount,Yn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Et(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:no(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Et(0),outputUsdValue:new Et(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:no(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:no(n??null,s),outputUsdValue:new Et(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?no(e.toToken,e.outputAmount?.toString()||""):new Et(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Bp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=K(),c=h().config,m=h().fetchStatus,d=h().blockchains(),f=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,E=c?.to?.blockchains,x=Rn(void 0),L=Rn(void 0),w=Rn(void 0),b=Rn(void 0);To(()=>{t(c?.amount?.toString()||"")},[c?.amount]),To(()=>{if(m==="success"){r();let A=d.find(I=>I.name===c?.from?.blockchain),P=c?.from?.token,Q=P&&g(P);(A||!A&&w.current)&&n(A??null),Q?a({token:Q,meta:{blockchains:d,tokens:f}}):!Q&&x.current&&a({token:null}),w.current=c?.from?.blockchain,x.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),To(()=>{qo(s,T)&&a({token:null}),Pi(p,k)&&n(null)},[T,k]),To(()=>{qo(l,v)&&a({token:null}),Pi(u,E)&&o(null)},[v,E]),To(()=>{if(m==="success"){r();let A=d.find(I=>I.name===c?.to?.blockchain),P=c?.to?.token,Q=P&&g(P);(A||!A&&b.current)&&o(A??null),Q?e({token:Q,meta:{blockchains:d,tokens:f}}):!Q&&L.current&&e({token:null}),b.current=c?.to?.blockchain,L.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),To(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Bp,"useSyncStoresWithConfig");import{useEffect as ji,useRef as th}from"react";import{useInRouterContext as oh,useLocation as nh,useSearchParams as rh}from"react-router-dom";function Vi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Vi,"convertTokenSearchParamToAsset");function Xi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Xi,"tokenToSearchParam");function Ki(){let t=nh(),[e,o]=rh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:d}=K(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=oh(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=th(),{findToken:E}=h(),x=i(()=>{let w={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(w[G]=ee);let b=e.get("fromAmount"),A=e.get("fromBlockchain"),P=e.get("fromToken"),Q=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:A,fromToken:P,toBlockchain:Q,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:w}},"getUrlSearchParams"),L=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");ji(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:A}=x();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:Xi(a),toBlockchain:r?.name,toToken:Xi(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...A})},[t.pathname,l,n,a,r,s,k]),ji(()=>{if(!C)return;let w=x();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&d(w.fromAmount),f==="success"){let b=g.find(I=>I.name===w.fromBlockchain),A=w.fromToken&&b?E(Vi(w.fromToken,b)):void 0,P=g.find(I=>I.name===w.toBlockchain),Q=w.toToken&&P?E(Vi(w.toToken,P)):void 0;b&&(p(b),A&&c({token:A,meta:{blockchains:g,tokens:S}})),P&&(u(P),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[f]),ji(()=>{let{clientUrl:w,liquiditySources:b}=x();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(Ki,"useSyncUrlAndStore");import{i18n as Ya}from"@lingui/core";import{useManager as AC}from"@rango-dev/queue-manager-react";import{Alert as Sm,Button as NC,css as Ja,Divider as Za,IconButton as Cm,styled as WC,Typography as MC,WalletIcon as LC}from"@rango-dev/ui";import xe,{useEffect as Gr,useLayoutEffect as BC,useRef as PC,useState as ln}from"react";import{useNavigate as _C}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Na,BalanceErrors as dS,Button as Yc,ChevronDownIcon as fS,ChevronLeftIcon as gS,CloseIcon as hS,Divider as Yo,IconButton as Zc,MessageBox as yS,PasteIcon as SS,Typography as xr,WalletIcon as CS}from"@rango-dev/ui";import $,{useCallback as TS,useEffect as Jc,useRef as kS,useState as po}from"react";import{useNavigate as wS}from"react-router-dom";import{i18n as er}from"@lingui/core";function tr(t){switch(t.type){case 0:return er.t("Route has been updated.");case 3:return er.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return er.t("Route swappers has been updated.");case 2:return er.t("Route internal coins has been updated.");default:return""}}i(tr,"getQuoteUpdateWarningMessage");import{Modal as ah}from"@rango-dev/ui";import sh from"react";function ne(t){let{watermark:e}=ie();return sh.createElement(ah,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import ir,{useRef as ch}from"react";import*as ko from"@radix-ui/react-collapsible";import{keyframes as _p,styled as or}from"@rango-dev/ui";var Yi=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}}),$p=or(ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Zi=or(ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),nr=or(ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${lh} ${Yi}ms ease-out`},false:{animation:`${ph} ${Yi}ms ease-out`}}}}),rr=or("div",{transition:`all ${Yi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ar(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ch(null);return ir.createElement($p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ir.createElement(Zi,{className:"collapsible_trigger",onClick:a},s),ir.createElement(nr,{className:"collapsible_content",open:e},r),l==="bottom"&&ir.createElement(Zi,{className:"collapsible_trigger",onClick:a},s))}i(ar,"CustomCollapsible");import{css as Dp,darkTheme as Xo,IconButton as uh,styled as Ye,TextField as mh}from"@rango-dev/ui";var Fp=Ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Op=Ye("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),dh=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Xo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Xo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Xo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Up=Ye(dh,{alignSelf:"stretch",minHeight:"93px"}),zp=Ye("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),qp=Ye(uh,{position:"absolute",left:"$20"}),Qp=Ye("div",{paddingTop:"$20"}),Hp=Dp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Gp=Ye("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Vp=Dp({paddingTop:"$5"}),Xp=Ye("div",{display:"flex"}),jp=Ye(mh,{backgroundColor:"$neutral100",padding:"$15"}),Kp=Ye("div",{overflow:"visible",width:"100%"}),Yp=Ye("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Xo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Xo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as pS,Divider as Ea,Image as cS,MessageBox as wr,SelectableWallet as uS,Typography as Xc,WalletState as jc}from"@rango-dev/ui";import ue,{useEffect as Kc,useState as Ao}from"react";import{WalletState as sr}from"@rango-dev/ui";import{useWallets as fh}from"@rango-dev/wallets-react";import{detectMobileScreens as gh,KEPLR_COMPATIBLE_WALLETS as hh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as yh,useEffect as Sh,useState as Ch}from"react";var Th=Object.values(wo);function vo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=fh(),{connectedWallets:u}=te(),c=h().blockchains(),m=Ol(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Th,d=vl(a,l,m,e);d=gh()?d.filter(x=>x.showOnMobile!==!1&&a(x.type).installed):d;let f=Nl(d),[g,S]=Ch(""),C=i(x=>!u.find(L=>L.walletType===x&&L.chain===e),"isExperimentalChainNotAdded"),y=i(async(x,L)=>{let w=a(x);try{if(g&&S(""),w.connected)await s(x);else{let b=!!d.find(A=>A.state===sr.CONNECTED);if(r?.multiWallets===!1&&b)return;o?.(x),await p(x,void 0,L),n?.(x)}}catch(b){S("Error: "+b?.message)}},"handleClick"),T=yh(()=>{let x=d?.filter(L=>L.state===sr.CONNECTING)||[];for(let L of x)s(L.type)},[Ll(d)]),k=i(async x=>{a(x).connected&&await s(x)},"disconnectWallet");Sh(()=>()=>{T()},[]);let v=i(x=>{let L=x.find(b=>b.type===wo.DEFAULT);return!L||L.state===sr.NOT_INSTALLED?!1:x.filter(b=>b.state!=sr.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(b.type)&&l(b.type).supportedChains.filter(A=>A.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((x,L,w)=>Bn(w,L)&&C(x)&&!hh.includes(x)||x==wo.DEFAULT&&!v(d),"shouldExcludeWallet");return{list:f.filter(x=>!E(x.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:T,disconnectWallet:k}}i(vo,"useWalletList");import{i18n as Uc}from"@lingui/core";import{Divider as eS,getCategoriesCount as tS,SelectableCategoryList as oS,styled as qc,Typography as nS,Wallet as rS,WalletState as zc}from"@rango-dev/ui";import at,{useState as Tr}from"react";import{useManager as Ly}from"@rango-dev/queue-manager-react";import{BottomLogo as By,Divider as Bc,Header as Py}from"@rango-dev/ui";import Ce,{useEffect as ka,useRef as Pc,useState as _y}from"react";import{useRef as kh}from"react";function lr(){return window.self!==window.top}i(lr,"isAppLoadedIntoIframe");function Ji(){let t=kh(null),{iframe:e}=h(),o=lr()&&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 wh}from"react-router-dom";function Ze(){let t=wh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as ia,darkTheme as $h,lightTheme as Dh}from"@rango-dev/ui";import{useEffect as Fh,useState as Oh}from"react";import{theme as Ph,darkColors as _h}from"@rango-dev/ui";import na from"react";function vh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(vh,"expandShortHexColor");function xh(t){return/[0-9]+$/.test(t)}i(xh,"isOverridingColor");function bh(t,e){return t.padStart(e,"0")}i(bh,"pad");function Ri(t){let e=Math.min(Math.max(Math.round(t),0),255);return bh(e.toString(16),2)}i(Ri,"intToHex");function Ih(t){return`#${Ri(t.red)}${Ri(t.green)}${Ri(t.blue)}`}i(Ih,"rgbToHex");function Eh(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(Eh,"hexToRGB");function Ah(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Ah,"generateShade");function Nh(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(Nh,"generateTint");function Wh(t){return Zp(t,Ah)}i(Wh,"calculateShades");function Mh(t){return Zp(t,Nh)}i(Mh,"calculateTints");function Zp(t,e){let o=Eh(t),n=[];for(let r=1;r<9;r++)n.push(Ih(e(o,r)));return n}i(Zp,"calculateColors");function ea(t,e,o){let a=Mh(t).reverse().concat(t),s=Wh(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)&&!xh(r)){let p=vh(a);Object.assign(n,ea(p,r,s))}}return{...n,...e}}i(ta,"expandToGenerateThemeColors");var Jp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Lh=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"),oa=i(t=>Lh(Bh(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=Ph.colors,o={...e,..._h},n,r;if(t?.light){let s={colors:ta(e,t.light)};n={id:`${Bi}-light-${oa(s)}`,tokens:s}}if(t?.dark){let s={colors:ta(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Bi}-dark-${oa(s)}`,tokens:s}}return{light:n,dark:r}}i(ra,"customizedThemeTokens");function Rp(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(Rp,"joinList");function pr(t){let{colors:e,fontFamily:o=cl,borderRadius:n=$l,secondaryBorderRadius:r=Dl}=t,[a,s]=Oh("light"),{theme:l}=h(),{dark:p,light:u}=ra(e),c=ia({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Dh.className],d=[c.className,$h.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 Fh(()=>{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(pr,"useTheme");var Je=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as ec}from"@lingui/core";import{Alert as Uh,Button as zh}from"@rango-dev/ui";import tc from"react";function aa(t){return tc.createElement(Uh,{action:tc.createElement(zh,{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(aa,"ActivateTabAlert");import{i18n as sa}from"@lingui/core";import{Button as qh,Divider as Qh,MessageBox as Hh}from"@rango-dev/ui";import cr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return cr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},cr.createElement(Hh,{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.")},cr.createElement(Qh,{size:20}),cr.createElement(qh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as Xh}from"@rango-dev/ui";import lc from"react";import{css as Gh,darkTheme as oc,IconButton as Vh,styled as ro}from"@rango-dev/ui";var yt=ro(Vh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${oc} &`]:{backgroundColor:"$neutral"}}}),nc=ro("div",{position:"absolute",background:"$secondary500",[`.${oc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),xo=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),rc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),ic=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ac=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),sc=Gh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ur=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function pa(t){return lc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},lc.createElement(Xh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as jh}from"@lingui/core";import{Button as Kh,Typography as Yh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(xo,null,ca.createElement(Kh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(Yh,{variant:"label",size:"medium",color:"error500"},jh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as Zh}from"@lingui/core";import{Image as Jh,Tooltip as Rh,WalletIcon as ey}from"@rango-dev/ui";import io from"react";function ma(t){let{list:e}=vo({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:sc()},o.map(r=>io.createElement(ur,{key:r.title},io.createElement(Jh,{src:r.image,size:14})))):Zh.t("Connect Wallet");return io.createElement(Rh,{container:t.container,side:"bottom",content:n},io.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(nc,null),io.createElement(ey,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as fr}from"@lingui/core";import{NotificationsIcon as vy,Popover as xy,SettingsIcon as by,Tooltip as gr,TransactionIcon as Iy}from"@rango-dev/ui";import Ae from"react";import{i18n as da}from"@lingui/core";import{EventSeverity as Sc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Cc,ChevronRightIcon as uy,Divider as Tc,Typography as fa}from"@rango-dev/ui";import de from"react";import{useNavigate as my}from"react-router-dom";import{create as ty}from"zustand";import{persist as oy,subscribeWithSelector as ny}from"zustand/middleware";var Ee=Ot(ty()(oy(ny((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 ry,darkTheme as iy,ListItemButton as ay,styled as zt}from"@rango-dev/ui";var pc=zt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),cc=zt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),uc=zt(ry,{padding:"$5 !important"}),mc=zt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),dc=zt(ay,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${iy} &`]:{backgroundColor:"$error600"}}}}}),fc=zt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),gc=zt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),hc=zt("span",{paddingRight:"$8"});import{i18n as sy}from"@lingui/core";import{Divider as ly,NoNotificationIcon as py,Typography as cy}from"@rango-dev/ui";import mr from"react";function yc(){return mr.createElement(gc,null,mr.createElement(py,{color:"secondary",size:26}),mr.createElement(ly,{size:12}),mr.createElement(cy,{variant:"body",size:"medium",color:"neutral700"},sy.t("There are no notifications.")))}i(yc,"NotificationNotFound");var dy=4;function ga(){let t=my(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,dy),l=i(p=>{t(`${z.swaps}/${p}`)},"handleOnClick");return de.createElement(pc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(cc,null,de.createElement(fa,{variant:"label",size:"medium"},da.t("Notifications")),de.createElement(uc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(fa,{variant:"body",size:"xsmall"},da.t("Clear all")))),de.createElement(Tc,{direction:"vertical",size:4})),s.length?de.createElement(mc,null,s.map((p,u)=>{let{route:c,requestId:m,event:d}=p,f=a(c.from),g=r.find(y=>y.name===c.from.blockchain),S=a(c.to),C=r.find(y=>y.name===c.to.blockchain);return de.createElement(de.Fragment,{key:m},u>0&&de.createElement(Tc,{size:4}),de.createElement(dc,{onClick:()=>l(m),actionRequired:d.messageSeverity===Sc.WARNING,title:de.createElement(fa,{variant:"body",size:"small",color:d.messageSeverity===Sc.WARNING?"$foreground":"$neutral700"},da.t(d.message)),id:m,start:de.createElement(fc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Cc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Cc,{tokenImage:S?S.image:"",chainImage:C?C.logo:"",size:"small"}))),end:de.createElement(hc,null,de.createElement(uy,{size:12,color:"gray"}))}))})):de.createElement(yc,null))}i(ga,"NotificationContent");import{useManager as fy}from"@rango-dev/queue-manager-react";import{InProgressIcon as gy}from"@rango-dev/ui";import kc from"react";var hy=i(()=>{let{manager:t}=fy();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?kc.createElement(ac,null,kc.createElement(gy,{color:"info",size:6})):null},"InProgressTransactionBadge"),wc=hy;import{EventSeverity as yy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Sy}from"@rango-dev/ui";import vc from"react";function xc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===yy.WARNING);return o?vc.createElement(rc,{isSever:n},vc.createElement(Sy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(xc,"NotificationsBadge");import{RefreshProgressButton as Cy}from"@rango-dev/ui";import ha,{useEffect as Ty,useState as bc}from"react";var ky=1e3,Ic=60,wy=100;function dr({onClick:t}){let[e,o]=bc(0),[n,r]=bc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Ty(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},ky):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(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ha.createElement(ic,{onTransitionEnd:()=>r(!1),isRefetched:n},ha.createElement(Cy,{size:22,color:t?"black":"gray",progress:e/Ic*wy})))}i(dr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=je("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(gr,{container:a||B(),side:"top",content:fr.t("Refresh")},Ae.createElement(dr,{onClick:e})),!l&&Ae.createElement(xy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ae.createElement(ga,null)},Ae.createElement("div",null,Ae.createElement(gr,{container:B(),side:"top",content:fr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(vy,{size:18,color:"black"}),Ae.createElement(xc,null))))),!r.includes("settings")&&Ae.createElement(gr,{container:B(),side:"top",content:fr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(by,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(gr,{container:B(),side:"top",content:fr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(Iy,{size:18,color:"black"}),Ae.createElement(wc,null))))}i(ao,"HeaderButtons");import{i18n as ya}from"@lingui/core";import{Divider as Ac,MessageBox as Ny,RefreshIcon as Wy}from"@rango-dev/ui";import bo from"react";import{Button as Ey,styled as Ay}from"@rango-dev/ui";var Ec=Ay(Ey,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Sa(t){let{open:e,onClose:o}=t;return bo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},bo.createElement(Ny,{title:ya.t("Something went wrong"),type:"error",description:ya.t("Something went wrong. Please refresh the app.")},bo.createElement(Ac,{size:30}),bo.createElement(Ec,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},bo.createElement(Wy,{size:20,color:"primary"}),bo.createElement(Ac,{size:4,direction:"horizontal"}),ya.t("Refresh"))))}i(Sa,"RefreshModal");function Ca(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(Ca,"onScrollContentAttachStatusToContainer");import{css as My,styled as Ta}from"@rango-dev/ui";var Nc="700px",hr=My({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Wc=Ta("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Mc=Ta("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Lc=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 le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ji(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=_y(!1),c=te.use.connectedWallets(),{config:{features:m,theme:d}}=h(),{watermark:f}=ie(),g=f==="FULL",{activeTheme:S}=pr(d||{}),C=je("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ie(),x=Ze(),{manager:L}=Ly(),b=Je(L).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),A=i(()=>E(to.forceClaim,b),"onActivateTab"),P=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,I=Pc(null),H=Pc(null);return ka(()=>(lr()&&H.current&&e(H.current),()=>{o()}),[]),ka(()=>(I.current?.addEventListener("scroll",Ca),()=>{I.current?.removeEventListener("scroll",Ca)}),[]),ka(()=>{u(l==="failed")},[l]),Ce.createElement(Wc,{height:s,id:Se.SWAP_BOX_ID,className:`${S()} ${hr()}`,ref:H},Ce.createElement(Py,{prefix:Ce.createElement(Ce.Fragment,null,Q&&Ce.createElement(pa,{onClick:()=>{x(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ce.createElement(Ce.Fragment,null,r.suffix,r.onWallet&&!C&&Ce.createElement(ma,{container:B(),onClick:P,isConnected:!!c?.length}),r.onCancel&&Ce.createElement(ua,{onClick:r.onCancel}))}),Ce.createElement(Mc,{ref:I},n),Ce.createElement(la,{open:k,onClose:()=>v(!1),onConfirm:A}),Ce.createElement(Lc,null,Ce.createElement("div",{className:"footer__content"},T&&!y&&Ce.createElement("div",{className:"footer__alert"},Ce.createElement(aa,{onActivateTab:A}),Ce.createElement(Bc,{size:10})),a),Ce.createElement(Bc,{size:12}),Ce.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Ce.createElement(By,null))),Ce.createElement(Sa,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as $y}from"@rango-dev/ui";var _c="$20 $20 $10 $20",jo=$y("div",{padding:_c,overflowY:"auto",flexGrow:1});import{styled as Dy}from"@rango-dev/ui";var me=Dy("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 qy}from"@rango-dev/ui";import va from"react";import{i18n as Io}from"@lingui/core";import{Image as Uy,MessageBox as wa,WalletState as zy}from"@rango-dev/ui";import so from"react";import{keyframes as Fy,styled as yr}from"@rango-dev/ui";var pW=yr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Sr=yr("div",{position:"relative"}),Oy=Fy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Cr=yr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Oy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=yr("div",{"& img":{borderRadius:"50%"}});function Dc(t){let{state:e,image:o,error:n}=t;return e===zy.CONNECTED?so.createElement(wa,{type:"success",title:Io.t("Wallet Connected"),description:Io.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(wa,{type:"error",title:Io.t("Failed to Connect"),description:n||Io.t("Your wallet is not connected. Please try again.")}):so.createElement(wa,{type:"loading",title:Io.t("Connecting to your wallet"),description:Io.t("Click connect in your wallet popup."),icon:so.createElement(Sr,null,so.createElement($c,null,so.createElement(Uy,{src:o,size:45})),so.createElement(Cr,null))})}i(Dc,"ModalContent");function Ko(t){let{open:e,onClose:o,...n}=t;return va.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},va.createElement(Dc,{...n}),va.createElement(qy,{direction:"vertical",size:32}))}i(Ko,"WalletModal");import{i18n as xa}from"@lingui/core";import{Button as Hy,Checkbox as Gy,Image as Oc,ListItemButton as Vy,MessageBox as Xy,Radio as jy,RadioRoot as Ky}from"@rango-dev/ui";import{Namespace as Eo}from"@rango-dev/wallets-shared";import We,{useMemo as Yy,useState as Zy}from"react";import{styled as Qy}from"@rango-dev/ui";var Fc=Qy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Jy={[Eo.Evm]:"ETH",[Eo.Solana]:"SOLANA",[Eo.Cosmos]:"COSMOS",[Eo.Utxo]:"BTC",[Eo.Starknet]:"STARKNET",[Eo.Tron]:"TRON"},Ry=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Zy([]),a=h().blockchains(),s=Yy(()=>o?.map(u=>({name:u,logo:Ry(a,Jy[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(Ky,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},We.createElement(Xy,{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(Sr,null,We.createElement(ur,null,We.createElement(Oc,{src:t.image,size:45})),We.createElement(Cr,null))}),We.createElement(Fc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(Vy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Oc,{src:u.logo,size:22}),end:e?We.createElement(jy,{value:u.name}):We.createElement(Gy,{checked:n.includes(u.name)})}))))),We.createElement(Hy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},xa.t("Confirm")))}i(lo,"WalletNamespacesModal");var iS=qc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),aS=qc(me,{textAlign:"center"}),kr=3e3,ba=300;function Qc(){let{fetchStatus:t}=h(),[e,o]=Tr("ALL"),n=h().blockchains(),[r,a]=Tr(!1),[s,l]=Tr(null),[p,u]=Tr(""),c=null,m=ie.use.isActiveTab(),{list:d,handleClick:f,error:g,disconnectConnectingWallets:S}=vo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},ba)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},kr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),y=d.find(w=>w.type===p),T=y?.image||"",k=y?.state||zc.NOT_INSTALLED,v=Bl(d,n),x=tS(v)!==1,L=Pl(d,e);return at.createElement(le,{header:{title:Uc.t("Connect Wallets")}},at.createElement(aS,null,x&&at.createElement(at.Fragment,null,at.createElement(oS,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),at.createElement(eS,{size:24})),at.createElement(nS,{variant:"title",size:"xmedium",align:"center"},Uc.t("Choose a wallet to connect.")),at.createElement(iS,null,L.map((w,b)=>{let A=`wallet-${b}-${w.type}`;return at.createElement(rS,{key:A,...w,container:B(),onClick:P=>{w.namespaces&&w.state===zc.DISCONNECTED?l({providerType:P,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(P)},isLoading:t==="loading",disabled:!m})}),at.createElement(Ko,{open:!!r,onClose:C,image:T,state:k,error:g}),at.createElement(lo,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Qc,"WalletsPage");import{keyframes as sS,styled as Ia}from"@rango-dev/ui";var Hc=Ia("div",{position:"relative"}),lS=sS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Gc=Ia("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${lS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Vc=Ia("div",{"& img":{borderRadius:"50%"}});var mS=7;function Aa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Ao(""),[d,f]=Ao(null),[g,S]=Ao(!1),[C,y]=Ao(null),[T,k]=Ao(null),{suggestAndConnect:v}=vr(),E=null,{list:x,error:L,handleClick:w,disconnectWallet:b,disconnectConnectingWallets:A}=vo({chain:e,onBeforeConnect:W=>{E=setTimeout(()=>{m(W)},ba)},onConnect:W=>{s?.(W),E&&clearTimeout(E),setTimeout(()=>{m("")},kr)}}),[P,Q]=Ao(x),I=x.length,H=r&&I-r>0,Y=i(async W=>{S(!1),y("in-progress");try{await v(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");Kc(()=>{Q(W=>{let U=x.findIndex(Z=>o(Z.type,e));return H&&U>1?[x[U]].concat(x.filter((Z,re)=>re!==U)):W.map(Z=>x.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(x)]);let G=document.getElementById(Se.SWAP_BOX_ID);Kc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),kr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{A(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,P.slice(0,r).map(W=>{let U=Wl({connectedWallets:p,walletType:W.type,chain:e}),Z=U?_n(U,mS):"",re=Bn(u(),e),ke=!p.find(Oe=>Oe.walletType===W.type&&Oe.chain===e),_=re&&ke&&W.state===jc.CONNECTED,Fe=_?st.t({id:"Add {chain} chain",values:{chain:e}}):Z,ot=i(async()=>{W.state===jc.DISCONNECTED?W.namespaces?pe(W):w(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(f({walletType:W.type,chain:e,address:U??""}),S(!0)):n({walletType:W.type,chain:e,address:U??""})},"onClick"),fe=d?.chain?En(d.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${fe}`},ue.createElement(Ko,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:L}),ue.createElement(lo,{open:!!T,onClose:()=>k(null),onConfirm:Oe=>{w(T?.providerType,Oe),k(null)},image:T?.providerImage,namespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),!!d&&ue.createElement(ne,{open:!!d&&g,container:G,onClose:()=>{f(null)}},ue.createElement(wr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}})},ue.createElement(Ea,{size:18}),ue.createElement(Ea,{size:32}),ue.createElement(pS,{onClick:Y.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(wr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}}),icon:ue.createElement(Hc,null,ue.createElement(Vc,null,ue.createElement(cS,{src:W.image,size:45})),ue.createElement(Gc,null))}),C==="completed"&&ue.createElement(wr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:fe}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:fe}})}),C==="rejected"&&ue.createElement(wr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:fe}})}),ue.createElement(Ea,{direction:"vertical",size:32})),ue.createElement(uS,{key:W.type,description:Fe,onClick:ot,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(Up,{selected:!1,onClick:a},ue.createElement(Xc,{variant:"label",size:"medium"},st.t("Show more wallets"),ue.createElement(Xc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Aa,"WalletList");var vS=2;function Rc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=wS(),l=h().config,p=kS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:d,setQuoteWalletConfirmed:f,customDestination:g,setCustomDestination:S}=K(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=po(""),[v,E]=po([]),[x,L]=po(""),[w,b]=po(null),[A,P]=po(!!g),Q=navigator?.userAgent.includes("Firefox"),I=Rt({filter:"all",quote:c}),H=Rt({filter:"required",quote:c}),Y=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(M=>H.includes(M),"isWalletRequiredFor"),G=TS(()=>C.filter(M=>M.selected&&I.includes(M.chain)),[C.length,I.length]),[ee,W]=po(G()),[U,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),ke=v.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&A&&Y&&!Qn(Y,g),ot=i(()=>{P(!1),S(null),W(M=>{let V=!1;return M.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),fe=i(()=>S(""),"handleClearCustomDestination"),Oe=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),vt=i(M=>{M?pe(Y?.name??"")||W(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):ot()},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(M=>{if(T&&k(""),_(M.walletType,M.chain))return;let X=C.find(qe=>qe.walletType===M.walletType&&qe.chain===M.chain);X&&(n(),M.chain===Y?.name&&A&&!pe(Y.name)&&(P(!1),S(null)),W(qe=>qe.filter(ft=>ft.chain!==M.chain).concat({...X,selected:!0})))},"onChange"),nt=i(()=>{let M=ee.filter(V=>V.selected);y(M),m(M),f(!0),o()},"onConfirmBalance"),rt=i(async()=>{E([]),L(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&E(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&L(sp(M.error)),!M.error&&!V?.balance?.messages.length?nt():E(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Zc,{onClick:fe,variant:"ghost"},$.createElement(hS,{size:12,color:"gray"})):Q?null:$.createElement(Zc,{onClick:Oe,variant:"ghost"},$.createElement(SS,{size:16})),"renderCustomDestinationSuffix");Jc(()=>{W(M=>{let V=[];return M.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C.length,I.length]),Jc(()=>{let M=[];U.length>0&&(U.forEach(V=>{let X=C.find(qe=>qe.chain===V.blockchain&&qe.walletType===V.walletType);X?Ve(X):M.push(V)}),Z(M))},[C.length,U.length]);let ye=document.getElementById(Se.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{d||s("../",{replace:!0}),o()},dismissible:!T,container:ye,...!T&&{footer:$.createElement(Xp,null,$.createElement(Yc,{loading:a,disabled:bp(a,A,g,c,ee,Y),onClick:rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(zp,null,$.createElement(qp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(gS,{size:16})),$.createElement(xr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(T,u)}})))},anchor:"center"},$.createElement(ne,{open:ke,onClose:E.bind(null,[]),container:ye},$.createElement(yS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(dS,{messages:v??[]})},$.createElement(Yc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:nt},St.t("Proceed anyway")))),T&&$.createElement(Qp,null,$.createElement("div",{className:Hp()},$.createElement(Aa,{chain:T,isSelected:_,selectWallet:Ve,onShowMore:()=>k(T),onConnect:M=>{re(T,M)}}))),!T&&$.createElement($.Fragment,null,x&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"error",title:St.t(x)}),$.createElement(Yo,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"warning",title:tr(w)}),$.createElement(Yo,{size:12})),$.createElement(Kp,null,I.map((M,V)=>{let X=u.find(Jt=>Jt.name===M),qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:qe},$.createElement(Fp,null,$.createElement(xr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(xr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Yo,{size:24}),$.createElement(Op,null,$.createElement(Aa,{chain:M,isSelected:_,selectWallet:Ve,limit:vS,onShowMore:()=>k(X?.name??""),onConnect:Jt=>{re(M,Jt)}})),!ft&&$.createElement(Yo,{size:32}),ft&&l?.customDestination&&$.createElement(Gp,null,$.createElement(ar,{onOpenChange:vt,hasSelected:!0,open:A,triggerAnchor:"top",trigger:$.createElement(Yp,null,$.createElement("div",{className:"button__content"},$.createElement(CS,{size:18,color:"info"}),$.createElement(Yo,{size:4,direction:"horizontal"}),$.createElement(xr,{variant:"label",size:"medium",color:A?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(rr,{orientation:A?"up":"down"},$.createElement(fS,{size:10,color:"secondary"}))),onClickTrigger:()=>P(Jt=>!Jt)},$.createElement(jp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:En(M,u)}),value:g||"",suffix:dt(),onChange:Jt=>{let Kf=Jt.target.value;S(Kf)},...!g&&{autoFocus:!0}})),Fe&&$.createElement("div",{className:Vp()},$.createElement(Na,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Rc,"ConfirmWalletsModal");import{i18n as qS}from"@lingui/core";import{Alert as QS,Button as HS,InfoIcon as GS}from"@rango-dev/ui";import He from"react";import{Alert as IS,Button as ES,Divider as La,NoRouteIcon as AS,RefreshIcon as NS,Typography as au}from"@rango-dev/ui";import Qe from"react";import{i18n as eu}from"@lingui/core";var xS=24,bS=60;function tu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:eu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:eu.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(tu,"makeInfo");var Wa=(o=>(o[o.small=xS]="small",o[o.large=bS]="large",o))(Wa||{}),Ma=(o=>(o.small="small",o.large="medium",o))(Ma||{});import{styled as br}from"@rango-dev/ui";var ou=br("div",{display:"flex",flexDirection:"column",alignItems:"center"}),nu=br("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),ru=br("div",{variants:{size:{small:{width:"100%"},large:{}}}}),iu=br("div",{padding:"$6 $0"});function Zo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=tu(o,r,()=>a(s,!0),e);return Qe.createElement(ou,null,Qe.createElement(AS,{size:Wa[n],color:"gray"}),Qe.createElement(La,{size:4}),Qe.createElement(au,{variant:"title",size:Ma[n]},oe().noResultError.title),n==="large"&&Qe.createElement(La,{size:4}),!!l.description&&Qe.createElement(nu,{size:n},Qe.createElement(au,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Qe.createElement(La,{size:n==="large"?"24":"4"}),!!l.alert&&Qe.createElement(ru,{size:n},Qe.createElement(IS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Qe.createElement(ES,{size:"xsmall",type:l.alert.type,prefix:Qe.createElement(iu,null,Qe.createElement(NS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Zo,"NoResult");import{i18n as Jo}from"@lingui/core";import{Button as MS,Divider as LS,MessageBox as BS,Typography as PS,WarningIcon as _S}from"@rango-dev/ui";import At from"react";import{Typography as cu}from"@rango-dev/ui";import Pa from"react";import{darkTheme as WS,styled as Ir}from"@rango-dev/ui";var su=Ir("div",{width:"100%"}),Ba=Ir("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),lu=Ir("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${WS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),pu=Ir("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function uu(t){let{title:e,value:o,valueColor:n}=t;return Pa.createElement(lu,null,Pa.createElement(cu,{size:"medium",variant:"label",className:"_title"},e),Pa.createElement(cu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(uu,"QuoteErrorsModalItem");function mu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Jo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Jo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Jo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Jo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(MS,{type:"primary",size:"large",prefix:At.createElement(_S,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},At.createElement(BS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(Ba,null,At.createElement(LS,{size:"4"}),At.createElement(PS,{size:"small",variant:"title"},Jo.t("Details")),At.createElement(Ba,null,l.map((p,u)=>At.createElement(uu,{key:u,...p})))))}i(mu,"HighValueLossWarningModal");import{i18n as _a}from"@lingui/core";function du(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&&(It(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=_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(du,"makeAlerts");import{i18n as No}from"@lingui/core";import{Button as fu,Divider as gu,MessageBox as $S,Typography as DS}from"@rango-dev/ui";import co from"react";import{useNavigate as FS}from"react-router-dom";function hu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=FS(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(fu,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},co.createElement(DS,{variant:"label",size:"medium",color:"$neutral900"},No.t("Change settings"))),container:B(),onClose:r},co.createElement($S,{type:"warning",title:s.type===3?No.t("High slippage"):No.t("Low slippage"),description:s.type===3?No.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):No.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},co.createElement(gu,{size:18}),co.createElement(gu,{size:32}),co.createElement(fu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},No.t("Confirm anyway"))))}i(hu,"SlippageWarningModal");import{Button as OS,MessageBox as US,WarningIcon as zS}from"@rango-dev/ui";import Er from"react";function yu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Er.createElement(ne,{footer:Er.createElement(OS,{type:"primary",size:"large",prefix:Er.createElement(zS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Er.createElement(US,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(yu,"UnknownPriceWarningModal");function Ro(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=du(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),He.createElement(He.Fragment,null,d&&He.createElement(Zo,{error:o,fetch:s}),!!f&&He.createElement(su,null,He.createElement(QS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:He.createElement(pu,{onClick:l},He.createElement(GS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:He.createElement(HS,{size:"xxsmall",type:f.alertType,onClick:c},qS.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(mu,{...m,warning:e}),(e.type===3||e.type===2)&&He.createElement(hu,{...m,warning:e}),e.type===1&&He.createElement(yu,{...m,warning:e})))}i(Ro,"QuoteWarningsAndErrors");import wC from"bignumber.js";import zr from"react";import{i18n as uo}from"@lingui/core";import{Alert as pC,Divider as Mo,FullExpandedQuote as cC,InfoIcon as uC,QuoteTag as mC,StepDetails as dC,TokenAmount as fC,Tooltip as Yu,Typography as Lo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as gC,useState as hC}from"react";import{styled as $a}from"@rango-dev/ui";var Da=$a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Su=$a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Cu=$a("div",{width:"100%",display:"flex"});import*as Ar from"@radix-ui/react-collapsible";import{Button as VS,css as en,darkTheme as we,Image as Tu,styled as _e,Typography as XS}from"@rango-dev/ui";var jS=300,ku=_e(Ar.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"}}]}),wu=en({padding:"$10 $15"}),vu=_e(VS,{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"}}}),xu=_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"}}}}]}),bu=en({width:"100%",padding:"$15 $15 $10 $15"}),Iu=en({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Wo=en({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Eu=en({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Au=_e(Ar.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:{[`& ${Tu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Tu}`]:{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"}}}),Nu=_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"}}}}),Wu=_e(nr,{width:"100%",background:"inherit"}),Fa=_e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${jS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),dB=_e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Mu=_e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Lu=_e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Oa=_e(XS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Bu=_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"}}}}),Pu=_e("div",{display:"flex"}),Nr=_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 YS,CloseIcon as ZS,Divider as Lr,IconButton as JS,QuoteCost as RS,Tooltip as eC,Typography as lt}from"@rango-dev/ui";import J,{useState as Fu}from"react";import{css as KS,styled as Wr}from"@rango-dev/ui";var Mr=Wr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),za=Wr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),_u=Wr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),$u=Wr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Du=KS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var tC=i(t=>t.fee.isZero()?null:J.createElement(Mr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Ou(t){let[e,o]=Fu(!1),[n,r]=Fu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],d=B(),f=dp(m);return J.createElement(J.Fragment,null,J.createElement(RS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Vt.t("View more info"):void 0,tooltipContainer:d}),J.createElement(ne,{container:d,open:e,header:J.createElement($u,null,J.createElement(lt,{variant:"title",size:"medium"},Vt.t("Gas & Fee Explanation")),J.createElement(JS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(ZS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(_u,null,J.createElement(lt,{variant:"title",size:"small"},Vt.t("Details")),J.createElement(Lr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=qi(C);return J.createElement(Mr,{key:T},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Fi[g]),J.createElement(eC,{content:ce(C.amount),container:d},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Mr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Vt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(za,null),Object.keys(f.nonePayable).length&&J.createElement(ar,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:Du()},J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?Vt.t("Hide non-payable fees"):Vt.t("Show non-payable fees")),J.createElement(Lr,{size:4,direction:"horizontal"}),J.createElement(rr,{orientation:n?"up":"down"},J.createElement(YS,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Vt.t("Description")),J.createElement(Lr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Vt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),J.createElement(Lr,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let y=mp(S),T=Fi[g],k=`non-payable-fee-${C}`;return J.createElement(tC,{key:k,fee:y,label:T})}),J.createElement(za,null)))))}i(Ou,"QuoteCostDetails");import{i18n as qu}from"@lingui/core";import{TokenAmount as Qu}from"@rango-dev/ui";import Br from"react";import{css as oC,styled as nC}from"@rango-dev/ui";var Uu=nC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),zu=oC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function tn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Br.createElement(Uu,null,Br.createElement(Qu,{direction:"horizontal",label:qu.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}}),Br.createElement("div",{className:zu()}),Br.createElement(Qu,{direction:"horizontal",tooltipContainer:B(),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(tn,"QuoteSummary");import{i18n as ju}from"@lingui/core";import{ChevronDownIcon as aC,ChevronRightIcon as sC,Divider as qa,Image as lC,Tooltip as Fr,Typography as _r}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as rC,useState as on}from"react";var Hu=480,Gu=768,Vu=1024,Xu=1200,iC=i(()=>{let[t,e]=on(!1),[o,n]=on(!1),[r,a]=on(!1),[s,l]=on(!1),[p,u]=on(!1),c=i(()=>{e(window.innerWidth<=Hu),n(window.innerWidth>Hu&&window.innerWidth<=Gu),a(window.innerWidth>Gu&&window.innerWidth<=Vu),l(window.innerWidth>Vu&&window.innerWidth<=Xu),u(window.innerWidth>Xu)},"handleResize");return rC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Pr=iC;var $r=4,Dr=6,nn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return F.createElement(Fr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Nu,{className:n,state:a},F.createElement(lC,{src:o,size:16})))},"ImageComponent");function Ku(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Wp(r),{isTablet:m,isMobile:d}=Pr();return F.createElement(Au,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:Wo()},F.createElement(_r,{variant:"body",size:"xsmall"},ju.t("Via:")),F.createElement(qa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=F.createElement(Fa,null,F.createElement(sC,{size:12,color:"black"}));return d||m?F.createElement(F.Fragment,{key:S},F.createElement(nn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:S},u<=$r||u>$r&&g<$r-1?F.createElement(F.Fragment,null,F.createElement(nn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===$r-1&&F.createElement(Fr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Wo()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&F.createElement(F.Fragment,{key:k},F.createElement(nn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Ua,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(_r,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:Wo()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Wo()},F.createElement(_r,{variant:"body",size:"xsmall"},ju.t("Chains:")),F.createElement(qa,{direction:"horizontal",size:4}),c.map((f,g)=>F.createElement(F.Fragment,{key:f.displayName},c.length<=Dr||c.length>Dr&&g<Dr-1?F.createElement(Fr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},F.createElement(nn,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===Dr-1&&F.createElement(Fr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Wo()},c.map((S,C)=>C>=g&&F.createElement(nn,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Ua,{className:"blockchainImage"},F.createElement(_r,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(qa,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(aC,{size:12,color:"black"}))))}i(Ku,"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=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=hC(t.expanded),E=gC(null),x=N(o.value,6,6),L=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",b=Ke(o.usdValue,n.usdValue??null),A=N(b,2,2),P=It(b??0),Q=i((re,ke)=>re.map((_,Fe)=>{let ot,fe=r?.type===3&&r.swap.swapperId===_.swapperId,Oe=r?.type===4&&r.recommendedSlippages?.has(Fe),vt=a?.type===2&&a.recommendedSlippages?.has(Fe),Ve=fe||Oe,nt=vt;Ve?ot="error":nt&&(ot="warning");let rt=Ve?uo.t("Slippage Error"):uo.t("Slippage Warning");return fe&&(rt=uo.t("Bridge Limit Error")),{swapper:{displayName:Oo(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Fe===0&&!ke?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Fe===0?o.value:_.fromAmount),realUsdValue:ce(new Qa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new Qa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:ot,alerts:Ve||nt?D.createElement(Su,{dense:m},D.createElement(pC,{variant:"alarm",type:Ve?"error":"warning",title:rt,footer:D.createElement(Cu,null,fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Mo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Oe||vt)&&!fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Fe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Fe)}}})),D.createElement(Mo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Uo(_.estimatedTimeInSeconds),fee:N(zi(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),I=Q(e?.swaps??[]),H=I.length,Y=d||B(),pe=Lp(t.quote.tags||[]),G=!!c,ee=Uo(An(e?.swaps)),W=Vn(e?.swaps??[],g),U=N(W,2,2),Z=W.gte(new Qa(ap));return m?D.createElement(cC,{selected:l,fee:U,time:ee,tooltipContainer:Fo(),steps:I,tags:pe,feeWarning:Z,percentageChange:A,warningLevel:P,outputPrice:{value:L,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(xu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:bu()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(Pu,null,pe.map((re,ke)=>{let _=`${re.value}_${ke}`;return D.createElement(D.Fragment,{key:_},D.createElement(mC,{label:re.label,value:re.value}),D.createElement(Mo,{size:4,direction:"horizontal"}))})),D.createElement(Nr,null),!G&&D.createElement(Mo,{size:4})):null,D.createElement("div",{id:"portal-root",className:Iu()},D.createElement(Ou,{quote:e,time:ee,fee:U,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(vu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Lo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},uo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Eu()},D.createElement(Lu,null,D.createElement(uC,{size:12,color:"gray"})),D.createElement(Bu,null,D.createElement(Oa,{size:"small",variant:"body"},`${x} ${I[0].from.token.displayName} = `),D.createElement(Yu,{content:ce(n.value),container:Y,open:n.value?void 0:!1},D.createElement(Oa,{size:"small",variant:"body"},"\xA0",`${L} ${I[I.length-1].to.token.displayName}`))),D.createElement(Yu,{content:ce(n.usdValue),container:Y},D.createElement(Mo,{size:2,direction:"horizontal"}),D.createElement(Lo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&D.createElement(fC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:L,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:A,warningLevel:P}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(tn,{from:I[0].from,to:I[H-1].to,percentageChange:A,warningLevel:P}),D.createElement(Mo,{size:4}))),D.createElement(ku,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},D.createElement(Ku,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:I}),D.createElement(Wu,{open:k},D.createElement(Mu,null),D.createElement("div",{className:wu()},I.map((re,ke)=>{let _=`item-${ke}`;return D.createElement(dC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:ke!==I.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as TC,Skeleton as kC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as yC,styled as Or}from"@rango-dev/ui";var Zu=Or("div",{$$color:"$colors$neutral100",[`.${yC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ju=Or("div",{paddingTop:"$2"}),Ru=Or("div",{paddingLeft:"$8"}),em=Or("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as cm,Divider as pt,Skeleton as Ge}from"@rango-dev/ui";import q from"react";import{css as SC,styled as Nt}from"@rango-dev/ui";var Ga=Nt("div",{display:"flex"}),tm=Nt("div",{padding:"$10 $0 $20"}),om=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),nm=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),rm=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),im=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),am=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),sm=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),lm=Nt("div",{padding:"$15 $0 $15 $0"}),pm=SC({display:"flex",justifyContent:"space-between",alignItems:"center"});function rn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(rm,null,q.createElement(am,null,q.createElement(cm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{size:8,direction:"horizontal"}),q.createElement(sm,null,q.createElement(Ge,{height:10,width:60,variant:"rounded"}),q.createElement(pt,{size:4}),q.createElement(Ge,{height:15,variant:"rounded"}))),q.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(Ga,null,q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"})),q.createElement(Nr,null),!r&&q.createElement(pt,{size:4})),q.createElement("div",{className:pm()},q.createElement(Ga,null,q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&q.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(tm,null,q.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(om,null,q.createElement(nm,null,q.createElement(cm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{direction:"horizontal",size:4}),q.createElement(Ge,{height:15,width:150,variant:"rounded"})),q.createElement(pt,{size:10}),q.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(pt,{size:4}),q.createElement(lm,null,n,q.createElement(im,null),n),q.createElement(pt,{size:12})))}i(rn,"QuoteSummarySkeleton");import{ChainToken as gm,Divider as Xa,NextIcon as CC,Skeleton as Ur}from"@rango-dev/ui";import ve from"react";import{styled as an}from"@rango-dev/ui";var um=an("div",{display:"flex",alignItems:"start"}),mm=an("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Va=an("div",{display:"flex",alignItems:"center",flexGrow:1}),dm=an("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),fm=an("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(fm,null,ve.createElement(Ur,{height:22,width:22,variant:"circular"}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Ur,{height:15,width:148,variant:"rounded"})),ve.createElement(um,null,ve.createElement(em,{hideSeparator:!e}),ve.createElement(mm,{extraSpace:e},ve.createElement(Va,null,ve.createElement(gm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Ur,{height:12,variant:"rounded"})),ve.createElement(dm,null,ve.createElement(CC,{color:"gray",size:16})),ve.createElement(Va,null,ve.createElement(gm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Ur,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function sn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Zu,{expanded:o,rounded:e!=="basic"},Wt.createElement(rn,{type:e,tagHidden:n}),Wt.createElement(Ju,null,Wt.createElement(kC,{height:15,variant:"rounded"})),o&&Wt.createElement(Ru,null,Wt.createElement(TC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(sn,"QuoteSkeleton");function mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:d=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=K(),y=e?.outputAmount?new wC(e?.outputAmount):null,T=e?.outputAmount?jn(e?.outputAmount,Yn(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?zr.createElement(Da,null,zr.createElement(sn,{tagHidden:l,type:o,expanded:s})):v?zr.createElement(Da,{onClick:()=>p?.(e)},zr.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:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as IC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as EC}from"react";import{useRef as vC,useState as xC}from"react";var bC=2e3;function qr({request:t}){let[e,o]=xC(!1),n=vC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,bC)),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(qr,"useFetch");function hm(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(hm,"useFetchConfirmQuote");function Qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=ja(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Qr,"throwErrorIfResponseIsNotValid");function ja(t){if(pp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=cp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=fp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(ja,"getQuoteError");function ym(t,e,o){let n=!1;t&&(n=Np(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Co(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Tp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(So(e)),percentageChange:N(Ke(So(t)??"",So(e)??""),null,2)}:Qi(t,e)?r.quoteUpdate={type:0}: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(ym,"generateWarnings");function Hr(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(Hr,"handleQuoteErrors");function Ka(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=K(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),d=h().tokens(),{findToken:f}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=hm();return EC(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,E=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let x=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),L={requestId:r?.requestId||"",selectedWallets:x,destination:E||void 0};try{return await S(L,!0).then(w=>{let{result:b}=w;Qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let A={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(A);let P={slippage:g.toString(),disabledSwappersGroups:c},Q=ym(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:f,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let I=!!Q.balance,H=IC(o.toString(),b,Sp(v),P,!I,{blockchains:m,tokens:d});return{quote:A,swap:H,error:null,warnings:Q}})}catch(w){return Hr(w)}},"fetch"),cancelFetch:C}}i(Ka,"useConfirmSwap");var $C=WC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Cm}`]:{width:"$48",height:"$48"}}),DC=Ja({flexGrow:1,paddingRight:"$10"}),FC=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),OC=Ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function Tm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=K(),s=_C(),[l,p]=ln(""),u=!n,[c,m]=ln(!1),[d,f]=ln(!1),{isActiveTab:g}=ie(),S=h().getDisabledLiquiditySources(),C=PC(S),{manager:y}=AC(),{fetch:T,loading:k,cancelFetch:v}=Ka(),[E,x]=ln({swap:null,error:null,warnings:null}),[L,w]=ln(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await T?.({selectedWallets:G,customDestination:ee});return x(W),W},"onConfirmSwap"),A=i(async()=>{if(E.swap&&n)try{await y?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let G=`../${z.swaps}/${E.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),P=i(async()=>{f(!0),await A(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await P()},"onStartConfirmSwap"),I=i(async()=>{x({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(G=>{x(G)}).catch(G=>console.error(G))},"onRefresh");Gr(()=>{!!C.current.length&&!S.length&&I(),C.current=S},[S.length]),Gr(()=>{u&&v()},[u]),Gr(()=>{u&&m(u)},[u]),Gr(()=>{u||T({selectedWallets:o,customDestination:r}).then(G=>x(G)).catch(G=>console.error(G))},[]),BC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=E.warnings?.quote??null,Y=E.error,pe=[];if(l&&pe.push(xe.createElement(Sm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&pe.push(xe.createElement(Sm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&tr(E.warnings.quoteUpdate)})),H||Y){let G=`../${z.settings}`;pe.push(xe.createElement(Ro,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:L,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await A()},onChangeSettings:()=>s(G)}))}return xe.createElement(le,{header:{title:Ya.t("Confirm Swap"),onWallet:()=>{let G=`../${z.wallets}`;s(G)}},footer:xe.createElement($C,null,xe.createElement("div",{className:DC()},xe.createElement(NC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!E.error||!g,onClick:Q},Ya.t("Start Swap"))),xe.createElement(Cm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!g,onClick:m.bind(null,!0)},xe.createElement(LC,{size:24})))},c&&xe.createElement(Rc,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),xe.createElement(me,null,xe.createElement("div",{className:OC()},xe.createElement(MC,{variant:"title",size:"small"},Ya.t("You get")),xe.createElement("div",{className:FC()},xe.createElement(dr,{onClick:!k&&!c&&!L?I:void 0}))),xe.createElement(Za,{size:"12"}),Rp(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),xe.createElement(Za,{size:10})),pe.length>0?xe.createElement(Za,{size:10}):null,xe.createElement(mo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(Tm,"ConfirmSwapPage");import{i18n as Xr}from"@lingui/core";import{useManager as tT}from"@rango-dev/queue-manager-react";import{Divider as Mm,NotFound as oT,styled as nT}from"@rango-dev/ui";import Lt,{useState as rT}from"react";import{useNavigate as iT}from"react-router-dom";import{i18n as qC}from"@lingui/core";import{Divider as bm,GroupedVirtualizedList as QC,Skeleton as HC,SwapListItem as Im,Typography as GC}from"@rango-dev/ui";import $e,{useCallback as Em,useEffect as VC,useRef as XC,useState as jC}from"react";function km(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(km,"calculateGroupsSoFar");import{css as UC,darkTheme as zC,styled as pn}from"@rango-dev/ui";var Ra=UC(),wm=pn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),es=pn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ra}`]:{$$color:"$colors$neutral600",[`.${zC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=pn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),vm=pn("div",{gap:"$10",display:"flex",flexDirection:"column"}),xm=pn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var KC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=jC([]),l=XC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Em(km,[]),d=Em(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,KC),s(m(u,l.current)))},[e.length]);if(VC(()=>{r||d()},[r,d]),r){let f=[1,2];return $e.createElement($e.Fragment,null,[f,f].map((S,C)=>$e.createElement(es,{key:C},$e.createElement(ts,null,$e.createElement(HC,{variant:"text",width:60,size:"small"}),$e.createElement(bm,{size:16})),$e.createElement(bm,{size:4}),$e.createElement(vm,null,S.map((T,k)=>$e.createElement(Im,{isLoading:!0,key:k}))))))}return $e.createElement(QC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:f=>$e.createElement(es,null,$e.createElement(ts,null,$e.createElement(GC,{variant:"label",size:"medium",className:Ra()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return $e.createElement(wm,{key:S.requestId},$e.createElement(Im,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===qC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:ce(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(os,"HistoryGroupedList");import{CloseIcon as ZC,IconButton as JC,SearchIcon as RC,TextField as eT}from"@rango-dev/ui";import cn from"react";import{styled as YC}from"@rango-dev/ui";var Am=YC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return cn.createElement(eT,{prefix:cn.createElement(Am,null,cn.createElement(RC,{color:"black"})),suffix:!!s.length&&cn.createElement(JC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},cn.createElement(ZC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as Vr}from"@lingui/core";import Nm from"dayjs";var Wm=i(t=>{let e=new Map([["today",{title:Vr.t("Today"),swaps:[]}],["week",{title:Vr.t("This week"),swaps:[]}],["month",{title:Vr.t("This month"),swaps:[]}],["year",{title:Vr.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=Nm();t.forEach(p=>{let u=Number(p.creationTime),c=Nm(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 aT=nT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),sT=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Lm(){let t=iT(),{manager:e,state:o}=tT(),n=Je(e).map(({swap:c})=>c),[r,a]=rT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||sT(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Xr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Mm,{size:"16"}),Lt.createElement(aT,null,u&&Lt.createElement(xm,null,Lt.createElement(Mm,{size:32}),Lt.createElement(oT,{title:Xr.t("No results found"),description:r?Xr.t("Try using different keywords"):""})),!u&&Lt.createElement(os,{list:p,onSwapClick:t,groupBy:Wm,isLoading:s}))))}i(Lm,"HistoryPage");import{i18n as IT}from"@lingui/core";import{Button as ET,Divider as Ym,styled as AT,WarningIcon as NT}from"@rango-dev/ui";import WT from"bignumber.js";import Ue,{useEffect as Zm,useState as Jm}from"react";import{useNavigate as MT}from"react-router-dom";import{i18n as dT}from"@lingui/core";import{Header as fT}from"@rango-dev/ui";import Xt,{useEffect as gT,useState as hT}from"react";import{i18n as pT}from"@lingui/core";import{Divider as rs,FullExpandedQuote as cT,Typography as uT}from"@rango-dev/ui";import ge from"react";import{styled as ns}from"@rango-dev/ui";var Bm=ns("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Pm=ns("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),_m=ns("div",{width:"146px"});import{i18n as un}from"@lingui/core";import{Select as lT}from"@rango-dev/ui";import $m from"react";function jr(t){let{updateQuotePartialState:e,sortStrategy:o}=K(),n=[{value:"SMART",label:un.t("Smart Routing")},{value:"FEE",label:un.t("Lowest Fee")},{value:"SPEED",label:un.t("Fastest Transfer")},{value:"NET_OUTPUT",label:un.t("Maximum Return")},{value:"PRICE",label:un.t("Maximum Output")}];return $m.createElement(_m,null,$m.createElement(lT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(jr,"SelectStrategy");var Dm=3;function mn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:d,sortStrategy:f,error:g}=K(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(w=>{if(!m||!d||!u)return null;let b={requestAmount:u.requestAmount,...w};return Co(b,{fromToken:m,toToken:d,userSlippage:v,findToken:y})},"getQuoteWarning"),x=g?.type===0||g?.type===1,L=u?.results?Jn(f,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement(Pm,null,ge.createElement(uT,{size:"xmedium",variant:"title"},pT.t("Sort by")),ge.createElement(jr,{container:T})),ge.createElement(rs,{size:"10"})),e&&Array.from({length:Dm},(w,b)=>ge.createElement(ge.Fragment,{key:b},s?ge.createElement(cT,{loading:!0}):ge.createElement(sn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Dm-1&&ge.createElement(rs,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?L.map((w,b)=>{let A=E(w),P=ja(w.swaps),Q=L.length-1===b;return ge.createElement(ge.Fragment,{key:w.requestId},ge.createElement(mo,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:P?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{P||c("warning",A),c("error",P?.options||null),o(I)},type:"list-item"}),!Q&&ge.createElement(rs,{size:16}))}):x&&ge.createElement(Bm,null,ge.createElement(Zo,{size:s?"large":"small",error:g,fetch:n}))))}i(mn,"Quotes");import{darkTheme as mT,styled as Fm}from"@rango-dev/ui";var Om=Fm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${mT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Um=Fm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var yT=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=hT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Fo();return gT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},yT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Xt.createElement(Om,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${hr()}`,id:Se.EXPANDED_BOX_ID},Xt.createElement(fT,{title:dT.t("Routes"),suffix:Xt.createElement(Xt.Fragment,null,Xt.createElement(jr,{container:m}),Xt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Xt.createElement(Um,null,Xt.createElement(mn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Fo(),onClickOnQuote:n,fullExpandedMode:c})))}i(is,"ExpandedQuotes");import{i18n as Xm}from"@lingui/core";import{SwapInput as jm}from"@rango-dev/ui";import dn from"react";import{ReverseIcon as TT}from"@rango-dev/ui";import ss from"react";import{keyframes as ST,styled as zm}from"@rango-dev/ui";var as=450,CT=ST({"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=zm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Qm=zm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${CT} ${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=K.use.switchFromAndTo();return ss.createElement(qm,null,ss.createElement(Qm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},as),t()}},ss.createElement(TT,{size:12})))}i(ls,"SwitchFromAndToButton");import{styled as Hm}from"@rango-dev/ui";var Gm=Hm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Vm=Hm("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}=K(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Pn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",v=!!s&&Ml(S,s.name),E=!Ui(g,c,m),x=!Ui(g,c,f),L=!m||!f||!f.gt(0)?null:Ke(m.toString(),f.toString());return dn.createElement(Gm,null,dn.createElement(Vm,null,dn.createElement(jm,{label:Xm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(m,4,4),realUsdValue:E?void 0:ce(m),error:E?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),dn.createElement(ls,null)),dn.createElement(jm,{sharpBottomStyle:!r&&(!!g||e),label:Xm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Ke(m,f),2,2),warningLevel:It(L??0),price:{value:N(d,6,6),usdValue:x?void 0:N(f,4,4),realValue:ce(d),realUsdValue:x?void 0:ce(f),error:x?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ps,"Inputs");import{useCallback as kT,useEffect as wT,useRef as vT,useState as xT}from"react";function Km(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Km,"useFetchAllQuotes");var bT=600;function Kr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Km(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:d,resetQuote:f,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=K(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:E,affiliateWallets:x,fetchStatus:L}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:P}=h(),[Q,I]=xT(!0),H=vT(u),Y=k??T,G=!l||!p||eo(l,p)||!zo(u),ee=i(Z=>{I(Z)},"resetState"),W=i(Z=>{let{fromToken:re,toToken:ke,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:fe,slippage:Oe,affiliateRef:vt,affiliatePercent:Ve,affiliateWallets:nt}=Z;if(Q||ee(!0),!G&&re&&ke){f();let rt=yp({fromToken:re,toToken:ke,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:fe,wallets:s,slippage:Oe,affiliateRef:vt,affiliatePercent:Ve,affiliateWallets:nt,enableCentralizedSwappers:a});Ql("experimentalRoute",r)&&(rt.experimental=!0),e(rt).then(dt=>{let ye=Jn(d,dt.results),M=Mp(m,ye,dt.requestAmount);I(!1),y("quotes",dt),C(M),Qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&Co(M,{fromToken:re,toToken:ke,userSlippage:Y,findToken:P});y("warning",V)}).catch(dt=>{let{error:ye}=Hr(dt);(ye?.type===0||ye?.type===1)&&f(),ye?.type!==2&&(y("error",ye),I(!1))})}},"fetch"),U=kT(yl(Z=>{W(Z)},bT),[G]);return wT(()=>{if(!t){I(!1);return}if(L!=="success")return;if(G){I(!1),(m||g||S)&&f();return}if(!zo(u)||c?.eq(0)){ee(!1),o();return}f(),ee(!0);let Z=W;return H.current&&H.current!=u&&(Z=U),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:b,slippage:Y,affiliateRef:E,affiliatePercent:v,affiliateWallets:x}),o},[L,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,w?.length,n,b.length,Y,E,v,JSON.stringify(x)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:b,slippage:Y,affiliateRef:E,affiliatePercent:v,affiliateWallets:x}),loading:Q}}i(Kr,"useSwapInput");var LT=AT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),BT=300;function Rm(){let t=MT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:d}=K(),[f,g]=Jm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Pr(),{fetch:y,loading:T}=Kr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:E}=te(),{isActiveTab:x}=ie(),[L,w]=Jm(!1),A=up({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),P=Fl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new WT(n).gt(0)&&!Ip(e,o),I=Q&&v==="success"&&T,pe=(!P||P&&p?.results.length)&&(l||s);Zm(()=>{c(),d("refetchQuote",!0)},[]),Zm(()=>{g(Q)},[Q]);let G=(r||s)&&!L?y:void 0,ee=i(U=>{P&&f?(g(!1),setTimeout(()=>{t(U)},BT)):t(U)},"onHandleNavigation"),W=i(U=>{r?.requestId!==U.requestId&&(w(!1),u(U))},"onClickOnQuote");return Ue.createElement(LT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(ET,{type:"primary",size:"large",disabled:A.disabled||!x,prefix:A.action==="confirm-warning"&&Ue.createElement(NT,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?ee(z.wallets):A.action==="confirm-warning"?w(!0):ee(z.confirmSwap)}},A.title),header:{onWallet:()=>{ee(z.wallets)},hasBackButton:!1,title:k.title||IT.t("Swap"),suffix:Ue.createElement(ao,{hidden:P?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(z.swaps),onClickSettings:()=>{ee(z.settings)}})}},Ue.createElement(me,null,Ue.createElement(ps,{fetchingQuote:I,fetchMetaStatus:v,isExpandable:P,onClickToken:U=>{ee(U==="from"?z.fromSwap:z.toSwap)}}),Ue.createElement(Ym,{size:"2"}),P?null:Ue.createElement(mo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),ee(z.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Ym,{size:"10"}),Ue.createElement(Ro,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:L,confirmationDisabled:!x,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),ee(z.confirmSwap)},onChangeSettings:()=>ee(z.settings)})):null)),P?Ue.createElement(is,{loading:I,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:f}):null)}i(Rm,"Home");import{i18n as ed}from"@lingui/core";import{Alert as PT,Divider as _T,List as $T,ListItemButton as DT,Radio as FT,RadioRoot as OT,Typography as UT}from"@rango-dev/ui";import Tt from"react";function jt(){let{setLanguage:t,language:e,config:o}=h(),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 td(){let{activeLanguage:t,changeLanguage:e,languages:o}=jt(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(UT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(FT,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:ed.t("Language")}},Tt.createElement(me,null,Tt.createElement(PT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(_T,{size:"8"}),Tt.createElement(OT,{value:t},Tt.createElement($T,{type:Tt.createElement(DT,{title:ed.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(td,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as GT,Checkbox as VT,Image as XT,ListItemButton as jT,NotFound as KT,Typography as YT}from"@rango-dev/ui";import De,{useState as ZT}from"react";import{Checkbox as QT,Skeleton as nd}from"@rango-dev/ui";import gn from"react";import{styled as cs}from"@rango-dev/ui";var fn=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 zT,styled as qT}from"@rango-dev/ui";var od=qT(zT,{height:61});var HT=30;function ds(){return gn.createElement(fn,null,Array.from(Array(HT),(t,e)=>gn.createElement(od,{hasDivider:!0,key:e,start:gn.createElement(nd,{variant:"circular",width:35,height:35}),title:gn.createElement(nd,{variant:"text",size:"large",width:90}),end:gn.createElement(QT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=ZT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=On(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),d=m.length===m.filter(y=>y.selected).length,f=i(()=>{m.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:De.createElement(XT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement(VT,{checked:T,disabled:l}),title:De.createElement(YT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),De.createElement(le,{header:{title:Bt.t(t),suffix:De.createElement(us,null,De.createElement(GT,{variant:"ghost",size:"xsmall",onClick:f},d?Bt.t("Deselect all"):Bt.t("Select all")))}},De.createElement(me,{view:!0},De.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&De.createElement(ds,null),!C.length&&r?De.createElement(ms,null,De.createElement(KT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(fn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(jT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as JT}from"@lingui/core";import Yr from"react";import{useNavigate as RT}from"react-router-dom";function rd(){let t=RT(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=K(),{fetch:l,loading:p}=Kr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return Yr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:JT.t("Routes"),suffix:Yr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Yr.createElement(me,null,Yr.createElement(mn,{fetch:l,loading:p,onClickOnQuote:u})))}i(rd,"RoutesPage");import{i18n as md}from"@lingui/core";import{Divider as dd,getCategoriesCount as lk,SelectableCategoryList as pk}from"@rango-dev/ui";import Pt,{useState as fd}from"react";import{i18n as gs}from"@lingui/core";import{Divider as cd,Image as nk,ListItemButton as rk,NotFound as ik,Typography as ud}from"@rango-dev/ui";import Re,{useEffect as ak,useState as sk}from"react";var id=i((t,e,o)=>t.filter(n=>In(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as ek,styled as ad}from"@rango-dev/ui";var sd=ad("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Zr=ad(jo,{padding:0,margin:0,listStyle:"none",[`& ${ek}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as tk,Skeleton as ld}from"@rango-dev/ui";import Jr from"react";var ok=20;function pd(){return Jr.createElement(Zr,null,Array.from(Array(ok),t=>Jr.createElement(tk,{key:t,hasDivider:!0,start:Jr.createElement(ld,{variant:"circular",width:35,height:35}),title:Jr.createElement(ld,{variant:"text",size:"large",width:90})})))}i(pd,"LoadingBlockchainList");function hs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=sk(e),{fetchStatus:l}=h();ak(()=>{s([...id(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(cd,{size:32}),Re.createElement(ik,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):Re.createElement(Zr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(rk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(nk,{src:u.logo,size:30}),title:Re.createElement(ud,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Re.createElement(sd,null,Re.createElement(ud,{variant:"label",size:"large"},gs.t("Select Blockchain")),Re.createElement(cd,{size:4}),l==="loading"&&Re.createElement(pd,null),l==="success"&&p())}i(hs,"BlockchainList");function ys(t){let{type:e}=t,o=Ze(),[n,r]=fd(""),[a,s]=fd("ALL"),l=K.use.setToBlockchain(),p=K.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=lk(c)!==1;return Pt.createElement(le,{header:{title:md.t("Select Blockchain")}},Pt.createElement(me,{view:!0},d&&Pt.createElement(Pt.Fragment,null,Pt.createElement(pk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(dd,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:md.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Pt.createElement(dd,{size:16}),Pt.createElement(hs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ys,"SelectBlockchainPage");import{i18n as ni}from"@lingui/core";import{Divider as _d}from"@rango-dev/ui";import fo,{useState as Ik}from"react";import{useNavigate as Ek}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Rr,Divider as Sd,Image as Cd,Skeleton as fk,Tooltip as gk,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as mk}from"react";var gd=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ck),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(uk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function ck(t,e){let o=gd,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(ck,"sortByMostUsedBlockchains");function uk(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(uk,"generateSortByPreferredBlockchainsFor");function hd(t,e){return!!e.list.find(o=>o.name===t)}i(hd,"isInVisibleList");function Cs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();mk(()=>{if(e?.selected){let a=Ss(t,o,e);hd(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 dk}from"@rango-dev/ui";var yd=dk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var hk=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}=h(),p=K.use.resetToBlockchain(),u=K.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,d=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Sd,{size:12}),Ne.createElement(ks,{variant:"label",size:"large"},Ts.t("Select Blockchain")),Ne.createElement(Sd,{size:12}),Ne.createElement(yd,null,l==="loading"&&Array.from(Array(hk),f=>Ne.createElement(fk,{key:f,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Rr,{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(gk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},Ne.createElement(Rr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ne.createElement(Cd,{src:f.logo,size:30})))),m?Ne.createElement(Rr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(Cd,{src:s.more[0].logo,size:30})):null,d?Ne.createElement(Rr,{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 Wd,Divider as Po,ExternalLinkIcon as Ck,Image as Tk,ListItemButton as kk,NotFound as wk,PinIcon as vk,Skeleton as Md,Typography as oi,VirtualizedList as xk}from"@rango-dev/ui";import j,{useEffect as Ld,useState as Bd}from"react";import{Divider as Ad,ListItem as Sk,Skeleton as hn}from"@rango-dev/ui";import ct from"react";import{css as Bo,darkTheme as Td,ImageContainer as yk,styled as et,Typography as kd}from"@rango-dev/ui";var vs=Bo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),xs=Bo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),bs=Bo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Is=Bo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Td} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Es=Bo({}),As=Bo(),wd=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ns=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ei=et("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=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ms=et(kd,{}),vd=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${As}`]:{$$color:"$colors$neutral600",[`.${Td} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ti=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),ZO=et("div",{display:"flex",alignItems:"center"}),xd=et("div",{position:"relative",[`& ${yk}`]:{borderRadius:"$xm",overflow:"hidden"}}),bd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Id=et(kd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Ed=et("a",{"& svg:hover":{color:"$colors$info"}});function Nd(t){return ct.createElement(ei,null,Array.from(Array(t.size),e=>ct.createElement(Sk,{key:e,hasDivider:!0,start:ct.createElement(hn,{variant:"circular",width:35,height:35}),end:ct.createElement(ti,null,ct.createElement(hn,{variant:"text",size:"large",width:70}),ct.createElement(Ad,{size:4}),ct.createElement(hn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(hn,{variant:"text",size:"large",width:90}),ct.createElement(Ad,{size:4}),ct.createElement(hn,{variant:"text",size:"medium",width:90}))})))}i(Nd,"LoadingTokenList");var Bs=20,bk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return j.createElement("div",{className:xs()},o?j.createElement("div",{className:vs()},o):j.createElement(Ns,{className:bs()},j.createElement(oi,{variant:"title",size:"xmedium"},r.symbol),j.createElement(Po,{direction:"horizontal",size:4}),j.createElement(Ws,{css:a},j.createElement(Ms,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&j.createElement("div",{className:`${Is()} ${!o&&Es()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",j.createElement(Po,{size:4,direction:"horizontal"}),j.createElement(Ed,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},j.createElement(Ck,{size:12}))))},"renderDesc");function Pd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Bd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Bd(!0),{getBalanceFor:m,loading:d}=te(),{isTokenPinned:f}=h(),g=i(()=>{s(e.slice(0,a.length+Bs))},"loadNextPage");Ld(()=>{c(e.length>a.length)},[a.length]),Ld(()=>{s(e.slice(0,Bs))},[e.length]);let S=i(()=>!a.length&&o?j.createElement(j.Fragment,null,j.createElement(Po,{size:32}),j.createElement(wk,{title:Ls.t("No results found"),description:Ls.t("Try using different keywords")})):j.createElement(xk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Pn(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),E=ea(v.color,"main"),x={$$color:E.main250,[`.${Wd} &`]:{$$color:E.main850},backgroundColor:"$$color"},L={$$color:E.main600,[`.${Wd} &`]:{$$color:E.main200},color:"$$color"};return j.createElement("div",{style:{paddingRight:5}},j.createElement(kk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:j.createElement(xd,null,j.createElement(Tk,{src:y.image,size:30}),f(y,t.type)&&j.createElement(bd,null,j.createElement(vk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?j.createElement(Ns,null,j.createElement(oi,{variant:"title",size:"xmedium"},y.symbol),j.createElement(Po,{direction:"horizontal",size:4}),j.createElement(Ws,{css:x},j.createElement(Ms,{variant:"body",size:"xsmall",css:L},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?bk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:L,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:d?j.createElement(ti,null,j.createElement(Md,{variant:"text",size:"large",width:70}),j.createElement(Po,{size:4}),j.createElement(Md,{variant:"text",size:"medium",width:50})):T&&j.createElement(vd,null,j.createElement(Id,{variant:"title",size:"small"},T.amount),j.createElement("div",null),T.usdValue&&j.createElement(oi,{variant:"body",className:As(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return j.createElement(wd,null,j.createElement(oi,{variant:"label",size:"large"},Ls.t("Select Token")),j.createElement(Po,{size:4}),l==="loading"&&j.createElement(Nd,{size:Bs}),l==="success"&&j.createElement(ei,{as:"ul"},S()))}i(Pd,"TokenList");function Ps(t){let{type:e}=t,o=Ek(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=K(),c=te.use.getBalanceFor(),[m,d]=Ik(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:ni.t("Source"),destination:ni.t("Destination")};return fo.createElement(le,{header:{title:ni.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(ws,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:v=>{y(v)}}),fo.createElement(_d,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:ni.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),fo.createElement(_d,{size:16}),fo.createElement(Pd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let E=S.find(x=>v.blockchain===x.name);E&&y(E),n()}})))}i(Ps,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as Jk,Button as Rk,styled as ew}from"@rango-dev/ui";import go from"react";import{useInRouterContext as tw,useSearchParams as ow}from"react-router-dom";import{i18n as zd}from"@lingui/core";import{Divider as Mk,InfoIcon as Lk,TextField as Bk,Tooltip as Pk,Typography as qd}from"@rango-dev/ui";import ut from"react";import{Chip as Ak,styled as yn,TextField as Nk}from"@rango-dev/ui";var $d=yn("div",{paddingTop:"$5",padding:"$10 $5"}),Dd=yn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Nk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Fd=yn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ri=yn("div",{maxWidth:"280px",padding:"$10"}),Od=yn(Ak,{width:"61px",flexShrink:0});import{i18n as _s}from"@lingui/core";import{Typography as Wk}from"@rango-dev/ui";import Sn from"react";function Ud(){return Sn.createElement(ri,null,Sn.createElement(Wk,{variant:"label",size:"medium",color:"neutral700"},_s.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),Sn.createElement("br",null),Sn.createElement("br",null),Sn.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(Ud,"SlippageTooltipContent");function $s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ut.createElement($d,null,ut.createElement(Fd,null,ut.createElement(qd,{variant:"title",size:"xmedium"},zd.t("Slippage tolerance per swap")),ut.createElement(Mk,{direction:"horizontal",size:4}),ut.createElement(Pk,{container:B(),side:"top",sideOffset:4,content:ut.createElement(Ud,null)},ut.createElement(Lk,{color:"gray"}))),ut.createElement(Dd,null,Vl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Od,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.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>=Yl&&s<=Kl?n(s):n(null)},suffix:o&&ut.createElement(qd,{variant:"body",size:"small"},"%"),placeholder:zd.t("Custom")})))}i($s,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Qd,BridgesIcon as _k,ChevronRightIcon as Ds,DarkModeIcon as Hd,Divider as ii,ExchangeIcon as $k,InfinityIcon as Dk,InfoIcon as Fk,LanguageIcon as Ok,LightModeIcon as Gd,List as Uk,ListItem as zk,ListItemButton as qk,Skeleton as Qk,styled as Hk,Switch as Gk,Tabs as Vk,Tooltip as Xk,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as jk}from"react-router-dom";var Kk=Hk("div",{width:"202px",height:"$40"}),Yk=[{id:"light",icon:O.createElement(Gd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(Hd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(Qd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Zk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Qd,{...e});case"dark":return O.createElement(Hd,{...e});default:return O.createElement(Gd,{...e})}},"getThemeIcon");function Vd(){let t=jk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=jt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=je("theme",c),d=je("liquiditySource",c),f=je("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=On(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),T=y.length,k=y.filter(H=>H.selected).length,v=C.filter(H=>H.type==="DEX"),E=v.length,x=v.filter(H=>H.selected).length,L=i((H,Y)=>{switch(l){case"loading":return O.createElement(Qk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(tt,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(tt,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,L(k,T),O.createElement(ii,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(_k,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,L(x,E),O.createElement(ii,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement($k,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},A={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Ok,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ii,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.languages)},P={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ii,{direction:"horizontal",size:4}),O.createElement(Xk,{side:"top",sideOffset:4,container:B(),content:O.createElement(ri,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(Fk,{color:"gray"}))),start:O.createElement(Dk,{color:"gray",size:16}),end:O.createElement(Gk,{checked:g}),onClick:S},Q={id:"theme-item",type:O.createElement(zk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(Kk,null,O.createElement(Vk,{container:B(),items:Yk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Zk(n)},I=d?[]:[w,b];return f||I.push(A),I.push(P),!e?.singleTheme&&!m&&I.push(Q),O.createElement(Uk,{type:O.createElement(qk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Vd,"SettingsLists");var nw=ew("div",{paddingLeft:"$8"});function Xd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=ow(),r=tw(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return go.createElement(le,{header:{title:Fs.t("Settings")}},go.createElement(me,null,o&&go.createElement(Jk,{type:"info",variant:"alarm",title:Fs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:go.createElement(nw,null,go.createElement(Rk,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),go.createElement($s,null),go.createElement(Vd,null)))}i(Xd,"SettingsPage");import{i18n as Hw}from"@lingui/core";import{cancelSwap as Gw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Vw}from"@rango-dev/queue-manager-react";import{Alert as Xw}from"@rango-dev/ui";import tl from"react";import{useParams as jw}from"react-router-dom";import{i18n as wt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as bw,getCurrentStep as Iw,getRelatedWalletOrNull as Ew}from"@rango-dev/queue-manager-rango-preset";import{Button as bf,CopyIcon as Aw,Divider as Nw,IconButton as Ww,QuoteCost as Mw,RangoExplorerIcon as Lw,StepDetails as Bw,Tooltip as Pw,Typography as ho,useCopyToClipboard as _w}from"@rango-dev/ui";import{useWallets as $w}from"@rango-dev/wallets-react";import If from"bignumber.js";import{PendingSwapNetworkStatus as fi}from"rango-types";import R,{useEffect as Ef,useRef as Dw,useState as Af}from"react";import{useNavigate as Fw}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var rw=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function jd(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"):`${rw[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(jd,"timeSince");function Kd(t){return t.finishTime?jd(parseInt(t.finishTime)):jd(parseInt(t.creationTime))}i(Kd,"getSwapDate");import{PendingSwapNetworkStatus as li}from"rango-types";import pi from"react";import{i18n as ai}from"@lingui/core";import{Button as Yd,Divider as Os,MessageBox as iw}from"@rango-dev/ui";import Yt from"react";var Zd=i(({onCancel:t,onClose:e})=>Yt.createElement(Yt.Fragment,null,Yt.createElement(Os,{size:20}),Yt.createElement(iw,{type:"error",title:ai.t("Cancel Swap"),description:ai.t("Are you sure you want to cancel this swap?")}),Yt.createElement(Os,{size:32}),Yt.createElement(Yd,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Cancel it")),Yt.createElement(Os,{size:12}),Yt.createElement(Yd,{variant:"outlined",type:"primary",size:"large",onClick:e},ai.t("No, Continue"))),"CancelContent");import{i18n as si}from"@lingui/core";import{Button as Jd,Divider as Us,MessageBox as aw,Typography as sw}from"@rango-dev/ui";import _t from"react";var Rd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Us,{size:20}),_t.createElement(aw,{type:"error",title:si.t("Delete Transaction"),description:si.t("Are you sure you want to delete this swap?")}),_t.createElement(Us,{size:32}),_t.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},si.t("Yes, Delete it")),_t.createElement(Us,{size:12}),_t.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(sw,{variant:"title",size:"medium",color:"primary"},si.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 of}from"@rango-dev/logging-core";import{MessageBox as lw,Wallet as pw}from"@rango-dev/ui";import{useWallets as cw}from"@rango-dev/wallets-react";import _o,{useState as uw}from"react";import{styled as ef}from"@rango-dev/ui";var tf=ef("div",{display:"flex",justifyContent:"center"}),Oz=ef("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var nf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=cw(),[c,m]=uw(null),d=n?.walletType,f=d?Mi(u(d)):null,g=d?p(d):null;return _o.createElement(_o.Fragment,null,_o.createElement(lw,{type:e,title:o,description:r}),a&&!!d&&!!f&&!!g&&_o.createElement(tf,null,_o.createElement(pw,{container:B(),title:g.name,image:g.img,type:d,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:d,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(d).catch(C=>of(C))}})),_o.createElement(lo,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>of(y)),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===li.WaitingForNetworkChange||e===li.WaitingForConnectingWallet||e===li.NetworkChanged;return pi.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&pi.createElement(nf,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==li.WaitingForNetworkChange}),e==="delete"&&pi.createElement(Rd,{onClose:o,onDelete:n}),e==="cancel"&&pi.createElement(Zd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Cn}from"@lingui/core";import{Button as Gs,Divider as ci,MessageBox as rf,TokenAmount as mw,Typography as Vs}from"@rango-dev/ui";import Le from"react";import{useNavigate as dw}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=dw();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(rf,{type:"success",title:Cn.t("Swap Successful")},Le.createElement(mw,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(ci,{size:12}),Le.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(rf,{type:"error",title:Cn.t("Transaction Failed"),description:m}),Le.createElement(ci,{size:32}),n==="success"&&Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Le.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Cn.t("Done"))),Le.createElement(ci,{size:12}),d&&Le.createElement(Le.Fragment,null,Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Cn.t("Diagnosis")),Le.createElement(ci,{size:12})),Le.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Cn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import xw from"react";import{i18n as Tw}from"@lingui/core";import{Alert as kf,IconButton as kw,LinkIcon as ww}from"@rango-dev/ui";import Zt,{Fragment as vw}from"react";import{Alert as hw,ChevronDownIcon as yw,IconButton as Sw}from"@rango-dev/ui";import Do,{useState as Cw}from"react";import{css as Tn,darkTheme as fw,styled as $t,Typography as gw}from"@rango-dev/ui";var af=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ui=$t("div",{width:"100%"}),sf=$t(jo,{padding:"$0 $20 $20 $20"}),kq=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),lf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),wq=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),$o=Tn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${fw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),pf=Tn({padding:"$5 0"}),mi=Tn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),cf=Tn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),uf=Tn({width:"100%",padding:"0 $20 $10"}),mf=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),df=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),di=$t(gw,{wordBreak:"break-word"});import{styled as js}from"@rango-dev/ui";var ff=js("div",{display:"flex",flexDirection:"column",gap:"$10"}),gf=js("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),hf=js("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function yf(t){let{message:e}=t,[o,n]=Cw(!1);return Do.createElement(hw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Do.createElement(Sw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Do.createElement(gf,{rotated:o},Do.createElement(yw,{size:12,color:"gray"}))),footer:Do.createElement(hf,{open:o},Do.createElement(di,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(yf,"FailedAlert");import{i18n as Sf}from"@lingui/core";import{Alert as Ks,Button as Cf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ys}from"rango-types";import kn from"react";function Tf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?kn.createElement(Ks,{type:"warning",title:n.shortMessage,action:kn.createElement(Cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Sf.t("Change"))}):r===Ys.WaitingForConnectingWallet?kn.createElement(Ks,{type:"warning",title:n.shortMessage,action:kn.createElement(Cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},Sf.t("Connect"))}):kn.createElement(Ks,{type:"warning",title:n.shortMessage})}i(Tf,"WarningAlert");function Zs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Vo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Zt.createElement(ff,null,a.explorerUrl?.map((m,d,f)=>{let g=d+m.url,S=d===f.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Zt.createElement(vw,{key:g},Zt.createElement(kf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Tw.t("View transaction"),action:m.url&&Zt.createElement(kw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Zt.createElement(ww,{size:12}))}))}),c&&Zt.createElement(kf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Zt.createElement(Tf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Zt.createElement(yf,{message:r}))}i(Zs,"SwapDetailsAlerts");var wf=2e3;var vf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Xe(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Xe(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Oo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Oo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:xw.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function xf(t){if(Vo(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(xf,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=$w(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=K.use.retry(),d=ie.use.isActiveTab(),f=Fw(),[g,S]=_w(wf),C=Dw(null),[y,T]=Af(null),[k,v]=Af(null),E=i(()=>{r(),T(null)},"onCancel"),x=Ee.use.getNotifications(),L=Ee.use.removeNotification(),w=x(),b=Iw(e),A=b?.networkStatus;Ef(()=>{w.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):k&&v(null))},[e.status,e.requestId]),Ef(()=>{G?T(fi.WaitingForNetworkChange):A===fi.WaitingForConnectingWallet||A===fi.NetworkChanged?T(A):T(null)},[A]);let P=vp(e),Q=b?bw(e,b):null,I=b?Ew(e,b):null,H=Kd(e),Y=xp(e),pe=i(ye=>!!l(ye)?.mobileWallet,"isMobileWallet"),G=A===fi.WaitingForNetworkChange&&!!Q&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,Q)),ee=G?s.bind(null,I.walletType,Q):void 0,W=wp(e,b),U=vf({swap:e,switchNetwork:ee,showNetworkModal:A,setNetworkModal:T,message:W,blockchains:p,swappers:u}),Z=U.length,[re,ke]=[e.steps[0],e.steps[Z-1]],_=ke.outputAmount||ke.expectedOutputAmountHumanReadable,Fe=e.steps.reduce((ye,M)=>ye+parseFloat(M.feeInUsd||""),0),ot=e.steps.find(ye=>ye.diagnosisUrl)?.diagnosisUrl,fe=N(parseFloat(N(_,6,6))*(ke.toUsdPrice||0),4,4),Oe=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),vt=_?ce(new If(_).multipliedBy(ke.toUsdPrice||0)):"",Ve=ce(new If(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),nt=Ke(Oe,fe),rt=W.detailedMessage.content||W.shortMessage,dt=e.status==="success"?wt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:U[Z-1].to.token.displayName,conciseAddress:_n(e.wallets[U[Z-1].to.chain.displayName]?.address||""),chain:U[Z-1].to.chain.displayName}}):R.createElement(df,null,R.createElement(ho,{variant:"body",size:"medium",color:"neutral700",align:"center"},rt?"":wt.t("Transaction was not sent."),P?`${wt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),rt&&R.createElement(di,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:wt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(xo,null,R.createElement(bf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(ho,{size:"medium",variant:"label",color:"error"},wt.t("Delete"))))},footer:Y&&!k&&R.createElement(bf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let ye=Zn(e,p,c);m(ye),setTimeout(()=>{f("../../")},0)}},wt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(ui,null,R.createElement("div",{className:$o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t("Request ID")}:`),R.createElement("div",{className:mi()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Ww,{variant:"ghost",onClick:S.bind(null,o||"")},R.createElement(Aw,{size:16,color:"gray"})),R.createElement(mf,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(Pw,{container:B(),content:wt.t("View on Rango Explorer"),side:"bottom"},R.createElement(Lw,{size:20}))))),R.createElement("div",{className:$o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:cf()},R.createElement(Mw,{fee:N(String(Fe),2,2),time:Uo(An(e.steps)),steps:Z}),R.createElement(tn,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:U[0].from.token.displayName,image:U[0].from.token.image},chain:{image:U[0].from.chain.image,displayName:U[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:_},token:{displayName:U[Z-1].to.token.displayName,image:U[Z-1].to.token.image},chain:{image:U[Z-1].to.chain.image,displayName:U[Z-1].to.chain.displayName}},percentageChange:N(nt,2,2),warningLevel:It(nt??0)})),R.createElement("div",{className:uf()},R.createElement(ho,{variant:"title",size:"small"},wt.t("Swaps steps"))),R.createElement(Nw,{size:8}),R.createElement(sf,{ref:C},U.map((ye,M)=>{let V=M,X=xf(e.steps[M]),qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===U.length-1;return R.createElement(Bw,{key:V,step:ye,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:qe,tooltipContainer:B()})}))),R.createElement(Hs,{state:y,onClose:()=>T(null),onCancel:E,onDelete:n,message:W.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),R.createElement(Xs,{open:!!k,diagnosisUrl:ot,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:U[Z-1].to.token.displayName,image:U[Z-1].to.token.image},chain:{image:U[Z-1].to.chain.image},description:dt}))}i(Js,"SwapDetails");import{i18n as hi}from"@lingui/core";import{Divider as Mf,NotFound as Qw,Skeleton as vn,Typography as yi}from"@rango-dev/ui";import he from"react";import{i18n as Ow}from"@lingui/core";import{Divider as Uw,Skeleton as zw,Typography as qw}from"@rango-dev/ui";import Te from"react";import{css as mt,styled as Rs}from"@rango-dev/ui";var Nf=Rs("div",{width:"100%",height:"100%",padding:"$10 $20"}),wn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),gi=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),PQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),_Q=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),$Q=mt({paddingTop:"$15",display:"flex"}),DQ=mt({padding:"$15 $0"}),FQ=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),OQ=mt({paddingBottom:"$10"}),UQ=mt({display:"flex",justifyContent:"start",alignItems:"center"}),zQ=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),qQ=mt({display:"flex",alignItems:"center"}),QQ=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Wf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function el(){return Te.createElement(Nf,null,Te.createElement(rn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(qw,{variant:"title",size:"small"},Ow.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(wn,null,Te.createElement(Ct,{separator:!1}),Te.createElement("div",{className:Wf()},Te.createElement(Uw,{direction:"horizontal",size:20}),Te.createElement(zw,{height:22,variant:"rectangular"}))),Te.createElement(gi,null),Te.createElement(wn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(gi,null),Te.createElement(wn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(gi,null),Te.createElement(wn,null,Te.createElement(Ct,{separator:!1}))))}i(el,"LoadingSwapDetails");function Lf(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(le,{header:{title:hi.t("Swap and Bridge"),suffix:he.createElement(xo,null)}},o&&he.createElement(af,null,he.createElement(ui,null,he.createElement("div",{className:$o()},he.createElement(yi,{variant:"label",size:"large",color:"neutral700"},`${hi.t("Request ID")}:`),he.createElement("div",{className:mi()},he.createElement(yi,{variant:"label",size:"small",color:"neutral700"},he.createElement(vn,{width:60,height:10,variant:"rounded"})),he.createElement(Mf,{direction:"horizontal",size:4}),he.createElement(vn,{width:16,height:16,variant:"rectangular"}),he.createElement(Mf,{direction:"horizontal",size:4}),he.createElement(vn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:$o()},he.createElement(yi,{className:pf(),variant:"label",size:"large",color:"neutral700"},he.createElement(vn,{width:60,height:10,variant:"rounded"})),he.createElement(yi,{variant:"label",size:"small",color:"neutral700"},he.createElement(vn,{width:60,height:10,variant:"rounded"})))),he.createElement(el,null)),!o&&he.createElement(lf,null,he.createElement(Qw,{title:hi.t("Not found"),description:hi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Lf,"SwapDetailsPlaceholder");function Bf(){let{manager:t,state:e}=Vw(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=jw(),a=Ze(),{fetchStatus:s}=h();if(!r)return tl.createElement(Xw,{containerStyles:{margin:"20px"},type:"error",title:Hw.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&&Gw(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(Lf,{requestId:r,showSkeleton:l}):tl.createElement(Js,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(Bf,"SwapDetailsPage");function Pf(){return Bp(),Ki(),Kw([{path:z.home,element:ze.createElement(Rm,null)},{path:z.routes,element:ze.createElement(rd,null)},{path:z.fromSwap,children:[{index:!0,element:ze.createElement(Ps,{type:"source"})},{path:z.blockchains,element:ze.createElement(ys,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:ze.createElement(Ps,{type:"destination"})},{path:z.blockchains,element:ze.createElement(ys,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:ze.createElement(Xd,null)},{path:z.languages,element:ze.createElement(td,null)},{path:z.exchanges,element:ze.createElement(fs,{sourceType:"Exchanges"})},{path:z.bridges,element:ze.createElement(fs,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:ze.createElement(Lm,null)},{path:z.swapDetails,element:ze.createElement(Bf,null)}]},{path:z.wallets,element:ze.createElement(Qc,null)},{path:z.confirmSwap,element:ze.createElement(Tm,null)}])}i(Pf,"AppRoutes");import{useQueueManager as iv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as av}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sv}from"rango-sdk";import{useContext as lv,useEffect as pv,useState as zf}from"react";import{globalCss as Yw}from"@rango-dev/ui";var _f=i(()=>Yw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function $f(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i($f,"useFetchApiConfig");import{useWallets as Zw}from"@rango-dev/wallets-react";import{useEffect as Jw,useRef as Rw}from"react";function Df(){let{connect:t,state:e}=Zw(),o=Rw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Jw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Df,"useForceAutoConnect");import{isApprovalTX as ev,MainEvents as Si,RouteEventType as Ff,StepEventType as Of,StepExecutionEventStatus as tv,useEvents as ov}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Uf}from"react";function ol(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=Ee.use.setNotification(),{findToken:n}=h(),r=ov();Uf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Of.TX_EXECUTION&&l.status===tv.TX_SENT&&!ev(p)||l.type===Of.SUCCEEDED){let m=t.find(f=>f.chain===p?.fromBlockchain),d=p?.fromBlockchain!==p?.toBlockchain&&t.find(f=>f.chain===p?.toBlockchain);m&&e([m],n),d&&e([d],n)}o(l,u)},"handleStepEvent");return r.on(Si.StepEvent,a),()=>r.off(Si.StepEvent,a)},[r,t.length]),Uf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Ff.FAILED||l.type===Ff.SUCCEEDED)&&o(l,p)},"handleRouteEvent");return r.on(Si.RouteEvent,a),()=>r.off(Si.RouteEvent,a)},[r,t.length])}i(ol,"useSubscribeToWidgetEvents");import{useManager as nv}from"@rango-dev/queue-manager-react";import{useEffect as rv}from"react";function nl(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=nv();rv(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Je(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(nl,"useSyncNotifications");function rl(){Df(),_f(),ol(),nl();let t=h().blockchains(),{canSwitchNetworkTo:e}=vr(),[o,n]=zf(""),[r,a]=zf(),s=lv(zn),l=t.filter(sv),{fetchApiConfig:p}=$f();iv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),pv(()=>(to.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===av(o)?.[0]&&n("")}),p().catch(console.log),to.destroy),[])}i(rl,"useBootstrap");import{styled as cv}from"@rango-dev/ui";var qf=cv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ci(){rl();let{config:t}=h(),{activeTheme:e}=pr(t?.theme||{}),{activeLanguage:o}=jt();return il.createElement(uv,{language:o},il.createElement(qf,{id:"swap-container",className:e()},il.createElement(Pf,null)))}i(Ci,"Main");import{setSolanaSignerConfig as Mv}from"@rango-dev/signer-solana";import sl,{useEffect as Xf,useMemo as Lv}from"react";import{useState as mv}from"react";var dv=i(()=>{let[t,e]=mv(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"),Qf=dv;import{checkWaitingForNetworkChange as fv,makeQueueDefinition as gv}from"@rango-dev/queue-manager-rango-preset";import{Provider as hv}from"@rango-dev/queue-manager-react";import{useWallets as yv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Sv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Cv}from"rango-types";import Tv,{useMemo as kv}from"react";function wv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=yv(),l=kv(()=>gv({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL")}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(Cv),S=i(k=>{let{supportedChains:v}=s(k);return Mn(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:Sv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=ie.use.isActiveTab();return Tv.createElement(hv,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{fv(k)},isPaused:!T},t.children)}i(wv,"QueueManager");var Hf=wv;import{useManager as Ev}from"@rango-dev/queue-manager-react";import Av,{createContext as Nv,useContext as Wv}from"react";import{cancelSwap as vv,getCurrentBlockchainOfOrNull as xv,getCurrentStep as bv,getRelatedWalletOrNull as Iv}from"@rango-dev/queue-manager-rango-preset";var Ti=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Zn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&vv(o)}getCurrentStepInfo(e){let o=bv(e);return{step:o,wallet:o?Iv(e,o):null,network:o?xv(e,o):null}}};var Gf=Nv(void 0);function al(t){let{manager:e}=Ev(),o=ie.use.isActiveTab(),n=K.use.retry(),{findToken:r}=h(),a=new Ti(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=El(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),d=h().swappers(),f=h().fetchStatus,g=jt().resetLanguage,S=Ee().getNotifications(),C={isActiveTab:o,setCurrentTabAsActive:to.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:y=>u(y,r)},meta:{blockchains:c,tokens:m,swappers:d,loadingStatus:f},resetLanguage:g,notifications:{list:S}};return Av.createElement(Gf.Provider,{value:C},t.children)}i(al,"WidgetInfo");function Vf(){let t=Wv(Gf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Vf,"useWidget");function ki(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Qf();return Xf(()=>{n&&r(n)},[n]),Lv(()=>{_l({API_KEY:o?.apiKey||xn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),Xf(()=>{t.config?.signers?.customSolanaRPC&&Mv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),sl.createElement(qn,{config:o,onUpdateState:e},sl.createElement(Hf,{apiKey:o.apiKey},sl.createElement(al,null,t.children)))}i(ki,"WidgetProvider");function jf(t){let e=t.config?.externalWallets;return wi.createElement(ip,null,e?wi.createElement(Ci,null):wi.createElement(ki,{config:t.config??_i},wi.createElement(Ci,null)))}i(jf,"Widget");export{JV as EventSeverity,RV as MainEvents,p2 as Networks,m2 as PendingSwapNetworkStatus,e2 as RouteEventType,vi as SUPPORTED_FONTS,t2 as StepEventType,o2 as StepExecutionBlockedEventStatus,n2 as StepExecutionEventStatus,Se as UI_ID,s2 as WalletEvents,c2 as WalletTypes,jf as Widget,ki as WidgetProvider,qn as WidgetWallets,ra as customizedThemeTokens,a2 as readAccountAddress,vr as useWallets,Vf as useWidget,r2 as useWidgetEvents};
|
|
1
|
+
var eg=Object.defineProperty;var i=(t,e)=>eg(t,"name",{value:e,configurable:!0});import{EventSeverity as B2,RouteEventType as P2,StepEventType as _2,StepExecutionBlockedEventStatus as D2,StepExecutionEventStatus as $2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as O2,useWallets as br,Events as U2}from"@rango-dev/wallets-react";import{Networks as z2,WalletTypes as q2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as G2}from"rango-types";import{UI_ID as tg}from"@rango-dev/ui";var Nn="c6381a79-2817-4602-83bf-6a641a409e32",gl="https://api.rango.exchange",hl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...tg};var yl="Roboto",bi=[{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 zi,Provider as jg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Yg}from"rango-sdk";import Vn,{createContext as Zg,useEffect as up,useMemo as Jg,useRef as mp}from"react";import{useEffect as vg}from"react";import{create as Cg}from"zustand";import{subscribeWithSelector as Tg}from"zustand/middleware";import og from"mitt";var we=og(),ng={on:we.on,off:we.off};import{RangoClient as yg}from"rango-sdk";import{BlockchainCategories as cg,WalletState as St}from"@rango-dev/ui";import{readAccountAddress as ug}from"@rango-dev/wallets-react";import{detectInstallLink as mg,getCosmosExperimentalChainInfo as dg,isEvmAddress as fg,KEPLR_COMPATIBLE_WALLETS as ux,Networks as Nl}from"@rango-dev/wallets-shared";import Li from"bignumber.js";import{isCosmosBlockchain as gg}from"rango-types";import rg from"bignumber.js";var $e=new rg(0);import{WalletTypes as ig}from"@rango-dev/wallets-shared";var Sl=[ig.LEAP];import{BlockchainCategories as Ei,WalletState as pg}from"@rango-dev/ui";import{TransactionType as Wn}from"rango-sdk";function To(t){return Array.from(new Set(t))}i(To,"removeDuplicateFrom");function Ni(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ni,"areEqual");function xl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(xl,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");function kl(t,e){return t.toLowerCase()===e.toLowerCase()}i(kl,"exactText");function vl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(vl,"startWithText");var _=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),zo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function wl(t,e,o){let n=!!e&&kl(e,t),r=!!o&&kl(o,t);return n!==r?n?-1:1:0}i(wl,"compareExactMatchText");function Ii(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(Ii,"compareContainsText");function Ai(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ai,"compareStartWithText");function bl(t,e,o){if(!o)return 0;let n=wl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=wl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ai(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ii(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ai(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ii(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ai(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ii(o,t.address,e.address);if(r!==0)return r}return 0}i(bl,"compareWithSearchFor");var Mn=i((t,e)=>{switch(e){case Ei.ALL:return!0;case Ei.UTXO:return t===Wn.TRANSFER;case Ei.OTHER:return t!==Wn.TRANSFER&&t!==Wn.COSMOS&&t!==Wn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),El=i(t=>bi.find(o=>o.value===t)?.url,"getFontUrlByName");function Ln(t,e){let o=!!t.find(n=>n.state===pg.CONNECTED);return e===!1&&o}i(Ln,"isSingleWalletActive");function Bn(t,e){return e.find(o=>o.name===t)?.displayName}i(Bn,"getBlockchainDisplayNameFor");function Ze(t,e){return e.find(o=>o.name===t)?.shortName}i(Ze,"getBlockchainShortNameFor");function Il(t,e){return e.find(o=>o.name===t)?.logo}i(Il,"getBlockchainImage");function qo(t,e){return e.find(o=>o.id===t)?.title}i(qo,"getSwapperDisplayName");function Wi(t,e){return e.find(o=>o.name===t)??null}i(Wi,"findBlockchain");function Mi(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(Mi,"isTokenNative");function Ft(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ft,"createTokenHash");import{BigNumber as Al}from"bignumber.js";var Ho=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"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Al(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Al(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 Pn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var yt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Go=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Bi(t){switch(!0){case t.connected:return St.CONNECTED;case t.connecting:return St.CONNECTING;case!t.installed:return St.NOT_INSTALLED;default:return St.DISCONNECTED}}i(Bi,"mapStatusToWalletState");function Wl(t,e,o,n){return o.filter(r=>!Sl.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,needsDerivationPath:f}=e(r),d=To(m.map(S=>S.type)),g=Bi(t(r));return{title:a,image:s,link:mg(l),state:g,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d,needsDerivationPath:f}})}i(Wl,"mapWalletTypesToWalletInfo");function $n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i($n,"walletAndSupportedChainsNames");function Ml(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}=ug(p),m=l.length>0,f=l.includes(c),d=c===Nl.Unknown;if(m&&!f&&!d)return;let S=c===Nl.Unknown&&fg(u);if(d&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Ml,"prepareAccountsForWalletStore");function Jt(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,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Fn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Fn,"isAccountAndWalletMatched");function Ll(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 Li(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Ll,"makeBalanceFor");function Bl(t){return{...t,loading:!1,error:!0}}i(Bl,"resetConnectedWalletState");var Pl=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=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Li(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return hg(r)},"calculateWalletUsdValue");function hg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(hg,"numberWithThousandSeparator");var On=i((t,e)=>{let o=dg(Object.entries(t).map(([,n])=>n).filter(gg));return o&&o[e]?.experimental},"isExperimentalChain");function Un(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Un,"formatBalance");function _l(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(_l,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Dl(t){return t.sort((e,o)=>+(o.state===St.CONNECTED)-+(e.state===St.CONNECTED)||+(o.state===St.DISCONNECTED||o.state===St.CONNECTING)-+(e.state===St.DISCONNECTED||e.state===St.CONNECTING))}i(Dl,"sortWalletsBasedOnConnectionState");function Qn(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(Qn,"getConciseAddress");function $l({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i($l,"getAddress");function zn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Li(o?.usdPrice??$e).multipliedBy(o?.amount).toString():""},r=o?Ft({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(zn,"makeTokensBalance");var Fl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ol(t){return t.map(e=>e.state).join("-")}i(Ol,"hashWalletsState");function Ul(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(Ul,"filterBlockchainsByWalletTypes");function Ql(t,e){return e===cg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Mn(n,e))return!0;return!1})}i(Ql,"filterWalletsByCategory");var Pi={API_KEY:Nn};function Et(t){return Pi[t]||""}i(Et,"getConfig");function zl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Pi=e,Pi}i(zl,"initConfig");var ql=20,Hl=25,_i="theme-widget",Vo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Di=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Gl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var qn,Ot=i(()=>qn||(qn=new yg(Et("API_KEY"),Et("BASE_URL")),qn),"httpService");import{WidgetEvents as Vl}from"@rango-dev/queue-manager-rango-preset";var $i=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))($i||{}),Fi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Fi||{}),Xo=(r=>(r[r.RouteEvent=Vl.RouteEvent]="RouteEvent",r[r.StepEvent=Vl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Xo||{});var Sg=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"),Ut=Sg;var te=Ut(Cg()(Tg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{we.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});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=>{n.connectedWallets.find(l=>l.walletType===o)&&we.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});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:zn(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=>Fn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ot().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(S=>Fn(S,f)),g=p.find(S=>S.address===f.address&&S.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:Ll(g,n),loading:!1}:f});return{loading:!1,balances:zn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Fn(m,c))?Bl(c):c);return{loading:!1,balances:zn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ft(o);return n[r]??null}}))));import{allProviders as kg}from"@rango-dev/provider-all";function Hn(t,e){let o=kg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0});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(Hn,"matchAndGenerateProviders");function Xl(t,e){return Hn(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function Kl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Kl,"hashProviders");function Oi(t,e){let o=te.use.clearConnectedWallet(),n=Hn(t,e);return vg(()=>{o(),n=Hn(t,e)},[Kl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Oi,"useWalletProviders");import zg,{createContext as qg,useContext as Hg,useEffect as Gg,useRef as Vg}from"react";import{create as Ug}from"zustand";import{persist as Qg}from"zustand/middleware";var Ui={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},wg={clientUrl:void 0},xg={liquiditySources:void 0},jl=i((t,e,o)=>({config:{...Ui,...t},iframe:wg,campaignMode:xg,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 Gn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return To(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(Gn,"getUniqueSwappersGroups");function Yl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Yl,"sortLiquiditySourcesByGroupTitle");function Je(t,e){return e?.[t]==="hidden"}i(Je,"isFeatureHidden");function Zl(t,e){return e?.[t]==="enabled"}i(Zl,"isFeatureEnabled");var Jl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Vo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(bt(c.symbol,o.searchFor)||bt(c.address||"",o.searchFor)||bt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=_l(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Mi(c,g),y=Mi(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=bl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Ft(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(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(Yl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ot().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Ft(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as bg,English as Eg,Finland as Ig,French as Ag,German as Ng,Greece as Wg,Italian as Mg,Japanese as Lg,Netherlands as Bg,Poland as Pg,Portuguese as _g,Russian as Dg,Spanish as $g,Swedish as Fg,Ukrainian as Og}from"@rango-dev/ui";var Rl=[{title:"English",label:"English",local:"en",SVGFlag:Eg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:$g},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Ag},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Lg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:_g},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:bg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Dg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Ng},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Og},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Fg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Ig},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Bg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Wg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Mg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Pg}],ko="en";var ep=[.5,1,3],tp=1,op=5,np=100,rp=0;var ip=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:tp,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=To(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Je("theme",n),s=Je("language",n),l=Je("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||ko},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||ko}})}}),"createSettingsSlice");function ap(t){return Ug()(Qg((...e)=>({...Jl(...e),...ip(...e),...jl(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(ap,"createAppStore");var sp=qg(null);function h(){let t=Hg(sp);if(Gg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function lp(t){let e=Vg();return e.current||(e.current=ap(t.config)),zg.createElement(sp.Provider,{value:e.current},t.children)}i(lp,"AppStoreProvider");import{create as Kg}from"zustand";var pp="rango-widget";var Ko=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(pp),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 ae=Ut(Kg()((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 Ko({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Xn=Zg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Rg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Oi(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=mp(),f=mp();up(()=>{n().catch(console.log)},[]),up(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Yg).map(y=>y.name),g=i((y,T,k,v,I)=>{if(T===zi.ACCOUNTS)if(k){let N=$n(I.supportedBlockchains),x=Ml(y,k,d,N,I.isContractWallet);x.length&&u(x,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===zi.ACCOUNTS&&v.connected){let N=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(N):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===zi.NETWORK&&v.network){let N=`${y}-${v.network}`;m.current?m.current(N):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,I)},"onUpdateState"),S=ae.use.isActiveTab(),C=Jg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Vn.createElement(Xn.Provider,{value:C},Vn.createElement(jg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Rg,"Main");function Kn(t){let{config:e,...o}=t;return Vn.createElement(lp,{config:e},Vn.createElement(Rg,{...o,config:e}))}i(Kn,"WidgetWallets");import xi from"react";import eh,{Fragment as th}from"react";import{MemoryRouter as oh,useInRouterContext as nh}from"react-router";function dp({children:t}){let o=nh()?th:oh;return eh.createElement(o,null,t)}i(dp,"AppRouter");import{I18nManager as hw}from"@rango-dev/ui";import ml from"react";import He from"react";import{useRoutes as ow}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 xo,useRef as ir}from"react";import At from"bignumber.js";import{create as ah}from"zustand";import{subscribeWithSelector as sh}from"zustand/middleware";import{getLastSuccessfulStep as ih}from"@rango-dev/queue-manager-rango-preset";import VE from"bignumber.js";function qi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(qi,"getFeeLabel");var Hi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],fp=30;import{i18n as lt}from"@lingui/core";import{RouteEventType as WE}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as Zn}from"rango-types";function jn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jn,"isValidAddress");import{i18n as Be}from"@lingui/core";var oe=i(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.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:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function gp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(gp,"getQuoteErrorMessage");import{i18n as Yn}from"@lingui/core";var to=i(()=>({connectWallet:Yn.t("Connect Wallet"),swap:Yn.t("Swap"),swapAnyway:Yn.t("Swap anyway"),ethWarning:Yn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function hp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Fe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Fe(1e3)))??!1}i(hp,"hasHighValueLoss");function yp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(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(yp,"hasLimitError");function Sp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Fe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Fe(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 Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=lt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=lt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=lt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=lt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Sp,"getLimitErrorMessage");function Cp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title: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(Cp,"getSwapButtonState");function Gi(t,e,o){return!((!o||o.lte($e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Gi,"canComputePriceImpact");function Vi(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=e(r.asset)?.usdPrice||null;o=o.plus(new Fe(r.amount).multipliedBy(a||0))}return o}i(Vi,"getUsdFeeOfStep");function Jn(t,e){return t.reduce((o,n)=>o.plus(Vi(n,e)),$e)}i(Jn,"getTotalFeeInUsd");function Xi(t){let e=$e;return e=e.plus(new Fe(t.amount).multipliedBy(t.price||0)),e}i(Xi,"getUsdFee");function Tp(t){return t.reduce((e,o)=>e.plus(Xi(o)),$e)}i(Tp,"getTotalFeesInUsd");function kp(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(kp,"getFeesGroup");function vp(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(vp,"checkSlippageErrors");function wp(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(wp,"checkSlippageWarnings");function Rn(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(Rn,"getMinRequiredSlippage");function xp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(xp,"hasProperSlippage");function bp(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:f,destination:d,enableCentralizedSwappers:g}=t,S=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(bp,"createQuoteRequestBody");function Ep(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ep,"getWalletsForNewSwap");function vo(t){return t?.outputAmount||null}i(vo,"getQuoteOutputAmount");function Ip(t,e){return new Fe(e).div(new Fe(t)).minus(1).multipliedBy(100).toNumber()}i(Ip,"getPercentageChange");function Ap(t,e){let o=vo(t),n=vo(e);if(!o||!n)return!1;let r=Re(o,n);return r?r<=-1:!0}i(Ap,"isOutputAmountChangedALot");function Np(t,e,o){let n=t.validationStatus,r=Jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>_p(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Fe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Fe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=lt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=lt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=lt.t(" for input and network fee")),lt.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:Ze(s.asset.blockchain,o)}})})}i(Np,"generateBalanceWarnings");function er(t,e){return(t?new Fe(t):$e).multipliedBy(e||0)}i(er,"calcOutputUsdValue");function jo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Zn.NetworkChanged}i(jo,"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,"")),jo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Zn.WaitingForConnectingWallet:n=n||lt.t("Waiting for connecting wallet");break;case Zn.WaitingForQueue:n=n||lt.t("Waiting for other running tasks to be finished");break;case Zn.WaitingForNetworkChange:n=n||lt.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 Mp(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(Mp,"getLastConvertedTokenInFailedSwap");function Lp(t){return t.status==="failed"}i(Lp,"shouldRetrySwap");function Bp(t,e,o,n,r,a){if(!n||t)return!0;let s=Jt({filter:"all",quote:n}),l=Jt({filter:"required",quote:n}),p=s.every(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?jn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Bp,"isConfirmSwapDisabled");function Pp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Pp,"isTokensIdentical");function or(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(or,"getQuoteToTokenUsdPrice");function Ki(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ki,"isNumberOfSwapsChanged");function ji(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ni(o,n)}i(ji,"isQuoteSwappersUpdated");function Yi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ni(o,n)}i(Yi,"isQuoteInternalCoinsUpdated");function $p(t,e){return Ki(t,e)||ji(t,e)||Yi(t,e)}i($p,"isQuoteChanged");function _p(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(_p,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function nr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=ih(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Wi(a?a.toBlockchain:n.fromBlockchain,e),p=Wi(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(nr,"createRetryQuote");function wo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=Re(s.toString(),l.toString());if(!!c&&hp(s,c)){let f=Jn(t?.swaps,r),d=It(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Rn(t.swaps),u=a>op;if(xp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:wp(t,a),minRequiredSlippage:p};return null}i(wo,"generateQuoteWarnings");function Re(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ip(t.toString(),e.toString());return n&&n<0?n:null}i(Re,"getPriceImpact");var Fp=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"),rr=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"),Op=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"),Up=i(t=>{let e=i((o,n)=>{let r=Hi.indexOf(o.value),a=Hi.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||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(ah()(sh(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=$e;return Go(o.inputAmount)?(e&&(n=e?.outputAmount?new At(e?.outputAmount):null,r=er(e?.outputAmount,or(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=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new At(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?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})})))),Qp=Y.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function zp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=Y(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,I=c?.to?.blockchains,N=ir(void 0),x=ir(void 0),w=ir(void 0),b=ir(void 0);xo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.from?.blockchain),P=c?.from?.token,Q=P&&g(P);(E||!E&&w.current)&&n(E??null),Q?a({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&N.current&&a({token:null}),w.current=c?.from?.blockchain,N.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),xo(()=>{Vo(s,T)&&a({token:null}),Di(p,k)&&n(null)},[T,k]),xo(()=>{Vo(l,v)&&a({token:null}),Di(u,I)&&o(null)},[v,I]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.to?.blockchain),P=c?.to?.token,Q=P&&g(P);(E||!E&&b.current)&&o(E??null),Q?e({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&x.current&&e({token:null}),b.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),xo(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(zp,"useSyncStoresWithConfig");import{useEffect as Ri,useRef as lh}from"react";import{useInRouterContext as ph,useLocation as ch,useSearchParams as uh}from"react-router-dom";function Zi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Zi,"convertTokenSearchParamToAsset");function Ji(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ji,"tokenToSearchParam");function ea(){let t=ch(),[e,o]=uh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=Y(),d=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=ph(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=lh(),{findToken:I}=h(),N=i(()=>{let w={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(w[B]=Z);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),P=e.get("fromToken"),Q=e.get("toBlockchain"),A=e.get("toToken"),z=e.get("autoConnect"),j=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:E,fromToken:P,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:w}},"getUrlSearchParams"),x=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");Ri(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:E}=N();C&&d==="success"&&x({fromBlockchain:n?.name,fromToken:Ji(a),toBlockchain:r?.name,toToken:Ji(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...E})},[t.pathname,l,n,a,r,s,k]),Ri(()=>{if(!C)return;let w=N();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&f(w.fromAmount),d==="success"){let b=g.find(A=>A.name===w.fromBlockchain),E=w.fromToken&&b?I(Zi(w.fromToken,b)):void 0,P=g.find(A=>A.name===w.toBlockchain),Q=w.toToken&&P?I(Zi(w.toToken,P)):void 0;b&&(p(b),E&&c({token:E,meta:{blockchains:g,tokens:S}})),P&&(u(P),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[d]),Ri(()=>{let{clientUrl:w,liquiditySources:b}=N();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(ea,"useSyncUrlAndStore");import{i18n as os}from"@lingui/core";import{useManager as DC}from"@rango-dev/queue-manager-react";import{Alert as Tm,Button as $C,css as rs,Divider as ns,IconButton as km,styled as FC,Typography as OC,WalletIcon as UC}from"@rango-dev/ui";import Ie,{useEffect as Xr,useLayoutEffect as QC,useRef as zC,useState as dn}from"react";import{useNavigate as qC}from"react-router-dom";import{i18n as Tt}from"@lingui/core";import{Alert as _a,BalanceErrors as TS,Button as Jc,ChevronDownIcon as kS,ChevronLeftIcon as vS,CloseIcon as wS,Divider as tn,IconButton as Rc,MessageBox as xS,PasteIcon as bS,Typography as Er,WalletIcon as ES}from"@rango-dev/ui";import $,{useCallback as IS,useEffect as eu,useMemo as AS,useRef as NS,useState as uo}from"react";import{useNavigate as WS}from"react-router-dom";import{i18n as ar}from"@lingui/core";function sr(t){switch(t.type){case 0:return ar.t("Route has been updated.");case 3:return ar.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return ar.t("Route swappers has been updated.");case 2:return ar.t("Route internal coins has been updated.");default:return""}}i(sr,"getQuoteUpdateWarningMessage");import{Modal as dh}from"@rango-dev/ui";import fh from"react";function re(t){let{watermark:e}=ae();return fh.createElement(dh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import ur,{useRef as yh}from"react";import*as bo from"@radix-ui/react-collapsible";import{keyframes as Hp,styled as lr}from"@rango-dev/ui";var ta=300,gh=Hp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),hh=Hp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Gp=lr(bo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),oa=lr(bo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),pr=lr(bo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${gh} ${ta}ms ease-out`},false:{animation:`${hh} ${ta}ms ease-out`}}}}),cr=lr("div",{transition:`all ${ta}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function mr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=yh(null);return ur.createElement(Gp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ur.createElement(oa,{className:"collapsible_trigger",onClick:a},s),ur.createElement(pr,{className:"collapsible_content",open:e},r),l==="bottom"&&ur.createElement(oa,{className:"collapsible_trigger",onClick:a},s))}i(mr,"CustomCollapsible");import{css as Vp,darkTheme as Yo,IconButton as Sh,styled as et,TextField as Ch}from"@rango-dev/ui";var Xp=et("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Kp=et("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Th=et("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),jp=et(Th,{alignSelf:"stretch",minHeight:"93px"}),Yp=et("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Zp=et(Sh,{position:"absolute",left:"$20"}),Jp=et("div",{paddingTop:"$20"}),Rp=Vp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ec=et("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),tc=Vp({paddingTop:"$5"}),oc=et("div",{display:"flex"}),nc=et(Ch,{backgroundColor:"$neutral100",padding:"$15"}),rc=et("div",{overflow:"visible",width:"100%"}),ic=et("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Yo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as pt}from"@lingui/core";import{Button as hS,Divider as Ba,Image as yS,MessageBox as xr,SelectableWallet as SS,Typography as jc,WalletState as Yc}from"@rango-dev/ui";import ue,{useEffect as Zc,useState as co}from"react";import{WalletState as na}from"@rango-dev/ui";import{useWallets as kh}from"@rango-dev/wallets-react";import{detectMobileScreens as vh,KEPLR_COMPATIBLE_WALLETS as wh,WalletTypes as Eo}from"@rango-dev/wallets-shared";import{useCallback as xh,useEffect as bh,useState as Eh}from"react";var Ih=Object.values(Eo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=kh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ih,d=Wl(s,p,f,e);d=vh()?d.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):d;let g=Dl(d),[S,C]=Eh(""),y=i(x=>!c.find(w=>w.walletType===x&&w.chain===e),"isExperimentalChainNotAdded"),T=i(async(x,w)=>{let b=s(x);try{if(S&&C(""),b.connected)await l(x);else{if(Ln(d,a.multiWallets))return;o?.(x),await u(x,void 0,w),n?.(x)}}catch(E){r?.(E?.message),C("Error: "+E?.message)}},"handleClick"),k=xh(()=>{let x=d?.filter(w=>w.state===na.CONNECTING)||[];for(let w of x)l(w.type)},[Ol(d)]),v=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");bh(()=>()=>{k()},[]);let I=i(x=>{let w=x.find(E=>E.type===Eo.DEFAULT);return!w||w.state===na.NOT_INSTALLED?!1:x.filter(E=>E.state!=na.NOT_INSTALLED&&![Eo.DEFAULT,Eo.WALLET_CONNECT_2,Eo.LEDGER].includes(E.type)&&p(E.type).supportedChains.filter(P=>P.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((x,w,b)=>On(b,w)&&y(x)&&!wh.includes(x)||x==Eo.DEFAULT&&!I(d),"shouldExcludeWallet");return{list:g.filter(x=>!N(x.type,e??"",m)),error:S,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:v}}i(no,"useWalletList");import{i18n as zc}from"@lingui/core";import{Divider as sS,getCategoriesCount as lS,SelectableCategoryList as pS,styled as Hc,Typography as cS,Wallet as uS,WalletState as qc}from"@rango-dev/ui";import nt,{useState as en}from"react";import{useManager as Ly}from"@rango-dev/queue-manager-react";import{BottomLogo as By,Divider as Wc,Header as Py}from"@rango-dev/ui";import Te,{useEffect as ba,useRef as Mc,useState as _y}from"react";import{useRef as Ah}from"react";function dr(){return window.self!==window.top}i(dr,"isAppLoadedIntoIframe");function ra(){let t=Ah(null),{iframe:e}=h(),o=dr()&&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(ra,"useIframe");import{useNavigate as Nh}from"react-router-dom";function tt(){let t=Nh();return()=>t(-1)}i(tt,"useNavigateBack");import{createTheme as ua,darkTheme as qh,lightTheme as Hh}from"@rango-dev/ui";import{useEffect as Gh,useState as Vh}from"react";import{theme as Qh,darkColors as zh}from"@rango-dev/ui";import pa from"react";function Wh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Wh,"expandShortHexColor");function Mh(t){return/[0-9]+$/.test(t)}i(Mh,"isOverridingColor");function Lh(t,e){return t.padStart(e,"0")}i(Lh,"pad");function ia(t){let e=Math.min(Math.max(Math.round(t),0),255);return Lh(e.toString(16),2)}i(ia,"intToHex");function Bh(t){return`#${ia(t.red)}${ia(t.green)}${ia(t.blue)}`}i(Bh,"rgbToHex");function Ph(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(Ph,"hexToRGB");function _h(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(_h,"generateShade");function Dh(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(Dh,"generateTint");function $h(t){return ac(t,_h)}i($h,"calculateShades");function Fh(t){return ac(t,Dh)}i(Fh,"calculateTints");function ac(t,e){let o=Ph(t),n=[];for(let r=1;r<9;r++)n.push(Bh(e(o,r)));return n}i(ac,"calculateColors");function aa(t,e,o){let a=Fh(t).reverse().concat(t),s=$h(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(aa,"createTintsAndShades");function sa(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)&&!Mh(r)){let p=Wh(a);Object.assign(n,aa(p,r,s))}}return{...n,...e}}i(sa,"expandToGenerateThemeColors");var sc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Oh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=sc(o%52)+e;return sc(o%52)+e},"toAlphabeticName"),Uh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),la=i(t=>Oh(Uh(5381,JSON.stringify(t))>>>0),"toHash");function ca(t){let e=Qh.colors,o={...e,...zh},n,r;if(t?.light){let s={colors:sa(e,t.light)};n={id:`${_i}-light-${la(s)}`,tokens:s}}if(t?.dark){let s={colors:sa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${_i}-dark-${la(s)}`,tokens:s}}return{light:n,dark:r}}i(ca,"customizedThemeTokens");function lc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>pa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(pa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(pa.cloneElement(e,{key:l}))}}),o}i(lc,"joinList");function fr(t){let{colors:e,fontFamily:o=yl,borderRadius:n=ql,secondaryBorderRadius:r=Hl}=t,[a,s]=Vh("light"),{theme:l}=h(),{dark:p,light:u}=ca(e),c=ua({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Hh.className],f=[c.className,qh.className];if(u){let g=ua(u.id,u.tokens);m.push(g.className)}if(p){let g=ua(p.id,p.tokens);f.push(g.className)}return Gh(()=>{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=f.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(fr,"useTheme");var ot=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 pc}from"@lingui/core";import{Alert as Xh,Button as Kh}from"@rango-dev/ui";import cc from"react";function ma(t){return cc.createElement(Xh,{action:cc.createElement(Kh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},pc.t("Activate this tab")),type:"warning",variant:"alarm",title:pc.t("Another tab is open and handles transactions.")})}i(ma,"ActivateTabAlert");import{i18n as da}from"@lingui/core";import{Button as jh,Divider as Yh,MessageBox as Zh}from"@rango-dev/ui";import gr from"react";function fa(t){let{open:e,onClose:o,onConfirm:n}=t;return gr.createElement(re,{open:e,dismissible:!0,onClose:o,container:_()},gr.createElement(Zh,{title:da.t("Activate current tab"),type:"warning",description:da.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.")},gr.createElement(Yh,{size:20}),gr.createElement(jh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},da.t("Confirm"))))}i(fa,"ActivateTabModal");import{ChevronLeftIcon as ey}from"@rango-dev/ui";import yc from"react";import{css as Jh,darkTheme as uc,IconButton as Rh,styled as ro}from"@rango-dev/ui";var Ct=ro(Rh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${uc} &`]:{backgroundColor:"$neutral"}}}),mc=ro("div",{position:"absolute",background:"$secondary500",[`.${uc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Io=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),dc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),fc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),gc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),hc=Jh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),hr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ga(t){return yc.createElement(Ct,{variant:"ghost",size:"small",onClick:t.onClick},yc.createElement(ey,{color:"black",size:16}))}i(ga,"BackButton");import{i18n as ty}from"@lingui/core";import{Button as oy,Typography as ny}from"@rango-dev/ui";import ha from"react";function ya(t){return ha.createElement(Io,null,ha.createElement(oy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ha.createElement(ny,{variant:"label",size:"medium",color:"error500"},ty.t("Cancel"))))}i(ya,"CancelButton");import{i18n as ry}from"@lingui/core";import{Image as iy,Tooltip as ay,WalletIcon as sy}from"@rango-dev/ui";import io from"react";function Sa(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:hc()},o.map(r=>io.createElement(hr,{key:r.title},io.createElement(iy,{src:r.image,size:14})))):ry.t("Connect Wallet");return io.createElement(ay,{container:t.container,side:"bottom",content:n},io.createElement(Ct,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(mc,null),io.createElement(sy,{size:18,color:"black"})))}i(Sa,"WalletButton");import{i18n as Sr}from"@lingui/core";import{NotificationsIcon as wy,Popover as xy,SettingsIcon as by,Tooltip as Cr,TransactionIcon as Ey}from"@rango-dev/ui";import We from"react";import{Notifications as uy}from"@rango-dev/ui";import my from"react";import{useNavigate as dy}from"react-router-dom";import{create as ly}from"zustand";import{persist as py,subscribeWithSelector as cy}from"zustand/middleware";var xe=Ut(ly()(py(cy((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.sort((r,a)=>a.creationTime-r.creationTime):[]},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}})));function Ca(){let t=dy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return my.createElement(uy,{list:n,getBlockchainImage:l=>Il(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ca,"NotificationContent");import{useManager as fy}from"@rango-dev/queue-manager-react";import{InProgressIcon as gy}from"@rango-dev/ui";import Sc from"react";var hy=i(()=>{let{manager:t}=fy();return ot(t).map(({swap:o})=>o).find(o=>o.status==="running")?Sc.createElement(gc,null,Sc.createElement(gy,{color:"info",size:6})):null},"InProgressTransactionBadge"),Cc=hy;import{EventSeverity as yy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Sy}from"@rango-dev/ui";import Tc from"react";function kc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===yy.WARNING);return o?Tc.createElement(dc,{isSever:n},Tc.createElement(Sy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(kc,"NotificationsBadge");import{RefreshProgressButton as Cy}from"@rango-dev/ui";import Ta,{useEffect as Ty,useState as vc}from"react";var ky=1e3,wc=60,vy=100;function yr({onClick:t}){let[e,o]=vc(0),[n,r]=vc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Ty(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===wc&&l()},ky):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 Ta.createElement(Ct,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Ta.createElement(fc,{onTransitionEnd:()=>r(!1),isRefetched:n},Ta.createElement(Cy,{size:22,color:t?"black":"gray",progress:e/wc*vy})))}i(yr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Je("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Cr,{container:a||_(),side:"top",content:Sr.t("Refresh")},We.createElement(yr,{onClick:e})),!l&&We.createElement(xy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:_(),content:We.createElement(Ca,null)},We.createElement("div",null,We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Notifications")},We.createElement(Ct,{size:"small",variant:"ghost"},We.createElement(wy,{size:18,color:"black"}),We.createElement(kc,null))))),!r.includes("settings")&&We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Settings")},We.createElement(Ct,{size:"small",variant:"ghost",onClick:n},We.createElement(by,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Transactions History")},We.createElement(Ct,{size:"small",variant:"ghost",onClick:o},We.createElement(Ey,{size:18,color:"black"}),We.createElement(Cc,null))))}i(ao,"HeaderButtons");import{i18n as ka}from"@lingui/core";import{Divider as bc,MessageBox as Ny,RefreshIcon as Wy}from"@rango-dev/ui";import Ao from"react";import{Button as Iy,styled as Ay}from"@rango-dev/ui";var xc=Ay(Iy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function va(t){let{open:e,onClose:o}=t;return Ao.createElement(re,{open:e,dismissible:!0,onClose:o,container:_()},Ao.createElement(Ny,{title:ka.t("Something went wrong"),type:"error",description:ka.t("Something went wrong. Please refresh the app.")},Ao.createElement(bc,{size:30}),Ao.createElement(xc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Ao.createElement(Wy,{size:20,color:"primary"}),Ao.createElement(bc,{size:4,direction:"horizontal"}),ka.t("Refresh"))))}i(va,"RefreshModal");function wa(t){let e=t.target;if(e){let o=e.scrollTop,n=_();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(wa,"onScrollContentAttachStatusToContainer");import{css as My,styled as xa}from"@rango-dev/ui";var Ec="700px",Tr=My({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ic=xa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ec},fixed:{height:Ec}}}}),Ac=xa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Nc=xa("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 ce(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ra(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=_y(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ae(),g=d==="FULL",{activeTheme:S}=fr(f||{}),C=Je("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:I}=ae(),N=tt(),{manager:x}=Ly(),b=ot(x).map(({swap:j})=>j).some(j=>j.status==="running"),E=i(()=>I(eo.forceClaim,b),"onActivateTab"),P=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,A=Mc(null),z=Mc(null);return ba(()=>(dr()&&z.current&&e(z.current),()=>{o()}),[]),ba(()=>(A.current?.addEventListener("scroll",wa),()=>{A.current?.removeEventListener("scroll",wa)}),[]),ba(()=>{u(l==="failed")},[l]),Te.createElement(Ic,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${Tr()}`,ref:z},Te.createElement(Py,{prefix:Te.createElement(Te.Fragment,null,Q&&Te.createElement(ga,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:Te.createElement(Te.Fragment,null,r.suffix,r.onWallet&&!C&&Te.createElement(Sa,{container:_(),onClick:P,isConnected:!!c?.length}),r.onCancel&&Te.createElement(ya,{onClick:r.onCancel}))}),Te.createElement(Ac,{ref:A},n),Te.createElement(fa,{open:k,onClose:()=>v(!1),onConfirm:E}),Te.createElement(Nc,null,Te.createElement("div",{className:"footer__content"},T&&!y&&Te.createElement("div",{className:"footer__alert"},Te.createElement(ma,{onActivateTab:E}),Te.createElement(Wc,{size:10})),a),Te.createElement(Wc,{size:12}),Te.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Te.createElement(By,null))),Te.createElement(va,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as Dy}from"@rango-dev/ui";var Lc="$20 $20 $10 $20",Zo=Dy("div",{padding:Lc,overflowY:"auto",flexGrow:1});import{styled as $y}from"@rango-dev/ui";var fe=$y("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Lo}from"@lingui/core";import{Button as Qy,Divider as _c,Image as zy,MessageBox as qy,Select as Hy,TextField as Gy}from"@rango-dev/ui";import ze,{useEffect as Vy,useState as Dc}from"react";import{Namespace as No}from"@rango-dev/wallets-shared";var Jo={[No.Evm]:{mainBlockchain:"ETH",title:"Ethereum",derivationPaths:[{id:"metamask",label:"Metamask (m/44'/60'/0'/0/index)",generateDerivationPath:t=>`44'/60'/0'/0/${t}`},{id:"ledgerLive",label:"LedgerLive (m/44'/60'/index'/0/0)",generateDerivationPath:t=>`44'/60'/${t}'/0/0`},{id:"legacy",label:"Legacy (m/44'/60'/0'/index)",generateDerivationPath:t=>`44'/60'/0'/${t}`}]},[No.Solana]:{mainBlockchain:"SOLANA",title:"Solana",derivationPaths:[{id:"(m/44'/501'/index')",label:"(m/44'/501'/index')",generateDerivationPath:t=>`44'/501'/${t}'`},{id:"(m/44'/501'/0'/index)",label:"(m/44'/501'/0'/index)",generateDerivationPath:t=>`44'/501'/0'/${t}`}]},[No.Cosmos]:{mainBlockchain:"COSMOS",title:"Cosmos"},[No.Utxo]:{mainBlockchain:"BTC",title:"Utxo"},[No.Starknet]:{title:"Starknet",mainBlockchain:"STARKNET"},[No.Tron]:{title:"Tron",mainBlockchain:"TRON"}};import{keyframes as Fy,styled as kr}from"@rango-dev/ui";var CW=kr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=kr("div",{position:"relative"}),Oy=Fy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Mo=kr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Oy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vr=kr("div",{"& img":{borderRadius:"50%"}});import{styled as Bc,Typography as Uy}from"@rango-dev/ui";var Pc=Bc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ea=Bc(Uy,{paddingLeft:"$10"}),Ia={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Fc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function $c(t){let e=t?Jo[t].derivationPaths:null;return e?[...e,Fc]:[]}i($c,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Dc(null),[u,c]=Dc("0"),m=l===Fc.id,f=$c(n),d=i(({value:S})=>{let C=f?.find(y=>y.id===S);C&&p(C.id)},"handleDerivationPathItemClick"),g=i(()=>{let S=f.find(C=>C.id===l);if(S)o(S.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Vy(()=>{p($c(n)[0]?.id||null)},[n]),ze.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},ze.createElement(_c,{size:20}),ze.createElement(qy,{type:"info",title:Lo.t("Select Derivation Path"),description:Lo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:ze.createElement(Wo,null,ze.createElement(vr,null,ze.createElement(zy,{src:r,size:45})),ze.createElement(Mo,null))}),ze.createElement(Pc,null,ze.createElement(Ea,{variant:"body",size:"xsmall",color:"$neutral600"},Lo.t("Choose Derivation Path Template")),ze.createElement(Hy,{value:l||"",options:f.map(S=>({value:S.id,label:S.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ia}}),ze.createElement(_c,{size:20}),ze.createElement(Ea,{variant:"body",size:"xsmall",color:"$neutral600"},m?Lo.t("Enter Path"):Lo.t("Enter Index")),ze.createElement(Gy,{type:m?"text":"number",variant:"contained",value:u,onChange:S=>c(S.target.value),style:Ia})),ze.createElement(Qy,{type:"primary",onClick:g,disabled:!f||!l||!u},Lo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as jy}from"@rango-dev/ui";import Na from"react";import{i18n as Bo}from"@lingui/core";import{Image as Xy,MessageBox as Aa,WalletState as Ky}from"@rango-dev/ui";import lo from"react";function Oc(t){let{state:e,image:o,error:n}=t;return e===Ky.CONNECTED?lo.createElement(Aa,{type:"success",title:Bo.t("Wallet Connected"),description:Bo.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Aa,{type:"error",title:Bo.t("Failed to Connect"),description:n||Bo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Aa,{type:"loading",title:Bo.t("Connecting to your wallet"),description:Bo.t("Click connect in your wallet popup."),icon:lo.createElement(Wo,null,lo.createElement(vr,null,lo.createElement(Xy,{src:o,size:45})),lo.createElement(Mo,null))})}i(Oc,"ModalContent");function Ro(t){let{open:e,onClose:o,...n}=t;return Na.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Na.createElement(Oc,{...n}),Na.createElement(jy,{direction:"vertical",size:32}))}i(Ro,"WalletModal");import{i18n as Wa}from"@lingui/core";import{Button as Zy,Checkbox as Jy,Divider as Ry,Image as Qc,ListItemButton as eS,MessageBox as tS,Radio as oS,RadioRoot as nS}from"@rango-dev/ui";import Me,{useMemo as rS,useState as iS}from"react";import{styled as Yy}from"@rango-dev/ui";var Uc=Yy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var aS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=iS([]),a=h().blockchains(),s=rS(()=>o?.map(u=>({name:u,logo:aS(a,Jo[u].mainBlockchain),title:Jo[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?Me.createElement(nS,{value:n?.[0]},u):Me.createElement(Me.Fragment,null,u),"wrapRadioRoot");return Me.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Me.createElement(Ry,{size:20}),Me.createElement(tS,{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:Me.createElement(Wo,null,Me.createElement(hr,null,Me.createElement(Qc,{src:t.image,size:45})),Me.createElement(Mo,null))}),Me.createElement(Uc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(eS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Me.createElement(Qc,{src:u.logo,size:22}),end:e?Me.createElement(oS,{value:u.name}):Me.createElement(Jy,{checked:n.includes(u.name)})}))))),Me.createElement(Zy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Wa.t("Confirm")))}i(po,"WalletNamespacesModal");var mS=Hc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),dS=Hc(fe,{textAlign:"center"}),wr=3e3,Ma=300;function Gc(){let{fetchStatus:t}=h(),[e,o]=en("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=en(!1),[l,p]=en(null),[u,c]=en(null),[m,f]=en(""),d=null,g=ae.use.isActiveTab(),{list:S,handleClick:C,error:y,disconnectConnectingWallets:T}=no({onBeforeConnect:G=>{d=setTimeout(()=>{s(!0),f(G)},Ma)},onConnect:()=>{d&&clearTimeout(d),setTimeout(()=>{s(!1)},wr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),I=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),N=S.find(G=>G.type===m),x=N?.image||"",w=N?.state||qc.NOT_INSTALLED,b=Ul(S,n),P=lS(b)!==1,Q=Ql(S,e),A=i((G,B)=>{Ln(S,r.multiWallets)||(B.namespaces&&B.state===qc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):C(G))},"handleWalletItemClick"),z=i(G=>{let B=Q.find(Z=>Z.type===l?.providerType);B?.singleNamespace&&B?.needsDerivationPath&&G[0]?c({open:!0,providerType:B.type,providerImage:B.image,namespace:G[0]}):C(l?.providerType,G.map(Z=>({namespace:Z}))),v()},"handleConfirmNamespaces"),j=i(G=>{G&&u?.namespace&&C(u.providerType,[{namespace:u.namespace,derivationPath:G}]),I()},"handleDerivationPathConfirm");return nt.createElement(ce,{header:{title:zc.t("Connect Wallets")}},nt.createElement(dS,null,P&&nt.createElement(nt.Fragment,null,nt.createElement(pS,{setCategory:o,category:e,blockchains:b,isLoading:t==="loading"}),nt.createElement(sS,{size:24})),nt.createElement(cS,{variant:"title",size:"xmedium",align:"center"},zc.t("Choose a wallet to connect.")),nt.createElement(mS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return nt.createElement(uS,{key:Z,...G,container:_(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!g})}),nt.createElement(Ro,{open:!!a,onClose:k,image:x,state:w,error:y}),nt.createElement(po,{open:!!l?.open,onClose:v,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),nt.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:I,onConfirm:j}))))}i(Gc,"WalletsPage");import{keyframes as fS,styled as La}from"@rango-dev/ui";var Vc=La("div",{position:"relative"}),gS=fS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Xc=La("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${gS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Kc=La("div",{"& img":{borderRadius:"50%"}});var CS=7;function Pa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ae.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=co(""),[f,d]=co(null),[g,S]=co(!1),[C,y]=co(null),[T,k]=co(null),[v,I]=co(null),{suggestAndConnect:N}=br(),x=null,{list:w,error:b,handleClick:E,disconnectWallet:P,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{m(L)},Ma)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{m("")},wr)}}),[A,z]=co(w),j=w.length,G=r&&j-r>0,B=i(async L=>{S(!1),y("in-progress");try{await N(L.walletType,L.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),Z=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),ie=i(()=>{v&&I({...v,open:!1})},"handleCloseDerivationPathModal"),J=i(L=>{k({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace})},"handleOpenNamespacesModal"),ne=i(L=>{let me=A.find(se=>se.type===T?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?I({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):E(T?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=i(L=>{L&&v?.namespace&&E(v.providerType,[{namespace:v.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");Zc(()=>{z(L=>{let me=w.findIndex(se=>o(se.type,e));return G&&me>1?[w[me]].concat(w.filter((se,_e)=>_e!==me)):L.map(se=>w.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(w)]);let Ce=document.getElementById(he.SWAP_BOX_ID);Zc(()=>{let L=null;return(C==="completed"||C==="rejected")&&(L=setTimeout(()=>y(null),wr)),()=>{L&&clearTimeout(L)}},[C]);let D=i(()=>{Q(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,r).map(L=>{let me=$l({connectedWallets:p,walletType:L.type,chain:e}),se=me?Qn(me,CS):"",_e=On(u(),e),st=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&st&&L.state===Yc.CONNECTED,Ge=De?pt.t({id:"Add {chain} chain",values:{chain:e}}):se,Ve=i(async()=>{L.state===Yc.DISCONNECTED?L.namespaces?J(L):E(L.type):L.namespaces&&!se?(await P(L.type),J(L)):De?(d({walletType:L.type,chain:e,address:me??""}),S(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),ve=f?.chain?Bn(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${ve}`},ue.createElement(Ro,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:b}),ue.createElement(po,{open:!!T?.open,onClose:Z,onConfirm:ne,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),ue.createElement(so,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:ie,onConfirm:ge}),!!f&&ue.createElement(re,{open:!!f&&g,container:Ce,onClose:()=>{d(null)}},ue.createElement(xr,{title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}})},ue.createElement(Ba,{size:18}),ue.createElement(Ba,{size:32}),ue.createElement(hS,{onClick:B.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},pt.t("Confirm")))),C&&ue.createElement(re,{open:!!C,onClose:y.bind(null,null),container:Ce},C==="in-progress"&&ue.createElement(xr,{type:"loading",title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}}),icon:ue.createElement(Vc,null,ue.createElement(Kc,null,ue.createElement(yS,{src:L.image,size:45})),ue.createElement(Xc,null))}),C==="completed"&&ue.createElement(xr,{type:"success",title:pt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:pt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ve}})}),C==="rejected"&&ue.createElement(xr,{type:"error",title:pt.t("Request Rejected"),description:pt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Ba,{direction:"vertical",size:32})),ue.createElement(SS,{key:L.type,description:Ge,onClick:Ve,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(jp,{selected:!1,onClick:a},ue.createElement(jc,{variant:"label",size:"medium"},pt.t("Show more wallets"),ue.createElement(jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(Pa,"WalletList");var MS=2;function tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=WS(),l=h().config,p=NS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:S}=Y(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=uo(""),[v,I]=uo([]),[N,x]=uo(""),[w,b]=uo(null),[E,P]=uo(!!g),Q=navigator?.userAgent.includes("Firefox"),A=AS(()=>Jt({filter:"all",quote:c}),[c]),z=Jt({filter:"required",quote:c}),j=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),G=i(W=>z.includes(W),"isWalletRequiredFor"),B=IS(()=>C.filter(W=>W.selected&&A.includes(W.chain)),[C,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=i((W,V)=>ne(X=>X.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=v.length>0,D=i((W,V)=>!!Z.find(X=>X.walletType===W&&X.chain===V&&X.selected&&(G(V)||!G(V)&&!g)),"isSelected"),L=!!g&&E&&j&&!jn(j,g),me=i(()=>{P(!1),S(null),ie(W=>{let V=!1;return W.map(X=>!V&&X.chain===j?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),se=i(()=>S(""),"handleClearCustomDestination"),_e=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),st=i(W=>{W?G(j?.name??"")||ie(V=>V.map(X=>X.chain===j?.name?{...X,selected:!1}:X)):me()},"handleCustomDestinationCollapsibleOpenChange"),De=i(W=>{if(T&&k(""),D(W.walletType,W.chain))return;let X=C.find(Xe=>Xe.walletType===W.walletType&&Xe.chain===W.chain);X&&(n(),W.chain===j?.name&&E&&!G(j.name)&&(P(!1),S(null)),ie(Xe=>Xe.filter(ht=>ht.chain!==W.chain).concat({...X,selected:!0})))},"onChange"),Ge=i(()=>{let W=Z.filter(V=>V.selected);y(W),m(W),d(!0),o()},"onConfirmBalance"),Ve=i(async()=>{I([]),x(""),b(null);let W=await r?.({selectedWallets:Z.filter(X=>X.selected),customDestination:g}),V=W.warnings;V?.balance?.messages&&I(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),W.error&&x(gp(W.error)),!W.error&&!V?.balance?.messages.length?Ge():I(V?.balance?.messages??[])},"onConfirmWallets"),ve=i(()=>g?$.createElement(Rc,{onClick:se,variant:"ghost"},$.createElement(wS,{size:12,color:"gray"})):Q?null:$.createElement(Rc,{onClick:_e,variant:"ghost"},$.createElement(bS,{size:16})),"renderCustomDestinationSuffix");eu(()=>{ie(W=>{let V=[];return W.forEach(X=>{!C.some(ht=>ht.chain===X.chain&&ht.walletType===X.walletType&&ht.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ht=>ht.chain===X.chain)&&X.selected&&A.includes(X.chain))),V})},[C,A]),eu(()=>{let W=[];J.length>0&&(J.forEach(V=>{let X=C.find(Xe=>Xe.chain===V.blockchain&&Xe.walletType===V.walletType);X?De(X):W.push(V)}),ne(W))},[C,J]);let de=document.getElementById(he.SWAP_BOX_ID);return $.createElement(re,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!T,container:de,...!T&&{footer:$.createElement(oc,null,$.createElement(Jc,{loading:a,disabled:Bp(a,E,g,c,Z,j),onClick:Ve,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Tt.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Yp,null,$.createElement(Zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(vS,{size:16})),$.createElement(Er,{variant:"headline",size:"small"},Tt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ze(T,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:I.bind(null,[]),container:de},$.createElement(xS,{title:Tt.t("Insufficient account balance"),type:"error",description:$.createElement(TS,{messages:v??[]})},$.createElement(Jc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ge},Tt.t("Proceed anyway")))),T&&$.createElement(Jp,null,$.createElement("div",{className:Rp()},$.createElement(Pa,{chain:T,isSelected:D,selectWallet:De,onShowMore:()=>k(T),onConnect:W=>{ge(T,W)}}))),!T&&$.createElement($.Fragment,null,N&&$.createElement($.Fragment,null,$.createElement(_a,{variant:"alarm",type:"error",title:Tt.t(N)}),$.createElement(tn,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(_a,{variant:"alarm",type:"warning",title:sr(w)}),$.createElement(tn,{size:12})),$.createElement(rc,null,A.map((W,V)=>{let X=u.find(Zt=>Zt.name===W),Xe=`wallet-${V}`,ht=V===A.length-1;return $.createElement("div",{key:Xe},$.createElement(Xp,null,$.createElement(Er,{variant:"title",size:"xmedium"},Tt.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(Er,{variant:"label",color:"$neutral700",size:"medium"},Tt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(tn,{size:24}),$.createElement(Kp,null,$.createElement(Pa,{chain:W,isSelected:D,selectWallet:De,limit:MS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{ge(W,Zt)}})),!ht&&$.createElement(tn,{size:32}),ht&&l?.customDestination!==!1&&$.createElement(ec,null,$.createElement(mr,{onOpenChange:st,hasSelected:!0,open:E,triggerAnchor:"top",trigger:$.createElement(ic,null,$.createElement("div",{className:"button__content"},$.createElement(ES,{size:18,color:"info"}),$.createElement(tn,{size:4,direction:"horizontal"}),$.createElement(Er,{variant:"label",size:"medium",color:E?"$neutral600":void 0},Tt.t("Send to a different address"))),$.createElement(cr,{orientation:E?"up":"down"},$.createElement(kS,{size:10,color:"secondary"}))),onClickTrigger:()=>P(Zt=>!Zt)},$.createElement(nc,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:Tt.t("Enter {blockchainName} address",{blockchainName:Bn(W,u)}),value:g||"",suffix:ve(),onChange:Zt=>{let Rf=Zt.target.value;S(Rf)},...!g&&{autoFocus:!0}})),L&&$.createElement("div",{className:tc()},$.createElement(_a,{variant:"alarm",type:"error",title:Tt.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tu,"ConfirmWalletsModal");import{i18n as YS}from"@lingui/core";import{Alert as ZS,Button as JS,InfoIcon as RS}from"@rango-dev/ui";import je from"react";import{Alert as PS,Button as _S,Divider as Fa,NoRouteIcon as DS,RefreshIcon as $S,Typography as lu}from"@rango-dev/ui";import Ke from"react";import{i18n as ou}from"@lingui/core";var LS=24,BS=60;function nu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:ou.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:ou.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(nu,"makeInfo");var Da=(o=>(o[o.small=LS]="small",o[o.large=BS]="large",o))(Da||{}),$a=(o=>(o.small="small",o.large="medium",o))($a||{});import{styled as Ir}from"@rango-dev/ui";var ru=Ir("div",{display:"flex",flexDirection:"column",alignItems:"center"}),iu=Ir("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),au=Ir("div",{variants:{size:{small:{width:"100%"},large:{}}}}),su=Ir("div",{padding:"$6 $0"});function on(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=nu(o,r,()=>a(s,!0),e);return Ke.createElement(ru,null,Ke.createElement(DS,{size:Da[n],color:"gray"}),Ke.createElement(Fa,{size:4}),Ke.createElement(lu,{variant:"title",size:$a[n]},oe().noResultError.title),n==="large"&&Ke.createElement(Fa,{size:4}),!!l.description&&Ke.createElement(iu,{size:n},Ke.createElement(lu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ke.createElement(Fa,{size:n==="large"?"24":"4"}),!!l.alert&&Ke.createElement(au,{size:n},Ke.createElement(PS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ke.createElement(_S,{size:"xsmall",type:l.alert.type,prefix:Ke.createElement(su,null,Ke.createElement($S,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(on,"NoResult");import{i18n as nn}from"@lingui/core";import{Button as OS,Divider as US,MessageBox as QS,Typography as zS,WarningIcon as qS}from"@rango-dev/ui";import Nt from"react";import{Typography as mu}from"@rango-dev/ui";import Ua from"react";import{darkTheme as FS,styled as Ar}from"@rango-dev/ui";var pu=Ar("div",{width:"100%"}),Oa=Ar("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),cu=Ar("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${FS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uu=Ar("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function du(t){let{title:e,value:o,valueColor:n}=t;return Ua.createElement(cu,null,Ua.createElement(mu,{size:"medium",variant:"label",className:"_title"},e),Ua.createElement(mu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(du,"QuoteErrorsModalItem");function fu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:nn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:nn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:nn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:nn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Nt.createElement(re,{footer:Nt.createElement(OS,{type:"primary",size:"large",prefix:Nt.createElement(qS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:_()},Nt.createElement(QS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Nt.createElement(Oa,null,Nt.createElement(US,{size:"4"}),Nt.createElement(zS,{size:"small",variant:"title"},nn.t("Details")),Nt.createElement(Oa,null,l.map((p,u)=>Nt.createElement(du,{key:u,...p})))))}i(fu,"HighValueLossWarningModal");import{i18n as Qa}from"@lingui/core";function gu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Qa.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(It(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Qa.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=Qa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(gu,"makeAlerts");import{i18n as Po}from"@lingui/core";import{Button as hu,Divider as yu,MessageBox as HS,Typography as GS}from"@rango-dev/ui";import mo from"react";import{useNavigate as VS}from"react-router-dom";function Su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=VS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(hu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(GS,{variant:"label",size:"medium",color:"$neutral900"},Po.t("Change settings"))),container:_(),onClose:r},mo.createElement(HS,{type:"warning",title:s.type===3?Po.t("High slippage"):Po.t("Low slippage"),description:s.type===3?Po.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Po.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(yu,{size:18}),mo.createElement(yu,{size:32}),mo.createElement(hu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Po.t("Confirm anyway"))))}i(Su,"SlippageWarningModal");import{Button as XS,MessageBox as KS,WarningIcon as jS}from"@rango-dev/ui";import Nr from"react";function Cu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Nr.createElement(re,{footer:Nr.createElement(XS,{type:"primary",size:"large",prefix:Nr.createElement(jS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:_()},Nr.createElement(KS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cu,"UnknownPriceWarningModal");function rn(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},f=o?.type===0||o?.type===1,d=gu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),je.createElement(je.Fragment,null,f&&je.createElement(on,{error:o,fetch:s}),!!d&&je.createElement(pu,null,je.createElement(ZS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:je.createElement(uu,{onClick:l},je.createElement(RS,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:je.createElement(JS,{size:"xxsmall",type:d.alertType,onClick:c},YS.t("Change"))}})),e&&je.createElement(je.Fragment,null,e.type===0&&je.createElement(fu,{...m,warning:e}),(e.type===3||e.type===2)&&je.createElement(Su,{...m,warning:e}),e.type===1&&je.createElement(Cu,{...m,warning:e})))}i(rn,"QuoteWarningsAndErrors");import WC from"bignumber.js";import qr from"react";import{i18n as fo}from"@lingui/core";import{Alert as yC,Divider as Do,FullExpandedQuote as SC,InfoIcon as CC,NumericTooltip as Ju,QuoteTag as TC,StepDetails as kC,TokenAmount as vC,Typography as $o}from"@rango-dev/ui";import ja from"bignumber.js";import F,{useRef as wC,useState as xC}from"react";import{styled as za}from"@rango-dev/ui";var qa=za("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Tu=za("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ku=za("div",{width:"100%",display:"flex"});import*as Wr from"@radix-ui/react-collapsible";import{Button as eC,css as an,darkTheme as be,Image as vu,styled as Oe,Typography as tC}from"@rango-dev/ui";var oC=300,wu=Oe(Wr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xu=an({padding:"$10 $15"}),bu=Oe(eC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Eu=Oe("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",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}}}}]}),Iu=an({width:"100%",padding:"$15 $15 $10 $15"}),Au=an({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_o=an({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Nu=an({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wu=Oe(Wr.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:{[`& ${vu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${vu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Mu=Oe("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"}}}}),Lu=Oe(pr,{width:"100%",background:"inherit"}),Ha=Oe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${oC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),OB=Oe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Bu=Oe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Pu=Oe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ga=Oe(tC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),_u=Oe("div",{display:"flex",flexWrap:"wrap"}),Va=Oe("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"}}}}),Du=Oe("div",{display:"flex"}),Mr=Oe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as kt}from"@lingui/core";import{ChevronDownIcon as rC,CloseIcon as iC,Divider as Pr,IconButton as aC,NumericTooltip as sC,QuoteCost as lC,Typography as ct}from"@rango-dev/ui";import R,{useState as Uu}from"react";import{css as nC,styled as Lr}from"@rango-dev/ui";var Br=Lr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Xa=Lr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),$u=Lr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Fu=Lr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Ou=nC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var pC=i(t=>t.fee.isZero()?null:R.createElement(Br,null,R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(ct,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Qu(t){let[e,o]=Uu(!1),[n,r]=Uu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=_(),d=kp(m);return R.createElement(R.Fragment,null,R.createElement(lC,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?kt.t("View more info"):void 0,tooltipContainer:f}),R.createElement(re,{container:f,open:e,header:R.createElement(Fu,null,R.createElement(ct,{variant:"title",size:"medium"},kt.t("Gas & Fee Explanation")),R.createElement(aC,{onClick:()=>o(!1),variant:"ghost"},R.createElement(iC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement($u,null,R.createElement(ct,{variant:"title",size:"small"},kt.t("Details")),R.createElement(Pr,{size:10}),Object.entries(d.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Xi(C);return R.createElement(Br,{key:T},R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},qi(g,kt.t)),R.createElement(sC,{content:C.amount,container:f},R.createElement(ct,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),R.createElement(Br,{className:"total_payable_fee"},R.createElement(ct,{variant:"label",size:"medium"},kt.t("Total Payable Fee")),R.createElement(ct,{variant:"label",size:"medium"},"$",M(l,4,4))),R.createElement(Xa,null),Object.keys(d.nonePayable).length&&R.createElement(mr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:R.createElement("div",{className:Ou()},R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},n?kt.t("Hide non-payable fees"):kt.t("Show non-payable fees")),R.createElement(Pr,{size:4,direction:"horizontal"}),R.createElement(cr,{orientation:n?"up":"down"},R.createElement(rC,{size:12,color:"gray"}))),open:n},R.createElement(ct,{size:"small",variant:"title"},kt.t("Description")),R.createElement(Pr,{size:4}),R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},kt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),R.createElement(Pr,{size:10}),Object.entries(d.nonePayable).map(([g,S],C)=>{let y=Tp(S),T=qi(g,kt.t),k=`non-payable-fee-${C}`;return R.createElement(pC,{key:k,fee:y,label:T})}),R.createElement(Xa,null)))))}i(Qu,"QuoteCostDetails");import{i18n as Hu}from"@lingui/core";import{TokenAmount as Gu}from"@rango-dev/ui";import _r from"react";import{css as cC,styled as uC}from"@rango-dev/ui";var zu=uC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qu=cC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function sn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return _r.createElement(zu,null,_r.createElement(Gu,{direction:"horizontal",label:Hu.t("Swap input"),type:"input",tooltipContainer:_(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),_r.createElement("div",{className:qu()}),_r.createElement(Gu,{direction:"horizontal",tooltipContainer:_(),label:Hu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(sn,"QuoteSummary");import{i18n as Yu}from"@lingui/core";import{ChevronDownIcon as fC,ChevronRightIcon as gC,Divider as Ka,Image as hC,Tooltip as Ur,Typography as $r}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as mC,useState as ln}from"react";var Vu=480,Xu=768,Ku=1024,ju=1200,dC=i(()=>{let[t,e]=ln(!1),[o,n]=ln(!1),[r,a]=ln(!1),[s,l]=ln(!1),[p,u]=ln(!1),c=i(()=>{e(window.innerWidth<=Vu),n(window.innerWidth>Vu&&window.innerWidth<=Xu),a(window.innerWidth>Xu&&window.innerWidth<=Ku),l(window.innerWidth>Ku&&window.innerWidth<=ju),u(window.innerWidth>ju)},"handleResize");return mC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Dr=dC;var Fr=4,Or=6,pn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||_();return O.createElement(Ur,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Mu,{className:n,state:a},O.createElement(hC,{src:o,size:16})))},"ImageComponent");function Zu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||_(),u=r.length,c=Fp(r),{isTablet:m,isMobile:f}=Dr();return O.createElement(Wu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},O.createElement("div",{className:_o()},O.createElement($r,{variant:"body",size:"xsmall"},Yu.t("Via:")),O.createElement(Ka,{direction:"horizontal",size:4}),r.map((d,g)=>{let S=`item-${g}`,C=O.createElement(Ha,null,O.createElement(gC,{size:12,color:"black"}));return f||m?O.createElement(O.Fragment,{key:S},O.createElement(pn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):O.createElement(O.Fragment,{key:S},u<=Fr||u>Fr&&g<Fr-1?O.createElement(O.Fragment,null,O.createElement(pn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):g===Fr-1&&O.createElement(Ur,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&O.createElement(O.Fragment,{key:k},O.createElement(pn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&O.createElement(O.Fragment,null,C))}))},O.createElement(Va,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},O.createElement($r,{size:"xsmall",variant:"body"},"+",u-g))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement($r,{variant:"body",size:"xsmall"},Yu.t("Chains:")),O.createElement(Ka,{direction:"horizontal",size:4}),c.map((d,g)=>O.createElement(O.Fragment,{key:d.displayName},c.length<=Or||c.length>Or&&g<Or-1?O.createElement(Ur,{container:p,side:"bottom",content:d.displayName,sideOffset:4},O.createElement(pn,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===Or-1&&O.createElement(Ur,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},c.map((S,C)=>C>=g&&O.createElement(pn,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},O.createElement(Va,{className:"blockchainImage"},O.createElement($r,{size:"xsmall",variant:"body"},"+",c.length-g))))),O.createElement(Ka,{direction:"horizontal",size:32}))),O.createElement(Ha,{orientation:a?"up":"down"},O.createElement(fC,{size:12,color:"black"}))))}i(Zu,"QuoteTrigger");function Ya(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:f}=t,d=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=xC(t.expanded),I=wC(null),N=M(o.value,6,6),x=M(n.value,6,6),w=n.usdValue?M(n.usdValue,4,4):"",b=Re(o.usdValue,n.usdValue??null),E=M(b,2,2),P=It(b??0),Q=i((ge,Ce)=>ge.map((D,L)=>{let me,se=r?.type===3&&r.swap.swapperId===D.swapperId,_e=r?.type===4&&r.recommendedSlippages?.has(L),st=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ge=st;De?me="error":Ge&&(me="warning");let Ve=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Ve=fo.t("Bridge Limit Error")),{swapper:{displayName:qo(D.swapperId,S),image:D.swapperLogo},from:{token:{displayName:D.from.symbol,image:D.from.logo},chain:{displayName:Ze(D.from.blockchain,d),image:D.from.blockchainLogo},price:{value:L===0&&!Ce?M(o.value,6,6):M(D.fromAmount,6,6),usdValue:M((D.from.usdPrice??0)*parseFloat(D.fromAmount),4,4),realValue:L===0?o.value:D.fromAmount,realUsdValue:new ja(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Ze(D.to.blockchain,d),image:D.to.blockchainLogo},price:{value:M(D.toAmount,6,6),usdValue:M((D.to.usdPrice??0)*parseFloat(D.toAmount),4,4),realValue:D.toAmount,realUsdValue:new ja(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:me,alerts:De||Ge?F.createElement(Tu,{dense:m},F.createElement(yC,{variant:"alarm",type:De?"error":"warning",title:Ve,footer:F.createElement(ku,null,se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M(D.fromAmount,6,6),symbol:D?.from.symbol}}))),(_e||st)&&!se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(L)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(L)}}})),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Ho(D.estimatedTimeInSeconds),fee:M(Vi(D,g),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=f||_(),G=Up(t.quote.tags||[]),B=!!c,Z=Ho(Pn(e?.swaps)),ie=Jn(e?.swaps??[],g),J=M(ie,2,2),ne=ie.gte(new ja(fp));return m?F.createElement(SC,{selected:l,fee:J,time:Z,tooltipContainer:zo(),steps:A,tags:G,feeWarning:ne,percentageChange:E,warningLevel:P,outputPrice:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Eu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Iu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(Du,null,G.map((ge,Ce)=>{let D=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:D},F.createElement(TC,{label:ge.label,value:ge.value}),F.createElement(Do,{size:4,direction:"horizontal"}))})),F.createElement(Mr,null),!B&&F.createElement(Do,{size:4})):null,F.createElement("div",{id:"portal-root",className:Au()},F.createElement(Qu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&F.createElement(bu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement($o,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Nu()},F.createElement(Pu,null,F.createElement(CC,{size:12,color:"gray"})),F.createElement(_u,null,F.createElement(Ga,{size:"small",variant:"body"},`${N} ${A[0].from.token.displayName} = `),F.createElement(Ju,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(Ga,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(Ju,{content:n.usdValue,container:j},F.createElement(Do,{size:2,direction:"horizontal"}),F.createElement($o,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&F.createElement(vC,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[z-1].to.token.displayName,image:A[z-1].to.token.image},chain:{image:A[z-1].to.chain.image},percentageChange:E,warningLevel:P}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(sn,{from:A[0].from,to:A[z-1].to,percentageChange:E,warningLevel:P}),F.createElement(Do,{size:4}))),F.createElement(wu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},F.createElement(Zu,{type:s,quoteRef:I,selected:l,setExpanded:v,container:j,expanded:k,steps:A}),F.createElement(Lu,{open:k},F.createElement(Bu,null),F.createElement("div",{className:xu()},A.map((ge,Ce)=>{let D=`item-${Ce}`;return F.createElement(kC,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}i(Ya,"Quote");import{Divider as AC,Skeleton as NC}from"@rango-dev/ui";import Mt from"react";import{darkTheme as bC,styled as Qr}from"@rango-dev/ui";var Ru=Qr("div",{$$color:"$colors$neutral100",[`.${bC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),em=Qr("div",{paddingTop:"$2"}),tm=Qr("div",{paddingLeft:"$8"}),om=Qr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as mm,Divider as ut,Skeleton as Ye}from"@rango-dev/ui";import H from"react";import{css as EC,styled as Wt}from"@rango-dev/ui";var Za=Wt("div",{display:"flex"}),nm=Wt("div",{padding:"$10 $0 $20"}),rm=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),im=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),am=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),sm=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),lm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),pm=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),cm=Wt("div",{padding:"$15 $0 $15 $0"}),um=EC({display:"flex",justifyContent:"space-between",alignItems:"center"});function cn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(am,null,H.createElement(lm,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ut,{size:8,direction:"horizontal"}),H.createElement(pm,null,H.createElement(Ye,{height:10,width:60,variant:"rounded"}),H.createElement(ut,{size:4}),H.createElement(Ye,{height:15,variant:"rounded"}))),H.createElement(Ye,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Za,null,H.createElement(Ye,{width:65,height:20,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Ye,{width:65,height:20,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Ye,{width:65,height:20,variant:"rounded"})),H.createElement(Mr,null),!r&&H.createElement(ut,{size:4})),H.createElement("div",{className:um()},H.createElement(Za,null,H.createElement(Ye,{width:60,height:10,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Ye,{width:60,height:10,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Ye,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ye,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(nm,null,H.createElement(Ye,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(rm,null,H.createElement(im,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ut,{direction:"horizontal",size:4}),H.createElement(Ye,{height:15,width:150,variant:"rounded"})),H.createElement(ut,{size:10}),H.createElement(Ye,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(ut,{size:4}),H.createElement(cm,null,n,H.createElement(sm,null),n),H.createElement(ut,{size:12})))}i(cn,"QuoteSummarySkeleton");import{ChainToken as ym,Divider as Ra,NextIcon as IC,Skeleton as zr}from"@rango-dev/ui";import Ee from"react";import{styled as un}from"@rango-dev/ui";var dm=un("div",{display:"flex",alignItems:"start"}),fm=un("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ja=un("div",{display:"flex",alignItems:"center",flexGrow:1}),gm=un("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),hm=un("div",{display:"flex",alignItems:"center"});function vt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(hm,null,Ee.createElement(zr,{height:22,width:22,variant:"circular"}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:15,width:148,variant:"rounded"})),Ee.createElement(dm,null,Ee.createElement(om,{hideSeparator:!e}),Ee.createElement(fm,{extraSpace:e},Ee.createElement(Ja,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:12,variant:"rounded"})),Ee.createElement(gm,null,Ee.createElement(IC,{color:"gray",size:16})),Ee.createElement(Ja,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:12,variant:"rounded"})))))}i(vt,"StepSkeleton");function mn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(Ru,{expanded:o,rounded:e!=="basic"},Mt.createElement(cn,{type:e,tagHidden:n}),Mt.createElement(em,null,Mt.createElement(NC,{height:15,variant:"rounded"})),o&&Mt.createElement(tm,null,Mt.createElement(AC,{size:24}),Mt.createElement(vt,null),Mt.createElement(vt,null),Mt.createElement(vt,{separator:!1})))}i(mn,"QuoteSkeleton");function go(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:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=Y(),y=e?.outputAmount?new WC(e?.outputAmount):null,T=e?.outputAmount?er(e?.outputAmount,or(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?qr.createElement(qa,null,qr.createElement(mn,{tagHidden:l,type:o,expanded:s})):v?qr.createElement(qa,{onClick:()=>p?.(e)},qr.createElement(Ya,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as PC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as _C}from"react";import{useRef as MC,useState as LC}from"react";var BC=2e3;function Hr({request:t}){let[e,o]=LC(!1),n=MC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,BC)),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(Hr,"useFetch");function Sm(){let{fetch:t,loading:e,cancelFetch:o}=Hr({request:async(n,r)=>await Ot().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Sm,"useFetchConfirmQuote");function Gr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=es(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Gr,"throwErrorIfResponseIsNotValid");function es(t){if(yp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Sp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=vp(t);if(o){let n=Rn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(es,"getQuoteError");function Cm(t,e,o){let n=!1;t&&(n=$p(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=wo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Ap(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(vo(e)),percentageChange:M(Re(vo(t)??"",vo(e)??""),null,2)}:Ki(t,e)?r.quoteUpdate={type:0}:ji(t,e)?r.quoteUpdate={type:1}:Yi(t,e)&&(r.quoteUpdate={type:2}));let s=Np(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Cm,"generateWarnings");function Vr(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(Vr,"handleQuoteErrors");function ts(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Y(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=Sm();return _C(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,I=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),x={requestId:r?.requestId||"",selectedWallets:N,destination:I||void 0};try{return await S(x,!0).then(w=>{let{result:b}=w;Gr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let E={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(E);let P={slippage:g.toString(),disabledSwappersGroups:c},Q=Cm(r??void 0,E,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=PC(o.toString(),b,Ep(v),P,!A,{blockchains:m,tokens:f});return{quote:E,swap:z,error:null,warnings:Q}})}catch(w){return Vr(w)}},"fetch"),cancelFetch:C}}i(ts,"useConfirmSwap");var HC=FC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${km}`]:{width:"$48",height:"$48"}}),GC=rs({flexGrow:1,paddingRight:"$10"}),VC=rs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),XC=rs({display:"flex",justifyContent:"space-between",alignItems:"center"});function vm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Y(),s=qC(),[l,p]=dn(""),u=!n,[c,m]=dn(!1),[f,d]=dn(!1),{isActiveTab:g}=ae(),S=h().getDisabledLiquiditySources(),C=zC(S),{manager:y}=DC(),{fetch:T,loading:k,cancelFetch:v}=ts(),[I,N]=dn({swap:null,error:null,warnings:null}),[x,w]=dn(!1),b=i(async({selectedWallets:B,customDestination:Z})=>{let ie=await T?.({selectedWallets:B,customDestination:Z});return N(ie),ie},"onConfirmSwap"),E=i(async()=>{if(I.swap&&n)try{await y?.create("swap",{swapDetails:I.swap},{id:I.swap.requestId});let B=`../${q.swaps}/${I.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),P=i(async()=>{d(!0),await E(),d(!1)},"onConfirm"),Q=i(async()=>{I?.warnings?.quote&&!a?w(!0):await P()},"onStartConfirmSwap"),A=i(async()=>{N({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(B=>{N(B)}).catch(B=>console.error(B))},"onRefresh");Xr(()=>{!!C.current.length&&!S.length&&A(),C.current=S},[S.length]),Xr(()=>{u&&v()},[u]),Xr(()=>{u&&m(u)},[u]),Xr(()=>{u||T({selectedWallets:o,customDestination:r}).then(B=>N(B)).catch(B=>console.error(B))},[]),QC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=I.warnings?.quote??null,j=I.error,G=[];if(l&&G.push(Ie.createElement(Tm,{type:"error",variant:"alarm",title:l})),I.warnings?.quoteUpdate&&G.push(Ie.createElement(Tm,{variant:"alarm",type:"warning",title:I.warnings.quoteUpdate&&sr(I.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(rn,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await E()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:os.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(HC,null,Ie.createElement("div",{className:GC()},Ie.createElement($C,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!I.error||!g,onClick:Q},os.t("Start Swap"))),Ie.createElement(km,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},Ie.createElement(UC,{size:24})))},c&&Ie.createElement(tu,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),Ie.createElement(fe,null,Ie.createElement("div",{className:XC()},Ie.createElement(OC,{variant:"title",size:"small"},os.t("You get")),Ie.createElement("div",{className:VC()},Ie.createElement(yr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(ns,{size:"12"}),lc(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(ns,{size:10})),G.length>0?Ie.createElement(ns,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:I.error,loading:k,warning:I.warnings?.quote??null})))}i(vm,"ConfirmSwapPage");import{i18n as jr}from"@lingui/core";import{useManager as pT}from"@rango-dev/queue-manager-react";import{Divider as Bm,NotFound as cT,styled as uT}from"@rango-dev/ui";import Bt,{useState as mT}from"react";import{useNavigate as dT}from"react-router-dom";import{i18n as YC}from"@lingui/core";import{Divider as Im,GroupedVirtualizedList as ZC,Skeleton as JC,SwapListItem as Am,Typography as RC}from"@rango-dev/ui";import Ue,{useCallback as Nm,useEffect as eT,useRef as tT,useState as oT}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 KC,darkTheme as jC,styled as fn}from"@rango-dev/ui";var is=KC(),xm=fn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),as=fn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${is}`]:{$$color:"$colors$neutral600",[`.${jC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ss=fn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bm=fn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Em=fn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var nT=10;function ls(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=oT([]),l=tT(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Nm(wm,[]),f=Nm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,nT),s(m(u,l.current)))},[e.length]);if(eT(()=>{r||f()},[r,f]),r){let d=[1,2];return Ue.createElement(Ue.Fragment,null,[d,d].map((S,C)=>Ue.createElement(as,{key:C},Ue.createElement(ss,null,Ue.createElement(JC,{variant:"text",width:60,size:"small"}),Ue.createElement(Im,{size:16})),Ue.createElement(Im,{size:4}),Ue.createElement(bm,null,S.map((T,k)=>Ue.createElement(Am,{isLoading:!0,key:k}))))))}return Ue.createElement(ZC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>Ue.createElement(as,null,Ue.createElement(ss,null,Ue.createElement(RC,{variant:"label",size:"medium",className:is()},c[d]))),itemContent:(d,g)=>{let S=p[d];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return Ue.createElement(xm,{key:S.requestId},Ue.createElement(Am,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:_(),onlyShowTime:c[g]===YC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(S.inputAmount,6,6),realAmount:S.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(ls,"HistoryGroupedList");import{CloseIcon as iT,IconButton as aT,SearchIcon as sT,TextField as lT}from"@rango-dev/ui";import gn from"react";import{styled as rT}from"@rango-dev/ui";var Wm=rT("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 gn.createElement(lT,{prefix:gn.createElement(Wm,null,gn.createElement(sT,{color:"black"})),suffix:!!s.length&&gn.createElement(aT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},gn.createElement(iT,{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 Kr}from"@lingui/core";import Mm from"dayjs";var Lm=i(t=>{let e=new Map([["today",{title:Kr.t("Today"),swaps:[]}],["week",{title:Kr.t("This week"),swaps:[]}],["month",{title:Kr.t("This month"),swaps:[]}],["year",{title:Kr.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=Mm();t.forEach(p=>{let u=Number(p.creationTime),c=Mm(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 fT=uT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),gT=i((t,e)=>t?.length?t.filter(o=>yt(o.fromBlockchain,e)||yt(o.toBlockchain,e)||yt(o.toSymbol,e)||yt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Pm(){let t=dT(),{manager:e,state:o}=pT(),n=ot(e).map(({swap:c})=>c),[r,a]=mT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>yt(c.inputAmount,r)||yt(c.status,r)||gT(c.steps,r)||yt(c.requestId,r)));let u=!p?.length&&!s;return Bt.createElement(ce,{header:{title:jr.t("History")}},Bt.createElement(fe,null,Bt.createElement(Lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:jr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Bt.createElement(Bm,{size:"16"}),Bt.createElement(fT,null,u&&Bt.createElement(Em,null,Bt.createElement(Bm,{size:32}),Bt.createElement(cT,{title:jr.t("No results found"),description:r?jr.t("Try using different keywords"):""})),!u&&Bt.createElement(ls,{list:p,onSwapClick:t,groupBy:Lm,isLoading:s}))))}i(Pm,"HistoryPage");import{i18n as PT}from"@lingui/core";import{Button as _T,Divider as Jm,styled as DT,WarningIcon as $T}from"@rango-dev/ui";import FT from"bignumber.js";import qe,{useEffect as Rm,useState as ed}from"react";import{useNavigate as OT}from"react-router-dom";import{i18n as kT}from"@lingui/core";import{Header as vT}from"@rango-dev/ui";import Vt,{useEffect as wT,useState as xT}from"react";import{i18n as yT}from"@lingui/core";import{Divider as cs,FullExpandedQuote as ST,Typography as CT}from"@rango-dev/ui";import ye from"react";import{styled as ps}from"@rango-dev/ui";var _m=ps("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Dm=ps("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),$m=ps("div",{width:"146px"});import{i18n as hn}from"@lingui/core";import{Select as hT}from"@rango-dev/ui";import Fm from"react";function Yr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),n=[{value:"SMART",label:hn.t("Smart Routing")},{value:"FEE",label:hn.t("Lowest Fee")},{value:"SPEED",label:hn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:hn.t("Maximum Return")},{value:"PRICE",label:hn.t("Maximum Output")}];return Fm.createElement($m,null,Fm.createElement(hT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Yr,"SelectStrategy");var Om=3;function yn(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:f,sortStrategy:d,error:g}=Y(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||_(),k=!!u&&u.results.length,v=C??S,I=i(w=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...w};return wo(b,{fromToken:m,toToken:f,userSlippage:v,findToken:y})},"getQuoteWarning"),N=g?.type===0||g?.type===1,x=u?.results?rr(d,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(Dm,null,ye.createElement(CT,{size:"xmedium",variant:"title"},yT.t("Sort by")),ye.createElement(Yr,{container:T})),ye.createElement(cs,{size:"10"})),e&&Array.from({length:Om},(w,b)=>ye.createElement(ye.Fragment,{key:b},s?ye.createElement(ST,{loading:!0}):ye.createElement(mn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Om-1&&ye.createElement(cs,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?x.map((w,b)=>{let E=I(w),P=es(w.swaps),Q=x.length-1===b;return ye.createElement(ye.Fragment,{key:w.requestId},ye.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:P?.options||null,warning:E,fullExpandedMode:s,onClick:A=>{P||c("warning",E),c("error",P?.options||null),o(A)},type:"list-item"}),!Q&&ye.createElement(cs,{size:16}))}):N&&ye.createElement(_m,null,ye.createElement(on,{size:s?"large":"small",error:g,fetch:n}))))}i(yn,"Quotes");import{darkTheme as TT,styled as Um}from"@rango-dev/ui";var Qm=Um("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${TT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),zm=Um("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var bT=100;function us(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=xT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=zo();return wT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},bT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Qm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Tr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(vT,{title:kT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Yr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(zm,null,Vt.createElement(yn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:zo(),onClickOnQuote:n,fullExpandedMode:c})))}i(us,"ExpandedQuotes");import{i18n as jm}from"@lingui/core";import{SwapInput as Ym}from"@rango-dev/ui";import Sn from"react";import{ReverseIcon as AT}from"@rango-dev/ui";import ds from"react";import{keyframes as ET,styled as qm}from"@rango-dev/ui";var ms=450,IT=ET({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Hm=qm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gm=qm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${IT} ${ms}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 fs(){let t=Y.use.switchFromAndTo();return ds.createElement(Hm,null,ds.createElement(Gm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ms),t()}},ds.createElement(AT,{size:12})))}i(fs,"SwitchFromAndToButton");import{styled as Vm}from"@rango-dev/ui";var Xm=Vm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Km=Vm("div",{position:"relative"});function gs(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:f,outputUsdValue:d,selectedQuote:g}=Y(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Un(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",v=!!s&&Fl(S,s.name),I=!Gi(g,c,m),N=!Gi(g,c,d),x=!m||!d||!d.gt(0)?null:Re(m.toString(),d.toString());return Sn.createElement(Xm,null,Sn.createElement(Km,null,Sn.createElement(Ym,{label:jm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:I?void 0:M(m,4,4),realUsdValue:I?void 0:m?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:_(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),Sn.createElement(fs,null)),Sn.createElement(Ym,{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:M(Re(m,d),2,2),warningLevel:It(x??0),price:{value:M(f,6,6),usdValue:N?void 0:M(d,4,4),realValue:f?.toString(),realUsdValue:N?void 0:d?.toString(),error:N?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:_()}))}i(gs,"Inputs");import{useCallback as NT,useEffect as WT,useRef as MT,useState as LT}from"react";function Zm(){let{fetch:t,loading:e,cancelFetch:o}=Hr({request:async(n,r)=>await Ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Zm,"useFetchAllQuotes");var BT=600;function Zr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Zm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=Y(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:I,affiliateWallets:N,fetchStatus:x}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),E=h().excludeLiquiditySources(),{findToken:P}=h(),[Q,A]=LT(!0),z=MT(u),j=k??T,B=!l||!p||Rt(l,p)||!Go(u),Z=i(ne=>{A(ne)},"resetState"),ie=i(ne=>{let{fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:st,affiliatePercent:De,affiliateWallets:Ge}=ne;if(Q||Z(!0),!B&&ge&&Ce){d();let Ve=bp({fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:st,affiliatePercent:De,affiliateWallets:Ge,enableCentralizedSwappers:a});Zl("experimentalRoute",r)&&(Ve.experimental=!0),e(Ve).then(ve=>{let de=rr(f,ve.results),W=Op(m,de,ve.requestAmount);A(!1),y("quotes",ve),C(W),Gr({diagnosisMessages:ve.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&wo(W,{fromToken:ge,toToken:Ce,userSlippage:j,findToken:P});y("warning",V)}).catch(ve=>{let{error:de}=Vr(ve);(de?.type===0||de?.type===1)&&d(),de?.type!==2&&(y("error",de),A(!1))})}},"fetch"),J=NT(xl(ne=>{ie(ne)},BT),[B]);return WT(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(m||g||S)&&d();return}if(!Go(u)||c?.eq(0)){Z(!1),o();return}d(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:N}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,w?.length,n,b.length,j,I,v,JSON.stringify(N)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:N}),loading:Q}}i(Zr,"useSwapInput");var UT=DT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),QT=300;function td(){let t=OT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=Y(),[d,g]=ed(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Dr(),{fetch:y,loading:T}=Zr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:I}=te(),{isActiveTab:N}=ae(),[x,w]=ed(!1),E=Cp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),P=Gl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new FT(n).gt(0)&&!Pp(e,o),A=Q&&v==="success"&&T,G=(!P||P&&p?.results.length)&&(l||s);Rm(()=>{c(),f("refetchQuote",!0)},[]),Rm(()=>{g(Q)},[Q]);let B=(r||s)&&!x?y:void 0,Z=i(J=>{P&&d?(g(!1),setTimeout(()=>{t(J)},QT)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(w(!1),u(J))},"onClickOnQuote");return qe.createElement(UT,null,qe.createElement(ce,{height:"auto",footer:qe.createElement(_T,{type:"primary",size:"large",disabled:E.disabled||!N,prefix:E.action==="confirm-warning"&&qe.createElement($T,null),fullWidth:!0,onClick:()=>{E.action==="connect-wallet"?Z(q.wallets):E.action==="confirm-warning"?w(!0):Z(q.confirmSwap)}},E.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||PT.t("Swap"),suffix:qe.createElement(ao,{hidden:P?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},qe.createElement(fe,null,qe.createElement(gs,{fetchingQuote:A,fetchMetaStatus:v,isExpandable:P,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),qe.createElement(Jm,{size:"2"}),P?null:qe.createElement(go,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),Z(q.routes)}:void 0}),G?qe.createElement(qe.Fragment,null,qe.createElement(Jm,{size:"10"}),qe.createElement(rn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:x,confirmationDisabled:!N,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),Z(q.confirmSwap)},onChangeSettings:()=>Z(q.settings)})):null)),P?qe.createElement(us,{loading:A,onClickOnQuote:ie,fetch:y,onClickRefresh:B,isVisible:d}):null)}i(td,"Home");import{i18n as od}from"@lingui/core";import{Alert as zT,Divider as qT,List as HT,ListItemButton as GT,Radio as VT,RadioRoot as XT,Typography as KT}from"@rango-dev/ui";import wt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Rl,r=o?.language||ko;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||ko),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function nd(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=tt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:wt.createElement(KT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:wt.createElement(VT,{value:s}),start:wt.createElement(p,null)}});return wt.createElement(ce,{header:{title:od.t("Language")}},wt.createElement(fe,null,wt.createElement(zT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),wt.createElement(qT,{size:"8"}),wt.createElement(XT,{value:t},wt.createElement(HT,{type:wt.createElement(GT,{title:od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(nd,"LanguagePage");import{i18n as Pt}from"@lingui/core";import{Button as RT,Checkbox as ek,Image as tk,ListItemButton as ok,NotFound as nk,Typography as rk}from"@rango-dev/ui";import Qe,{useState as ik}from"react";import{Checkbox as ZT,Skeleton as id}from"@rango-dev/ui";import Tn from"react";import{styled as hs}from"@rango-dev/ui";var Cn=hs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ys=hs("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ss=hs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as jT,styled as YT}from"@rango-dev/ui";var rd=YT(jT,{height:61});var JT=30;function Cs(){return Tn.createElement(Cn,null,Array.from(Array(JT),(t,e)=>Tn.createElement(rd,{hasDivider:!0,key:e,start:Tn.createElement(id,{variant:"circular",width:35,height:35}),title:Tn.createElement(id,{variant:"text",size:"large",width:90}),end:Tn.createElement(ZT,{checked:!1})})))}i(Cs,"LoadingLiquiditySourceList");function Ts({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=ik(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Gn(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(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:Qe.createElement(tk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Qe.createElement(ek,{checked:T,disabled:l}),title:Qe.createElement(rk,{variant:"title",size:"xmedium"},Pt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>yt(y.groupTitle,r))),Qe.createElement(ce,{header:{title:Pt.t(t),suffix:Qe.createElement(ys,null,Qe.createElement(RT,{variant:"ghost",size:"xsmall",onClick:d},f?Pt.t("Deselect all"):Pt.t("Select all")))}},Qe.createElement(fe,{view:!0},Qe.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Pt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Qe.createElement(Cs,null),!C.length&&r?Qe.createElement(Ss,null,Qe.createElement(nk,{title:Pt.t("No results found"),description:Pt.t("Try using different keywords")})):e==="success"&&Qe.createElement(Cn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return Qe.createElement(Qe.Fragment,{key:y.id},Qe.createElement(ok,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ts,"LiquiditySourcePage");import{i18n as ak}from"@lingui/core";import Jr from"react";import{useNavigate as sk}from"react-router-dom";function ad(){let t=sk(),e=tt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=Zr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Jr.createElement(ce,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:ak.t("Routes"),suffix:Jr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Jr.createElement(fe,null,Jr.createElement(yn,{fetch:l,loading:p,onClickOnQuote:u})))}i(ad,"RoutesPage");import{i18n as fd}from"@lingui/core";import{Divider as gd,getCategoriesCount as hk,SelectableCategoryList as yk}from"@rango-dev/ui";import _t,{useState as hd}from"react";import{i18n as ks}from"@lingui/core";import{Divider as md,Image as uk,ListItemButton as mk,NotFound as dk,Typography as dd}from"@rango-dev/ui";import rt,{useEffect as fk,useState as gk}from"react";var sd=i((t,e,o)=>t.filter(n=>Mn(n.type,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as lk,styled as ld}from"@rango-dev/ui";var pd=ld("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Rr=ld(Zo,{padding:0,margin:0,listStyle:"none",[`& ${lk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as pk,Skeleton as cd}from"@rango-dev/ui";import ei from"react";var ck=20;function ud(){return ei.createElement(Rr,null,Array.from(Array(ck),t=>ei.createElement(pk,{key:t,hasDivider:!0,start:ei.createElement(cd,{variant:"circular",width:35,height:35}),title:ei.createElement(cd,{variant:"text",size:"large",width:90})})))}i(ud,"LoadingBlockchainList");function vs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=gk(e),{fetchStatus:l}=h();fk(()=>{s([...sd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?rt.createElement(rt.Fragment,null,rt.createElement(md,{size:32}),rt.createElement(dk,{title:ks.t("No results found"),description:ks.t("Try using different keywords")})):rt.createElement(Rr,{as:"ul",key:`${r}-${o}`},a.map(u=>rt.createElement(mk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:rt.createElement(uk,{src:u.logo,size:30}),title:rt.createElement(dd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return rt.createElement(pd,null,rt.createElement(dd,{variant:"label",size:"large"},ks.t("Select Blockchain")),rt.createElement(md,{size:4}),l==="loading"&&rt.createElement(ud,null),l==="success"&&p())}i(vs,"BlockchainList");function ws(t){let{type:e}=t,o=tt(),[n,r]=hd(""),[a,s]=hd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=hk(c)!==1;return _t.createElement(ce,{header:{title:fd.t("Select Blockchain")}},_t.createElement(fe,{view:!0},f&&_t.createElement(_t.Fragment,null,_t.createElement(yk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),_t.createElement(gd,{size:24})),_t.createElement(Lt,{value:n,autoFocus:!0,placeholder:fd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),_t.createElement(gd,{size:16}),_t.createElement(vs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ws,"SelectBlockchainPage");import{i18n as ii}from"@lingui/core";import{Divider as $d}from"@rango-dev/ui";import ho,{useState as Pk}from"react";import{useNavigate as _k}from"react-router-dom";import{i18n as Es}from"@lingui/core";import{BlockchainsChip as ti,Divider as Td,Image as kd,Skeleton as vk,Tooltip as wk,Typography as Is}from"@rango-dev/ui";import Le from"react";import{useEffect as Tk}from"react";var yd=["ETH","COSMOS","OSMOSIS"];function xs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Sk),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(Ck(s)),r=n.splice(a)}return{list:n,more:r}}i(xs,"prepare");function Sk(t,e){let o=yd,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(Sk,"sortByMostUsedBlockchains");function Ck(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Ck,"generateSortByPreferredBlockchainsFor");function Sd(t,e){return!!e.list.find(o=>o.name===t)}i(Sd,"isInVisibleList");function bs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Tk(()=>{if(e?.selected){let a=xs(t,o,e);Sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=xs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(bs,"usePrepareBlockchainList");import{styled as kk}from"@rango-dev/ui";var Cd=kk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var xk=12;function As(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=bs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Le.createElement(Le.Fragment,null,Le.createElement(Td,{size:12}),Le.createElement(Is,{variant:"label",size:"large"},Es.t("Select Blockchain")),Le.createElement(Td,{size:12}),Le.createElement(Cd,null,l==="loading"&&Array.from(Array(xk),d=>Le.createElement(vk,{key:d,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(ti,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(Is,{variant:"body",size:"xsmall",color:"secondary500"},Es.t("All"))),s.list.map(d=>Le.createElement(wk,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:_()},Le.createElement(ti,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Le.createElement(kd,{src:d.logo,size:30})))),m?Le.createElement(ti,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(kd,{src:s.more[0].logo,size:30})):null,f?Le.createElement(ti,{onClick:a,key:"more-blockchains"},Le.createElement(Is,{variant:"body",size:"xsmall",color:"secondary500"},Es._("More +{count}",{count:s.more.length}))):null)))}i(As,"BlockchainsSection");import{i18n as Fs}from"@lingui/core";import{darkTheme as Ld,Divider as Oo,ExternalLinkIcon as Ik,Image as Ak,ListItemButton as Nk,NotFound as Wk,PinIcon as Mk,Skeleton as Bd,Typography as ri,VirtualizedList as Lk}from"@rango-dev/ui";import K,{useEffect as Pd,useState as _d}from"react";import{Divider as Wd,ListItem as Ek,Skeleton as kn}from"@rango-dev/ui";import mt from"react";import{css as Fo,darkTheme as vd,ImageContainer as bk,styled as it,Typography as wd}from"@rango-dev/ui";var Ns=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ws=Fo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ms=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ls=Fo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Bs=Fo({}),Ps=Fo(),xd=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),_s=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),oi=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ws}`]:{[`& .${Ls}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Bs}`]:{bottom:"-15px"},[`& .${Ns}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ms}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ds=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),$s=it(wd,{}),bd=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ps}`]:{$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ni=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),wU=it("div",{display:"flex",alignItems:"center"}),Ed=it("div",{position:"relative",[`& ${bk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Id=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ad=it(wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Nd=it("a",{"& svg:hover":{color:"$colors$info"}});function Md(t){return mt.createElement(oi,null,Array.from(Array(t.size),e=>mt.createElement(Ek,{key:e,hasDivider:!0,start:mt.createElement(kn,{variant:"circular",width:35,height:35}),end:mt.createElement(ni,null,mt.createElement(kn,{variant:"text",size:"large",width:70}),mt.createElement(Wd,{size:4}),mt.createElement(kn,{variant:"text",size:"medium",width:50})),title:mt.createElement("div",null,mt.createElement(kn,{variant:"text",size:"large",width:90}),mt.createElement(Wd,{size:4}),mt.createElement(kn,{variant:"text",size:"medium",width:90}))})))}i(Md,"LoadingTokenList");var Os=20,Bk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:Ws()},o?K.createElement("div",{className:Ns()},o):K.createElement(_s,{className:Ms()},K.createElement(ri,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Oo,{direction:"horizontal",size:4}),K.createElement(Ds,{css:a},K.createElement($s,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Ls()} ${!o&&Bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Oo,{size:4,direction:"horizontal"}),K.createElement(Nd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(Ik,{size:12}))))},"renderDesc");function Dd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=_d(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=_d(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Os))},"loadNextPage");Pd(()=>{c(e.length>a.length)},[a.length]),Pd(()=>{s(e.slice(0,Os))},[e.length,r]);let S=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Oo,{size:32}),K.createElement(Wk,{title:Fs.t("No results found"),description:Fs.t("Try using different keywords")})):K.createElement(Lk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Un(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),I=aa(v.color,"main"),N={$$color:I.main150,[`.${Ld} &`]:{$$color:I.main750},backgroundColor:"$$color"},x={$$color:I.main750,[`.${Ld} &`]:{$$color:I.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(Nk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(Ed,null,K.createElement(Ak,{src:y.image,size:30}),d(y,t.type)&&K.createElement(Id,null,K.createElement(Mk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(_s,null,K.createElement(ri,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Oo,{direction:"horizontal",size:4}),K.createElement(Ds,{css:N},K.createElement($s,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?Bk({address:k,token:a[C],customCssForTag:N,customCssForTagTitle:x,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(ni,null,K.createElement(Bd,{variant:"text",size:"large",width:70}),K.createElement(Oo,{size:4}),K.createElement(Bd,{variant:"text",size:"medium",width:50})):T&&K.createElement(bd,null,K.createElement(Ad,{variant:"title",size:"small"},T.amount),K.createElement("div",null),T.usdValue&&K.createElement(ri,{variant:"body",className:Ps(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(xd,null,K.createElement(ri,{variant:"label",size:"large"},Fs.t("Select Token")),K.createElement(Oo,{size:4}),l==="loading"&&K.createElement(Md,{size:Os}),l==="success"&&K.createElement(oi,{as:"ul"},S()))}i(Dd,"TokenList");function Us(t){let{type:e}=t,o=_k(),n=tt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[m,f]=Pk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:ii.t("Source"),destination:ii.t("Destination")};return ho.createElement(ce,{header:{title:ii.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(As,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:v=>{y(v)}}),ho.createElement($d,{size:24}),ho.createElement(Lt,{value:m,autoFocus:!0,placeholder:ii.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:v=>f(v.target.value)}),ho.createElement($d,{size:16}),ho.createElement(Dd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let I=S.find(N=>v.blockchain===N.name);I&&y(I),n()}})))}i(Us,"SelectSwapItemsPage");import{i18n as Hs}from"@lingui/core";import{Alert as av,Button as sv,styled as lv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as pv,useSearchParams as cv}from"react-router-dom";import{i18n as qd}from"@lingui/core";import{Divider as Ok,InfoIcon as Uk,TextField as Qk,Tooltip as zk,Typography as Hd}from"@rango-dev/ui";import dt from"react";import{Chip as Dk,styled as vn,TextField as $k}from"@rango-dev/ui";var Fd=vn("div",{paddingTop:"$5",padding:"$10 $5"}),Od=vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${$k}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ud=vn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ai=vn("div",{maxWidth:"280px",padding:"$10"}),Qd=vn(Dk,{width:"61px",flexShrink:0});import{i18n as Qs}from"@lingui/core";import{Typography as Fk}from"@rango-dev/ui";import wn from"react";function zd(){return wn.createElement(ai,null,wn.createElement(Fk,{variant:"label",size:"medium",color:"neutral700"},Qs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),wn.createElement("br",null),wn.createElement("br",null),wn.createElement("b",null,Qs.t("Warning")),":",Qs.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 zs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return dt.createElement(Fd,null,dt.createElement(Ud,null,dt.createElement(Hd,{variant:"title",size:"xmedium"},qd.t("Slippage tolerance per swap")),dt.createElement(Ok,{direction:"horizontal",size:4}),dt.createElement(zk,{container:_(),side:"top",sideOffset:4,content:dt.createElement(zd,null)},dt.createElement(Uk,{color:"gray"}))),dt.createElement(Od,null,ep.map((r,a)=>{let s=`slippage-${a}`;return dt.createElement(Qd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),dt.createElement(Qk,{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>=rp&&s<=np?n(s):n(null)},suffix:o&&dt.createElement(Hd,{variant:"body",size:"small"},"%"),placeholder:qd.t("Custom")})))}i(zs,"Slippage");import{i18n as xt}from"@lingui/core";import{AutoThemeIcon as Gd,BridgesIcon as qk,ChevronRightIcon as qs,DarkModeIcon as Vd,Divider as si,ExchangeIcon as Hk,InfinityIcon as Gk,InfoIcon as Vk,LanguageIcon as Xk,LightModeIcon as Xd,List as Kk,ListItem as jk,ListItemButton as Yk,Skeleton as Zk,styled as Jk,Switch as Rk,Tabs as ev,Tooltip as tv,Typography as at}from"@rango-dev/ui";import U from"react";import{useNavigate as ov}from"react-router-dom";var nv=Jk("div",{width:"202px",height:"$40"}),rv=[{id:"light",icon:U.createElement(Xd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},xt.t("Light"))},{id:"dark",icon:U.createElement(Vd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},xt.t("Dark"))},{id:"auto",icon:U.createElement(Gd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},xt.t("Auto"))}],iv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Gd,{...e});case"dark":return U.createElement(Vd,{...e});default:return U.createElement(Xd,{...e})}},"getThemeIcon");function Kd(){let t=ov(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(z=>z.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Je("theme",c),f=Je("liquiditySource",c),d=Je("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=Gn(p,u),y=C.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),T=y.length,k=y.filter(z=>z.selected).length,v=C.filter(z=>z.type==="DEX"),I=v.length,N=v.filter(z=>z.selected).length,x=i((z,j)=>{switch(l){case"loading":return U.createElement(Zk,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(at,{variant:"body",size:"medium",color:"$error500"},xt.t("Loading failed"));default:return U.createElement(at,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Bridges")),end:U.createElement(U.Fragment,null,x(k,T),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),onClick:()=>t(q.bridges),start:U.createElement(qk,{color:"gray",size:16})},b={id:"exchange-item",title:U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Exchanges")),end:U.createElement(U.Fragment,null,x(N,I),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),start:U.createElement(Hk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},E={id:"language-item",title:U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Language")),start:U.createElement(Xk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(at,{variant:"body",size:"medium"},s),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),onClick:()=>t(q.languages)},P={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Infinite approval")),U.createElement(si,{direction:"horizontal",size:4}),U.createElement(tv,{side:"top",sideOffset:4,container:_(),content:U.createElement(ai,null,U.createElement(at,{variant:"label",size:"medium",color:"neutral700"},xt.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.")))},U.createElement(Vk,{color:"gray"}))),start:U.createElement(Gk,{color:"gray",size:16}),end:U.createElement(Rk,{checked:g}),onClick:S},Q={id:"theme-item",type:U.createElement(jk,null),title:U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Theme")),end:U.createElement(nv,null,U.createElement(ev,{container:_(),items:rv,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:iv(n)},A=f?[]:[w,b];return d||A.push(E),A.push(P),!e?.singleTheme&&!m&&A.push(Q),U.createElement(Kk,{type:U.createElement(Yk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Kd,"SettingsLists");var uv=lv("div",{paddingLeft:"$8"});function jd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=cv(),r=pv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:Hs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(av,{type:"info",variant:"alarm",title:Hs.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:yo.createElement(uv,null,yo.createElement(sv,{type:"secondary",size:"small",onClick:a},Hs.t("Reset")))}),yo.createElement(zs,null),yo.createElement(Kd,null)))}i(jd,"SettingsPage");import{i18n as Zv}from"@lingui/core";import{cancelSwap as Jv}from"@rango-dev/queue-manager-rango-preset";import{useManager as Rv}from"@rango-dev/queue-manager-react";import{Alert as ew}from"@rango-dev/ui";import ll from"react";import{useParams as tw}from"react-router-dom";import{i18n as ft}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Lv,getCurrentStep as Bv,getRelatedWalletOrNull as Pv}from"@rango-dev/queue-manager-rango-preset";import{Button as If,CopyIcon as _v,Divider as Dv,IconButton as $v,QuoteCost as Fv,RangoExplorerIcon as Ov,StepDetails as Uv,Tooltip as Qv,Typography as Co,useCopyToClipboard as zv}from"@rango-dev/ui";import{useWallets as qv}from"@rango-dev/wallets-react";import Af from"bignumber.js";import{PendingSwapNetworkStatus as hi}from"rango-types";import ee,{useEffect as Nf,useRef as Hv,useState as Wf}from"react";import{useNavigate as Gv}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var mv=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Yd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${mv[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Yd,"timeSince");function Zd(t){return t.finishTime?Yd(parseInt(t.finishTime)):Yd(parseInt(t.creationTime))}i(Zd,"getSwapDate");import{PendingSwapNetworkStatus as ci}from"rango-types";import ui from"react";import{i18n as li}from"@lingui/core";import{Button as Jd,Divider as Gs,MessageBox as dv}from"@rango-dev/ui";import jt from"react";var Rd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Gs,{size:20}),jt.createElement(dv,{type:"error",title:li.t("Cancel Swap"),description:li.t("Are you sure you want to cancel this swap?")}),jt.createElement(Gs,{size:32}),jt.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},li.t("Yes, Cancel it")),jt.createElement(Gs,{size:12}),jt.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},li.t("No, Continue"))),"CancelContent");import{i18n as pi}from"@lingui/core";import{Button as ef,Divider as Vs,MessageBox as fv,Typography as gv}from"@rango-dev/ui";import Dt from"react";var tf=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(Vs,{size:20}),Dt.createElement(fv,{type:"error",title:pi.t("Delete Transaction"),description:pi.t("Are you sure you want to delete this swap?")}),Dt.createElement(Vs,{size:32}),Dt.createElement(ef,{variant:"contained",type:"primary",size:"large",onClick:t},pi.t("Yes, Delete it")),Dt.createElement(Vs,{size:12}),Dt.createElement(ef,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(gv,{variant:"title",size:"medium",color:"primary"},pi.t("No, Cancel")))),"DeleteContent");import{i18n as Xs}from"@lingui/core";import{PendingSwapNetworkStatus as Ks}from"rango-types";var js={[Ks.WaitingForNetworkChange]:{type:"loading",title:Xs.t("Change Network")},[Ks.WaitingForConnectingWallet]:{type:"warning",title:Xs.t("Connect Wallet")},[Ks.NetworkChanged]:{type:"success",title:Xs.t("Network Changed")}};import{debug as Ys}from"@rango-dev/logging-core";import{MessageBox as hv,Wallet as yv}from"@rango-dev/ui";import{useWallets as Sv}from"@rango-dev/wallets-react";import So,{useState as rf}from"react";import{styled as of}from"@rango-dev/ui";var nf=of("div",{display:"flex",justifyContent:"center"}),uz=of("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var af=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Sv(),[c,m]=rf(null),[f,d]=rf(null),g=n?.walletType,S=g?Bi(u(g)):null,C=g?p(g):null,y=a&&!!g&&!!S&&!!C,T=i(()=>{c&&m({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{f&&d({...f,open:!1})},"handleCloseDerivationPathModal"),v=i(N=>{C?.needsDerivationPath&&C?.singleNamespace&&N[0]&&g?d({open:!0,providerType:g,providerImage:C.img,namespace:N[0]}):l(c?.providerType,void 0,N.map(x=>({namespace:x}))).catch(x=>Ys(x)),T()},"handleConfirmNamespaces"),I=i(N=>{N&&f?.namespace&&l(f?.providerType,void 0,[{namespace:f.namespace,derivationPath:N}]).catch(x=>Ys(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(hv,{type:e,title:o,description:r}),y&&So.createElement(nf,null,So.createElement(yv,{container:_(),title:C.name,image:C.img,type:g,state:S,link:C.installLink,disabled:s,onClick:async()=>{C.namespaces?m({open:!0,providerType:g,providerImage:C.img,availableNamespaces:C.namespaces,singleNamespace:C.singleNamespace}):l(g).catch(N=>Ys(N))}})),So.createElement(po,{open:!!c?.open,onClose:T,onConfirm:v,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!f?.open,selectedNamespace:f?.namespace,type:f?.providerType,image:f?.providerImage,onClose:k,onConfirm:I}))},"WalletStateContent");function Zs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ci.WaitingForNetworkChange||e===ci.WaitingForConnectingWallet||e===ci.NetworkChanged;return ui.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ui.createElement(af,{type:js[e].type,title:js[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ci.WaitingForNetworkChange}),e==="delete"&&ui.createElement(tf,{onClose:o,onDelete:n}),e==="cancel"&&ui.createElement(Rd,{onClose:o,onCancel:r}))}i(Zs,"SwapDetailsModal");import{i18n as xn}from"@lingui/core";import{Button as Js,Divider as mi,MessageBox as sf,TokenAmount as Cv,Typography as Rs}from"@rango-dev/ui";import Pe from"react";import{useNavigate as Tv}from"react-router-dom";function el(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:f}=t,d=Tv();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(sf,{type:"success",title:xn.t("Swap Successful")},Pe.createElement(Cv,{direction:"vertical",tooltipContainer:_(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(mi,{size:12}),Pe.createElement(Rs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Pe.createElement(sf,{type:"error",title:xn.t("Transaction Failed"),description:m}),Pe.createElement(mi,{size:32}),n==="success"&&Pe.createElement(Js,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Pe.createElement(Rs,{variant:"title",size:"medium",color:"neutral100"},xn.t("Done"))),Pe.createElement(mi,{size:12}),f&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Js,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},xn.t("Diagnosis")),Pe.createElement(mi,{size:12})),Pe.createElement(Js,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(Rs,{variant:"title",size:"medium",color:"primary"},xn.t("See Details"))))}i(el,"SwapDetailsCompleteModal");import Mv from"react";import{i18n as Iv}from"@lingui/core";import{Alert as wf,IconButton as Av,LinkIcon as Nv}from"@rango-dev/ui";import Yt,{Fragment as Wv}from"react";import{Alert as wv,ChevronDownIcon as xv,IconButton as bv}from"@rango-dev/ui";import Qo,{useState as Ev}from"react";import{css as bn,darkTheme as kv,styled as $t,Typography as vv}from"@rango-dev/ui";var lf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),di=$t("div",{width:"100%"}),pf=$t(Zo,{padding:"$0 $20 $20 $20"}),Kz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),cf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),jz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Uo=bn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${kv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),uf=bn({padding:"$5 0"}),fi=bn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),mf=bn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),df=bn({width:"100%",padding:"0 $20 $10"}),ff=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),gf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),gi=$t(vv,{wordBreak:"break-word"});import{styled as tl}from"@rango-dev/ui";var hf=tl("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=tl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Sf=tl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Cf(t){let{message:e}=t,[o,n]=Ev(!1);return Qo.createElement(wv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qo.createElement(bv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Qo.createElement(yf,{rotated:o},Qo.createElement(xv,{size:12,color:"gray"}))),footer:Qo.createElement(Sf,{open:o},Qo.createElement(gi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Cf,"FailedAlert");import{i18n as Tf}from"@lingui/core";import{Alert as ol,Button as kf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as nl}from"rango-types";import En from"react";function vf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Tf.t("Change"))}):r===nl.WaitingForConnectingWallet?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForConnectingWallet)}},Tf.t("Connect"))}):En.createElement(ol,{type:"warning",title:n.shortMessage})}i(vf,"WarningAlert");function rl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=jo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(hf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,S=f===d.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Yt.createElement(Wv,{key:g},Yt.createElement(wf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Iv.t("View transaction"),action:m.url&&Yt.createElement(Av,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(Nv,{size:12}))}))}),c&&Yt.createElement(wf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(vf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Cf,{message:r}))}i(rl,"SwapDetailsAlerts");var xf=2e3;var bf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Ze(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ze(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:qo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ze(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ze(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:qo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Mv.createElement(rl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Ef(t){if(jo(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(Ef,"getStepState");function il(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=qv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=Y.use.retry(),f=ae.use.isActiveTab(),d=Gv(),[g,S]=zv(xf),C=Hv(null),[y,T]=Wf(null),[k,v]=Wf(null),I=i(()=>{r(),T(null)},"onCancel"),N=xe.use.getNotifications(),x=xe.use.removeNotification(),w=N(),b=Bv(e),E=b?.networkStatus;Nf(()=>{w.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Nf(()=>{B?T(hi.WaitingForNetworkChange):E===hi.WaitingForConnectingWallet||E===hi.NetworkChanged?T(E):T(null)},[E]);let P=Mp(e),Q=b?Lv(e,b):null,A=b?Pv(e,b):null,z=Zd(e),j=Lp(e),G=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=E===hi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Wp(e,b),J=bf({swap:e,switchNetwork:Z,showNetworkModal:E,setNetworkModal:T,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Ce]=[e.steps[0],e.steps[ne-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,L=e.steps.reduce((de,W)=>de+parseFloat(W.feeInUsd||""),0),me=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,se=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),st=D?new Af(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new Af(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ge=Re(_e,se),Ve=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?ft.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:J[ne-1].to.token.displayName,conciseAddress:Qn(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):ee.createElement(gf,null,ee.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ve?"":ft.t("Transaction was not sent."),P?`${ft.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),Ve&&ee.createElement(gi,{align:"center",variant:"body",size:"medium",color:"neutral700"},ee.createElement("b",null,"Reason:")," ",Ve));return ee.createElement(ce,{header:{title:ft.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&ee.createElement(Io,null,ee.createElement(If,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},ee.createElement(Co,{size:"medium",variant:"label",color:"error"},ft.t("Delete"))))},footer:j&&!k&&ee.createElement(If,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=nr(e,p,c);m(de),setTimeout(()=>{d("../../")},0)}},ft.t("Try again"))},ee.createElement(fe,{compact:!0,view:!0},ee.createElement(di,null,ee.createElement("div",{className:Uo()},ee.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${ft.t("Request ID")}:`),ee.createElement("div",{className:fi()},ee.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),ee.createElement($v,{variant:"ghost",onClick:S.bind(null,o||"")},ee.createElement(_v,{size:16,color:"gray"})),ee.createElement(ff,{target:"_blank",href:`${hl}/swap/${o}`},ee.createElement(Qv,{container:_(),content:ft.t("View on Rango Explorer"),side:"bottom"},ee.createElement(Ov,{size:20}))))),ee.createElement("div",{className:Uo()},ee.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?ft.t("Finished at"):ft.t("Created at")),ee.createElement(Co,{variant:"label",size:"small",color:"neutral700"},z))),ee.createElement("div",{className:mf()},ee.createElement(Fv,{fee:M(String(L),2,2),time:Ho(Pn(e.steps)),steps:ne}),ee.createElement(sn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:_e,realUsdValue:De,realValue:e.inputAmount},token:{displayName:J[0].from.token.displayName,image:J[0].from.token.image},chain:{image:J[0].from.chain.image,displayName:J[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:se,realUsdValue:st,realValue:D},token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image,displayName:J[ne-1].to.chain.displayName}},percentageChange:M(Ge,2,2),warningLevel:It(Ge??0)})),ee.createElement("div",{className:df()},ee.createElement(Co,{variant:"title",size:"small"},ft.t("Swaps steps"))),ee.createElement(Dv,{size:8}),ee.createElement(pf,{ref:C},J.map((de,W)=>{let V=W,X=Ef(e.steps[W]),Xe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&W===J.length-1;return ee.createElement(Uv,{key:V,step:de,type:"swap-progress",ref:C,state:X,hasSeparator:W!==0,tabIndex:V,isFocused:Xe,tooltipContainer:_()})}))),ee.createElement(Zs,{state:y,onClose:()=>T(null),onCancel:I,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!f}),ee.createElement(el,{open:!!k,diagnosisUrl:me,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:st,realValue:D||"",percentageChange:M(Ge,2,2),token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image},description:ve}))}i(il,"SwapDetails");import{i18n as Si}from"@lingui/core";import{Divider as Bf,NotFound as Yv,Skeleton as An,Typography as Ci}from"@rango-dev/ui";import Se from"react";import{i18n as Vv}from"@lingui/core";import{Divider as Xv,Skeleton as Kv,Typography as jv}from"@rango-dev/ui";import ke from"react";import{css as gt,styled as al}from"@rango-dev/ui";var Mf=al("div",{width:"100%",height:"100%",padding:"$10 $20"}),In=al("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),yi=al("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),sH=gt({display:"flex",justifyContent:"space-between",alignItems:"center"}),lH=gt({display:"flex",justifyContent:"space-between",alignItems:"center"}),pH=gt({paddingTop:"$15",display:"flex"}),cH=gt({padding:"$15 $0"}),uH=gt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),mH=gt({paddingBottom:"$10"}),dH=gt({display:"flex",justifyContent:"start",alignItems:"center"}),fH=gt({paddingTop:"$5",display:"flex",alignItems:"center"}),gH=gt({display:"flex",alignItems:"center"}),hH=gt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Lf=gt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function sl(){return ke.createElement(Mf,null,ke.createElement(cn,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(jv,{variant:"title",size:"small"},Vv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(In,null,ke.createElement(vt,{separator:!1}),ke.createElement("div",{className:Lf()},ke.createElement(Xv,{direction:"horizontal",size:20}),ke.createElement(Kv,{height:22,variant:"rectangular"}))),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(vt,{separator:!1})),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(vt,{separator:!1})),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(vt,{separator:!1}))))}i(sl,"LoadingSwapDetails");function Pf(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(ce,{header:{title:Si.t("Swap Details"),suffix:Se.createElement(Io,null)}},o&&Se.createElement(lf,null,Se.createElement(di,null,Se.createElement("div",{className:Uo()},Se.createElement(Ci,{variant:"label",size:"large",color:"neutral700"},`${Si.t("Request ID")}:`),Se.createElement("div",{className:fi()},Se.createElement(Ci,{variant:"label",size:"small",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})),Se.createElement(Bf,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}),Se.createElement(Bf,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Uo()},Se.createElement(Ci,{className:uf(),variant:"label",size:"large",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})),Se.createElement(Ci,{variant:"label",size:"small",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})))),Se.createElement(sl,null)),!o&&Se.createElement(cf,null,Se.createElement(Yv,{title:Si.t("Not found"),description:Si.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Pf,"SwapDetailsPlaceholder");function _f(){let{manager:t,state:e}=Rv(),o=!e.loadedFromPersistor,n=ot(t),{requestId:r}=tw(),a=tt(),{fetchStatus:s}=h();if(!r)return ll.createElement(ew,{containerStyles:{margin:"20px"},type:"error",title:Zv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&Jv(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?ll.createElement(Pf,{requestId:r,showSkeleton:l}):ll.createElement(il,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(_f,"SwapDetailsPage");function Df(){return zp(),ea(),ow([{path:q.home,element:He.createElement(td,null)},{path:q.routes,element:He.createElement(ad,null)},{path:q.fromSwap,children:[{index:!0,element:He.createElement(Us,{type:"source"})},{path:q.blockchains,element:He.createElement(ws,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:He.createElement(Us,{type:"destination"})},{path:q.blockchains,element:He.createElement(ws,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:He.createElement(jd,null)},{path:q.languages,element:He.createElement(nd,null)},{path:q.exchanges,element:He.createElement(Ts,{sourceType:"Exchanges"})},{path:q.bridges,element:He.createElement(Ts,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:He.createElement(Pm,null)},{path:q.swapDetails,element:He.createElement(_f,null)}]},{path:q.wallets,element:He.createElement(Gc,null)},{path:q.confirmSwap,element:He.createElement(vm,null)}])}i(Df,"AppRoutes");import{useQueueManager as uw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as mw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as dw}from"rango-sdk";import{useContext as fw,useEffect as qf,useState as Hf}from"react";import{globalCss as nw}from"@rango-dev/ui";var $f=i(()=>nw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Ff(){let{setWatermark:t}=ae();return{fetchApiConfig:i(async()=>{let o=await fetch(`${Et("BASE_URL")}/meta/dapp/config?apiKey=${Et("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Ff,"useFetchApiConfig");import{useWallets as rw}from"@rango-dev/wallets-react";import{useEffect as iw,useRef as aw}from"react";function Of(){let{connect:t,state:e}=rw(),o=aw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);iw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Of,"useForceAutoConnect");import{isApprovalTX as sw,RouteEventType as Uf,StepEventType as Qf,StepExecutionEventStatus as lw,WidgetEvents as Ti}from"@rango-dev/queue-manager-rango-preset";import{useEffect as zf}from"react";function pl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();zf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Qf.TX_EXECUTION&&s.status===lw.TX_SENT&&!sw(l)||s.type===Qf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return we.on(Ti.StepEvent,r),()=>we.off(Ti.StepEvent,r)},[we,t]),zf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Uf.FAILED||s.type===Uf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Ti.RouteEvent,r),()=>we.off(Ti.RouteEvent,r)},[we])}i(pl,"useSubscribeToWidgetEvents");import{useManager as pw}from"@rango-dev/queue-manager-react";import{useEffect as cw}from"react";function cl(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=pw();cw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ot(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(cl,"useSyncNotifications");function ul(){Of(),$f(),pl(),cl();let t=h().blockchains(),{canSwitchNetworkTo:e}=br(),[o,n]=Hf(""),[r,a]=Hf(),s=fw(Xn),l=t.filter(dw),{fetchApiConfig:p}=Ff();qf(()=>()=>Qp(),[]),uw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),qf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===mw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(ul,"useBootstrap");import{styled as gw}from"@rango-dev/ui";var Gf=gw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ki(){ul();let{config:t}=h(),{activeTheme:e}=fr(t?.theme||{}),{activeLanguage:o}=Xt();return ml.createElement(hw,{language:o},ml.createElement(Gf,{id:"swap-container",className:e()},ml.createElement(Df,null)))}i(ki,"Main");import{setSolanaSignerConfig as Dw}from"@rango-dev/signer-solana";import fl,{useEffect as Yf,useMemo as $w}from"react";import{useState as yw}from"react";var Sw=i(()=>{let[t,e]=yw(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=El(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Vf=Sw;import{checkWaitingForNetworkChange as Cw,makeQueueDefinition as Tw}from"@rango-dev/queue-manager-rango-preset";import{Provider as kw}from"@rango-dev/queue-manager-react";import{useWallets as vw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ww}from"@rango-dev/wallets-shared";import{isEvmBlockchain as xw}from"rango-types";import bw,{useMemo as Ew}from"react";function Iw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=vw(),l=Ew(()=>Tw({API_KEY:t.apiKey||Et("API_KEY"),BASE_URL:Et("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(xw),S=i(k=>{let{supportedChains:v}=s(k);return $n(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:ww(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},T=ae.use.isActiveTab();return bw.createElement(kw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Cw(k)},isPaused:!T},t.children)}i(Iw,"QueueManager");var Xf=Iw;import{useManager as Lw}from"@rango-dev/queue-manager-react";import Bw,{createContext as Pw,useContext as _w}from"react";import{cancelSwap as Aw,getCurrentBlockchainOfOrNull as Nw,getCurrentStep as Ww,getRelatedWalletOrNull as Mw}from"@rango-dev/queue-manager-rango-preset";var vi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ot(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=nr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Aw(o)}getCurrentStepInfo(e){let o=Ww(e);return{step:o,wallet:o?Mw(e,o):null,network:o?Nw(e,o):null}}};var Kf=Pw(void 0);function dl(t){let{manager:e}=Lw(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:r}=h(),a=new vi(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Pl(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,S=xe().getNotifications(),C=xe().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:T=>u(T,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:S,clearAll:C}};return Bw.createElement(Kf.Provider,{value:y},t.children)}i(dl,"WidgetInfo");function jf(){let t=_w(Kf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(jf,"useWidget");function wi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Vf();return Yf(()=>{n&&r(n)},[n]),$w(()=>{zl({API_KEY:o?.apiKey||Nn,BASE_URL:o?.apiUrl||gl})},[o.apiKey,o.apiUrl]),Yf(()=>{t.config?.signers?.customSolanaRPC&&Dw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),fl.createElement(Kn,{config:o,onUpdateState:e},fl.createElement(Xf,{apiKey:o.apiKey},fl.createElement(dl,null,t.children)))}i(wi,"WidgetProvider");function Zf(t){let e=t.config?.externalWallets;return xi.createElement(dp,null,e?xi.createElement(ki,null):xi.createElement(wi,{config:t.config??Ui},xi.createElement(ki,null)))}i(Zf,"Widget");function Jf(){let{on:t,off:e}=we;return{on:t,off:e}}i(Jf,"useWidgetEvents");export{B2 as EventSeverity,Xo as MainEvents,z2 as Networks,G2 as PendingSwapNetworkStatus,$i as QuoteEventTypes,P2 as RouteEventType,bi as SUPPORTED_FONTS,_2 as StepEventType,D2 as StepExecutionBlockedEventStatus,$2 as StepExecutionEventStatus,he as UI_ID,Fi as WalletEventTypes,U2 as WalletEvents,q2 as WalletTypes,Zf as Widget,Xo as WidgetEvents,wi as WidgetProvider,Kn as WidgetWallets,ca as customizedThemeTokens,O2 as readAccountAddress,no as useWalletList,br as useWallets,jf as useWidget,Jf as useWidgetEvents,ng as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|