@rango-dev/widget-embedded 0.29.1-next.9 → 0.30.1-next.0
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/CHANGELOG.md +42 -0
- 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/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.styles.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.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 +7 -2
- 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 -2
- 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 +8 -8
- 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 +24 -34
- 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.helpers.tsx +8 -10
- package/src/components/SwapDetails/SwapDetails.styles.ts +10 -0
- package/src/components/SwapDetails/SwapDetails.tsx +34 -17
- 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 +9 -6
- 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 +5 -5
- package/src/containers/Wallets/Wallets.tsx +1 -0
- 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 +12 -5
- 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 +85 -19
- package/src/services/eventEmitter.ts +11 -0
- package/src/store/notification.ts +3 -1
- package/src/store/quote.ts +70 -5
- package/src/store/slices/config.ts +4 -0
- package/src/store/slices/settings.ts +4 -1
- package/src/store/wallets.ts +194 -173
- package/src/types/config.ts +8 -4
- 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 +2 -2
- 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 e2,MainEvents as t2,RouteEventType as o2,StepEventType as n2,StepExecutionBlockedEventStatus as r2,StepExecutionEventStatus as i2,useEvents as a2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as l2,useWallets as wr,Events as p2}from"@rango-dev/wallets-react";import{Networks as u2,WalletTypes as m2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as f2}from"rango-types";import{UI_ID as Zf}from"@rango-dev/ui";var vn="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",wi=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as $i,Provider as Qg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Hg}from"rango-sdk";import Un,{createContext as Gg,useEffect as np,useMemo as Vg,useRef as rp}from"react";import{useEffect as hg}from"react";import{create as dg}from"zustand";import{subscribeWithSelector as fg}from"zustand/middleware";import{RangoClient as ug}from"rango-sdk";import{BlockchainCategories as rg,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as ig}from"@rango-dev/wallets-react";import{detectInstallLink as ag,getCosmosExperimentalChainInfo as sg,isEvmAddress as lg,KEPLR_COMPATIBLE_WALLETS as ax,Networks as wl}from"@rango-dev/wallets-shared";import Ni from"bignumber.js";import{isCosmosBlockchain as pg}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 vi,WalletState as ng}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function Ii(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ii,"areEqual");function 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 P=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 xi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareContainsText");function bi(t,e,o){let n=!!e&&gl(e,t),r=!!o&&gl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareStartWithText");function Sl(t,e,o){if(!o)return 0;let n=hl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=hl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=bi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=bi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r!==0)return r}return 0}i(Sl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===xn.TRANSFER;case vi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Cl=i(t=>wi.find(o=>o.value===t)?.url,"getFontUrlByName");function In(t,e){let o=!!t.find(n=>n.state===ng.CONNECTED);return e===!1&&o}i(In,"isSingleWalletActive");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 Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ai(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ai,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as 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 Wi(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Wi,"mapStatusToWalletState");function 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=Wi(t(r));return{title:a,image:s,link:ag(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d}})}i(vl,"mapWalletTypesToWalletInfo");function 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}=ig(p),m=l.length>0,d=l.includes(c),f=c===wl.Unknown;if(m&&!d&&!f)return;let S=c===wl.Unknown&&lg(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(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 Ni(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 Ni(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return cg(r)},"calculateWalletUsdValue");function cg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(cg,"numberWithThousandSeparator");var Bn=i((t,e)=>{let o=sg(Object.entries(t).map(([,n])=>n).filter(pg));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 Ni(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var Ml=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ll(t){return t.map(e=>e.state).join("-")}i(Ll,"hashWalletsState");function Bl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Bl,"filterBlockchainsByWalletTypes");function Pl(t,e){return e===rg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(Pl,"filterWalletsByCategory");var Mi={API_KEY:vn};function bt(t){return Mi[t]||""}i(bt,"getConfig");function _l(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Mi=e,Mi}i(_l,"initConfig");var $l=20,Dl=25,Li="theme-widget",qo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>eo(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>eo(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Bi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Fl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Dn,Ft=i(()=>Dn||(Dn=new ug(bt("API_KEY"),bt("BASE_URL")),Dn),"httpService");var mg=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=mg;var te=Ot(dg()(fg((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 gg}from"@rango-dev/provider-all";function Fn(t,e){let o=gg({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 hg(()=>{o(),n=Fn(t,e)},[t?.length]),{providers:n}}i(Ul,"useWalletProviders");import $g,{createContext as Dg,useContext as Fg,useEffect as Og,useRef as Ug}from"react";import{create as Pg}from"zustand";import{persist as _g}from"zustand/middleware";var Pi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},yg={clientUrl:void 0},Sg={liquiditySources:void 0},zl=i((t,e,o)=>({config:{...Pi,...t},iframe:yg,campaignMode:Sg,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),w=Al(T,k);if(w!==0)return w}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Ai(c,g),y=Ai(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=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 Cg,English as Tg,Finland as kg,French as wg,German as vg,Greece as xg,Italian as bg,Japanese as Ig,Netherlands as Eg,Poland as Ag,Portuguese as Ng,Russian as Wg,Spanish as Mg,Swedish as Lg,Ukrainian as Bg}from"@rango-dev/ui";var Gl=[{title:"English",label:"English",local:"en",SVGFlag:Tg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Mg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:wg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Ig},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ng},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Cg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Wg},{title:"German",label:"Deutsch",local:"de",SVGFlag:vg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Bg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Lg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:kg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Eg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:xg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:bg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ag}],So="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||So},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...o?._INTERNAL_SETTINGS_?.autoUpdateSettings&&{language:o.language||So}})}}),"createSettingsSlice");function Jl(t){return Pg()(_g((...e)=>({...Hl(...e),...Zl(...e),...zl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Jl,"createAppStore");var Rl=Dg(null);function h(){let t=Fg(Rl);if(Og(()=>{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=Ug();return e.current||(e.current=Jl(t.config)),$g.createElement(Rl.Provider,{value:e.current},t.children)}i(ep,"AppStoreProvider");import{create as qg}from"zustand";var tp="rango-widget";var Qo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(tp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ie=Ot(qg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),to=new Qo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var zn=Gg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Xg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.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(Hg).map(y=>y.name),g=i((y,T,k,w,A)=>{if(T===$i.ACCOUNTS)if(k){let v=Mn(A.supportedBlockchains),L=xl(y,k,f,v,A.isContractWallet);L.length&&u(L,a)}else c(y),d.current?d.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===$i.ACCOUNTS&&w.connected){let v=`${y}-${w.network}-${k}`;w.connected&&(m.current?m.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===$i.NETWORK&&w.network){let v=`${y}-${w.network}`;m.current?m.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,w,A)},"onUpdateState"),S=ie.use.isActiveTab(),C=Vg(()=>({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(Xg,"Main");function qn(t){let{config:e,...o}=t;return Un.createElement(ep,{config:e},Un.createElement(Xg,{...o,config:e}))}i(qn,"WidgetWallets");import ki from"react";import jg,{Fragment as Kg}from"react";import{MemoryRouter as Yg,useInRouterContext as Zg}from"react-router";function ip({children:t}){let o=Zg()?Kg:Yg;return jg.createElement(o,null,t)}i(ip,"AppRouter");import{I18nManager as mv}from"@rango-dev/ui";import il from"react";import ze from"react";import{useRoutes as Yw}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 ko,useRef as Rn}from"react";import Et from"bignumber.js";import{create as eh}from"zustand";import{subscribeWithSelector as th}from"zustand/middleware";import{getLastSuccessfulStep as Rg}from"@rango-dev/queue-manager-rango-preset";import MI from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Di={"Network Fee":Ho.t("Network Fee"),"Swapper Fee":Ho.t("Protocol Fee"),"Affiliate Fee":Ho.t("Affiliate Fee"),"Outbound network fee":Ho.t("Outbound Fee"),"Rango Fee":Ho.t("Rango Fee")},Fi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ap=30;import{i18n as it}from"@lingui/core";import{RouteEventType as gI}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 Oi(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Oi,"canComputePriceImpact");function Ui(t,e){let o=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(Ui,"getUsdFeeOfStep");function Vn(t,e){return t.reduce((o,n)=>o.plus(Ui(n,e)),Be)}i(Vn,"getTotalFeeInUsd");function zi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(zi,"getUsdFee");function mp(t){return t.reduce((e,o)=>e.plus(zi(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 Co(t){return t?.outputAmount||null}i(Co,"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=Co(t),n=Co(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 Go(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Gn.NetworkChanged}i(Go,"isNetworkStatusInWarningState");function wp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Go(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case 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 Qi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ii(o,n)}i(Qi,"isQuoteSwappersUpdated");function Hi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ii(o,n)}i(Hi,"isQuoteInternalCoinsUpdated");function Np(t,e){return qi(t,e)||Qi(t,e)||Hi(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=Rg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Zn,"createRetryQuote");function To(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=no(o,t.requestAmount),l=no(n,t?.outputAmount??"");if(t&&s&&l){let c=Ke(s.toString(),l.toString());if(!!c&&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(To,"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=Fi.indexOf(o.value),a=Fi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var no=i((t,e)=>t?.usdPrice?new Et(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),K=Ot(eh()(th(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,w=c?.to?.tokens,A=c?.to?.blockchains,v=Rn(void 0),L=Rn(void 0),x=Rn(void 0),b=Rn(void 0);ko(()=>{t(c?.amount?.toString()||"")},[c?.amount]),ko(()=>{if(m==="success"){r();let I=d.find(E=>E.name===c?.from?.blockchain),B=c?.from?.token,U=B&&g(B);(I||!I&&x.current)&&n(I??null),U?a({token:U,meta:{blockchains:d,tokens:f}}):!U&&v.current&&a({token:null}),x.current=c?.from?.blockchain,v.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),ko(()=>{qo(s,T)&&a({token:null}),Bi(p,k)&&n(null)},[T,k]),ko(()=>{qo(l,w)&&a({token:null}),Bi(u,A)&&o(null)},[w,A]),ko(()=>{if(m==="success"){r();let I=d.find(E=>E.name===c?.to?.blockchain),B=c?.to?.token,U=B&&g(B);(I||!I&&b.current)&&o(I??null),U?e({token:U,meta:{blockchains:d,tokens:f}}):!U&&L.current&&e({token:null}),b.current=c?.to?.blockchain,L.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),ko(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Bp,"useSyncStoresWithConfig");import{useEffect as Xi,useRef as oh}from"react";import{useInRouterContext as nh,useLocation as rh,useSearchParams as ih}from"react-router-dom";function Gi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Gi,"convertTokenSearchParamToAsset");function Vi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vi,"tokenToSearchParam");function ji(){let t=rh(),[e,o]=ih(),{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=nh(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),w=oh(),{findToken:A}=h(),v=i(()=>{let x={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(x[G]=ee);let b=e.get("fromAmount"),I=e.get("fromBlockchain"),B=e.get("fromToken"),U=e.get("toBlockchain"),E=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:I,fromToken:B,toBlockchain:U,toToken:E,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:x}},"getUrlSearchParams"),L=i(x=>{for(let b in x)x[b]||delete x[b];o(x,{replace:!0})},"updateUrlSearchParams");Xi(()=>{let{autoConnect:x,clientUrl:b,utmQueryParams:I}=v();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:Vi(a),toBlockchain:r?.name,toToken:Vi(s),fromAmount:l,autoConnect:x??void 0,clientUrl:b??void 0,liquiditySources:k?w.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Xi(()=>{if(!C)return;let x=v();if(!w.current&&x.liquiditySources&&(w.current=x.liquiditySources),x.fromAmount&&d(x.fromAmount),f==="success"){let b=g.find(E=>E.name===x.fromBlockchain),I=x.fromToken&&b?A(Gi(x.fromToken,b)):void 0,B=g.find(E=>E.name===x.toBlockchain),U=x.toToken&&B?A(Gi(x.toToken,B)):void 0;b&&(p(b),I&&c({token:I,meta:{blockchains:g,tokens:S}})),B&&(u(B),U&&m({token:U,meta:{blockchains:g,tokens:S}}))}},[f]),Xi(()=>{let{clientUrl:x,liquiditySources:b}=v();y("clientUrl",x||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(ji,"useSyncUrlAndStore");import{i18n as Ya}from"@lingui/core";import{useManager as NC}from"@rango-dev/queue-manager-react";import{Alert as Sm,Button as WC,css as Ja,Divider as Za,IconButton as Cm,styled as MC,Typography as LC,WalletIcon as BC}from"@rango-dev/ui";import xe,{useEffect as Hr,useLayoutEffect as PC,useRef as _C,useState as sn}from"react";import{useNavigate as $C}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Na,BalanceErrors as fS,Button as Yc,ChevronDownIcon as gS,ChevronLeftIcon as hS,CloseIcon as yS,Divider as Ko,IconButton as Zc,MessageBox as SS,PasteIcon as CS,Typography as vr,WalletIcon as TS}from"@rango-dev/ui";import $,{useCallback as kS,useEffect as Jc,useRef as wS,useState as po}from"react";import{useNavigate as vS}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 sh}from"@rango-dev/ui";import lh from"react";function ne(t){let{watermark:e}=ie();return lh.createElement(sh,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import ir,{useRef as uh}from"react";import*as wo from"@radix-ui/react-collapsible";import{keyframes as _p,styled as or}from"@rango-dev/ui";var Ki=300,ph=_p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),ch=_p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),$p=or(wo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Yi=or(wo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),nr=or(wo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${ph} ${Ki}ms ease-out`},false:{animation:`${ch} ${Ki}ms ease-out`}}}}),rr=or("div",{transition:`all ${Ki}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=uh(null);return ir.createElement($p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ir.createElement(Yi,{className:"collapsible_trigger",onClick:a},s),ir.createElement(nr,{className:"collapsible_content",open:e},r),l==="bottom"&&ir.createElement(Yi,{className:"collapsible_trigger",onClick:a},s))}i(ar,"CustomCollapsible");import{css as Dp,darkTheme as Vo,IconButton as mh,styled as Ye,TextField as dh}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%"}),fh=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Up=Ye(fh,{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(mh,{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(dh,{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",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as cS,Divider as Ea,Image as uS,MessageBox as kr,SelectableWallet as mS,Typography as Xc,WalletState as jc}from"@rango-dev/ui";import ue,{useEffect as Kc,useState as Ao}from"react";import{WalletState as Zi}from"@rango-dev/ui";import{useWallets as gh}from"@rango-dev/wallets-react";import{detectMobileScreens as hh,KEPLR_COMPATIBLE_WALLETS as yh,WalletTypes as vo}from"@rango-dev/wallets-shared";import{useCallback as Sh,useEffect as Ch,useState as Th}from"react";var kh=Object.values(vo);function xo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=gh(),{connectedWallets:u}=te(),c=h().blockchains(),m=Ol(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||kh,d=vl(a,l,m,e);d=hh()?d.filter(v=>v.showOnMobile!==!1&&a(v.type).installed):d;let f=Nl(d),[g,S]=Th(""),C=i(v=>!u.find(L=>L.walletType===v&&L.chain===e),"isExperimentalChainNotAdded"),y=i(async(v,L)=>{let x=a(v);try{if(g&&S(""),x.connected)await s(v);else{if(In(d,r.multiWallets))return;o?.(v),await p(v,void 0,L),n?.(v)}}catch(b){S("Error: "+b?.message)}},"handleClick"),T=Sh(()=>{let v=d?.filter(L=>L.state===Zi.CONNECTING)||[];for(let L of v)s(L.type)},[Ll(d)]),k=i(async v=>{a(v).connected&&await s(v)},"disconnectWallet");Ch(()=>()=>{T()},[]);let w=i(v=>{let L=v.find(b=>b.type===vo.DEFAULT);return!L||L.state===Zi.NOT_INSTALLED?!1:v.filter(b=>b.state!=Zi.NOT_INSTALLED&&![vo.DEFAULT,vo.WALLET_CONNECT_2,vo.LEDGER].includes(b.type)&&l(b.type).supportedChains.filter(I=>I.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),A=i((v,L,x)=>Bn(x,L)&&C(v)&&!yh.includes(v)||v==vo.DEFAULT&&!w(d),"shouldExcludeWallet");return{list:f.filter(v=>!A(v.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:T,disconnectWallet:k}}i(xo,"useWalletList");import{i18n as Uc}from"@lingui/core";import{Divider as tS,getCategoriesCount as oS,SelectableCategoryList as nS,styled as qc,Typography as rS,Wallet as iS,WalletState as zc}from"@rango-dev/ui";import at,{useState as Cr}from"react";import{useManager as By}from"@rango-dev/queue-manager-react";import{BottomLogo as Py,Divider as Bc,Header as _y}from"@rango-dev/ui";import Ce,{useEffect as ka,useRef as Pc,useState as $y}from"react";import{useRef as wh}from"react";function sr(){return window.self!==window.top}i(sr,"isAppLoadedIntoIframe");function Ji(){let t=wh(null),{iframe:e}=h(),o=sr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ji,"useIframe");import{useNavigate as vh}from"react-router-dom";function Ze(){let t=vh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as ia,darkTheme as Dh,lightTheme as Fh}from"@rango-dev/ui";import{useEffect as Oh,useState as Uh}from"react";import{theme as _h,darkColors as $h}from"@rango-dev/ui";import na from"react";function xh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(xh,"expandShortHexColor");function bh(t){return/[0-9]+$/.test(t)}i(bh,"isOverridingColor");function Ih(t,e){return t.padStart(e,"0")}i(Ih,"pad");function Ri(t){let e=Math.min(Math.max(Math.round(t),0),255);return Ih(e.toString(16),2)}i(Ri,"intToHex");function Eh(t){return`#${Ri(t.red)}${Ri(t.green)}${Ri(t.blue)}`}i(Eh,"rgbToHex");function Ah(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(Ah,"hexToRGB");function Nh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Nh,"generateShade");function Wh(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(Wh,"generateTint");function Mh(t){return Zp(t,Nh)}i(Mh,"calculateShades");function Lh(t){return Zp(t,Wh)}i(Lh,"calculateTints");function Zp(t,e){let o=Ah(t),n=[];for(let r=1;r<9;r++)n.push(Eh(e(o,r)));return n}i(Zp,"calculateColors");function ea(t,e,o){let a=Lh(t).reverse().concat(t),s=Mh(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)&&!bh(r)){let p=xh(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"),Bh=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"),Ph=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),oa=i(t=>Bh(Ph(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=_h.colors,o={...e,...$h},n,r;if(t?.light){let s={colors:ta(e,t.light)};n={id:`${Li}-light-${oa(s)}`,tokens:s}}if(t?.dark){let s={colors:ta(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Li}-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 lr(t){let{colors:e,fontFamily:o=cl,borderRadius:n=$l,secondaryBorderRadius:r=Dl}=t,[a,s]=Uh("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,Fh.className],d=[c.className,Dh.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 Oh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),S=d.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(lr,"useTheme");var Je=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as ec}from"@lingui/core";import{Alert as zh,Button as qh}from"@rango-dev/ui";import tc from"react";function aa(t){return tc.createElement(zh,{action:tc.createElement(qh,{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 Hh,MessageBox as Gh}from"@rango-dev/ui";import pr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},pr.createElement(Gh,{title:sa.t("Activate current tab"),type:"warning",description:sa.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},pr.createElement(Hh,{size:20}),pr.createElement(Qh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as jh}from"@rango-dev/ui";import lc from"react";import{css as Vh,darkTheme as oc,IconButton as Xh,styled as ro}from"@rango-dev/ui";var yt=ro(Xh,{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"}),bo=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=Vh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function pa(t){return lc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},lc.createElement(jh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as Kh}from"@lingui/core";import{Button as Yh,Typography as Zh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(bo,null,ca.createElement(Yh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(Zh,{variant:"label",size:"medium",color:"error500"},Kh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as Jh}from"@lingui/core";import{Image as Rh,Tooltip as ey,WalletIcon as ty}from"@rango-dev/ui";import io from"react";function ma(t){let{list:e}=xo({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:sc()},o.map(r=>io.createElement(cr,{key:r.title},io.createElement(Rh,{src:r.image,size:14})))):Jh.t("Connect Wallet");return io.createElement(ey,{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(ty,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as xy,Popover as by,SettingsIcon as Iy,Tooltip as fr,TransactionIcon as Ey}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 my,Divider as Tc,Typography as fa}from"@rango-dev/ui";import de from"react";import{useNavigate as dy}from"react-router-dom";import{create as oy}from"zustand";import{persist as ny,subscribeWithSelector as ry}from"zustand/middleware";var Ee=Ot(oy()(ny(ry((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 iy,darkTheme as ay,ListItemButton as sy,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(iy,{padding:"$5 !important"}),mc=zt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),dc=zt(sy,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${ay} &`]:{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 ly}from"@lingui/core";import{Divider as py,NoNotificationIcon as cy,Typography as uy}from"@rango-dev/ui";import ur from"react";function yc(){return ur.createElement(gc,null,ur.createElement(cy,{color:"secondary",size:26}),ur.createElement(py,{size:12}),ur.createElement(uy,{variant:"body",size:"medium",color:"neutral700"},ly.t("There are no notifications.")))}i(yc,"NotificationNotFound");var fy=4;function ga(){let t=dy(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,fy),l=i(p=>{t(`${q.swaps}/${p}`)},"handleOnClick");return de.createElement(pc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(cc,null,de.createElement(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(my,{size:12,color:"gray"}))}))})):de.createElement(yc,null))}i(ga,"NotificationContent");import{useManager as gy}from"@rango-dev/queue-manager-react";import{InProgressIcon as hy}from"@rango-dev/ui";import kc from"react";var yy=i(()=>{let{manager:t}=gy();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?kc.createElement(ac,null,kc.createElement(hy,{color:"info",size:6})):null},"InProgressTransactionBadge"),wc=yy;import{EventSeverity as Sy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Cy}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===Sy.WARNING);return o?vc.createElement(rc,{isSever:n},vc.createElement(Cy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(xc,"NotificationsBadge");import{RefreshProgressButton as Ty}from"@rango-dev/ui";import ha,{useEffect as ky,useState as bc}from"react";var wy=1e3,Ic=60,vy=100;function mr({onClick:t}){let[e,o]=bc(0),[n,r]=bc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ky(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},wy):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(Ty,{size:22,color:t?"black":"gray",progress:e/Ic*vy})))}i(mr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=je("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(fr,{container:a||P(),side:"top",content:dr.t("Refresh")},Ae.createElement(mr,{onClick:e})),!l&&Ae.createElement(by,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ae.createElement(ga,null)},Ae.createElement("div",null,Ae.createElement(fr,{container:P(),side:"top",content:dr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(xy,{size:18,color:"black"}),Ae.createElement(xc,null))))),!r.includes("settings")&&Ae.createElement(fr,{container:P(),side:"top",content:dr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(Iy,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(fr,{container:P(),side:"top",content:dr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(Ey,{size:18,color:"black"}),Ae.createElement(wc,null))))}i(ao,"HeaderButtons");import{i18n as ya}from"@lingui/core";import{Divider as Ac,MessageBox as Wy,RefreshIcon as My}from"@rango-dev/ui";import Io from"react";import{Button as Ay,styled as Ny}from"@rango-dev/ui";var Ec=Ny(Ay,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Sa(t){let{open:e,onClose:o}=t;return Io.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},Io.createElement(Wy,{title:ya.t("Something went wrong"),type:"error",description:ya.t("Something went wrong. Please refresh the app.")},Io.createElement(Ac,{size:30}),Io.createElement(Ec,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Io.createElement(My,{size:20,color:"primary"}),Io.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=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ca,"onScrollContentAttachStatusToContainer");import{css as Ly,styled as Ta}from"@rango-dev/ui";var Nc="700px",gr=Ly({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}=lr(d||{}),C=je("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:A}=ie(),v=Ze(),{manager:L}=By(),b=Je(L).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),I=i(()=>A(to.forceClaim,b),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),U=typeof r.hasBackButton>"u"||r.hasBackButton,E=Pc(null),H=Pc(null);return ka(()=>(sr()&&H.current&&e(H.current),()=>{o()}),[]),ka(()=>(E.current?.addEventListener("scroll",Ca),()=>{E.current?.removeEventListener("scroll",Ca)}),[]),ka(()=>{u(l==="failed")},[l]),Ce.createElement(Wc,{height:s,id:Se.SWAP_BOX_ID,className:`${S()} ${gr()}`,ref:H},Ce.createElement(_y,{prefix:Ce.createElement(Ce.Fragment,null,U&&Ce.createElement(pa,{onClick:()=>{v(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ce.createElement(Ce.Fragment,null,r.suffix,r.onWallet&&!C&&Ce.createElement(ma,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&Ce.createElement(ua,{onClick:r.onCancel}))}),Ce.createElement(Mc,{ref:E},n),Ce.createElement(la,{open:k,onClose:()=>w(!1),onConfirm:I}),Ce.createElement(Lc,null,Ce.createElement("div",{className:"footer__content"},T&&!y&&Ce.createElement("div",{className:"footer__alert"},Ce.createElement(aa,{onActivateTab:I}),Ce.createElement(Bc,{size:10})),a),Ce.createElement(Bc,{size:12}),Ce.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Ce.createElement(Py,null))),Ce.createElement(Sa,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as Dy}from"@rango-dev/ui";var _c="$20 $20 $10 $20",Xo=Dy("div",{padding:_c,overflowY:"auto",flexGrow:1});import{styled as Fy}from"@rango-dev/ui";var me=Fy("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 Eo}from"@lingui/core";import{Image as zy,MessageBox as wa,WalletState as qy}from"@rango-dev/ui";import so from"react";import{keyframes as Oy,styled as hr}from"@rango-dev/ui";var uW=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),yr=hr("div",{position:"relative"}),Uy=Oy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Sr=hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Uy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=hr("div",{"& img":{borderRadius:"50%"}});function Dc(t){let{state:e,image:o,error:n}=t;return e===qy.CONNECTED?so.createElement(wa,{type:"success",title:Eo.t("Wallet Connected"),description:Eo.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(wa,{type:"error",title:Eo.t("Failed to Connect"),description:n||Eo.t("Your wallet is not connected. Please try again.")}):so.createElement(wa,{type:"loading",title:Eo.t("Connecting to your wallet"),description:Eo.t("Click connect in your wallet popup."),icon:so.createElement(yr,null,so.createElement($c,null,so.createElement(zy,{src:o,size:45})),so.createElement(Sr,null))})}i(Dc,"ModalContent");function jo(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(jo,"WalletModal");import{i18n as xa}from"@lingui/core";import{Button as Gy,Checkbox as Vy,Image as Oc,ListItemButton as Xy,MessageBox as jy,Radio as Ky,RadioRoot as Yy}from"@rango-dev/ui";import{namespaceMainBlockchain as Zy}from"@rango-dev/wallets-shared";import We,{useMemo as Jy,useState as Ry}from"react";import{styled as Hy}from"@rango-dev/ui";var Fc=Hy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var eS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Ry([]),a=h().blockchains(),s=Jy(()=>o?.map(u=>({name:u,logo:eS(a,Zy[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(Yy,{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(jy,{type:"info",title:xa.t("Select chain types"),description:xa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(yr,null,We.createElement(cr,null,We.createElement(Oc,{src:t.image,size:45})),We.createElement(Sr,null))}),We.createElement(Fc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(Xy,{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(Ky,{value:u.name}):We.createElement(Vy,{checked:n.includes(u.name)})}))))),We.createElement(Gy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},xa.t("Confirm")))}i(lo,"WalletNamespacesModal");var aS=qc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),sS=qc(me,{textAlign:"center"}),Tr=3e3,ba=300;function Qc(){let{fetchStatus:t}=h(),[e,o]=Cr("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Cr(!1),[l,p]=Cr(null),[u,c]=Cr(""),m=null,d=ie.use.isActiveTab(),{list:f,handleClick:g,error:S,disconnectConnectingWallets:C}=xo({onBeforeConnect:I=>{m=setTimeout(()=>{s(!0),c(I)},ba)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Tr)}}),y=i(()=>{C(),s(!1)},"handleCloseWalletModal"),T=f.find(I=>I.type===u),k=T?.image||"",w=T?.state||zc.NOT_INSTALLED,A=Bl(f,n),L=oS(A)!==1,x=Pl(f,e),b=i((I,B)=>{if(B.namespaces&&B.state===zc.DISCONNECTED){if(In(f,r.multiWallets))return;p({providerType:I,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace})}else g(I)},"handleWalletClick");return at.createElement(le,{header:{title:Uc.t("Connect Wallets")}},at.createElement(sS,null,L&&at.createElement(at.Fragment,null,at.createElement(nS,{setCategory:o,category:e,blockchains:A,isLoading:t==="loading"}),at.createElement(tS,{size:24})),at.createElement(rS,{variant:"title",size:"xmedium",align:"center"},Uc.t("Choose a wallet to connect.")),at.createElement(aS,null,x.map((I,B)=>{let U=`wallet-${B}-${I.type}`;return at.createElement(iS,{key:U,...I,container:P(),onClick:E=>b(E,I),isLoading:t==="loading",disabled:!d})}),at.createElement(jo,{open:!!a,onClose:y,image:k,state:w,error:S}),at.createElement(lo,{open:!!l,onClose:()=>p(null),onConfirm:I=>{g(l?.providerType,I),p(null)},image:l?.providerImage,namespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}))))}i(Qc,"WalletsPage");import{keyframes as lS,styled as Ia}from"@rango-dev/ui";var Hc=Ia("div",{position:"relative"}),pS=lS({"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:`${pS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Vc=Ia("div",{"& img":{borderRadius:"50%"}});var dS=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:w}=wr(),A=null,{list:v,error:L,handleClick:x,disconnectWallet:b,disconnectConnectingWallets:I}=xo({chain:e,onBeforeConnect:W=>{A=setTimeout(()=>{m(W)},ba)},onConnect:W=>{s?.(W),A&&clearTimeout(A),setTimeout(()=>{m("")},Tr)}}),[B,U]=Ao(v),E=v.length,H=r&&E-r>0,Y=i(async W=>{S(!1),y("in-progress");try{await w(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(()=>{U(W=>{let z=v.findIndex(Z=>o(Z.type,e));return H&&z>1?[v[z]].concat(v.filter((Z,re)=>re!==z)):W.map(Z=>v.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(v)]);let G=document.getElementById(Se.SWAP_BOX_ID);Kc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),Tr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{I(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,B.slice(0,r).map(W=>{let z=Wl({connectedWallets:p,walletType:W.type,chain:e}),Z=z?_n(z,dS):"",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):x(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(f({walletType:W.type,chain:e,address:z??""}),S(!0)):n({walletType:W.type,chain:e,address:z??""})},"onClick"),fe=d?.chain?En(d.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${fe}`},ue.createElement(jo,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:L}),ue.createElement(lo,{open:!!T,onClose:()=>k(null),onConfirm:Oe=>{x(T?.providerType,Oe),k(null)},image:T?.providerImage,namespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),!!d&&ue.createElement(ne,{open:!!d&&g,container:G,onClose:()=>{f(null)}},ue.createElement(kr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}})},ue.createElement(Ea,{size:18}),ue.createElement(Ea,{size:32}),ue.createElement(cS,{onClick:Y.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(kr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}}),icon:ue.createElement(Hc,null,ue.createElement(Vc,null,ue.createElement(uS,{src:W.image,size:45})),ue.createElement(Gc,null))}),C==="completed"&&ue.createElement(kr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:fe}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:fe}})}),C==="rejected"&&ue.createElement(kr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:fe}})}),ue.createElement(Ea,{direction:"vertical",size:32})),ue.createElement(mS,{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+",E-(r??0)))))}i(Aa,"WalletList");var xS=2;function Rc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=vS(),l=h().config,p=wS(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(""),[w,A]=po([]),[v,L]=po(""),[x,b]=po(null),[I,B]=po(!!g),U=navigator?.userAgent.includes("Firefox"),E=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=kS(()=>C.filter(M=>M.selected&&E.includes(M.chain)),[C.length,E.length]),[ee,W]=po(G()),[z,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),ke=w.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&I&&Y&&!Qn(Y,g),ot=i(()=>{B(!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&&I&&!pe(Y.name)&&(B(!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()=>{A([]),L(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&A(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&L(sp(M.error)),!M.error&&!V?.balance?.messages.length?nt():A(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Zc,{onClick:fe,variant:"ghost"},$.createElement(yS,{size:12,color:"gray"})):U?null:$.createElement(Zc,{onClick:Oe,variant:"ghost"},$.createElement(CS,{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&&E.includes(X.chain))),V})},[C.length,E.length]),Jc(()=>{let M=[];z.length>0&&(z.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,z.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,I,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(hS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(T,u)}})))},anchor:"center"},$.createElement(ne,{open:ke,onClose:A.bind(null,[]),container:ye},$.createElement(SS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(fS,{messages:w??[]})},$.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,v&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"error",title:St.t(v)}),$.createElement(Ko,{size:12})),x&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"warning",title:tr(x)}),$.createElement(Ko,{size:12})),$.createElement(Kp,null,E.map((M,V)=>{let X=u.find(Jt=>Jt.name===M),qe=`wallet-${V}`,ft=V===E.length-1;return $.createElement("div",{key:qe},$.createElement(Fp,null,$.createElement(vr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Ko,{size:24}),$.createElement(Op,null,$.createElement(Aa,{chain:M,isSelected:_,selectWallet:Ve,limit:xS,onShowMore:()=>k(X?.name??""),onConnect:Jt=>{re(M,Jt)}})),!ft&&$.createElement(Ko,{size:32}),ft&&l?.customDestination&&$.createElement(Gp,null,$.createElement(ar,{onOpenChange:vt,hasSelected:!0,open:I,triggerAnchor:"top",trigger:$.createElement(Yp,null,$.createElement("div",{className:"button__content"},$.createElement(TS,{size:18,color:"info"}),$.createElement(Ko,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:I?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(rr,{orientation:I?"up":"down"},$.createElement(gS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(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 HS,Button as GS,InfoIcon as VS}from"@rango-dev/ui";import He from"react";import{Alert as ES,Button as AS,Divider as La,NoRouteIcon as NS,RefreshIcon as WS,Typography as au}from"@rango-dev/ui";import Qe from"react";import{i18n as eu}from"@lingui/core";var bS=24,IS=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=bS]="small",o[o.large=IS]="large",o))(Wa||{}),Ma=(o=>(o.small="small",o.large="medium",o))(Ma||{});import{styled as xr}from"@rango-dev/ui";var ou=xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),nu=xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),ru=xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),iu=xr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=tu(o,r,()=>a(s,!0),e);return Qe.createElement(ou,null,Qe.createElement(NS,{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(ES,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Qe.createElement(AS,{size:"xsmall",type:l.alert.type,prefix:Qe.createElement(iu,null,Qe.createElement(WS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as LS,Divider as BS,MessageBox as PS,Typography as _S,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 MS,styled as br}from"@rango-dev/ui";var su=br("div",{width:"100%"}),Ba=br("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),lu=br("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${MS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),pu=br("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:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(LS,{type:"primary",size:"large",prefix:At.createElement($S,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},At.createElement(PS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(Ba,null,At.createElement(BS,{size:"4"}),At.createElement(_S,{size:"small",variant:"title"},Zo.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 DS,Typography as FS}from"@rango-dev/ui";import co from"react";import{useNavigate as OS}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=OS(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(fu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},co.createElement(FS,{variant:"label",size:"medium",color:"$neutral900"},No.t("Change settings"))),container:P(),onClose:r},co.createElement(DS,{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 US,MessageBox as zS,WarningIcon as qS}from"@rango-dev/ui";import Ir from"react";function yu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ir.createElement(ne,{footer:Ir.createElement(US,{type:"primary",size:"large",prefix:Ir.createElement(qS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},Ir.createElement(zS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(yu,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,f=du(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),He.createElement(He.Fragment,null,d&&He.createElement(Yo,{error:o,fetch:s}),!!f&&He.createElement(su,null,He.createElement(HS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:He.createElement(pu,{onClick:l},He.createElement(VS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:He.createElement(GS,{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(Jo,"QuoteWarningsAndErrors");import vC from"bignumber.js";import Ur from"react";import{i18n as uo}from"@lingui/core";import{Alert as cC,Divider as Mo,FullExpandedQuote as uC,InfoIcon as mC,QuoteTag as dC,StepDetails as fC,TokenAmount as gC,Tooltip as Yu,Typography as Lo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as hC,useState as yC}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 Er from"@radix-ui/react-collapsible";import{Button as XS,css as Ro,darkTheme as we,Image as Tu,styled as _e,Typography as jS}from"@rango-dev/ui";var KS=300,ku=_e(Er.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),wu=Ro({padding:"$10 $15"}),vu=_e(XS,{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=Ro({width:"100%",padding:"$15 $15 $10 $15"}),Iu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Wo=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Eu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Au=_e(Er.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${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 ${KS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),gB=_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(jS,{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"}),Ar=_e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Vt}from"@lingui/core";import{ChevronDownIcon as ZS,CloseIcon as JS,Divider as Mr,IconButton as RS,QuoteCost as eC,Tooltip as tC,Typography as lt}from"@rango-dev/ui";import J,{useState as Fu}from"react";import{css as YS,styled as Nr}from"@rango-dev/ui";var Wr=Nr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),za=Nr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),_u=Nr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),$u=Nr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Du=YS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var oC=i(t=>t.fee.isZero()?null:J.createElement(Wr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function 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=P(),f=dp(m);return J.createElement(J.Fragment,null,J.createElement(eC,{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(RS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(JS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(_u,null,J.createElement(lt,{variant:"title",size:"small"},Vt.t("Details")),J.createElement(Mr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=zi(C);return J.createElement(Wr,{key:T},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Di[g]),J.createElement(tC,{content:ce(C.amount),container:d},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Wr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Vt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(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(Mr,{size:4,direction:"horizontal"}),J.createElement(rr,{orientation:n?"up":"down"},J.createElement(ZS,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Vt.t("Description")),J.createElement(Mr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Vt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),J.createElement(Mr,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let y=mp(S),T=Di[g],k=`non-payable-fee-${C}`;return J.createElement(oC,{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 Lr from"react";import{css as nC,styled as rC}from"@rango-dev/ui";var Uu=rC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),zu=nC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Lr.createElement(Uu,null,Lr.createElement(Qu,{direction:"horizontal",label:qu.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Lr.createElement("div",{className:zu()}),Lr.createElement(Qu,{direction:"horizontal",tooltipContainer:P(),label:qu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(en,"QuoteSummary");import{i18n as ju}from"@lingui/core";import{ChevronDownIcon as sC,ChevronRightIcon as lC,Divider as qa,Image as pC,Tooltip as Dr,Typography as Pr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as iC,useState as tn}from"react";var Hu=480,Gu=768,Vu=1024,Xu=1200,aC=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=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 iC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Br=aC;var _r=4,$r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement(Dr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Nu,{className:n,state:a},F.createElement(pC,{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||P(),u=r.length,c=Wp(r),{isTablet:m,isMobile:d}=Br();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(Pr,{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(lC,{size:12,color:"black"}));return d||m?F.createElement(F.Fragment,{key:S},F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:S},u<=_r||u>_r&&g<_r-1?F.createElement(F.Fragment,null,F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===_r-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Wo()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Ua,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Pr,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:Wo()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Wo()},F.createElement(Pr,{variant:"body",size:"xsmall"},ju.t("Chains:")),F.createElement(qa,{direction:"horizontal",size:4}),c.map((f,g)=>F.createElement(F.Fragment,{key:f.displayName},c.length<=$r||c.length>$r&&g<$r-1?F.createElement(Dr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},F.createElement(on,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===$r-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Wo()},c.map((S,C)=>C>=g&&F.createElement(on,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Ua,{className:"blockchainImage"},F.createElement(Pr,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(qa,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(sC,{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,w]=yC(t.expanded),A=hC(null),v=N(o.value,6,6),L=N(n.value,6,6),x=n.usdValue?N(n.usdValue,4,4):"",b=Ke(o.usdValue,n.usdValue??null),I=N(b,2,2),B=It(b??0),U=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(cC,{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(Ui(_,g),2,2),internalSwaps:_.internalSwaps?U(_.internalSwaps):void 0}}),"getQuoteSteps"),E=U(e?.swaps??[]),H=E.length,Y=d||P(),pe=Lp(t.quote.tags||[]),G=!!c,ee=Uo(An(e?.swaps)),W=Vn(e?.swaps??[],g),z=N(W,2,2),Z=W.gte(new Qa(ap));return m?D.createElement(uC,{selected:l,fee:z,time:ee,tooltipContainer:Fo(),steps:E,tags:pe,feeWarning:Z,percentageChange:I,warningLevel:B,outputPrice:{value:L,usdValue:x,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(dC,{label:re.label,value:re.value}),D.createElement(Mo,{size:4,direction:"horizontal"}))})),D.createElement(Ar,null),!G&&D.createElement(Mo,{size:4})):null,D.createElement("div",{id:"portal-root",className:Iu()},D.createElement(Ou,{quote:e,time:ee,fee:z,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(mC,{size:12,color:"gray"})),D.createElement(Bu,null,D.createElement(Oa,{size:"small",variant:"body"},`${v} ${E[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} ${E[E.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"},`($${x})`))),s==="list-item"&&D.createElement(gC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:L,usdValue:x,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:E[H-1].to.token.displayName,image:E[H-1].to.token.image},chain:{image:E[H-1].to.chain.image},percentageChange:I,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:E[0].from,to:E[H-1].to,percentageChange:I,warningLevel:B}),D.createElement(Mo,{size:4}))),D.createElement(ku,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},D.createElement(Ku,{type:s,quoteRef:A,selected:l,setExpanded:w,container:Y,expanded:k,steps:E}),D.createElement(Wu,{open:k},D.createElement(Mu,null),D.createElement("div",{className:wu()},E.map((re,ke)=>{let _=`item-${ke}`;return D.createElement(fC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:ke!==E.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as kC,Skeleton as wC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as SC,styled as Fr}from"@rango-dev/ui";var Zu=Fr("div",{$$color:"$colors$neutral100",[`.${SC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ju=Fr("div",{paddingTop:"$2"}),Ru=Fr("div",{paddingLeft:"$8"}),em=Fr("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 CC,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=CC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(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(Ar,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(nn,"QuoteSummarySkeleton");import{ChainToken as gm,Divider as Xa,NextIcon as TC,Skeleton as Or}from"@rango-dev/ui";import ve from"react";import{styled as rn}from"@rango-dev/ui";var um=rn("div",{display:"flex",alignItems:"start"}),mm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Va=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),dm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),fm=rn("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(Or,{height:22,width:22,variant:"circular"}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Or,{height:15,width:148,variant:"rounded"})),ve.createElement(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(Or,{height:12,variant:"rounded"})),ve.createElement(dm,null,ve.createElement(TC,{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(Or,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Zu,{expanded:o,rounded:e!=="basic"},Wt.createElement(nn,{type:e,tagHidden:n}),Wt.createElement(Ju,null,Wt.createElement(wC,{height:15,variant:"rounded"})),o&&Wt.createElement(Ru,null,Wt.createElement(kC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:d=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=K(),y=e?.outputAmount?new vC(e?.outputAmount):null,T=e?.outputAmount?jn(e?.outputAmount,Yn(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ur.createElement(Da,null,Ur.createElement(an,{tagHidden:l,type:o,expanded:s})):w?Ur.createElement(Da,{onClick:()=>p?.(e)},Ur.createElement(Ha,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:d,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as EC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as AC}from"react";import{useRef as xC,useState as bC}from"react";var IC=2e3;function zr({request:t}){let[e,o]=bC(!1),n=xC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,IC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(zr,"useFetch");function hm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(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=To(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(Co(e)),percentageChange:N(Ke(Co(t)??"",Co(e)??""),null,2)}:qi(t,e)?r.quoteUpdate={type:0}:Qi(t,e)?r.quoteUpdate={type:1}:Hi(t,e)&&(r.quoteUpdate={type:2}));let s=kp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(ym,"generateWarnings");function Qr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Qr,"handleQuoteErrors");function Ka(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=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 AC(()=>C,[]),{loading:y,fetch:i(async k=>{let w=k.selectedWallets,A=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let v=w.reduce((x,b)=>(x[b.chain]=b.address,x),{}),L={requestId:r?.requestId||"",selectedWallets:v,destination:A||void 0};try{return await S(L,!0).then(x=>{let{result:b}=x;qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let I={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(I);let B={slippage:g.toString(),disabledSwappersGroups:c},U=ym(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:f,selectedWallets:w,userSlippage:g});U.quoteUpdate&&s(!1),l();let E=!!U.balance,H=EC(o.toString(),b,Sp(w),B,!E,{blockchains:m,tokens:d});return{quote:I,swap:H,error:null,warnings:U}})}catch(x){return Qr(x)}},"fetch"),cancelFetch:C}}i(Ka,"useConfirmSwap");var DC=MC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Cm}`]:{width:"$48",height:"$48"}}),FC=Ja({flexGrow:1,paddingRight:"$10"}),OC=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),UC=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]=sn(""),u=!n,[c,m]=sn(!1),[d,f]=sn(!1),{isActiveTab:g}=ie(),S=h().getDisabledLiquiditySources(),C=_C(S),{manager:y}=NC(),{fetch:T,loading:k,cancelFetch:w}=Ka(),[A,v]=sn({swap:null,error:null,warnings:null}),[L,x]=sn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await T?.({selectedWallets:G,customDestination:ee});return v(W),W},"onConfirmSwap"),I=i(async()=>{if(A.swap&&n)try{await y?.create("swap",{swapDetails:A.swap},{id:A.swap.requestId});let G=`../${q.swaps}/${A.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),B=i(async()=>{f(!0),await I(),f(!1)},"onConfirm"),U=i(async()=>{A?.warnings?.quote&&!a?x(!0):await B()},"onStartConfirmSwap"),E=i(async()=>{v({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(G=>{v(G)}).catch(G=>console.error(G))},"onRefresh");Hr(()=>{!!C.current.length&&!S.length&&E(),C.current=S},[S.length]),Hr(()=>{u&&w()},[u]),Hr(()=>{u&&m(u)},[u]),Hr(()=>{u||T({selectedWallets:o,customDestination:r}).then(G=>v(G)).catch(G=>console.error(G))},[]),PC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=A.warnings?.quote??null,Y=A.error,pe=[];if(l&&pe.push(xe.createElement(Sm,{type:"error",variant:"alarm",title:l})),A.warnings?.quoteUpdate&&pe.push(xe.createElement(Sm,{variant:"alarm",type:"warning",title:A.warnings.quoteUpdate&&tr(A.warnings.quoteUpdate)})),H||Y){let G=`../${q.settings}`;pe.push(xe.createElement(Jo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:E,showWarningModal:L,confirmationDisabled:!g,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await I()},onChangeSettings:()=>s(G)}))}return xe.createElement(le,{header:{title:Ya.t("Confirm Swap"),onWallet:()=>{let G=`../${q.wallets}`;s(G)}},footer:xe.createElement(DC,null,xe.createElement("div",{className:FC()},xe.createElement(WC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!A.error||!g,onClick:U},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(BC,{size:24})))},c&&xe.createElement(Rc,{open:c,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),xe.createElement(me,null,xe.createElement("div",{className:UC()},xe.createElement(LC,{variant:"title",size:"small"},Ya.t("You get")),xe.createElement("div",{className:OC()},xe.createElement(mr,{onClick:!k&&!c&&!L?E: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:A.error,loading:k,warning:A.warnings?.quote??null})))}i(Tm,"ConfirmSwapPage");import{i18n as Vr}from"@lingui/core";import{useManager as oT}from"@rango-dev/queue-manager-react";import{Divider as Mm,NotFound as nT,styled as rT}from"@rango-dev/ui";import Lt,{useState as iT}from"react";import{useNavigate as aT}from"react-router-dom";import{i18n as QC}from"@lingui/core";import{Divider as bm,GroupedVirtualizedList as HC,Skeleton as GC,SwapListItem as Im,Typography as VC}from"@rango-dev/ui";import $e,{useCallback as Em,useEffect as XC,useRef as jC,useState as KC}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 zC,darkTheme as qC,styled as ln}from"@rango-dev/ui";var Ra=zC(),wm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),es=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ra}`]:{$$color:"$colors$neutral600",[`.${qC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),vm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),xm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var YC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=KC([]),l=jC(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,YC),s(m(u,l.current)))},[e.length]);if(XC(()=>{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(GC,{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(HC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:f=>$e.createElement(es,null,$e.createElement(ts,null,$e.createElement(VC,{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:P(),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 JC,IconButton as RC,SearchIcon as eT,TextField as tT}from"@rango-dev/ui";import pn from"react";import{styled as ZC}from"@rango-dev/ui";var Am=ZC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(tT,{prefix:pn.createElement(Am,null,pn.createElement(eT,{color:"black"})),suffix:!!s.length&&pn.createElement(RC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(JC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as Gr}from"@lingui/core";import Nm from"dayjs";var Wm=i(t=>{let e=new Map([["today",{title:Gr.t("Today"),swaps:[]}],["week",{title:Gr.t("This week"),swaps:[]}],["month",{title:Gr.t("This month"),swaps:[]}],["year",{title:Gr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=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 sT=rT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),lT=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=aT(),{manager:e,state:o}=oT(),n=Je(e).map(({swap:c})=>c),[r,a]=iT(""),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)||lT(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Vr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Vr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Mm,{size:"16"}),Lt.createElement(sT,null,u&&Lt.createElement(xm,null,Lt.createElement(Mm,{size:32}),Lt.createElement(nT,{title:Vr.t("No results found"),description:r?Vr.t("Try using different keywords"):""})),!u&&Lt.createElement(os,{list:p,onSwapClick:t,groupBy:Wm,isLoading:s}))))}i(Lm,"HistoryPage");import{i18n as ET}from"@lingui/core";import{Button as AT,Divider as Ym,styled as NT,WarningIcon as WT}from"@rango-dev/ui";import MT from"bignumber.js";import Ue,{useEffect as Zm,useState as Jm}from"react";import{useNavigate as LT}from"react-router-dom";import{i18n as fT}from"@lingui/core";import{Header as gT}from"@rango-dev/ui";import Xt,{useEffect as hT,useState as yT}from"react";import{i18n as cT}from"@lingui/core";import{Divider as rs,FullExpandedQuote as uT,Typography as mT}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 cn}from"@lingui/core";import{Select as pT}from"@rango-dev/ui";import $m from"react";function Xr(t){let{updateQuotePartialState:e,sortStrategy:o}=K(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return $m.createElement(_m,null,$m.createElement(pT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Xr,"SelectStrategy");var Dm=3;function un(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:d,sortStrategy:f,error:g}=K(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||P(),k=!!u&&u.results.length,w=C??S,A=i(x=>{if(!m||!d||!u)return null;let b={requestAmount:u.requestAmount,...x};return To(b,{fromToken:m,toToken:d,userSlippage:w,findToken:y})},"getQuoteWarning"),v=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(mT,{size:"xmedium",variant:"title"},cT.t("Sort by")),ge.createElement(Xr,{container:T})),ge.createElement(rs,{size:"10"})),e&&Array.from({length:Dm},(x,b)=>ge.createElement(ge.Fragment,{key:b},s?ge.createElement(uT,{loading:!0}):ge.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Dm-1&&ge.createElement(rs,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?L.map((x,b)=>{let I=A(x),B=ja(x.swaps),U=L.length-1===b;return ge.createElement(ge.Fragment,{key:x.requestId},ge.createElement(mo,{showModalFee:r,container:T,selected:p?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:I,fullExpandedMode:s,onClick:E=>{B||c("warning",I),c("error",B?.options||null),o(E)},type:"list-item"}),!U&&ge.createElement(rs,{size:16}))}):v&&ge.createElement(Bm,null,ge.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as dT,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",[`.${dT} &`]:{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 ST=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=yT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Fo();return hT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},ST):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Xt.createElement(Om,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:Se.EXPANDED_BOX_ID},Xt.createElement(gT,{title:fT.t("Routes"),suffix:Xt.createElement(Xt.Fragment,null,Xt.createElement(Xr,{container:m}),Xt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Xt.createElement(Um,null,Xt.createElement(un,{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 mn from"react";import{ReverseIcon as kT}from"@rango-dev/ui";import ss from"react";import{keyframes as CT,styled as zm}from"@rango-dev/ui";var as=450,TT=CT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),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:`${TT} ${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(kT,{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",w=!!s&&Ml(S,s.name),A=!Oi(g,c,m),v=!Oi(g,c,f),L=!m||!f||!f.gt(0)?null:Ke(m.toString(),f.toString());return mn.createElement(Gm,null,mn.createElement(Vm,null,mn.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:A?void 0:N(m,4,4),realUsdValue:A?void 0:ce(m),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ls,null)),mn.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:v?void 0:N(f,4,4),realValue:ce(d),realUsdValue:v?void 0:ce(f),error:v?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ps,"Inputs");import{useCallback as wT,useEffect as vT,useRef as xT,useState as bT}from"react";function Km(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Km,"useFetchAllQuotes");var IT=600;function jr({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:w,affiliateRef:A,affiliateWallets:v,fetchStatus:L}=h(),x=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),I=h().excludeLiquiditySources(),{findToken:B}=h(),[U,E]=bT(!0),H=xT(u),Y=k??T,G=!l||!p||eo(l,p)||!zo(u),ee=i(Z=>{E(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(U||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);E(!1),y("quotes",dt),C(M),qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&To(M,{fromToken:re,toToken:ke,userSlippage:Y,findToken:B});y("warning",V)}).catch(dt=>{let{error:ye}=Qr(dt);(ye?.type===0||ye?.type===1)&&f(),ye?.type!==2&&(y("error",ye),E(!1))})}},"fetch"),z=wT(yl(Z=>{W(Z)},IT),[G]);return vT(()=>{if(!t){E(!1);return}if(L!=="success")return;if(G){E(!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=z),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:I,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:v}),o},[L,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,x?.length,n,b.length,Y,A,w,JSON.stringify(v)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:I,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:v}),loading:U}}i(jr,"useSwapInput");var BT=NT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),PT=300;function Rm(){let t=LT(),{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}=Br(),{fetch:y,loading:T}=jr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:A}=te(),{isActiveTab:v}=ie(),[L,x]=Jm(!1),I=up({fetchMetaStatus:w,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:A.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Fl(S,C,k?.variant),U=!!n&&!!e&&!!o&&new MT(n).gt(0)&&!Ip(e,o),E=U&&w==="success"&&T,pe=(!B||B&&p?.results.length)&&(l||s);Zm(()=>{c(),d("refetchQuote",!0)},[]),Zm(()=>{g(U)},[U]);let G=(r||s)&&!L?y:void 0,ee=i(z=>{B&&f?(g(!1),setTimeout(()=>{t(z)},PT)):t(z)},"onHandleNavigation"),W=i(z=>{r?.requestId!==z.requestId&&(x(!1),u(z))},"onClickOnQuote");return Ue.createElement(BT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(AT,{type:"primary",size:"large",disabled:I.disabled||!v,prefix:I.action==="confirm-warning"&&Ue.createElement(WT,null),fullWidth:!0,onClick:()=>{I.action==="connect-wallet"?ee(q.wallets):I.action==="confirm-warning"?x(!0):ee(q.confirmSwap)}},I.title),header:{onWallet:()=>{ee(q.wallets)},hasBackButton:!1,title:k.title||ET.t("Swap"),suffix:Ue.createElement(ao,{hidden:B?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(q.swaps),onClickSettings:()=>{ee(q.settings)}})}},Ue.createElement(me,null,Ue.createElement(ps,{fetchingQuote:E,fetchMetaStatus:w,isExpandable:B,onClickToken:z=>{ee(z==="from"?q.fromSwap:q.toSwap)}}),Ue.createElement(Ym,{size:"2"}),B?null:Ue.createElement(mo,{quote:r,loading:E,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),ee(q.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Ym,{size:"10"}),Ue.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:L,confirmationDisabled:!v,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),m(!0),ee(q.confirmSwap)},onChangeSettings:()=>ee(q.settings)})):null)),B?Ue.createElement(is,{loading:E,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:f}):null)}i(Rm,"Home");import{i18n as ed}from"@lingui/core";import{Alert as _T,Divider as $T,List as DT,ListItemButton as FT,Radio as OT,RadioRoot as UT,Typography as zT}from"@rango-dev/ui";import Tt from"react";function jt(){let{setLanguage:t,language:e,config:o}=h(),n=Gl,r=o?.language||So;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||So),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(zT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(OT,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:ed.t("Language")}},Tt.createElement(me,null,Tt.createElement(_T,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement($T,{size:"8"}),Tt.createElement(UT,{value:t},Tt.createElement(DT,{type:Tt.createElement(FT,{title:ed.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(td,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as VT,Checkbox as XT,Image as jT,ListItemButton as KT,NotFound as YT,Typography as ZT}from"@rango-dev/ui";import De,{useState as JT}from"react";import{Checkbox as HT,Skeleton as nd}from"@rango-dev/ui";import fn from"react";import{styled as cs}from"@rango-dev/ui";var dn=cs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),us=cs("div",{width:80,display:"flex",justifyContent:"flex-end"}),ms=cs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as qT,styled as QT}from"@rango-dev/ui";var od=QT(qT,{height:61});var GT=30;function ds(){return fn.createElement(dn,null,Array.from(Array(GT),(t,e)=>fn.createElement(od,{hasDivider:!0,key:e,start:fn.createElement(nd,{variant:"circular",width:35,height:35}),title:fn.createElement(nd,{variant:"text",size:"large",width:90}),end:fn.createElement(HT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=JT(""),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:w}=y;return{start:De.createElement(jT,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement(XT,{checked:T,disabled:l}),title:De.createElement(ZT,{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(VT,{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(YT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(dn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(KT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as RT}from"@lingui/core";import Kr from"react";import{useNavigate as ek}from"react-router-dom";function rd(){let t=ek(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=K(),{fetch:l,loading:p}=jr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Kr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:RT.t("Routes"),suffix:Kr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(me,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(rd,"RoutesPage");import{i18n as md}from"@lingui/core";import{Divider as dd,getCategoriesCount as pk,SelectableCategoryList as ck}from"@rango-dev/ui";import Pt,{useState as fd}from"react";import{i18n as gs}from"@lingui/core";import{Divider as cd,Image as rk,ListItemButton as ik,NotFound as ak,Typography as ud}from"@rango-dev/ui";import Re,{useEffect as sk,useState as lk}from"react";var id=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as tk,styled as ad}from"@rango-dev/ui";var sd=ad("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Yr=ad(Xo,{padding:0,margin:0,listStyle:"none",[`& ${tk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as ok,Skeleton as ld}from"@rango-dev/ui";import Zr from"react";var nk=20;function pd(){return Zr.createElement(Yr,null,Array.from(Array(nk),t=>Zr.createElement(ok,{key:t,hasDivider:!0,start:Zr.createElement(ld,{variant:"circular",width:35,height:35}),title:Zr.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]=lk(e),{fetchStatus:l}=h();sk(()=>{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(ak,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):Re.createElement(Yr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(ik,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(rk,{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=pk(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(ck,{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 oi}from"@lingui/core";import{Divider as _d}from"@rango-dev/ui";import fo,{useState as Ek}from"react";import{useNavigate as Ak}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Jr,Divider as Sd,Image as Cd,Skeleton as gk,Tooltip as hk,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as dk}from"react";var gd=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(uk),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(mk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function uk(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(uk,"sortByMostUsedBlockchains");function mk(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(mk,"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();dk(()=>{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 fk}from"@rango-dev/ui";var yd=fk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var yk=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(yk),f=>Ne.createElement(gk,{key:f,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts.t("All"))),s.list.map(f=>Ne.createElement(hk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:P()},Ne.createElement(Jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ne.createElement(Cd,{src:f.logo,size:30})))),m?Ne.createElement(Jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(Cd,{src:s.more[0].logo,size:30})):null,d?Ne.createElement(Jr,{onClick:a,key:"more-blockchains"},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts._("More +{count}",{count:s.more.length}))):null)))}i(ws,"BlockchainsSection");import{i18n as Ls}from"@lingui/core";import{darkTheme as Wd,Divider as Po,ExternalLinkIcon as Tk,Image as kk,ListItemButton as wk,NotFound as vk,PinIcon as xk,Skeleton as Md,Typography as ti,VirtualizedList as bk}from"@rango-dev/ui";import j,{useEffect as Ld,useState as Bd}from"react";import{Divider as Ad,ListItem as Ck,Skeleton as gn}from"@rango-dev/ui";import ct from"react";import{css as Bo,darkTheme as Td,ImageContainer as Sk,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"}}),Rr=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"}}),ei=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),RO=et("div",{display:"flex",alignItems:"center"}),xd=et("div",{position:"relative",[`& ${Sk}`]:{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(Rr,null,Array.from(Array(t.size),e=>ct.createElement(Ck,{key:e,hasDivider:!0,start:ct.createElement(gn,{variant:"circular",width:35,height:35}),end:ct.createElement(ei,null,ct.createElement(gn,{variant:"text",size:"large",width:70}),ct.createElement(Ad,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(gn,{variant:"text",size:"large",width:90}),ct.createElement(Ad,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Nd,"LoadingTokenList");var Bs=20,Ik=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(ti,{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(Tk,{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(vk,{title:Ls.t("No results found"),description:Ls.t("Try using different keywords")})):j.createElement(bk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Pn(m(y)),k=y.address||"",w=p.find(x=>x.name===y.blockchain),A=ea(w.color,"main"),v={$$color:A.main250,[`.${Wd} &`]:{$$color:A.main850},backgroundColor:"$$color"},L={$$color:A.main600,[`.${Wd} &`]:{$$color:A.main200},color:"$$color"};return j.createElement("div",{style:{paddingRight:5}},j.createElement(wk,{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(kk,{src:y.image,size:30}),f(y,t.type)&&j.createElement(bd,null,j.createElement(xk,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!k?j.createElement(Ns,null,j.createElement(ti,{variant:"title",size:"xmedium"},y.symbol),j.createElement(Po,{direction:"horizontal",size:4}),j.createElement(Ws,{css:v},j.createElement(Ms,{variant:"body",size:"xsmall",css:L},y.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?Ik({address:k,token:a[C],customCssForTag:v,customCssForTagTitle:L,name:y.name,url:w.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:d?j.createElement(ei,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(ti,{variant:"body",className:As(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return j.createElement(wd,null,j.createElement(ti,{variant:"label",size:"large"},Ls.t("Select Token")),j.createElement(Po,{size:4}),l==="loading"&&j.createElement(Nd,{size:Bs}),l==="success"&&j.createElement(Rr,{as:"ul"},S()))}i(Pd,"TokenList");function Ps(t){let{type:e}=t,o=Ak(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=K(),c=te.use.getBalanceFor(),[m,d]=Ek(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),T=i(w=>{e==="source"?s({token:w,meta:{blockchains:S,tokens:C}}):l({token:w,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:oi.t("Source"),destination:oi.t("Destination")};return fo.createElement(le,{header:{title:oi.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(ws,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:w=>{y(w)}}),fo.createElement(_d,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:oi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:w=>d(w.target.value)}),fo.createElement(_d,{size:16}),fo.createElement(Pd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:w=>{T(w);let A=S.find(v=>w.blockchain===v.name);A&&y(A),n()}})))}i(Ps,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as Rk,Button as ew,styled as tw}from"@rango-dev/ui";import go from"react";import{useInRouterContext as ow,useSearchParams as nw}from"react-router-dom";import{i18n as zd}from"@lingui/core";import{Divider as Lk,InfoIcon as Bk,TextField as Pk,Tooltip as _k,Typography as qd}from"@rango-dev/ui";import ut from"react";import{Chip as Nk,styled as hn,TextField as Wk}from"@rango-dev/ui";var $d=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Dd=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Wk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Fd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ni=hn("div",{maxWidth:"280px",padding:"$10"}),Od=hn(Nk,{width:"61px",flexShrink:0});import{i18n as _s}from"@lingui/core";import{Typography as Mk}from"@rango-dev/ui";import yn from"react";function Ud(){return yn.createElement(ni,null,yn.createElement(Mk,{variant:"label",size:"medium",color:"neutral700"},_s.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,_s.t("Warning")),":",_s.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(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(Lk,{direction:"horizontal",size:4}),ut.createElement(_k,{container:P(),side:"top",sideOffset:4,content:ut.createElement(Ud,null)},ut.createElement(Bk,{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(Pk,{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 ri,ExchangeIcon as Dk,InfinityIcon as Fk,InfoIcon as Ok,LanguageIcon as Uk,LightModeIcon as Gd,List as zk,ListItem as qk,ListItemButton as Qk,Skeleton as Hk,styled as Gk,Switch as Vk,Tabs as Xk,Tooltip as jk,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as Kk}from"react-router-dom";var Yk=Gk("div",{width:"202px",height:"$40"}),Zk=[{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"))}],Jk=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=Kk(),{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,w=C.filter(H=>H.type==="DEX"),A=w.length,v=w.filter(H=>H.selected).length,L=i((H,Y)=>{switch(l){case"loading":return O.createElement(Hk,{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"),x={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,L(k,T),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(q.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(v,A),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement(Dk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},I={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Uk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(q.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ri,{direction:"horizontal",size:4}),O.createElement(jk,{side:"top",sideOffset:4,container:P(),content:O.createElement(ni,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(Ok,{color:"gray"}))),start:O.createElement(Fk,{color:"gray",size:16}),end:O.createElement(Vk,{checked:g}),onClick:S},U={id:"theme-item",type:O.createElement(qk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(Yk,null,O.createElement(Xk,{container:P(),items:Zk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Jk(n)},E=d?[]:[x,b];return f||E.push(I),E.push(B),!e?.singleTheme&&!m&&E.push(U),O.createElement(zk,{type:O.createElement(Qk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:E})}i(Vd,"SettingsLists");var rw=tw("div",{paddingLeft:"$8"});function Xd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=nw(),r=ow(),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(Rk,{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(rw,null,go.createElement(ew,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),go.createElement($s,null),go.createElement(Vd,null)))}i(Xd,"SettingsPage");import{i18n as Gw}from"@lingui/core";import{cancelSwap as Vw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Xw}from"@rango-dev/queue-manager-react";import{Alert as jw}from"@rango-dev/ui";import tl from"react";import{useParams as Kw}from"react-router-dom";import{i18n as wt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Iw,getCurrentStep as Ew,getRelatedWalletOrNull as Aw}from"@rango-dev/queue-manager-rango-preset";import{Button as bf,CopyIcon as Nw,Divider as Ww,IconButton as Mw,QuoteCost as Lw,RangoExplorerIcon as Bw,StepDetails as Pw,Tooltip as _w,Typography as ho,useCopyToClipboard as $w}from"@rango-dev/ui";import{useWallets as Dw}from"@rango-dev/wallets-react";import If from"bignumber.js";import{PendingSwapNetworkStatus as di}from"rango-types";import R,{useEffect as Ef,useRef as Fw,useState as Af}from"react";import{useNavigate as Ow}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var iw=[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"):`${iw[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 si}from"rango-types";import li from"react";import{i18n as ii}from"@lingui/core";import{Button as Yd,Divider as Os,MessageBox as aw}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(aw,{type:"error",title:ii.t("Cancel Swap"),description:ii.t("Are you sure you want to cancel this swap?")}),Yt.createElement(Os,{size:32}),Yt.createElement(Yd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Cancel it")),Yt.createElement(Os,{size:12}),Yt.createElement(Yd,{variant:"outlined",type:"primary",size:"large",onClick:e},ii.t("No, Continue"))),"CancelContent");import{i18n as ai}from"@lingui/core";import{Button as Jd,Divider as Us,MessageBox as sw,Typography as lw}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(sw,{type:"error",title:ai.t("Delete Transaction"),description:ai.t("Are you sure you want to delete this swap?")}),_t.createElement(Us,{size:32}),_t.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Delete it")),_t.createElement(Us,{size:12}),_t.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(lw,{variant:"title",size:"medium",color:"primary"},ai.t("No, Cancel")))),"DeleteContent");import{i18n as zs}from"@lingui/core";import{PendingSwapNetworkStatus as qs}from"rango-types";var Qs={[qs.WaitingForNetworkChange]:{type:"loading",title:zs.t("Change Network")},[qs.WaitingForConnectingWallet]:{type:"warning",title:zs.t("Connect Wallet")},[qs.NetworkChanged]:{type:"success",title:zs.t("Network Changed")}};import{debug as of}from"@rango-dev/logging-core";import{MessageBox as pw,Wallet as cw}from"@rango-dev/ui";import{useWallets as uw}from"@rango-dev/wallets-react";import _o,{useState as mw}from"react";import{styled as ef}from"@rango-dev/ui";var tf=ef("div",{display:"flex",justifyContent:"center"}),zz=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}=uw(),[c,m]=mw(null),d=n?.walletType,f=d?Wi(u(d)):null,g=d?p(d):null;return _o.createElement(_o.Fragment,null,_o.createElement(pw,{type:e,title:o,description:r}),a&&!!d&&!!f&&!!g&&_o.createElement(tf,null,_o.createElement(cw,{container:P(),title:g.name,image:g.img,type:d,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:d,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(d).catch(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===si.WaitingForNetworkChange||e===si.WaitingForConnectingWallet||e===si.NetworkChanged;return li.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&li.createElement(nf,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==si.WaitingForNetworkChange}),e==="delete"&&li.createElement(Rd,{onClose:o,onDelete:n}),e==="cancel"&&li.createElement(Zd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Gs,Divider as pi,MessageBox as rf,TokenAmount as dw,Typography as Vs}from"@rango-dev/ui";import Le from"react";import{useNavigate as fw}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=fw();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:Sn.t("Swap Successful")},Le.createElement(dw,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(pi,{size:12}),Le.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(rf,{type:"error",title:Sn.t("Transaction Failed"),description:m}),Le.createElement(pi,{size:32}),n==="success"&&Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Le.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Le.createElement(pi,{size:12}),d&&Le.createElement(Le.Fragment,null,Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Sn.t("Diagnosis")),Le.createElement(pi,{size:12})),Le.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import bw from"react";import{i18n as kw}from"@lingui/core";import{Alert as kf,IconButton as ww,LinkIcon as vw}from"@rango-dev/ui";import Zt,{Fragment as xw}from"react";import{Alert as yw,ChevronDownIcon as Sw,IconButton as Cw}from"@rango-dev/ui";import Do,{useState as Tw}from"react";import{css as Cn,darkTheme as gw,styled as $t,Typography as hw}from"@rango-dev/ui";var af=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ci=$t("div",{width:"100%"}),sf=$t(Xo,{padding:"$0 $20 $20 $20"}),vq=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),lf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),xq=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),$o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${gw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),pf=Cn({padding:"$5 0"}),ui=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),cf=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),uf=Cn({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"}),mi=$t(hw,{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]=Tw(!1);return Do.createElement(yw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Do.createElement(Cw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Do.createElement(gf,{rotated:o},Do.createElement(Sw,{size:12,color:"gray"}))),footer:Do.createElement(hf,{open:o},Do.createElement(mi,{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 Tn from"react";function Tf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(Cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Sf.t("Change"))}):r===Ys.WaitingForConnectingWallet?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(Cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},Sf.t("Connect"))}):Tn.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=Go(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(xw,{key:g},Zt.createElement(kf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:kw.t("View transaction"),action:m.url&&Zt.createElement(ww,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Zt.createElement(vw,{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:bw.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function xf(t){if(Go(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(xf,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Dw(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=K.use.retry(),d=ie.use.isActiveTab(),f=Ow(),[g,S]=$w(wf),C=Fw(null),[y,T]=Af(null),[k,w]=Af(null),A=i(()=>{r(),T(null)},"onCancel"),v=Ee.use.getNotifications(),L=Ee.use.removeNotification(),x=v(),b=Ew(e),I=b?.networkStatus;Ef(()=>{x.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),L(e.requestId)):k&&w(null))},[e.status,e.requestId]),Ef(()=>{G?T(di.WaitingForNetworkChange):I===di.WaitingForConnectingWallet||I===di.NetworkChanged?T(I):T(null)},[I]);let B=vp(e),U=b?Iw(e,b):null,E=b?Aw(e,b):null,H=Kd(e),Y=xp(e),pe=i(ye=>!!l(ye)?.mobileWallet,"isMobileWallet"),G=I===di.WaitingForNetworkChange&&!!U&&!!E?.walletType&&(pe(E.walletType)||a(E.walletType,U)),ee=G?s.bind(null,E.walletType,U):void 0,W=wp(e,b),z=vf({swap:e,switchNetwork:ee,showNetworkModal:I,setNetworkModal:T,message:W,blockchains:p,swappers:u}),Z=z.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:z[Z-1].to.token.displayName,conciseAddress:_n(e.wallets[z[Z-1].to.chain.displayName]?.address||""),chain:z[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."),B?`${wt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),rt&&R.createElement(mi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:wt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(bo,null,R.createElement(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(ci,null,R.createElement("div",{className:$o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t("Request ID")}:`),R.createElement("div",{className:ui()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Mw,{variant:"ghost",onClick:S.bind(null,o||"")},R.createElement(Nw,{size:16,color:"gray"})),R.createElement(mf,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(_w,{container:P(),content:wt.t("View on Rango Explorer"),side:"bottom"},R.createElement(Bw,{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(Lw,{fee:N(String(Fe),2,2),time:Uo(An(e.steps)),steps:Z}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:_},token:{displayName:z[Z-1].to.token.displayName,image:z[Z-1].to.token.image},chain:{image:z[Z-1].to.chain.image,displayName:z[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(Ww,{size:8}),R.createElement(sf,{ref:C},z.map((ye,M)=>{let V=M,X=xf(e.steps[M]),qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===z.length-1;return R.createElement(Pw,{key:V,step:ye,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:qe,tooltipContainer:P()})}))),R.createElement(Hs,{state:y,onClose:()=>T(null),onCancel:A,onDelete:n,message:W.detailedMessage.content,currentStepWallet:E,walletButtonDisabled:!d}),R.createElement(Xs,{open:!!k,diagnosisUrl:ot,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:z[Z-1].to.token.displayName,image:z[Z-1].to.token.image},chain:{image:z[Z-1].to.chain.image},description:dt}))}i(Js,"SwapDetails");import{i18n as gi}from"@lingui/core";import{Divider as Mf,NotFound as Hw,Skeleton as wn,Typography as hi}from"@rango-dev/ui";import he from"react";import{i18n as Uw}from"@lingui/core";import{Divider as zw,Skeleton as qw,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"}),kn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),fi=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),$Q=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),DQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),FQ=mt({paddingTop:"$15",display:"flex"}),OQ=mt({padding:"$15 $0"}),UQ=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),zQ=mt({paddingBottom:"$10"}),qQ=mt({display:"flex",justifyContent:"start",alignItems:"center"}),QQ=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),HQ=mt({display:"flex",alignItems:"center"}),GQ=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(nn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(Qw,{variant:"title",size:"small"},Uw.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(kn,null,Te.createElement(Ct,{separator:!1}),Te.createElement("div",{className:Wf()},Te.createElement(zw,{direction:"horizontal",size:20}),Te.createElement(qw,{height:22,variant:"rectangular"}))),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(fi,null),Te.createElement(kn,null,Te.createElement(Ct,{separator:!1}))))}i(el,"LoadingSwapDetails");function Lf(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(le,{header:{title:gi.t("Swap and Bridge"),suffix:he.createElement(bo,null)}},o&&he.createElement(af,null,he.createElement(ci,null,he.createElement("div",{className:$o()},he.createElement(hi,{variant:"label",size:"large",color:"neutral700"},`${gi.t("Request ID")}:`),he.createElement("div",{className:ui()},he.createElement(hi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(Mf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}),he.createElement(Mf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:$o()},he.createElement(hi,{className:pf(),variant:"label",size:"large",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(hi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})))),he.createElement(el,null)),!o&&he.createElement(lf,null,he.createElement(Hw,{title:gi.t("Not found"),description:gi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Lf,"SwapDetailsPlaceholder");function Bf(){let{manager:t,state:e}=Xw(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=Kw(),a=Ze(),{fetchStatus:s}=h();if(!r)return tl.createElement(jw,{containerStyles:{margin:"20px"},type:"error",title:Gw.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&&Vw(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(),ji(),Yw([{path:q.home,element:ze.createElement(Rm,null)},{path:q.routes,element:ze.createElement(rd,null)},{path:q.fromSwap,children:[{index:!0,element:ze.createElement(Ps,{type:"source"})},{path:q.blockchains,element:ze.createElement(ys,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:ze.createElement(Ps,{type:"destination"})},{path:q.blockchains,element:ze.createElement(ys,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:ze.createElement(Xd,null)},{path:q.languages,element:ze.createElement(td,null)},{path:q.exchanges,element:ze.createElement(fs,{sourceType:"Exchanges"})},{path:q.bridges,element:ze.createElement(fs,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:ze.createElement(Lm,null)},{path:q.swapDetails,element:ze.createElement(Bf,null)}]},{path:q.wallets,element:ze.createElement(Qc,null)},{path:q.confirmSwap,element:ze.createElement(Tm,null)}])}i(Pf,"AppRoutes");import{useQueueManager as av}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as sv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as lv}from"rango-sdk";import{useContext as pv,useEffect as cv,useState as zf}from"react";import{globalCss as Zw}from"@rango-dev/ui";var _f=i(()=>Zw({"@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 Jw}from"@rango-dev/wallets-react";import{useEffect as Rw,useRef as ev}from"react";function Df(){let{connect:t,state:e}=Jw(),o=ev({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Rw(()=>{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 tv,MainEvents as yi,RouteEventType as Ff,StepEventType as Of,StepExecutionEventStatus as ov,useEvents as nv}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=nv();Uf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Of.TX_EXECUTION&&l.status===ov.TX_SENT&&!tv(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(yi.StepEvent,a),()=>r.off(yi.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(yi.RouteEvent,a),()=>r.off(yi.RouteEvent,a)},[r,t.length])}i(ol,"useSubscribeToWidgetEvents");import{useManager as rv}from"@rango-dev/queue-manager-react";import{useEffect as iv}from"react";function nl(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=rv();iv(()=>{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}=wr(),[o,n]=zf(""),[r,a]=zf(),s=pv(zn),l=t.filter(lv),{fetchApiConfig:p}=$f();av({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),cv(()=>(to.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===sv(o)?.[0]&&n("")}),p().catch(console.log),to.destroy),[])}i(rl,"useBootstrap");import{styled as uv}from"@rango-dev/ui";var qf=uv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Si(){rl();let{config:t}=h(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=jt();return il.createElement(mv,{language:o},il.createElement(qf,{id:"swap-container",className:e()},il.createElement(Pf,null)))}i(Si,"Main");import{setSolanaSignerConfig as Lv}from"@rango-dev/signer-solana";import sl,{useEffect as Xf,useMemo as Bv}from"react";import{useState as dv}from"react";var fv=i(()=>{let[t,e]=dv(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=fv;import{checkWaitingForNetworkChange as gv,makeQueueDefinition as hv}from"@rango-dev/queue-manager-rango-preset";import{Provider as yv}from"@rango-dev/queue-manager-react";import{useWallets as Sv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Cv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Tv}from"rango-types";import kv,{useMemo as wv}from"react";function vv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Sv(),l=wv(()=>hv({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,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=p.filter(Tv),S=i(k=>{let{supportedChains:w}=s(k);return Mn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:Cv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=ie.use.isActiveTab();return kv.createElement(yv,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{gv(k)},isPaused:!T},t.children)}i(vv,"QueueManager");var Hf=vv;import{useManager as Av}from"@rango-dev/queue-manager-react";import Nv,{createContext as Wv,useContext as Mv}from"react";import{cancelSwap as xv,getCurrentBlockchainOfOrNull as bv,getCurrentStep as Iv,getRelatedWalletOrNull as Ev}from"@rango-dev/queue-manager-rango-preset";var Ci=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Zn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&xv(o)}getCurrentStepInfo(e){let o=Iv(e);return{step:o,wallet:o?Ev(e,o):null,network:o?bv(e,o):null}}};var Gf=Wv(void 0);function al(t){let{manager:e}=Av(),o=ie.use.isActiveTab(),n=K.use.retry(),{findToken:r}=h(),a=new Ci(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=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 Nv.createElement(Gf.Provider,{value:C},t.children)}i(al,"WidgetInfo");function Vf(){let t=Mv(Gf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Vf,"useWidget");function Ti(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Qf();return Xf(()=>{n&&r(n)},[n]),Bv(()=>{_l({API_KEY:o?.apiKey||vn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),Xf(()=>{t.config?.signers?.customSolanaRPC&&Lv("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(Ti,"WidgetProvider");function jf(t){let e=t.config?.externalWallets;return ki.createElement(ip,null,e?ki.createElement(Si,null):ki.createElement(Ti,{config:t.config??Pi},ki.createElement(Si,null)))}i(jf,"Widget");export{e2 as EventSeverity,t2 as MainEvents,u2 as Networks,f2 as PendingSwapNetworkStatus,o2 as RouteEventType,wi as SUPPORTED_FONTS,n2 as StepEventType,r2 as StepExecutionBlockedEventStatus,i2 as StepExecutionEventStatus,Se as UI_ID,p2 as WalletEvents,m2 as WalletTypes,jf as Widget,Ti as WidgetProvider,qn as WidgetWallets,ra as customizedThemeTokens,l2 as readAccountAddress,wr as useWallets,Vf as useWidget,a2 as useWidgetEvents};
|
|
1
|
+
var og=Object.defineProperty;var i=(t,e)=>og(t,"name",{value:e,configurable:!0});import{EventSeverity as P2,RouteEventType as _2,StepEventType as D2,StepExecutionBlockedEventStatus as $2,StepExecutionEventStatus as F2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as U2,useWallets as br,Events as Q2}from"@rango-dev/wallets-react";import{Networks as q2,WalletTypes as H2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as V2}from"rango-types";import{UI_ID as ng}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",...ng};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 Zg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Jg}from"rango-sdk";import Vn,{createContext as Rg,useEffect as up,useMemo as eh,useRef as mp}from"react";import{useEffect as xg}from"react";import{create as kg}from"zustand";import{subscribeWithSelector as vg}from"zustand/middleware";import rg from"mitt";var we=rg(),ig={on:we.on,off:we.off};import{RangoClient as Cg}from"rango-sdk";import{BlockchainCategories as mg,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as dg}from"@rango-dev/wallets-react";import{detectInstallLink as fg,getCosmosExperimentalChainInfo as gg,isEvmAddress as hg,KEPLR_COMPATIBLE_WALLETS as mx,Networks as Nl}from"@rango-dev/wallets-shared";import Li from"bignumber.js";import{isCosmosBlockchain as yg}from"rango-types";import ag from"bignumber.js";var $e=new ag(0);import{WalletTypes as sg}from"@rango-dev/wallets-shared";var Sl=[sg.LEAP];import{BlockchainCategories as Ei,WalletState as ug}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 Et(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Et,"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 P=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&&Et(e,t),r=!!o&&Et(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===ug.CONNECTED);return e===!1&&o}i(Ln,"isSingleWalletActive");function Bn(t,e){return e.find(o=>o.name===t)?.displayName}i(Bn,"getBlockchainDisplayNameFor");function Re(t,e){return e.find(o=>o.name===t)?.shortName}i(Re,"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 St=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 Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.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:fg(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}=dg(p),m=l.length>0,f=l.includes(c),d=c===Nl.Unknown;if(m&&!f&&!d)return;let S=c===Nl.Unknown&&hg(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 Sg(r)},"calculateWalletUsdValue");function Sg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Sg,"numberWithThousandSeparator");var On=i((t,e)=>{let o=gg(Object.entries(t).map(([,n])=>n).filter(yg));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===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.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===mg.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 It(t){return Pi[t]||""}i(It,"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 Cg(It("API_KEY"),It("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 Tg=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=Tg;var te=Ut(kg()(vg((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 wg}from"@rango-dev/provider-all";function Hn(t,e){let o=wg({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 xg(()=>{o(),n=Hn(t,e)},[Kl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Oi,"useWalletProviders");import Hg,{createContext as Gg,useContext as Vg,useEffect as Xg,useRef as Kg}from"react";import{create as zg}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"}},bg={clientUrl:void 0},Eg={liquiditySources:void 0},jl=i((t,e,o)=>({config:{...Ui,...t},iframe:bg,campaignMode:Eg,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 et(t,e){return e?.[t]==="hidden"}i(et,"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?!!(Et(c.symbol,o.searchFor)||Et(c.address||"",o.searchFor)||Et(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 Ig,English as Ag,Finland as Ng,French as Wg,German as Mg,Greece as Lg,Italian as Bg,Japanese as Pg,Netherlands as _g,Poland as Dg,Portuguese as $g,Russian as Fg,Spanish as Og,Swedish as Ug,Ukrainian as Qg}from"@rango-dev/ui";var Rl=[{title:"English",label:"English",local:"en",SVGFlag:Ag},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Og},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Wg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Pg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:$g},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Ig},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Fg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Mg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Qg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Ug},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Ng},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:_g},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Lg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Bg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Dg}],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=et("theme",n),s=et("language",n),l=et("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 zg()(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=Gg(null);function h(){let t=Vg(sp);if(Xg(()=>{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=Kg();return e.current||(e.current=ap(t.config)),Hg.createElement(sp.Provider,{value:e.current},t.children)}i(lp,"AppStoreProvider");import{create as Yg}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(Yg()((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=Rg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function th(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(Jg).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=eh(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Vn.createElement(Xn.Provider,{value:C},Vn.createElement(Zg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(th,"Main");function Kn(t){let{config:e,...o}=t;return Vn.createElement(lp,{config:e},Vn.createElement(th,{...o,config:e}))}i(Kn,"WidgetWallets");import xi from"react";import oh,{Fragment as nh}from"react";import{MemoryRouter as rh,useInRouterContext as ih}from"react-router";function dp({children:t}){let o=ih()?nh:rh;return oh.createElement(o,null,t)}i(dp,"AppRouter");import{I18nManager as yw}from"@rango-dev/ui";import ml from"react";import Ge from"react";import{useRoutes as nw}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 Oe from"bignumber.js";import{create as lh}from"zustand";import{subscribeWithSelector as ph}from"zustand/middleware";import{getLastSuccessfulStep as sh}from"@rango-dev/queue-manager-rango-preset";import XE 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 ct}from"@lingui/core";import{RouteEventType as ME}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=ct.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=ct.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=ct.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=ct.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=tt(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=ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ct.t(" for input and network fee")),ct.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:Re(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||ct.t("Waiting for connecting wallet");break;case Zn.WaitingForQueue:n=n||ct.t("Waiting for other running tasks to be finished");break;case Zn.WaitingForNetworkChange:n=n||ct.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 At(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(At,"getPriceImpactLevel");function nr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=sh(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=tt(s.toString(),l.toString());if(!!c&&hp(s,c)){let f=Jn(t?.swaps,r),d=At(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 tt(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(tt,"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 Oe(e||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(lh()(ph(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Oe(0),outputUsdValue:new Oe(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 Oe(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 Oe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Oe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},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:new Oe(0)}})},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 Oe(0),outputUsdValue:new Oe(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 Oe(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 Oe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Oe(0),inputUsdValue:new Oe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Oe(0),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),_=c?.from?.token,Q=_&&g(_);(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),_=c?.to?.token,Q=_&&g(_);(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 ch}from"react";import{useInRouterContext as uh,useLocation as mh,useSearchParams as dh}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=mh(),[e,o]=dh(),{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=uh(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=ch(),{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"),_=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:_,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,_=g.find(A=>A.name===w.toBlockchain),Q=w.toToken&&_?I(Zi(w.toToken,_)):void 0;b&&(p(b),E&&c({token:E,meta:{blockchains:g,tokens:S}})),_&&(u(_),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 FC}from"@rango-dev/queue-manager-react";import{Alert as Tm,Button as OC,css as rs,Divider as ns,IconButton as km,styled as UC,Typography as QC,WalletIcon as zC}from"@rango-dev/ui";import Ie,{useEffect as Xr,useLayoutEffect as qC,useRef as HC,useState as dn}from"react";import{useNavigate as GC}from"react-router-dom";import{i18n as kt}from"@lingui/core";import{Alert as _a,BalanceErrors as vS,Button as Jc,ChevronDownIcon as wS,ChevronLeftIcon as xS,CloseIcon as bS,Divider as tn,IconButton as Rc,MessageBox as ES,PasteIcon as IS,Typography as Er,WalletIcon as AS}from"@rango-dev/ui";import $,{useCallback as NS,useEffect as eu,useMemo as WS,useRef as MS,useState as uo}from"react";import{useNavigate as LS}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 gh}from"@rango-dev/ui";import hh from"react";function re(t){let{watermark:e}=ae();return hh.createElement(gh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import ur,{useRef as Ch}from"react";import*as bo from"@radix-ui/react-collapsible";import{keyframes as Hp,styled as lr}from"@rango-dev/ui";var ta=300,yh=Hp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Sh=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:`${yh} ${ta}ms ease-out`},false:{animation:`${Sh} ${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=Ch(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 Th,styled as ot,TextField as kh}from"@rango-dev/ui";var Xp=ot("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Kp=ot("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),vh=ot("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=ot(vh,{alignSelf:"stretch",minHeight:"93px"}),Yp=ot("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Zp=ot(Th,{position:"absolute",left:"$20"}),Jp=ot("div",{paddingTop:"$20"}),Rp=Vp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ec=ot("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=ot("div",{display:"flex"}),nc=ot(kh,{backgroundColor:"$neutral100",padding:"$15"}),rc=ot("div",{overflow:"visible",width:"100%"}),ic=ot("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 ut}from"@lingui/core";import{Button as SS,Divider as Ba,Image as CS,MessageBox as xr,SelectableWallet as TS,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 wh}from"@rango-dev/wallets-react";import{detectMobileScreens as xh,KEPLR_COMPATIBLE_WALLETS as bh,WalletTypes as Eo}from"@rango-dev/wallets-shared";import{useCallback as Eh,useEffect as Ih,useState as Ah}from"react";var Nh=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}=wh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Nh,d=Wl(s,p,f,e);d=xh()?d.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):d;let g=Dl(d),[S,C]=Ah(""),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=Eh(()=>{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");Ih(()=>()=>{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(_=>_.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((x,w,b)=>On(b,w)&&y(x)&&!bh.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 pS,getCategoriesCount as cS,SelectableCategoryList as uS,styled as Hc,Typography as mS,Wallet as dS,WalletState as qc}from"@rango-dev/ui";import it,{useState as en}from"react";import{useManager as Py}from"@rango-dev/queue-manager-react";import{BottomLogo as _y,Divider as Wc,Header as Dy}from"@rango-dev/ui";import Te,{useEffect as ba,useRef as Mc,useState as $y}from"react";import{useRef as Wh}from"react";function dr(){return window.self!==window.top}i(dr,"isAppLoadedIntoIframe");function ra(){let t=Wh(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 Mh}from"react-router-dom";function nt(){let t=Mh();return()=>t(-1)}i(nt,"useNavigateBack");import{createTheme as ua,darkTheme as Gh,lightTheme as Vh}from"@rango-dev/ui";import{useEffect as Xh,useState as Kh}from"react";import{theme as qh,darkColors as Hh}from"@rango-dev/ui";import pa from"react";function Lh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Lh,"expandShortHexColor");function Bh(t){return/[0-9]+$/.test(t)}i(Bh,"isOverridingColor");function Ph(t,e){return t.padStart(e,"0")}i(Ph,"pad");function ia(t){let e=Math.min(Math.max(Math.round(t),0),255);return Ph(e.toString(16),2)}i(ia,"intToHex");function _h(t){return`#${ia(t.red)}${ia(t.green)}${ia(t.blue)}`}i(_h,"rgbToHex");function Dh(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(Dh,"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 Fh(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(Fh,"generateTint");function Oh(t){return ac(t,$h)}i(Oh,"calculateShades");function Uh(t){return ac(t,Fh)}i(Uh,"calculateTints");function ac(t,e){let o=Dh(t),n=[];for(let r=1;r<9;r++)n.push(_h(e(o,r)));return n}i(ac,"calculateColors");function aa(t,e,o){let a=Uh(t).reverse().concat(t),s=Oh(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)&&!Bh(r)){let p=Lh(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"),Qh=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"),zh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),la=i(t=>Qh(zh(5381,JSON.stringify(t))>>>0),"toHash");function ca(t){let e=qh.colors,o={...e,...Hh},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]=Kh("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,Vh.className],f=[c.className,Gh.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 Xh(()=>{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 rt=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 jh,Button as Yh}from"@rango-dev/ui";import cc from"react";function ma(t){return cc.createElement(jh,{action:cc.createElement(Yh,{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 Zh,Divider as Jh,MessageBox as Rh}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:P()},gr.createElement(Rh,{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(Jh,{size:20}),gr.createElement(Zh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},da.t("Confirm"))))}i(fa,"ActivateTabModal");import{ChevronLeftIcon as oy}from"@rango-dev/ui";import yc from"react";import{css as ey,darkTheme as uc,IconButton as ty,styled as ro}from"@rango-dev/ui";var Tt=ro(ty,{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=ey({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(Tt,{variant:"ghost",size:"small",onClick:t.onClick},yc.createElement(oy,{color:"black",size:16}))}i(ga,"BackButton");import{i18n as ny}from"@lingui/core";import{Button as ry,Typography as iy}from"@rango-dev/ui";import ha from"react";function ya(t){return ha.createElement(Io,null,ha.createElement(ry,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ha.createElement(iy,{variant:"label",size:"medium",color:"error500"},ny.t("Cancel"))))}i(ya,"CancelButton");import{i18n as ay}from"@lingui/core";import{Image as sy,Tooltip as ly,WalletIcon as py}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(sy,{src:r.image,size:14})))):ay.t("Connect Wallet");return io.createElement(ly,{container:t.container,side:"bottom",content:n},io.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(mc,null),io.createElement(py,{size:18,color:"black"})))}i(Sa,"WalletButton");import{i18n as Sr}from"@lingui/core";import{NotificationsIcon as by,Popover as Ey,SettingsIcon as Iy,Tooltip as Cr,TransactionIcon as Ay}from"@rango-dev/ui";import We from"react";import{Notifications as dy}from"@rango-dev/ui";import fy from"react";import{useNavigate as gy}from"react-router-dom";import{create as cy}from"zustand";import{persist as uy,subscribeWithSelector as my}from"zustand/middleware";var xe=Ut(cy()(uy(my((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=gy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return fy.createElement(dy,{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 hy}from"@rango-dev/queue-manager-react";import{InProgressIcon as yy}from"@rango-dev/ui";import Sc from"react";var Sy=i(()=>{let{manager:t}=hy();return rt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Sc.createElement(gc,null,Sc.createElement(yy,{color:"info",size:6})):null},"InProgressTransactionBadge"),Cc=Sy;import{EventSeverity as Cy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ty}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===Cy.WARNING);return o?Tc.createElement(dc,{isSever:n},Tc.createElement(Ty,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(kc,"NotificationsBadge");import{RefreshProgressButton as ky}from"@rango-dev/ui";import Ta,{useEffect as vy,useState as vc}from"react";var wy=1e3,wc=60,xy=100;function yr({onClick:t}){let[e,o]=vc(0),[n,r]=vc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");vy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===wc&&l()},wy):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(Tt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Ta.createElement(fc,{onTransitionEnd:()=>r(!1),isRefetched:n},Ta.createElement(ky,{size:22,color:t?"black":"gray",progress:e/wc*xy})))}i(yr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=et("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Cr,{container:a||P(),side:"top",content:Sr.t("Refresh")},We.createElement(yr,{onClick:e})),!l&&We.createElement(Ey,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:We.createElement(Ca,null)},We.createElement("div",null,We.createElement(Cr,{container:P(),side:"top",content:Sr.t("Notifications")},We.createElement(Tt,{size:"small",variant:"ghost"},We.createElement(by,{size:18,color:"black"}),We.createElement(kc,null))))),!r.includes("settings")&&We.createElement(Cr,{container:P(),side:"top",content:Sr.t("Settings")},We.createElement(Tt,{size:"small",variant:"ghost",onClick:n},We.createElement(Iy,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Cr,{container:P(),side:"top",content:Sr.t("Transactions History")},We.createElement(Tt,{size:"small",variant:"ghost",onClick:o},We.createElement(Ay,{size:18,color:"black"}),We.createElement(Cc,null))))}i(ao,"HeaderButtons");import{i18n as ka}from"@lingui/core";import{Divider as bc,MessageBox as My,RefreshIcon as Ly}from"@rango-dev/ui";import Ao from"react";import{Button as Ny,styled as Wy}from"@rango-dev/ui";var xc=Wy(Ny,{"& 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:P()},Ao.createElement(My,{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(Ly,{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=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(wa,"onScrollContentAttachStatusToContainer");import{css as By,styled as xa}from"@rango-dev/ui";var Ec="700px",Tr=By({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=et("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:I}=ae(),N=nt(),{manager:x}=Py(),b=rt(x).map(({swap:j})=>j).some(j=>j.status==="running"),E=i(()=>I(eo.forceClaim,b),"onActivateTab"),_=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(Dy,{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:P(),onClick:_,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(_y,null))),Te.createElement(va,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as Fy}from"@rango-dev/ui";var Lc="$20 $20 $10 $20",Zo=Fy("div",{padding:Lc,overflowY:"auto",flexGrow:1});import{styled as Oy}from"@rango-dev/ui";var fe=Oy("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 Hy,MessageBox as Gy,Select as Vy,TextField as Xy}from"@rango-dev/ui";import qe,{useEffect as Ky,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 Uy,styled as kr}from"@rango-dev/ui";var TW=kr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=kr("div",{position:"relative"}),Qy=Uy({"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:`${Qy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vr=kr("div",{"& img":{borderRadius:"50%"}});import{styled as Bc,Typography as zy}from"@rango-dev/ui";var Pc=Bc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ea=Bc(zy,{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 Ky(()=>{p($c(n)[0]?.id||null)},[n]),qe.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},qe.createElement(_c,{size:20}),qe.createElement(Gy,{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:qe.createElement(Wo,null,qe.createElement(vr,null,qe.createElement(Hy,{src:r,size:45})),qe.createElement(Mo,null))}),qe.createElement(Pc,null,qe.createElement(Ea,{variant:"body",size:"xsmall",color:"$neutral600"},Lo.t("Choose Derivation Path Template")),qe.createElement(Vy,{value:l||"",options:f.map(S=>({value:S.id,label:S.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ia}}),qe.createElement(_c,{size:20}),qe.createElement(Ea,{variant:"body",size:"xsmall",color:"$neutral600"},m?Lo.t("Enter Path"):Lo.t("Enter Index")),qe.createElement(Xy,{type:m?"text":"number",variant:"contained",value:u,onChange:S=>c(S.target.value),style:Ia})),qe.createElement(qy,{type:"primary",onClick:g,disabled:!f||!l||!u},Lo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as Zy}from"@rango-dev/ui";import Na from"react";import{i18n as Bo}from"@lingui/core";import{Image as jy,MessageBox as Aa,WalletState as Yy}from"@rango-dev/ui";import lo from"react";function Oc(t){let{state:e,image:o,error:n}=t;return e===Yy.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(jy,{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(Zy,{direction:"vertical",size:32}))}i(Ro,"WalletModal");import{i18n as Wa}from"@lingui/core";import{Button as Ry,Checkbox as eS,Divider as tS,Image as Qc,ListItemButton as oS,MessageBox as nS,Radio as rS,RadioRoot as iS}from"@rango-dev/ui";import Me,{useMemo as aS,useState as sS}from"react";import{styled as Jy}from"@rango-dev/ui";var Uc=Jy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var lS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=sS([]),a=h().blockchains(),s=aS(()=>o?.map(u=>({name:u,logo:lS(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(iS,{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(tS,{size:20}),Me.createElement(nS,{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(oS,{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(rS,{value:u.name}):Me.createElement(eS,{checked:n.includes(u.name)})}))))),Me.createElement(Ry,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Wa.t("Confirm")))}i(po,"WalletNamespacesModal");var fS=Hc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),gS=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),_=cS(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 it.createElement(ce,{header:{title:zc.t("Connect Wallets")}},it.createElement(gS,null,_&&it.createElement(it.Fragment,null,it.createElement(uS,{setCategory:o,category:e,blockchains:b,isLoading:t==="loading"}),it.createElement(pS,{size:24})),it.createElement(mS,{variant:"title",size:"xmedium",align:"center"},zc.t("Choose a wallet to connect.")),it.createElement(fS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return it.createElement(dS,{key:Z,...G,container:P(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!g})}),it.createElement(Ro,{open:!!a,onClose:k,image:x,state:w,error:y}),it.createElement(po,{open:!!l?.open,onClose:v,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),it.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:I,onConfirm:j}))))}i(Gc,"WalletsPage");import{keyframes as hS,styled as La}from"@rango-dev/ui";var Vc=La("div",{position:"relative"}),yS=hS({"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:`${yS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Kc=La("div",{"& img":{borderRadius:"50%"}});var kS=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:_,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,kS):"",_e=On(u(),e),pt=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&pt&&L.state===Yc.CONNECTED,Ve=De?ut.t({id:"Add {chain} chain",values:{chain:e}}):se,Xe=i(async()=>{L.state===Yc.DISCONNECTED?L.namespaces?J(L):E(L.type):L.namespaces&&!se?(await _(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:ut.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:ut.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(SS,{onClick:B.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ut.t("Confirm")))),C&&ue.createElement(re,{open:!!C,onClose:y.bind(null,null),container:Ce},C==="in-progress"&&ue.createElement(xr,{type:"loading",title:ut.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:ut.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(CS,{src:L.image,size:45})),ue.createElement(Xc,null))}),C==="completed"&&ue.createElement(xr,{type:"success",title:ut.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:ut.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:ut.t("Request Rejected"),description:ut.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Ba,{direction:"vertical",size:32})),ue.createElement(TS,{key:L.type,description:Ve,onClick:Xe,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(jp,{selected:!1,onClick:a},ue.createElement(jc,{variant:"label",size:"medium"},ut.t("Show more wallets"),ue.createElement(jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(Pa,"WalletList");var BS=2;function tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=LS(),l=h().config,p=MS(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,_]=uo(!!g),Q=navigator?.userAgent.includes("Firefox"),A=WS(()=>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=NS(()=>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(()=>{_(!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"),pt=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(Ke=>Ke.walletType===W.walletType&&Ke.chain===W.chain);X&&(n(),W.chain===j?.name&&E&&!G(j.name)&&(_(!1),S(null)),ie(Ke=>Ke.filter(yt=>yt.chain!==W.chain).concat({...X,selected:!0})))},"onChange"),Ve=i(()=>{let W=Z.filter(V=>V.selected);y(W),m(W),d(!0),o()},"onConfirmBalance"),Xe=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?Ve():I(V?.balance?.messages??[])},"onConfirmWallets"),ve=i(()=>g?$.createElement(Rc,{onClick:se,variant:"ghost"},$.createElement(bS,{size:12,color:"gray"})):Q?null:$.createElement(Rc,{onClick:_e,variant:"ghost"},$.createElement(IS,{size:16})),"renderCustomDestinationSuffix");eu(()=>{ie(W=>{let V=[];return W.forEach(X=>{!C.some(yt=>yt.chain===X.chain&&yt.walletType===X.walletType&&yt.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(yt=>yt.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(Ke=>Ke.chain===V.blockchain&&Ke.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:Xe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},kt.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Yp,null,$.createElement(Zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(xS,{size:16})),$.createElement(Er,{variant:"headline",size:"small"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Re(T,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:I.bind(null,[]),container:de},$.createElement(ES,{title:kt.t("Insufficient account balance"),type:"error",description:$.createElement(vS,{messages:v??[]})},$.createElement(Jc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ve},kt.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:kt.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),Ke=`wallet-${V}`,yt=V===A.length-1;return $.createElement("div",{key:Ke},$.createElement(Xp,null,$.createElement(Er,{variant:"title",size:"xmedium"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(Er,{variant:"label",color:"$neutral700",size:"medium"},kt.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:BS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{ge(W,Zt)}})),!yt&&$.createElement(tn,{size:32}),yt&&l?.customDestination!==!1&&$.createElement(ec,null,$.createElement(mr,{onOpenChange:pt,hasSelected:!0,open:E,triggerAnchor:"top",trigger:$.createElement(ic,null,$.createElement("div",{className:"button__content"},$.createElement(AS,{size:18,color:"info"}),$.createElement(tn,{size:4,direction:"horizontal"}),$.createElement(Er,{variant:"label",size:"medium",color:E?"$neutral600":void 0},kt.t("Send to a different address"))),$.createElement(cr,{orientation:E?"up":"down"},$.createElement(wS,{size:10,color:"secondary"}))),onClickTrigger:()=>_(Zt=>!Zt)},$.createElement(nc,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:kt.t("Enter {blockchainName} address",{blockchainName:Bn(W,u)}),value:g||"",suffix:ve(),onChange:Zt=>{let tg=Zt.target.value;S(tg)},...!g&&{autoFocus:!0}})),L&&$.createElement("div",{className:tc()},$.createElement(_a,{variant:"alarm",type:"error",title:kt.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tu,"ConfirmWalletsModal");import{i18n as JS}from"@lingui/core";import{Alert as RS,Button as eC,InfoIcon as tC}from"@rango-dev/ui";import Ye from"react";import{Alert as DS,Button as $S,Divider as Fa,NoRouteIcon as FS,RefreshIcon as OS,Typography as lu}from"@rango-dev/ui";import je from"react";import{i18n as ou}from"@lingui/core";var PS=24,_S=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=PS]="small",o[o.large=_S]="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 je.createElement(ru,null,je.createElement(FS,{size:Da[n],color:"gray"}),je.createElement(Fa,{size:4}),je.createElement(lu,{variant:"title",size:$a[n]},oe().noResultError.title),n==="large"&&je.createElement(Fa,{size:4}),!!l.description&&je.createElement(iu,{size:n},je.createElement(lu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),je.createElement(Fa,{size:n==="large"?"24":"4"}),!!l.alert&&je.createElement(au,{size:n},je.createElement(DS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&je.createElement($S,{size:"xsmall",type:l.alert.type,prefix:je.createElement(su,null,je.createElement(OS,{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 QS,Divider as zS,MessageBox as qS,Typography as HS,WarningIcon as GS}from"@rango-dev/ui";import Nt from"react";import{Typography as mu}from"@rango-dev/ui";import Ua from"react";import{darkTheme as US,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",[`.${US} &`]:{$$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(QS,{type:"primary",size:"large",prefix:Nt.createElement(GS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Nt.createElement(qS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Nt.createElement(Oa,null,Nt.createElement(zS,{size:"4"}),Nt.createElement(HS,{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&&(At(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 VS,Typography as XS}from"@rango-dev/ui";import mo from"react";import{useNavigate as KS}from"react-router-dom";function Su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=KS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(hu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(XS,{variant:"label",size:"medium",color:"$neutral900"},Po.t("Change settings"))),container:P(),onClose:r},mo.createElement(VS,{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 jS,MessageBox as YS,WarningIcon as ZS}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(jS,{type:"primary",size:"large",prefix:Nr.createElement(ZS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},Nr.createElement(YS,{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),Ye.createElement(Ye.Fragment,null,f&&Ye.createElement(on,{error:o,fetch:s}),!!d&&Ye.createElement(pu,null,Ye.createElement(RS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ye.createElement(uu,{onClick:l},Ye.createElement(tC,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:Ye.createElement(eC,{size:"xxsmall",type:d.alertType,onClick:c},JS.t("Change"))}})),e&&Ye.createElement(Ye.Fragment,null,e.type===0&&Ye.createElement(fu,{...m,warning:e}),(e.type===3||e.type===2)&&Ye.createElement(Su,{...m,warning:e}),e.type===1&&Ye.createElement(Cu,{...m,warning:e})))}i(rn,"QuoteWarningsAndErrors");import LC from"bignumber.js";import qr from"react";import{i18n as fo}from"@lingui/core";import{Alert as CC,Divider as Do,FullExpandedQuote as TC,InfoIcon as kC,NumericTooltip as Ju,QuoteTag as vC,StepDetails as wC,TokenAmount as xC,Typography as $o}from"@rango-dev/ui";import ja from"bignumber.js";import F,{useRef as bC,useState as EC}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 oC,css as an,darkTheme as be,Image as vu,styled as Ue,Typography as nC}from"@rango-dev/ui";var rC=300,wu=Ue(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=Ue(oC,{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=Ue("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=Ue(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=Ue("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=Ue(pr,{width:"100%",background:"inherit"}),Ha=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${rC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),UB=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Bu=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Pu=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ga=Ue(nC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),_u=Ue("div",{display:"flex",flexWrap:"wrap"}),Va=Ue("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=Ue("div",{display:"flex"}),Mr=Ue("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as vt}from"@lingui/core";import{ChevronDownIcon as aC,CloseIcon as sC,Divider as Pr,IconButton as lC,NumericTooltip as pC,QuoteCost as cC,Typography as mt}from"@rango-dev/ui";import ee,{useState as Uu}from"react";import{css as iC,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=iC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var uC=i(t=>t.fee.isZero()?null:ee.createElement(Br,null,ee.createElement(mt,{variant:"label",size:"medium",color:"neutral600"},t.label),ee.createElement(mt,{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=P(),d=kp(m);return ee.createElement(ee.Fragment,null,ee.createElement(cC,{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:f}),ee.createElement(re,{container:f,open:e,header:ee.createElement(Fu,null,ee.createElement(mt,{variant:"title",size:"medium"},vt.t("Gas & Fee Explanation")),ee.createElement(lC,{onClick:()=>o(!1),variant:"ghost"},ee.createElement(sC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},ee.createElement($u,null,ee.createElement(mt,{variant:"title",size:"small"},vt.t("Details")),ee.createElement(Pr,{size:10}),Object.entries(d.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Xi(C);return ee.createElement(Br,{key:T},ee.createElement(mt,{variant:"label",size:"medium",color:"neutral600"},qi(g,vt.t)),ee.createElement(pC,{content:C.amount,container:f},ee.createElement(mt,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),ee.createElement(Br,{className:"total_payable_fee"},ee.createElement(mt,{variant:"label",size:"medium"},vt.t("Total Payable Fee")),ee.createElement(mt,{variant:"label",size:"medium"},"$",M(l,4,4))),ee.createElement(Xa,null),Object.keys(d.nonePayable).length&&ee.createElement(mr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:ee.createElement("div",{className:Ou()},ee.createElement(mt,{size:"small",variant:"body",color:"neutral700"},n?vt.t("Hide non-payable fees"):vt.t("Show non-payable fees")),ee.createElement(Pr,{size:4,direction:"horizontal"}),ee.createElement(cr,{orientation:n?"up":"down"},ee.createElement(aC,{size:12,color:"gray"}))),open:n},ee.createElement(mt,{size:"small",variant:"title"},vt.t("Description")),ee.createElement(Pr,{size:4}),ee.createElement(mt,{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.`)),ee.createElement(Pr,{size:10}),Object.entries(d.nonePayable).map(([g,S],C)=>{let y=Tp(S),T=qi(g,vt.t),k=`non-payable-fee-${C}`;return ee.createElement(uC,{key:k,fee:y,label:T})}),ee.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 mC,styled as dC}from"@rango-dev/ui";var zu=dC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qu=mC({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:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),_r.createElement("div",{className:qu()}),_r.createElement(Gu,{direction:"horizontal",tooltipContainer:P(),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 hC,ChevronRightIcon as yC,Divider as Ka,Image as SC,Tooltip as Ur,Typography as $r}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as fC,useState as ln}from"react";var Vu=480,Xu=768,Ku=1024,ju=1200,gC=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 fC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Dr=gC;var Fr=4,Or=6,pn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return O.createElement(Ur,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Mu,{className:n,state:a},O.createElement(SC,{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||P(),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(yC,{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(hC,{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]=EC(t.expanded),I=bC(null),N=M(o.value,6,6),x=M(n.value,6,6),w=n.usdValue?M(n.usdValue,4,4):"",b=tt(o.usdValue,n.usdValue??null),E=M(b,2,2),_=At(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),pt=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ve=pt;De?me="error":Ve&&(me="warning");let Xe=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Xe=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:Re(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:Re(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||Ve?F.createElement(Tu,{dense:m},F.createElement(CC,{variant:"alarm",type:De?"error":"warning",title:Xe,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||pt)&&!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||P(),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(TC,{selected:l,fee:J,time:Z,tooltipContainer:zo(),steps:A,tags:G,feeWarning:ne,percentageChange:E,warningLevel:_,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(vC,{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(kC,{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(xC,{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:_}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(sn,{from:A[0].from,to:A[z-1].to,percentageChange:E,warningLevel:_}),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(wC,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}i(Ya,"Quote");import{Divider as WC,Skeleton as MC}from"@rango-dev/ui";import Mt from"react";import{darkTheme as IC,styled as Qr}from"@rango-dev/ui";var Ru=Qr("div",{$$color:"$colors$neutral100",[`.${IC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),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 dt,Skeleton as Ze}from"@rango-dev/ui";import H from"react";import{css as AC,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=AC({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(dt,{size:8,direction:"horizontal"}),H.createElement(pm,null,H.createElement(Ze,{height:10,width:60,variant:"rounded"}),H.createElement(dt,{size:4}),H.createElement(Ze,{height:15,variant:"rounded"}))),H.createElement(Ze,{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(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"})),H.createElement(Mr,null),!r&&H.createElement(dt,{size:4})),H.createElement("div",{className:um()},H.createElement(Za,null,H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ze,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(nm,null,H.createElement(Ze,{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(dt,{direction:"horizontal",size:4}),H.createElement(Ze,{height:15,width:150,variant:"rounded"})),H.createElement(dt,{size:10}),H.createElement(Ze,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(dt,{size:4}),H.createElement(cm,null,n,H.createElement(sm,null),n),H.createElement(dt,{size:12})))}i(cn,"QuoteSummarySkeleton");import{ChainToken as ym,Divider as Ra,NextIcon as NC,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 wt(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(NC,{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(wt,"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(MC,{height:15,variant:"rounded"})),o&&Mt.createElement(tm,null,Mt.createElement(WC,{size:24}),Mt.createElement(wt,null),Mt.createElement(wt,null),Mt.createElement(wt,{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 LC(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 DC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as $C}from"react";import{useRef as BC,useState as PC}from"react";var _C=2e3;function Hr({request:t}){let[e,o]=PC(!1),n=BC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,_C)),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(tt(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 _={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=DC(o.toString(),b,Ep(v),_,!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 VC=UC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${km}`]:{width:"$48",height:"$48"}}),XC=rs({flexGrow:1,paddingRight:"$10"}),KC=rs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),jC=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=GC(),[l,p]=dn(""),u=!n,[c,m]=dn(!1),[f,d]=dn(!1),{isActiveTab:g}=ae(),S=h().getDisabledLiquiditySources(),C=HC(S),{manager:y}=FC(),{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"),_=i(async()=>{d(!0),await E(),d(!1)},"onConfirm"),Q=i(async()=>{I?.warnings?.quote&&!a?w(!0):await _()},"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(VC,null,Ie.createElement("div",{className:XC()},Ie.createElement(OC,{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(zC,{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:jC()},Ie.createElement(QC,{variant:"title",size:"small"},os.t("You get")),Ie.createElement("div",{className:KC()},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 uT}from"@rango-dev/queue-manager-react";import{Divider as Bm,NotFound as mT,styled as dT}from"@rango-dev/ui";import Bt,{useState as fT}from"react";import{useNavigate as gT}from"react-router-dom";import{i18n as JC}from"@lingui/core";import{Divider as Im,GroupedVirtualizedList as RC,Skeleton as eT,SwapListItem as Am,Typography as tT}from"@rango-dev/ui";import Qe,{useCallback as Nm,useEffect as oT,useRef as nT,useState as rT}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 YC,darkTheme as ZC,styled as fn}from"@rango-dev/ui";var is=YC(),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",[`.${ZC} &`]:{$$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 iT=10;function ls(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=rT([]),l=nT(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,iT),s(m(u,l.current)))},[e.length]);if(oT(()=>{r||f()},[r,f]),r){let d=[1,2];return Qe.createElement(Qe.Fragment,null,[d,d].map((S,C)=>Qe.createElement(as,{key:C},Qe.createElement(ss,null,Qe.createElement(eT,{variant:"text",width:60,size:"small"}),Qe.createElement(Im,{size:16})),Qe.createElement(Im,{size:4}),Qe.createElement(bm,null,S.map((T,k)=>Qe.createElement(Am,{isLoading:!0,key:k}))))))}return Qe.createElement(RC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>Qe.createElement(as,null,Qe.createElement(ss,null,Qe.createElement(tT,{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 Qe.createElement(xm,{key:S.requestId},Qe.createElement(Am,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===JC.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 sT,IconButton as lT,SearchIcon as pT,TextField as cT}from"@rango-dev/ui";import gn from"react";import{styled as aT}from"@rango-dev/ui";var Wm=aT("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(cT,{prefix:gn.createElement(Wm,null,gn.createElement(pT,{color:"black"})),suffix:!!s.length&&gn.createElement(lT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},gn.createElement(sT,{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 hT=dT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),yT=i((t,e)=>t?.length?t.filter(o=>St(o.fromBlockchain,e)||St(o.toBlockchain,e)||St(o.toSymbol,e)||St(o.fromSymbol,e)).length:!1,"isStepContainsText");function Pm(){let t=gT(),{manager:e,state:o}=uT(),n=rt(e).map(({swap:c})=>c),[r,a]=fT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>St(c.inputAmount,r)||St(c.status,r)||yT(c.steps,r)||St(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(hT,null,u&&Bt.createElement(Em,null,Bt.createElement(Bm,{size:32}),Bt.createElement(mT,{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 DT}from"@lingui/core";import{Button as $T,Divider as Jm,styled as FT,WarningIcon as OT}from"@rango-dev/ui";import UT from"bignumber.js";import He,{useEffect as Rm,useState as ed}from"react";import{useNavigate as QT}from"react-router-dom";import{i18n as wT}from"@lingui/core";import{Header as xT}from"@rango-dev/ui";import Vt,{useEffect as bT,useState as ET}from"react";import{i18n as CT}from"@lingui/core";import{Divider as cs,FullExpandedQuote as TT,Typography as kT}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 ST}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(ST,{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||P(),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(kT,{size:"xmedium",variant:"title"},CT.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(TT,{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),_=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:_?.options||null,warning:E,fullExpandedMode:s,onClick:A=>{_||c("warning",E),c("error",_?.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 vT,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",[`.${vT} &`]:{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 IT=100;function us(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=ET(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=zo();return bT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},IT):(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(xT,{title:wT.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 WT}from"@rango-dev/ui";import ds from"react";import{keyframes as AT,styled as qm}from"@rango-dev/ui";var ms=450,NT=AT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),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:`${NT} ${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(WT,{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:tt(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:P(),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(tt(m,d),2,2),warningLevel:At(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:P()}))}i(gs,"Inputs");import{useCallback as MT,useEffect as LT,useRef as BT,useState as PT}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 _T=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:_}=h(),[Q,A]=PT(!0),z=BT(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:pt,affiliatePercent:De,affiliateWallets:Ve}=ne;if(Q||Z(!0),!B&&ge&&Ce){d();let Xe=bp({fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve,enableCentralizedSwappers:a});Zl("experimentalRoute",r)&&(Xe.experimental=!0),e(Xe).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:_});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=MT(xl(ne=>{ie(ne)},_T),[B]);return LT(()=>{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 zT=FT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),qT=300;function td(){let t=QT(),{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}),_=Gl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new UT(n).gt(0)&&!Pp(e,o),A=Q&&v==="success"&&T,G=(!_||_&&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=>{_&&d?(g(!1),setTimeout(()=>{t(J)},qT)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(w(!1),u(J))},"onClickOnQuote");return He.createElement(zT,null,He.createElement(ce,{height:"auto",footer:He.createElement($T,{type:"primary",size:"large",disabled:E.disabled||!N,prefix:E.action==="confirm-warning"&&He.createElement(OT,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||DT.t("Swap"),suffix:He.createElement(ao,{hidden:_?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},He.createElement(fe,null,He.createElement(gs,{fetchingQuote:A,fetchMetaStatus:v,isExpandable:_,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),He.createElement(Jm,{size:"2"}),_?null:He.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?He.createElement(He.Fragment,null,He.createElement(Jm,{size:"10"}),He.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)),_?He.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 HT,Divider as GT,List as VT,ListItemButton as XT,Radio as KT,RadioRoot as jT,Typography as YT}from"@rango-dev/ui";import xt 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=nt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:xt.createElement(YT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:xt.createElement(KT,{value:s}),start:xt.createElement(p,null)}});return xt.createElement(ce,{header:{title:od.t("Language")}},xt.createElement(fe,null,xt.createElement(HT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),xt.createElement(GT,{size:"8"}),xt.createElement(jT,{value:t},xt.createElement(VT,{type:xt.createElement(XT,{title:od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(nd,"LanguagePage");import{i18n as Pt}from"@lingui/core";import{Button as tk,Checkbox as ok,Image as nk,ListItemButton as rk,NotFound as ik,Typography as ak}from"@rango-dev/ui";import ze,{useState as sk}from"react";import{Checkbox as RT,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 ZT,styled as JT}from"@rango-dev/ui";var rd=JT(ZT,{height:61});var ek=30;function Cs(){return Tn.createElement(Cn,null,Array.from(Array(ek),(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(RT,{checked:!1})})))}i(Cs,"LoadingLiquiditySourceList");function Ts({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=sk(""),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:ze.createElement(nk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:ze.createElement(ok,{checked:T,disabled:l}),title:ze.createElement(ak,{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=>St(y.groupTitle,r))),ze.createElement(ce,{header:{title:Pt.t(t),suffix:ze.createElement(ys,null,ze.createElement(tk,{variant:"ghost",size:"xsmall",onClick:d},f?Pt.t("Deselect all"):Pt.t("Select all")))}},ze.createElement(fe,{view:!0},ze.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Pt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&ze.createElement(Cs,null),!C.length&&r?ze.createElement(Ss,null,ze.createElement(ik,{title:Pt.t("No results found"),description:Pt.t("Try using different keywords")})):e==="success"&&ze.createElement(Cn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return ze.createElement(ze.Fragment,{key:y.id},ze.createElement(rk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ts,"LiquiditySourcePage");import{i18n as lk}from"@lingui/core";import Jr from"react";import{useNavigate as pk}from"react-router-dom";function ad(){let t=pk(),e=nt(),{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:lk.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 Sk,SelectableCategoryList as Ck}from"@rango-dev/ui";import _t,{useState as hd}from"react";import{i18n as ks}from"@lingui/core";import{Divider as md,Image as dk,ListItemButton as fk,NotFound as gk,Typography as dd}from"@rango-dev/ui";import at,{useEffect as hk,useState as yk}from"react";var sd=i((t,e,o)=>t.filter(n=>Mn(n.type,o)).filter(n=>Et(n.name,e)||Et(n.displayName,e)),"filterBlockchains");import{ImageContainer as ck,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",[`& ${ck}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as uk,Skeleton as cd}from"@rango-dev/ui";import ei from"react";var mk=20;function ud(){return ei.createElement(Rr,null,Array.from(Array(mk),t=>ei.createElement(uk,{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]=yk(e),{fetchStatus:l}=h();hk(()=>{s([...sd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?at.createElement(at.Fragment,null,at.createElement(md,{size:32}),at.createElement(gk,{title:ks.t("No results found"),description:ks.t("Try using different keywords")})):at.createElement(Rr,{as:"ul",key:`${r}-${o}`},a.map(u=>at.createElement(fk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:at.createElement(dk,{src:u.logo,size:30}),title:at.createElement(dd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return at.createElement(pd,null,at.createElement(dd,{variant:"label",size:"large"},ks.t("Select Blockchain")),at.createElement(md,{size:4}),l==="loading"&&at.createElement(ud,null),l==="success"&&p())}i(vs,"BlockchainList");function ws(t){let{type:e}=t,o=nt(),[n,r]=hd(""),[a,s]=hd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=Sk(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(Ck,{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 Dk}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 xk,Tooltip as bk,Typography as Is}from"@rango-dev/ui";import Le from"react";import{useEffect as vk}from"react";var yd=["ETH","COSMOS","OSMOSIS"];function xs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Tk),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(kk(s)),r=n.splice(a)}return{list:n,more:r}}i(xs,"prepare");function Tk(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(Tk,"sortByMostUsedBlockchains");function kk(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(kk,"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();vk(()=>{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 wk}from"@rango-dev/ui";var Cd=wk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Ek=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(Ek),d=>Le.createElement(xk,{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(bk,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},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 Nk,Image as Wk,ListItemButton as Mk,NotFound as Lk,PinIcon as Bk,Skeleton as Bd,Typography as ri,VirtualizedList as Pk}from"@rango-dev/ui";import K,{useEffect as Pd,useState as _d}from"react";import{Divider as Wd,ListItem as Ak,Skeleton as kn}from"@rango-dev/ui";import ft from"react";import{css as Fo,darkTheme as vd,ImageContainer as Ik,styled as st,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=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),_s=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),oi=st("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=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),$s=st(wd,{}),bd=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ps}`]:{$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ni=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),xU=st("div",{display:"flex",alignItems:"center"}),Ed=st("div",{position:"relative",[`& ${Ik}`]:{borderRadius:"$xm",overflow:"hidden"}}),Id=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ad=st(wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Nd=st("a",{"& svg:hover":{color:"$colors$info"}});function Md(t){return ft.createElement(oi,null,Array.from(Array(t.size),e=>ft.createElement(Ak,{key:e,hasDivider:!0,start:ft.createElement(kn,{variant:"circular",width:35,height:35}),end:ft.createElement(ni,null,ft.createElement(kn,{variant:"text",size:"large",width:70}),ft.createElement(Wd,{size:4}),ft.createElement(kn,{variant:"text",size:"medium",width:50})),title:ft.createElement("div",null,ft.createElement(kn,{variant:"text",size:"large",width:90}),ft.createElement(Wd,{size:4}),ft.createElement(kn,{variant:"text",size:"medium",width:90}))})))}i(Md,"LoadingTokenList");var Os=20,_k=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(Nk,{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(Lk,{title:Fs.t("No results found"),description:Fs.t("Try using different keywords")})):K.createElement(Pk,{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(Mk,{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(Wk,{src:y.image,size:30}),d(y,t.type)&&K.createElement(Id,null,K.createElement(Bk,{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"?_k({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=nt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[m,f]=Dk(""),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 lv,Button as pv,styled as cv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as uv,useSearchParams as mv}from"react-router-dom";import{i18n as qd}from"@lingui/core";import{Divider as Qk,InfoIcon as zk,TextField as qk,Tooltip as Hk,Typography as Hd}from"@rango-dev/ui";import gt from"react";import{Chip as Fk,styled as vn,TextField as Ok}from"@rango-dev/ui";var Fd=vn("div",{paddingTop:"$5",padding:"$10 $5"}),Od=vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ok}`]:{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(Fk,{width:"61px",flexShrink:0});import{i18n as Qs}from"@lingui/core";import{Typography as Uk}from"@rango-dev/ui";import wn from"react";function zd(){return wn.createElement(ai,null,wn.createElement(Uk,{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 gt.createElement(Fd,null,gt.createElement(Ud,null,gt.createElement(Hd,{variant:"title",size:"xmedium"},qd.t("Slippage tolerance per swap")),gt.createElement(Qk,{direction:"horizontal",size:4}),gt.createElement(Hk,{container:P(),side:"top",sideOffset:4,content:gt.createElement(zd,null)},gt.createElement(zk,{color:"gray"}))),gt.createElement(Od,null,ep.map((r,a)=>{let s=`slippage-${a}`;return gt.createElement(Qd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),gt.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&>.createElement(Hd,{variant:"body",size:"small"},"%"),placeholder:qd.t("Custom")})))}i(zs,"Slippage");import{i18n as bt}from"@lingui/core";import{AutoThemeIcon as Gd,BridgesIcon as Gk,ChevronRightIcon as qs,DarkModeIcon as Vd,Divider as si,ExchangeIcon as Vk,InfinityIcon as Xk,InfoIcon as Kk,LanguageIcon as jk,LightModeIcon as Xd,List as Yk,ListItem as Zk,ListItemButton as Jk,Skeleton as Rk,styled as ev,Switch as tv,Tabs as ov,Tooltip as nv,Typography as lt}from"@rango-dev/ui";import U from"react";import{useNavigate as rv}from"react-router-dom";var iv=ev("div",{width:"202px",height:"$40"}),av=[{id:"light",icon:U.createElement(Xd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Light"))},{id:"dark",icon:U.createElement(Vd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Dark"))},{id:"auto",icon:U.createElement(Gd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Auto"))}],sv=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=rv(),{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=et("theme",c),f=et("liquiditySource",c),d=et("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(Rk,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(lt,{variant:"body",size:"medium",color:"$error500"},bt.t("Loading failed"));default:return U.createElement(lt,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.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(Gk,{color:"gray",size:16})},b={id:"exchange-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.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(Vk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},E={id:"language-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Language")),start:U.createElement(jk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"body",size:"medium"},s),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),onClick:()=>t(q.languages)},_={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Infinite approval")),U.createElement(si,{direction:"horizontal",size:4}),U.createElement(nv,{side:"top",sideOffset:4,container:P(),content:U.createElement(ai,null,U.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},bt.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(Kk,{color:"gray"}))),start:U.createElement(Xk,{color:"gray",size:16}),end:U.createElement(tv,{checked:g}),onClick:S},Q={id:"theme-item",type:U.createElement(Zk,null),title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Theme")),end:U.createElement(iv,null,U.createElement(ov,{container:P(),items:av,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:sv(n)},A=f?[]:[w,b];return d||A.push(E),A.push(_),!e?.singleTheme&&!m&&A.push(Q),U.createElement(Yk,{type:U.createElement(Jk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Kd,"SettingsLists");var dv=cv("div",{paddingLeft:"$8"});function jd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=mv(),r=uv(),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(lv,{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(dv,null,yo.createElement(pv,{type:"secondary",size:"small",onClick:a},Hs.t("Reset")))}),yo.createElement(zs,null),yo.createElement(Kd,null)))}i(jd,"SettingsPage");import{i18n as Jv}from"@lingui/core";import{cancelSwap as Rv}from"@rango-dev/queue-manager-rango-preset";import{useManager as ew}from"@rango-dev/queue-manager-react";import{Alert as tw}from"@rango-dev/ui";import ll from"react";import{useParams as ow}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Bv,getCurrentStep as Pv,getRelatedWalletOrNull as _v}from"@rango-dev/queue-manager-rango-preset";import{Button as Af,CopyIcon as Dv,Divider as $v,DoneIcon as Fv,IconButton as Ov,QuoteCost as Uv,RangoExplorerIcon as Qv,StepDetails as zv,Tooltip as Nf,Typography as Co,useCopyToClipboard as qv}from"@rango-dev/ui";import{useWallets as Hv}from"@rango-dev/wallets-react";import Wf from"bignumber.js";import{PendingSwapNetworkStatus as hi}from"rango-types";import R,{useEffect as Mf,useRef as Gv,useState as Lf}from"react";import{useNavigate as Vv}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var fv=[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"):`${fv[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 gv}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(gv,{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 hv,Typography as yv}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(hv,{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(yv,{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 Sv,Wallet as Cv}from"@rango-dev/ui";import{useWallets as Tv}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"}),mz=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}=Tv(),[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(Sv,{type:e,title:o,description:r}),y&&So.createElement(nf,null,So.createElement(Cv,{container:P(),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 kv,Typography as Rs}from"@rango-dev/ui";import Pe from"react";import{useNavigate as vv}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=vv();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(kv,{direction:"vertical",tooltipContainer:P(),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 Lv from"react";import{i18n as Av}from"@lingui/core";import{Alert as xf,IconButton as Nv,LinkIcon as Wv}from"@rango-dev/ui";import Yt,{Fragment as Mv}from"react";import{Alert as xv,ChevronDownIcon as bv,IconButton as Ev}from"@rango-dev/ui";import Qo,{useState as Iv}from"react";import{css as bn,darkTheme as lf,styled as $t,Typography as wv}from"@rango-dev/ui";var pf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),di=$t("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${lf} &`]:{color:"$secondary500"}}}}}),cf=$t(Zo,{padding:"$0 $20 $20 $20"}),jz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),uf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Yz=$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",[`.${lf} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),mf=bn({padding:"$5 0"}),fi=bn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),df=bn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),ff=bn({width:"100%",padding:"0 $20 $10"}),gf=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),hf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),gi=$t(wv,{wordBreak:"break-word"});import{styled as tl}from"@rango-dev/ui";var yf=tl("div",{display:"flex",flexDirection:"column",gap:"$10"}),Sf=tl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Cf=tl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Tf(t){let{message:e}=t,[o,n]=Iv(!1);return Qo.createElement(xv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qo.createElement(Ev,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Qo.createElement(Sf,{rotated:o},Qo.createElement(bv,{size:12,color:"gray"}))),footer:Qo.createElement(Cf,{open:o},Qo.createElement(gi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Tf,"FailedAlert");import{i18n as kf}from"@lingui/core";import{Alert as ol,Button as vf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as nl}from"rango-types";import En from"react";function wf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(vf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},kf.t("Change"))}):r===nl.WaitingForConnectingWallet?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(vf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForConnectingWallet)}},kf.t("Connect"))}):En.createElement(ol,{type:"warning",title:n.shortMessage})}i(wf,"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(yf,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(Mv,{key:g},Yt.createElement(xf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Av.t("View transaction"),action:m.url&&Yt.createElement(Nv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(Wv,{size:12}))}))}),c&&Yt.createElement(xf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(wf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Tf,{message:r}))}i(rl,"SwapDetailsAlerts");var bf=2e3;var Ef=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:Re(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Re(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:Re(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Re(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Lv.createElement(rl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function If(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(If,"getStepState");function il(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Hv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=Y.use.retry(),f=ae.use.isActiveTab(),d=Vv(),[g,S]=qv(bf),C=Gv(null),[y,T]=Lf(null),[k,v]=Lf(null),I=i(()=>{r(),T(null)},"onCancel"),N=xe.use.getNotifications(),x=xe.use.removeNotification(),w=N(),b=Pv(e),E=b?.networkStatus;Mf(()=>{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]),Mf(()=>{B?T(hi.WaitingForNetworkChange):E===hi.WaitingForConnectingWallet||E===hi.NetworkChanged?T(E):T(null)},[E]);let _=Mp(e),Q=b?Bv(e,b):null,A=b?_v(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=Ef({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),pt=D?new Wf(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new Wf(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ve=tt(_e,se),Xe=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?Je.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}}):R.createElement(hf,null,R.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xe?"":Je.t("Transaction was not sent."),_?`${Je.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:_.outputAmount,symbol:_.symbol,blockchain:_.blockchain}})}`:""),Xe&&R.createElement(gi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",Xe));return R.createElement(ce,{header:{title:Je.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(Io,null,R.createElement(Af,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(Co,{size:"medium",variant:"label",color:"error"},Je.t("Delete"))))},footer:j&&!k&&R.createElement(Af,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=nr(e,p,c);m(de),setTimeout(()=>{d("../../")},0)}},Je.t("Try again"))},R.createElement(fe,{compact:!0,view:!0},R.createElement(di,null,R.createElement("div",{className:Uo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${Je.t("Request ID")}:`),R.createElement("div",{className:fi()},R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Nf,{container:P(),content:g?Je.t("Copied To Clipboard"):Je.t("Copy Request ID"),open:g||void 0,side:"bottom",alignOffset:-16,align:"end"},R.createElement(Ov,{variant:"ghost",onClick:S.bind(null,o||"")},g?R.createElement(Fv,{size:16,color:"secondary"}):R.createElement(Dv,{size:16,color:"gray"}))),R.createElement(gf,{target:"_blank",href:`${hl}/swap/${o}`},R.createElement(Nf,{container:P(),content:Je.t("View on Rango Explorer"),side:"bottom"},R.createElement(Qv,{size:20}))))),R.createElement("div",{className:Uo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Je.t("Finished at"):Je.t("Created at")),R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},z))),R.createElement("div",{className:df()},R.createElement(Uv,{fee:M(String(L),2,2),time:Ho(Pn(e.steps)),steps:ne}),R.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:pt,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(Ve,2,2),warningLevel:At(Ve??0)})),R.createElement("div",{className:ff()},R.createElement(Co,{variant:"title",size:"small"},Je.t("Swaps steps"))),R.createElement($v,{size:8}),R.createElement(cf,{ref:C},J.map((de,W)=>{let V=W,X=If(e.steps[W]),Ke=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&W===J.length-1;return R.createElement(zv,{key:V,step:de,type:"swap-progress",ref:C,state:X,hasSeparator:W!==0,tabIndex:V,isFocused:Ke,tooltipContainer:P()})}))),R.createElement(Zs,{state:y,onClose:()=>T(null),onCancel:I,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!f}),R.createElement(el,{open:!!k,diagnosisUrl:me,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||"",percentageChange:M(Ve,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 _f,NotFound as Zv,Skeleton as An,Typography as Ci}from"@rango-dev/ui";import Se from"react";import{i18n as Xv}from"@lingui/core";import{Divider as Kv,Skeleton as jv,Typography as Yv}from"@rango-dev/ui";import ke from"react";import{css as ht,styled as al}from"@rango-dev/ui";var Bf=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"}),lH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),pH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),cH=ht({paddingTop:"$15",display:"flex"}),uH=ht({padding:"$15 $0"}),mH=ht({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),dH=ht({paddingBottom:"$10"}),fH=ht({display:"flex",justifyContent:"start",alignItems:"center"}),gH=ht({paddingTop:"$5",display:"flex",alignItems:"center"}),hH=ht({display:"flex",alignItems:"center"}),yH=ht({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Pf=ht({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function sl(){return ke.createElement(Bf,null,ke.createElement(cn,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(Yv,{variant:"title",size:"small"},Xv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(In,null,ke.createElement(wt,{separator:!1}),ke.createElement("div",{className:Pf()},ke.createElement(Kv,{direction:"horizontal",size:20}),ke.createElement(jv,{height:22,variant:"rectangular"}))),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(wt,{separator:!1})),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(wt,{separator:!1})),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(wt,{separator:!1}))))}i(sl,"LoadingSwapDetails");function Df(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(pf,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(_f,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}),Se.createElement(_f,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Uo()},Se.createElement(Ci,{className:mf(),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(uf,null,Se.createElement(Zv,{title:Si.t("Not found"),description:Si.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Df,"SwapDetailsPlaceholder");function $f(){let{manager:t,state:e}=ew(),o=!e.loadedFromPersistor,n=rt(t),{requestId:r}=ow(),a=nt(),{fetchStatus:s}=h();if(!r)return ll.createElement(tw,{containerStyles:{margin:"20px"},type:"error",title:Jv.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&&Rv(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(Df,{requestId:r,showSkeleton:l}):ll.createElement(il,{swap:m,requestId:r,onCancel:u,onDelete:c})}i($f,"SwapDetailsPage");function Ff(){return zp(),ea(),nw([{path:q.home,element:Ge.createElement(td,null)},{path:q.routes,element:Ge.createElement(ad,null)},{path:q.fromSwap,children:[{index:!0,element:Ge.createElement(Us,{type:"source"})},{path:q.blockchains,element:Ge.createElement(ws,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ge.createElement(Us,{type:"destination"})},{path:q.blockchains,element:Ge.createElement(ws,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ge.createElement(jd,null)},{path:q.languages,element:Ge.createElement(nd,null)},{path:q.exchanges,element:Ge.createElement(Ts,{sourceType:"Exchanges"})},{path:q.bridges,element:Ge.createElement(Ts,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ge.createElement(Pm,null)},{path:q.swapDetails,element:Ge.createElement($f,null)}]},{path:q.wallets,element:Ge.createElement(Gc,null)},{path:q.confirmSwap,element:Ge.createElement(vm,null)}])}i(Ff,"AppRoutes");import{useQueueManager as mw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as dw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as fw}from"rango-sdk";import{useContext as gw,useEffect as Gf,useState as Vf}from"react";import{globalCss as rw}from"@rango-dev/ui";var Of=i(()=>rw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Uf(){let{setWatermark:t}=ae();return{fetchApiConfig:i(async()=>{let o=await fetch(`${It("BASE_URL")}/meta/dapp/config?apiKey=${It("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Uf,"useFetchApiConfig");import{useWallets as iw}from"@rango-dev/wallets-react";import{useEffect as aw,useRef as sw}from"react";function Qf(){let{connect:t,state:e}=iw(),o=sw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);aw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Qf,"useForceAutoConnect");import{isApprovalTX as lw,RouteEventType as zf,StepEventType as qf,StepExecutionEventStatus as pw,WidgetEvents as Ti}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Hf}from"react";function pl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();Hf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===qf.TX_EXECUTION&&s.status===pw.TX_SENT&&!lw(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]),Hf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===zf.FAILED||s.type===zf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Ti.RouteEvent,r),()=>we.off(Ti.RouteEvent,r)},[we])}i(pl,"useSubscribeToWidgetEvents");import{useManager as cw}from"@rango-dev/queue-manager-react";import{useEffect as uw}from"react";function cl(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=cw();uw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(rt(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(cl,"useSyncNotifications");function ul(){Qf(),Of(),pl(),cl();let t=h().blockchains(),{canSwitchNetworkTo:e}=br(),[o,n]=Vf(""),[r,a]=Vf(),s=gw(Xn),l=t.filter(fw),{fetchApiConfig:p}=Uf();Gf(()=>()=>Qp(),[]),mw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Gf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===dw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(ul,"useBootstrap");import{styled as hw}from"@rango-dev/ui";var Xf=hw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ki(){ul();let{config:t}=h(),{activeTheme:e}=fr(t?.theme||{}),{activeLanguage:o}=Xt();return ml.createElement(yw,{language:o},ml.createElement(Xf,{id:"swap-container",className:e()},ml.createElement(Ff,null)))}i(ki,"Main");import{setSolanaSignerConfig as $w}from"@rango-dev/signer-solana";import fl,{useEffect as Jf,useMemo as Fw}from"react";import{useState as Sw}from"react";var Cw=i(()=>{let[t,e]=Sw(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"),Kf=Cw;import{checkWaitingForNetworkChange as Tw,makeQueueDefinition as kw}from"@rango-dev/queue-manager-rango-preset";import{Provider as vw}from"@rango-dev/queue-manager-react";import{useWallets as ww}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as xw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bw}from"rango-types";import Ew,{useMemo as Iw}from"react";function Aw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=ww(),l=Iw(()=>kw({API_KEY:t.apiKey||It("API_KEY"),BASE_URL:It("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(bw),S=i(k=>{let{supportedChains:v}=s(k);return $n(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:xw(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},T=ae.use.isActiveTab();return Ew.createElement(vw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Tw(k)},isPaused:!T},t.children)}i(Aw,"QueueManager");var jf=Aw;import{useManager as Bw}from"@rango-dev/queue-manager-react";import Pw,{createContext as _w,useContext as Dw}from"react";import{cancelSwap as Nw,getCurrentBlockchainOfOrNull as Ww,getCurrentStep as Mw,getRelatedWalletOrNull as Lw}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 rt(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&&Nw(o)}getCurrentStepInfo(e){let o=Mw(e);return{step:o,wallet:o?Lw(e,o):null,network:o?Ww(e,o):null}}};var Yf=_w(void 0);function dl(t){let{manager:e}=Bw(),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 Pw.createElement(Yf.Provider,{value:y},t.children)}i(dl,"WidgetInfo");function Zf(){let t=Dw(Yf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Zf,"useWidget");function wi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Kf();return Jf(()=>{n&&r(n)},[n]),Fw(()=>{zl({API_KEY:o?.apiKey||Nn,BASE_URL:o?.apiUrl||gl})},[o.apiKey,o.apiUrl]),Jf(()=>{t.config?.signers?.customSolanaRPC&&$w("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),fl.createElement(Kn,{config:o,onUpdateState:e},fl.createElement(jf,{apiKey:o.apiKey},fl.createElement(dl,null,t.children)))}i(wi,"WidgetProvider");function Rf(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(Rf,"Widget");function eg(){let{on:t,off:e}=we;return{on:t,off:e}}i(eg,"useWidgetEvents");export{P2 as EventSeverity,Xo as MainEvents,q2 as Networks,V2 as PendingSwapNetworkStatus,$i as QuoteEventTypes,_2 as RouteEventType,bi as SUPPORTED_FONTS,D2 as StepEventType,$2 as StepExecutionBlockedEventStatus,F2 as StepExecutionEventStatus,he as UI_ID,Fi as WalletEventTypes,Q2 as WalletEvents,H2 as WalletTypes,Rf as Widget,Xo as WidgetEvents,wi as WidgetProvider,Kn as WidgetWallets,ca as customizedThemeTokens,U2 as readAccountAddress,no as useWalletList,br as useWallets,Zf as useWidget,eg as useWidgetEvents,ig as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|