@rango-dev/widget-embedded 0.29.1-next.9 → 0.30.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.
Files changed (143) hide show
  1. package/dist/QueueManager.d.ts.map +1 -1
  2. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +6 -0
  3. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  4. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  5. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  6. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  7. package/dist/components/Quote/Quote.d.ts.map +1 -1
  8. package/dist/components/Quote/Quote.styles.d.ts +1 -1
  9. package/dist/components/Quote/QuoteCostDetails.d.ts.map +1 -1
  10. package/dist/components/RefreshModal/RefreshModal.styles.d.ts +1 -1
  11. package/dist/components/SearchInput/SearchInput.types.d.ts +2 -0
  12. package/dist/components/SearchInput/SearchInput.types.d.ts.map +1 -1
  13. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  14. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
  15. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
  16. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts +4 -0
  17. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts.map +1 -0
  18. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts +325 -0
  19. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts.map +1 -0
  20. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts +10 -0
  21. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts.map +1 -0
  22. package/dist/components/WalletDerivationPathModal/index.d.ts +2 -0
  23. package/dist/components/WalletDerivationPathModal/index.d.ts.map +1 -0
  24. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts.map +1 -1
  25. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts +1 -1
  26. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts.map +1 -1
  27. package/dist/constants/namespaces.d.ts +8 -0
  28. package/dist/constants/namespaces.d.ts.map +1 -0
  29. package/dist/constants/quote.d.ts +2 -1
  30. package/dist/constants/quote.d.ts.map +1 -1
  31. package/dist/constants/routing.d.ts +0 -1
  32. package/dist/constants/routing.d.ts.map +1 -1
  33. package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
  34. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -1
  35. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +3 -1
  36. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -1
  37. package/dist/hooks/useBootstrap/useBootstrap.d.ts.map +1 -1
  38. package/dist/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.d.ts.map +1 -1
  39. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  40. package/dist/hooks/useWalletList.d.ts +4 -3
  41. package/dist/hooks/useWalletList.d.ts.map +1 -1
  42. package/dist/hooks/useWalletProviders/index.d.ts +2 -0
  43. package/dist/hooks/useWalletProviders/index.d.ts.map +1 -0
  44. package/dist/hooks/{useWalletProviders.d.ts → useWalletProviders/useWalletProviders.d.ts} +2 -2
  45. package/dist/hooks/useWalletProviders/useWalletProviders.d.ts.map +1 -0
  46. package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts +3 -0
  47. package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts.map +1 -0
  48. package/dist/hooks/useWidgetEvents/index.d.ts +2 -0
  49. package/dist/hooks/useWidgetEvents/index.d.ts.map +1 -0
  50. package/dist/hooks/useWidgetEvents/useWidgetEvents.d.ts +3 -0
  51. package/dist/hooks/useWidgetEvents/useWidgetEvents.d.ts.map +1 -0
  52. package/dist/index.d.ts +16 -4
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -2
  55. package/dist/index.js.map +4 -4
  56. package/dist/pages/WalletsPage.d.ts.map +1 -1
  57. package/dist/services/eventEmitter.d.ts +4 -0
  58. package/dist/services/eventEmitter.d.ts.map +1 -0
  59. package/dist/store/notification.d.ts.map +1 -1
  60. package/dist/store/quote.d.ts +2 -1
  61. package/dist/store/quote.d.ts.map +1 -1
  62. package/dist/store/slices/config.d.ts.map +1 -1
  63. package/dist/store/slices/settings.d.ts.map +1 -1
  64. package/dist/store/wallets.d.ts.map +1 -1
  65. package/dist/types/config.d.ts +7 -2
  66. package/dist/types/config.d.ts.map +1 -1
  67. package/dist/types/event.d.ts +68 -0
  68. package/dist/types/event.d.ts.map +1 -0
  69. package/dist/types/index.d.ts +1 -0
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/wallets.d.ts +2 -1
  72. package/dist/types/wallets.d.ts.map +1 -1
  73. package/dist/utils/common.d.ts +2 -2
  74. package/dist/utils/common.d.ts.map +1 -1
  75. package/dist/utils/meta.d.ts +1 -0
  76. package/dist/utils/meta.d.ts.map +1 -1
  77. package/dist/utils/numbers.d.ts +0 -1
  78. package/dist/utils/numbers.d.ts.map +1 -1
  79. package/dist/utils/providers.d.ts +1 -0
  80. package/dist/utils/providers.d.ts.map +1 -1
  81. package/dist/utils/wallets.d.ts +4 -4
  82. package/dist/utils/wallets.d.ts.map +1 -1
  83. package/dist/widget-embedded.build.json +1 -1
  84. package/package.json +8 -8
  85. package/src/QueueManager.tsx +4 -0
  86. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +19 -9
  87. package/src/components/ConfirmWalletsModal/WalletList.tsx +81 -14
  88. package/src/components/HistoryGroupedList/HistoryGroupedList.tsx +5 -5
  89. package/src/components/NotificationContent/NotificationContent.tsx +12 -113
  90. package/src/components/Quote/Quote.tsx +24 -34
  91. package/src/components/Quote/QuoteCostDetails.tsx +10 -9
  92. package/src/components/SearchInput/SearchInput.types.ts +2 -0
  93. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +1 -1
  94. package/src/components/SwapDetails/SwapDetails.helpers.tsx +8 -10
  95. package/src/components/SwapDetails/SwapDetails.tsx +10 -11
  96. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +77 -11
  97. package/src/components/TokenList/TokenList.tsx +5 -5
  98. package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.ts +17 -0
  99. package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.tsx +154 -0
  100. package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.types.tsx +10 -0
  101. package/src/components/WalletDerivationPathModal/index.ts +1 -0
  102. package/src/components/WalletNamespacesModal/WalletNamespacesModal.tsx +9 -6
  103. package/src/components/WalletNamespacesModal/WalletNamespacesModal.types.tsx +1 -1
  104. package/src/constants/namespaces.ts +62 -0
  105. package/src/constants/quote.ts +11 -9
  106. package/src/constants/routing.ts +0 -2
  107. package/src/containers/Inputs/Inputs.tsx +5 -5
  108. package/src/containers/Wallets/Wallets.tsx +1 -0
  109. package/src/containers/WidgetInfo/WidgetInfo.tsx +3 -0
  110. package/src/containers/WidgetInfo/WidgetInfo.types.ts +3 -1
  111. package/src/hooks/useBootstrap/useBootstrap.ts +4 -0
  112. package/src/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.ts +8 -10
  113. package/src/hooks/useSyncStoresWithConfig.ts +3 -1
  114. package/src/hooks/useWalletList.ts +12 -5
  115. package/src/hooks/useWalletProviders/index.ts +1 -0
  116. package/src/hooks/useWalletProviders/useWalletProviders.helpers.ts +14 -0
  117. package/src/hooks/{useWalletProviders.ts → useWalletProviders/useWalletProviders.ts} +11 -5
  118. package/src/hooks/useWidgetEvents/index.ts +1 -0
  119. package/src/hooks/useWidgetEvents/useWidgetEvents.ts +9 -0
  120. package/src/index.ts +26 -2
  121. package/src/pages/WalletsPage.tsx +85 -19
  122. package/src/services/eventEmitter.ts +11 -0
  123. package/src/store/notification.ts +3 -1
  124. package/src/store/quote.ts +70 -5
  125. package/src/store/slices/config.ts +4 -0
  126. package/src/store/slices/settings.ts +4 -1
  127. package/src/store/wallets.ts +194 -173
  128. package/src/types/config.ts +8 -4
  129. package/src/types/event.ts +89 -0
  130. package/src/types/index.ts +1 -0
  131. package/src/types/wallets.ts +2 -1
  132. package/src/utils/common.ts +2 -2
  133. package/src/utils/meta.ts +8 -0
  134. package/src/utils/numbers.ts +0 -12
  135. package/src/utils/providers.ts +4 -0
  136. package/src/utils/wallets.ts +7 -5
  137. package/dist/components/NotificationContent/NotificationContent.styles.d.ts +0 -1559
  138. package/dist/components/NotificationContent/NotificationContent.styles.d.ts.map +0 -1
  139. package/dist/components/NotificationContent/NotificationNotFound.d.ts +0 -3
  140. package/dist/components/NotificationContent/NotificationNotFound.d.ts.map +0 -1
  141. package/dist/hooks/useWalletProviders.d.ts.map +0 -1
  142. package/src/components/NotificationContent/NotificationContent.styles.ts +0 -63
  143. 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 eg=Object.defineProperty;var i=(t,e)=>eg(t,"name",{value:e,configurable:!0});import{EventSeverity as B2,RouteEventType as P2,StepEventType as _2,StepExecutionBlockedEventStatus as D2,StepExecutionEventStatus as $2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as O2,useWallets as br,Events as U2}from"@rango-dev/wallets-react";import{Networks as z2,WalletTypes as q2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as G2}from"rango-types";import{UI_ID as tg}from"@rango-dev/ui";var Nn="c6381a79-2817-4602-83bf-6a641a409e32",gl="https://api.rango.exchange",hl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...tg};var yl="Roboto",bi=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as zi,Provider as jg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Yg}from"rango-sdk";import Vn,{createContext as Zg,useEffect as up,useMemo as Jg,useRef as mp}from"react";import{useEffect as vg}from"react";import{create as Cg}from"zustand";import{subscribeWithSelector as Tg}from"zustand/middleware";import og from"mitt";var we=og(),ng={on:we.on,off:we.off};import{RangoClient as yg}from"rango-sdk";import{BlockchainCategories as cg,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as ug}from"@rango-dev/wallets-react";import{detectInstallLink as mg,getCosmosExperimentalChainInfo as dg,isEvmAddress as fg,KEPLR_COMPATIBLE_WALLETS as ux,Networks as Nl}from"@rango-dev/wallets-shared";import Li from"bignumber.js";import{isCosmosBlockchain as gg}from"rango-types";import rg from"bignumber.js";var $e=new rg(0);import{WalletTypes as ig}from"@rango-dev/wallets-shared";var Sl=[ig.LEAP];import{BlockchainCategories as Ei,WalletState as pg}from"@rango-dev/ui";import{TransactionType as Wn}from"rango-sdk";function To(t){return Array.from(new Set(t))}i(To,"removeDuplicateFrom");function Ni(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ni,"areEqual");function xl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(xl,"debounce");function 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 _=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===pg.CONNECTED);return e===!1&&o}i(Ln,"isSingleWalletActive");function Bn(t,e){return e.find(o=>o.name===t)?.displayName}i(Bn,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"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:mg(l),state:g,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d,needsDerivationPath:f}})}i(Wl,"mapWalletTypesToWalletInfo");function $n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i($n,"walletAndSupportedChainsNames");function Ml(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=ug(p),m=l.length>0,f=l.includes(c),d=c===Nl.Unknown;if(m&&!f&&!d)return;let S=c===Nl.Unknown&&fg(u);if(d&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Ml,"prepareAccountsForWalletStore");function Jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Fn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Fn,"isAccountAndWalletMatched");function Ll(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Li(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Ll,"makeBalanceFor");function Bl(t){return{...t,loading:!1,error:!0}}i(Bl,"resetConnectedWalletState");var Pl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Li(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return hg(r)},"calculateWalletUsdValue");function hg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(hg,"numberWithThousandSeparator");var On=i((t,e)=>{let o=dg(Object.entries(t).map(([,n])=>n).filter(gg));return o&&o[e]?.experimental},"isExperimentalChain");function Un(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Un,"formatBalance");function _l(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(_l,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Dl(t){return t.sort((e,o)=>+(o.state===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===cg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Mn(n,e))return!0;return!1})}i(Ql,"filterWalletsByCategory");var Pi={API_KEY:Nn};function 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 yg(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 Sg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ut=Sg;var te=Ut(Cg()(Tg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{we.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{n.connectedWallets.find(l=>l.walletType===o)&&we.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:zn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Fn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ot().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(S=>Fn(S,f)),g=p.find(S=>S.address===f.address&&S.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:Ll(g,n),loading:!1}:f});return{loading:!1,balances:zn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Fn(m,c))?Bl(c):c);return{loading:!1,balances:zn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ft(o);return n[r]??null}}))));import{allProviders as kg}from"@rango-dev/provider-all";function Hn(t,e){let o=kg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Hn,"matchAndGenerateProviders");function Xl(t,e){return Hn(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function Kl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Kl,"hashProviders");function Oi(t,e){let o=te.use.clearConnectedWallet(),n=Hn(t,e);return vg(()=>{o(),n=Hn(t,e)},[Kl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Oi,"useWalletProviders");import zg,{createContext as qg,useContext as Hg,useEffect as Gg,useRef as Vg}from"react";import{create as Ug}from"zustand";import{persist as Qg}from"zustand/middleware";var Ui={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},wg={clientUrl:void 0},xg={liquiditySources:void 0},jl=i((t,e,o)=>({config:{...Ui,...t},iframe:wg,campaignMode:xg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Gn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return To(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(Gn,"getUniqueSwappersGroups");function Yl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Yl,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"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 bg,English as Eg,Finland as Ig,French as Ag,German as Ng,Greece as Wg,Italian as Mg,Japanese as Lg,Netherlands as Bg,Poland as Pg,Portuguese as _g,Russian as Dg,Spanish as $g,Swedish as Fg,Ukrainian as Og}from"@rango-dev/ui";var Rl=[{title:"English",label:"English",local:"en",SVGFlag:Eg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:$g},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Ag},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Lg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:_g},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:bg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Dg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Ng},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Og},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Fg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Ig},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Bg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Wg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Mg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Pg}],ko="en";var ep=[.5,1,3],tp=1,op=5,np=100,rp=0;var ip=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:tp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=To(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),l=Re("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||ko},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||ko}})}}),"createSettingsSlice");function ap(t){return Ug()(Qg((...e)=>({...Jl(...e),...ip(...e),...jl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(ap,"createAppStore");var sp=qg(null);function h(){let t=Hg(sp);if(Gg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function lp(t){let e=Vg();return e.current||(e.current=ap(t.config)),zg.createElement(sp.Provider,{value:e.current},t.children)}i(lp,"AppStoreProvider");import{create as Kg}from"zustand";var pp="rango-widget";var Ko=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(pp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ae=Ut(Kg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new Ko({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Xn=Zg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Rg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Oi(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=mp(),f=mp();up(()=>{n().catch(console.log)},[]),up(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Yg).map(y=>y.name),g=i((y,T,k,v,I)=>{if(T===zi.ACCOUNTS)if(k){let N=$n(I.supportedBlockchains),x=Ml(y,k,d,N,I.isContractWallet);x.length&&u(x,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===zi.ACCOUNTS&&v.connected){let N=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(N):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===zi.NETWORK&&v.network){let N=`${y}-${v.network}`;m.current?m.current(N):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,I)},"onUpdateState"),S=ae.use.isActiveTab(),C=Jg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Vn.createElement(Xn.Provider,{value:C},Vn.createElement(jg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Rg,"Main");function Kn(t){let{config:e,...o}=t;return Vn.createElement(lp,{config:e},Vn.createElement(Rg,{...o,config:e}))}i(Kn,"WidgetWallets");import xi from"react";import eh,{Fragment as th}from"react";import{MemoryRouter as oh,useInRouterContext as nh}from"react-router";function dp({children:t}){let o=nh()?th:oh;return eh.createElement(o,null,t)}i(dp,"AppRouter");import{I18nManager as hw}from"@rango-dev/ui";import ml from"react";import Ge from"react";import{useRoutes as ow}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as xo,useRef as ir}from"react";import Oe from"bignumber.js";import{create as ah}from"zustand";import{subscribeWithSelector as sh}from"zustand/middleware";import{getLastSuccessfulStep as ih}from"@rango-dev/queue-manager-rango-preset";import VE from"bignumber.js";function qi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(qi,"getFeeLabel");var Hi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],fp=30;import{i18n as pt}from"@lingui/core";import{RouteEventType as WE}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as Zn}from"rango-types";function jn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jn,"isValidAddress");import{i18n as Be}from"@lingui/core";var oe=i(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function gp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(gp,"getQuoteErrorMessage");import{i18n as Yn}from"@lingui/core";var to=i(()=>({connectWallet:Yn.t("Connect Wallet"),swap:Yn.t("Swap"),swapAnyway:Yn.t("Swap anyway"),ethWarning:Yn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function hp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Fe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Fe(1e3)))??!1}i(hp,"hasHighValueLoss");function yp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(yp,"hasLimitError");function Sp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Fe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Fe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=pt.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=pt.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=pt.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=pt.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=et(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=pt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=pt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=pt.t(" for input and network fee")),pt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Je(s.asset.blockchain,o)}})})}i(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||pt.t("Waiting for connecting wallet");break;case Zn.WaitingForQueue:n=n||pt.t("Waiting for other running tasks to be finished");break;case Zn.WaitingForNetworkChange:n=n||pt.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=ih(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Wi(a?a.toBlockchain:n.fromBlockchain,e),p=Wi(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(nr,"createRetryQuote");function wo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=et(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 et(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(et,"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(ah()(sh(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),P=c?.from?.token,Q=P&&g(P);(E||!E&&w.current)&&n(E??null),Q?a({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&N.current&&a({token:null}),w.current=c?.from?.blockchain,N.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),xo(()=>{Vo(s,T)&&a({token:null}),Di(p,k)&&n(null)},[T,k]),xo(()=>{Vo(l,v)&&a({token:null}),Di(u,I)&&o(null)},[v,I]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.to?.blockchain),P=c?.to?.token,Q=P&&g(P);(E||!E&&b.current)&&o(E??null),Q?e({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&x.current&&e({token:null}),b.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),xo(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(zp,"useSyncStoresWithConfig");import{useEffect as Ri,useRef as lh}from"react";import{useInRouterContext as ph,useLocation as ch,useSearchParams as uh}from"react-router-dom";function Zi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Zi,"convertTokenSearchParamToAsset");function Ji(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ji,"tokenToSearchParam");function ea(){let t=ch(),[e,o]=uh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=Y(),d=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=ph(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=lh(),{findToken:I}=h(),N=i(()=>{let w={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(w[B]=Z);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),P=e.get("fromToken"),Q=e.get("toBlockchain"),A=e.get("toToken"),z=e.get("autoConnect"),j=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:E,fromToken:P,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:w}},"getUrlSearchParams"),x=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");Ri(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:E}=N();C&&d==="success"&&x({fromBlockchain:n?.name,fromToken:Ji(a),toBlockchain:r?.name,toToken:Ji(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...E})},[t.pathname,l,n,a,r,s,k]),Ri(()=>{if(!C)return;let w=N();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&f(w.fromAmount),d==="success"){let b=g.find(A=>A.name===w.fromBlockchain),E=w.fromToken&&b?I(Zi(w.fromToken,b)):void 0,P=g.find(A=>A.name===w.toBlockchain),Q=w.toToken&&P?I(Zi(w.toToken,P)):void 0;b&&(p(b),E&&c({token:E,meta:{blockchains:g,tokens:S}})),P&&(u(P),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[d]),Ri(()=>{let{clientUrl:w,liquiditySources:b}=N();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(ea,"useSyncUrlAndStore");import{i18n as os}from"@lingui/core";import{useManager as DC}from"@rango-dev/queue-manager-react";import{Alert as Tm,Button as $C,css as rs,Divider as ns,IconButton as km,styled as FC,Typography as OC,WalletIcon as UC}from"@rango-dev/ui";import Ie,{useEffect as Xr,useLayoutEffect as QC,useRef as zC,useState as dn}from"react";import{useNavigate as qC}from"react-router-dom";import{i18n as kt}from"@lingui/core";import{Alert as _a,BalanceErrors as TS,Button as Jc,ChevronDownIcon as kS,ChevronLeftIcon as vS,CloseIcon as wS,Divider as tn,IconButton as Rc,MessageBox as xS,PasteIcon as bS,Typography as Er,WalletIcon as ES}from"@rango-dev/ui";import $,{useCallback as IS,useEffect as eu,useMemo as AS,useRef as NS,useState as uo}from"react";import{useNavigate as WS}from"react-router-dom";import{i18n as ar}from"@lingui/core";function sr(t){switch(t.type){case 0:return ar.t("Route has been updated.");case 3:return ar.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return ar.t("Route swappers has been updated.");case 2:return ar.t("Route internal coins has been updated.");default:return""}}i(sr,"getQuoteUpdateWarningMessage");import{Modal as dh}from"@rango-dev/ui";import fh from"react";function re(t){let{watermark:e}=ae();return fh.createElement(dh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import ur,{useRef as yh}from"react";import*as bo from"@radix-ui/react-collapsible";import{keyframes as Hp,styled as lr}from"@rango-dev/ui";var ta=300,gh=Hp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),hh=Hp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Gp=lr(bo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),oa=lr(bo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),pr=lr(bo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${gh} ${ta}ms ease-out`},false:{animation:`${hh} ${ta}ms ease-out`}}}}),cr=lr("div",{transition:`all ${ta}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function mr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=yh(null);return ur.createElement(Gp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ur.createElement(oa,{className:"collapsible_trigger",onClick:a},s),ur.createElement(pr,{className:"collapsible_content",open:e},r),l==="bottom"&&ur.createElement(oa,{className:"collapsible_trigger",onClick:a},s))}i(mr,"CustomCollapsible");import{css as Vp,darkTheme as Yo,IconButton as Sh,styled as tt,TextField as Ch}from"@rango-dev/ui";var Xp=tt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Kp=tt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Th=tt("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=tt(Th,{alignSelf:"stretch",minHeight:"93px"}),Yp=tt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Zp=tt(Sh,{position:"absolute",left:"$20"}),Jp=tt("div",{paddingTop:"$20"}),Rp=Vp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ec=tt("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=tt("div",{display:"flex"}),nc=tt(Ch,{backgroundColor:"$neutral100",padding:"$15"}),rc=tt("div",{overflow:"visible",width:"100%"}),ic=tt("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 ct}from"@lingui/core";import{Button as hS,Divider as Ba,Image as yS,MessageBox as xr,SelectableWallet as SS,Typography as jc,WalletState as Yc}from"@rango-dev/ui";import ue,{useEffect as Zc,useState as co}from"react";import{WalletState as na}from"@rango-dev/ui";import{useWallets as kh}from"@rango-dev/wallets-react";import{detectMobileScreens as vh,KEPLR_COMPATIBLE_WALLETS as wh,WalletTypes as Eo}from"@rango-dev/wallets-shared";import{useCallback as xh,useEffect as bh,useState as Eh}from"react";var Ih=Object.values(Eo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=kh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ih,d=Wl(s,p,f,e);d=vh()?d.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):d;let g=Dl(d),[S,C]=Eh(""),y=i(x=>!c.find(w=>w.walletType===x&&w.chain===e),"isExperimentalChainNotAdded"),T=i(async(x,w)=>{let b=s(x);try{if(S&&C(""),b.connected)await l(x);else{if(Ln(d,a.multiWallets))return;o?.(x),await u(x,void 0,w),n?.(x)}}catch(E){r?.(E?.message),C("Error: "+E?.message)}},"handleClick"),k=xh(()=>{let x=d?.filter(w=>w.state===na.CONNECTING)||[];for(let w of x)l(w.type)},[Ol(d)]),v=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");bh(()=>()=>{k()},[]);let I=i(x=>{let w=x.find(E=>E.type===Eo.DEFAULT);return!w||w.state===na.NOT_INSTALLED?!1:x.filter(E=>E.state!=na.NOT_INSTALLED&&![Eo.DEFAULT,Eo.WALLET_CONNECT_2,Eo.LEDGER].includes(E.type)&&p(E.type).supportedChains.filter(P=>P.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((x,w,b)=>On(b,w)&&y(x)&&!wh.includes(x)||x==Eo.DEFAULT&&!I(d),"shouldExcludeWallet");return{list:g.filter(x=>!N(x.type,e??"",m)),error:S,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:v}}i(no,"useWalletList");import{i18n as zc}from"@lingui/core";import{Divider as sS,getCategoriesCount as lS,SelectableCategoryList as pS,styled as Hc,Typography as cS,Wallet as uS,WalletState as qc}from"@rango-dev/ui";import rt,{useState as en}from"react";import{useManager as Ly}from"@rango-dev/queue-manager-react";import{BottomLogo as By,Divider as Wc,Header as Py}from"@rango-dev/ui";import Te,{useEffect as ba,useRef as Mc,useState as _y}from"react";import{useRef as Ah}from"react";function dr(){return window.self!==window.top}i(dr,"isAppLoadedIntoIframe");function ra(){let t=Ah(null),{iframe:e}=h(),o=dr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(ra,"useIframe");import{useNavigate as Nh}from"react-router-dom";function ot(){let t=Nh();return()=>t(-1)}i(ot,"useNavigateBack");import{createTheme as ua,darkTheme as qh,lightTheme as Hh}from"@rango-dev/ui";import{useEffect as Gh,useState as Vh}from"react";import{theme as Qh,darkColors as zh}from"@rango-dev/ui";import pa from"react";function Wh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Wh,"expandShortHexColor");function Mh(t){return/[0-9]+$/.test(t)}i(Mh,"isOverridingColor");function Lh(t,e){return t.padStart(e,"0")}i(Lh,"pad");function ia(t){let e=Math.min(Math.max(Math.round(t),0),255);return Lh(e.toString(16),2)}i(ia,"intToHex");function Bh(t){return`#${ia(t.red)}${ia(t.green)}${ia(t.blue)}`}i(Bh,"rgbToHex");function Ph(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(Ph,"hexToRGB");function _h(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(_h,"generateShade");function Dh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(Dh,"generateTint");function $h(t){return ac(t,_h)}i($h,"calculateShades");function Fh(t){return ac(t,Dh)}i(Fh,"calculateTints");function ac(t,e){let o=Ph(t),n=[];for(let r=1;r<9;r++)n.push(Bh(e(o,r)));return n}i(ac,"calculateColors");function aa(t,e,o){let a=Fh(t).reverse().concat(t),s=$h(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(aa,"createTintsAndShades");function sa(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Mh(r)){let p=Wh(a);Object.assign(n,aa(p,r,s))}}return{...n,...e}}i(sa,"expandToGenerateThemeColors");var sc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Oh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=sc(o%52)+e;return sc(o%52)+e},"toAlphabeticName"),Uh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),la=i(t=>Oh(Uh(5381,JSON.stringify(t))>>>0),"toHash");function ca(t){let e=Qh.colors,o={...e,...zh},n,r;if(t?.light){let s={colors:sa(e,t.light)};n={id:`${_i}-light-${la(s)}`,tokens:s}}if(t?.dark){let s={colors:sa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${_i}-dark-${la(s)}`,tokens:s}}return{light:n,dark:r}}i(ca,"customizedThemeTokens");function lc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>pa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(pa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(pa.cloneElement(e,{key:l}))}}),o}i(lc,"joinList");function fr(t){let{colors:e,fontFamily:o=yl,borderRadius:n=ql,secondaryBorderRadius:r=Hl}=t,[a,s]=Vh("light"),{theme:l}=h(),{dark:p,light:u}=ca(e),c=ua({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Hh.className],f=[c.className,qh.className];if(u){let g=ua(u.id,u.tokens);m.push(g.className)}if(p){let g=ua(p.id,p.tokens);f.push(g.className)}return Gh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),S=f.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(fr,"useTheme");var nt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as pc}from"@lingui/core";import{Alert as Xh,Button as Kh}from"@rango-dev/ui";import cc from"react";function ma(t){return cc.createElement(Xh,{action:cc.createElement(Kh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},pc.t("Activate this tab")),type:"warning",variant:"alarm",title:pc.t("Another tab is open and handles transactions.")})}i(ma,"ActivateTabAlert");import{i18n as da}from"@lingui/core";import{Button as jh,Divider as Yh,MessageBox as Zh}from"@rango-dev/ui";import gr from"react";function fa(t){let{open:e,onClose:o,onConfirm:n}=t;return gr.createElement(re,{open:e,dismissible:!0,onClose:o,container:_()},gr.createElement(Zh,{title:da.t("Activate current tab"),type:"warning",description:da.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},gr.createElement(Yh,{size:20}),gr.createElement(jh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},da.t("Confirm"))))}i(fa,"ActivateTabModal");import{ChevronLeftIcon as ey}from"@rango-dev/ui";import yc from"react";import{css as Jh,darkTheme as uc,IconButton as Rh,styled as ro}from"@rango-dev/ui";var Tt=ro(Rh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${uc} &`]:{backgroundColor:"$neutral"}}}),mc=ro("div",{position:"absolute",background:"$secondary500",[`.${uc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Io=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),dc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),fc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),gc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),hc=Jh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),hr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ga(t){return yc.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},yc.createElement(ey,{color:"black",size:16}))}i(ga,"BackButton");import{i18n as ty}from"@lingui/core";import{Button as oy,Typography as ny}from"@rango-dev/ui";import ha from"react";function ya(t){return ha.createElement(Io,null,ha.createElement(oy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ha.createElement(ny,{variant:"label",size:"medium",color:"error500"},ty.t("Cancel"))))}i(ya,"CancelButton");import{i18n as ry}from"@lingui/core";import{Image as iy,Tooltip as ay,WalletIcon as sy}from"@rango-dev/ui";import io from"react";function Sa(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:hc()},o.map(r=>io.createElement(hr,{key:r.title},io.createElement(iy,{src:r.image,size:14})))):ry.t("Connect Wallet");return io.createElement(ay,{container:t.container,side:"bottom",content:n},io.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(mc,null),io.createElement(sy,{size:18,color:"black"})))}i(Sa,"WalletButton");import{i18n as Sr}from"@lingui/core";import{NotificationsIcon as wy,Popover as xy,SettingsIcon as by,Tooltip as Cr,TransactionIcon as Ey}from"@rango-dev/ui";import We from"react";import{Notifications as uy}from"@rango-dev/ui";import my from"react";import{useNavigate as dy}from"react-router-dom";import{create as ly}from"zustand";import{persist as py,subscribeWithSelector as cy}from"zustand/middleware";var xe=Ut(ly()(py(cy((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>a.creationTime-r.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function Ca(){let t=dy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return my.createElement(uy,{list:n,getBlockchainImage:l=>Il(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ca,"NotificationContent");import{useManager as fy}from"@rango-dev/queue-manager-react";import{InProgressIcon as gy}from"@rango-dev/ui";import Sc from"react";var hy=i(()=>{let{manager:t}=fy();return nt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Sc.createElement(gc,null,Sc.createElement(gy,{color:"info",size:6})):null},"InProgressTransactionBadge"),Cc=hy;import{EventSeverity as yy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Sy}from"@rango-dev/ui";import Tc from"react";function kc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===yy.WARNING);return o?Tc.createElement(dc,{isSever:n},Tc.createElement(Sy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(kc,"NotificationsBadge");import{RefreshProgressButton as Cy}from"@rango-dev/ui";import Ta,{useEffect as Ty,useState as vc}from"react";var ky=1e3,wc=60,vy=100;function yr({onClick:t}){let[e,o]=vc(0),[n,r]=vc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Ty(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===wc&&l()},ky):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return Ta.createElement(Tt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Ta.createElement(fc,{onTransitionEnd:()=>r(!1),isRefetched:n},Ta.createElement(Cy,{size:22,color:t?"black":"gray",progress:e/wc*vy})))}i(yr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Re("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Cr,{container:a||_(),side:"top",content:Sr.t("Refresh")},We.createElement(yr,{onClick:e})),!l&&We.createElement(xy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:_(),content:We.createElement(Ca,null)},We.createElement("div",null,We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Notifications")},We.createElement(Tt,{size:"small",variant:"ghost"},We.createElement(wy,{size:18,color:"black"}),We.createElement(kc,null))))),!r.includes("settings")&&We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Settings")},We.createElement(Tt,{size:"small",variant:"ghost",onClick:n},We.createElement(by,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Transactions History")},We.createElement(Tt,{size:"small",variant:"ghost",onClick:o},We.createElement(Ey,{size:18,color:"black"}),We.createElement(Cc,null))))}i(ao,"HeaderButtons");import{i18n as ka}from"@lingui/core";import{Divider as bc,MessageBox as Ny,RefreshIcon as Wy}from"@rango-dev/ui";import Ao from"react";import{Button as Iy,styled as Ay}from"@rango-dev/ui";var xc=Ay(Iy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function va(t){let{open:e,onClose:o}=t;return Ao.createElement(re,{open:e,dismissible:!0,onClose:o,container:_()},Ao.createElement(Ny,{title:ka.t("Something went wrong"),type:"error",description:ka.t("Something went wrong. Please refresh the app.")},Ao.createElement(bc,{size:30}),Ao.createElement(xc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Ao.createElement(Wy,{size:20,color:"primary"}),Ao.createElement(bc,{size:4,direction:"horizontal"}),ka.t("Refresh"))))}i(va,"RefreshModal");function wa(t){let e=t.target;if(e){let o=e.scrollTop,n=_();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(wa,"onScrollContentAttachStatusToContainer");import{css as My,styled as xa}from"@rango-dev/ui";var Ec="700px",Tr=My({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ic=xa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ec},fixed:{height:Ec}}}}),Ac=xa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Nc=xa("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function ce(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ra(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=_y(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ae(),g=d==="FULL",{activeTheme:S}=fr(f||{}),C=Re("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:I}=ae(),N=ot(),{manager:x}=Ly(),b=nt(x).map(({swap:j})=>j).some(j=>j.status==="running"),E=i(()=>I(eo.forceClaim,b),"onActivateTab"),P=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,A=Mc(null),z=Mc(null);return ba(()=>(dr()&&z.current&&e(z.current),()=>{o()}),[]),ba(()=>(A.current?.addEventListener("scroll",wa),()=>{A.current?.removeEventListener("scroll",wa)}),[]),ba(()=>{u(l==="failed")},[l]),Te.createElement(Ic,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${Tr()}`,ref:z},Te.createElement(Py,{prefix:Te.createElement(Te.Fragment,null,Q&&Te.createElement(ga,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:Te.createElement(Te.Fragment,null,r.suffix,r.onWallet&&!C&&Te.createElement(Sa,{container:_(),onClick:P,isConnected:!!c?.length}),r.onCancel&&Te.createElement(ya,{onClick:r.onCancel}))}),Te.createElement(Ac,{ref:A},n),Te.createElement(fa,{open:k,onClose:()=>v(!1),onConfirm:E}),Te.createElement(Nc,null,Te.createElement("div",{className:"footer__content"},T&&!y&&Te.createElement("div",{className:"footer__alert"},Te.createElement(ma,{onActivateTab:E}),Te.createElement(Wc,{size:10})),a),Te.createElement(Wc,{size:12}),Te.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Te.createElement(By,null))),Te.createElement(va,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as Dy}from"@rango-dev/ui";var Lc="$20 $20 $10 $20",Zo=Dy("div",{padding:Lc,overflowY:"auto",flexGrow:1});import{styled as $y}from"@rango-dev/ui";var fe=$y("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Lo}from"@lingui/core";import{Button as Qy,Divider as _c,Image as zy,MessageBox as qy,Select as Hy,TextField as Gy}from"@rango-dev/ui";import qe,{useEffect as Vy,useState as Dc}from"react";import{Namespace as No}from"@rango-dev/wallets-shared";var Jo={[No.Evm]:{mainBlockchain:"ETH",title:"Ethereum",derivationPaths:[{id:"metamask",label:"Metamask (m/44'/60'/0'/0/index)",generateDerivationPath:t=>`44'/60'/0'/0/${t}`},{id:"ledgerLive",label:"LedgerLive (m/44'/60'/index'/0/0)",generateDerivationPath:t=>`44'/60'/${t}'/0/0`},{id:"legacy",label:"Legacy (m/44'/60'/0'/index)",generateDerivationPath:t=>`44'/60'/0'/${t}`}]},[No.Solana]:{mainBlockchain:"SOLANA",title:"Solana",derivationPaths:[{id:"(m/44'/501'/index')",label:"(m/44'/501'/index')",generateDerivationPath:t=>`44'/501'/${t}'`},{id:"(m/44'/501'/0'/index)",label:"(m/44'/501'/0'/index)",generateDerivationPath:t=>`44'/501'/0'/${t}`}]},[No.Cosmos]:{mainBlockchain:"COSMOS",title:"Cosmos"},[No.Utxo]:{mainBlockchain:"BTC",title:"Utxo"},[No.Starknet]:{title:"Starknet",mainBlockchain:"STARKNET"},[No.Tron]:{title:"Tron",mainBlockchain:"TRON"}};import{keyframes as Fy,styled as kr}from"@rango-dev/ui";var CW=kr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=kr("div",{position:"relative"}),Oy=Fy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Mo=kr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Oy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vr=kr("div",{"& img":{borderRadius:"50%"}});import{styled as Bc,Typography as Uy}from"@rango-dev/ui";var Pc=Bc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ea=Bc(Uy,{paddingLeft:"$10"}),Ia={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Fc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function $c(t){let e=t?Jo[t].derivationPaths:null;return e?[...e,Fc]:[]}i($c,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Dc(null),[u,c]=Dc("0"),m=l===Fc.id,f=$c(n),d=i(({value:S})=>{let C=f?.find(y=>y.id===S);C&&p(C.id)},"handleDerivationPathItemClick"),g=i(()=>{let S=f.find(C=>C.id===l);if(S)o(S.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Vy(()=>{p($c(n)[0]?.id||null)},[n]),qe.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},qe.createElement(_c,{size:20}),qe.createElement(qy,{type:"info",title:Lo.t("Select Derivation Path"),description:Lo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:qe.createElement(Wo,null,qe.createElement(vr,null,qe.createElement(zy,{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(Hy,{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(Gy,{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 jy}from"@rango-dev/ui";import Na from"react";import{i18n as Bo}from"@lingui/core";import{Image as Xy,MessageBox as Aa,WalletState as Ky}from"@rango-dev/ui";import lo from"react";function Oc(t){let{state:e,image:o,error:n}=t;return e===Ky.CONNECTED?lo.createElement(Aa,{type:"success",title:Bo.t("Wallet Connected"),description:Bo.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Aa,{type:"error",title:Bo.t("Failed to Connect"),description:n||Bo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Aa,{type:"loading",title:Bo.t("Connecting to your wallet"),description:Bo.t("Click connect in your wallet popup."),icon:lo.createElement(Wo,null,lo.createElement(vr,null,lo.createElement(Xy,{src:o,size:45})),lo.createElement(Mo,null))})}i(Oc,"ModalContent");function Ro(t){let{open:e,onClose:o,...n}=t;return Na.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Na.createElement(Oc,{...n}),Na.createElement(jy,{direction:"vertical",size:32}))}i(Ro,"WalletModal");import{i18n as Wa}from"@lingui/core";import{Button as Zy,Checkbox as Jy,Divider as Ry,Image as Qc,ListItemButton as eS,MessageBox as tS,Radio as oS,RadioRoot as nS}from"@rango-dev/ui";import Me,{useMemo as rS,useState as iS}from"react";import{styled as Yy}from"@rango-dev/ui";var Uc=Yy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var aS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=iS([]),a=h().blockchains(),s=rS(()=>o?.map(u=>({name:u,logo:aS(a,Jo[u].mainBlockchain),title:Jo[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?Me.createElement(nS,{value:n?.[0]},u):Me.createElement(Me.Fragment,null,u),"wrapRadioRoot");return Me.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Me.createElement(Ry,{size:20}),Me.createElement(tS,{type:"info",title:Wa.t("Select chain types"),description:Wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Me.createElement(Wo,null,Me.createElement(hr,null,Me.createElement(Qc,{src:t.image,size:45})),Me.createElement(Mo,null))}),Me.createElement(Uc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(eS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Me.createElement(Qc,{src:u.logo,size:22}),end:e?Me.createElement(oS,{value:u.name}):Me.createElement(Jy,{checked:n.includes(u.name)})}))))),Me.createElement(Zy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Wa.t("Confirm")))}i(po,"WalletNamespacesModal");var mS=Hc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),dS=Hc(fe,{textAlign:"center"}),wr=3e3,Ma=300;function Gc(){let{fetchStatus:t}=h(),[e,o]=en("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=en(!1),[l,p]=en(null),[u,c]=en(null),[m,f]=en(""),d=null,g=ae.use.isActiveTab(),{list:S,handleClick:C,error:y,disconnectConnectingWallets:T}=no({onBeforeConnect:G=>{d=setTimeout(()=>{s(!0),f(G)},Ma)},onConnect:()=>{d&&clearTimeout(d),setTimeout(()=>{s(!1)},wr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),I=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),N=S.find(G=>G.type===m),x=N?.image||"",w=N?.state||qc.NOT_INSTALLED,b=Ul(S,n),P=lS(b)!==1,Q=Ql(S,e),A=i((G,B)=>{Ln(S,r.multiWallets)||(B.namespaces&&B.state===qc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):C(G))},"handleWalletItemClick"),z=i(G=>{let B=Q.find(Z=>Z.type===l?.providerType);B?.singleNamespace&&B?.needsDerivationPath&&G[0]?c({open:!0,providerType:B.type,providerImage:B.image,namespace:G[0]}):C(l?.providerType,G.map(Z=>({namespace:Z}))),v()},"handleConfirmNamespaces"),j=i(G=>{G&&u?.namespace&&C(u.providerType,[{namespace:u.namespace,derivationPath:G}]),I()},"handleDerivationPathConfirm");return rt.createElement(ce,{header:{title:zc.t("Connect Wallets")}},rt.createElement(dS,null,P&&rt.createElement(rt.Fragment,null,rt.createElement(pS,{setCategory:o,category:e,blockchains:b,isLoading:t==="loading"}),rt.createElement(sS,{size:24})),rt.createElement(cS,{variant:"title",size:"xmedium",align:"center"},zc.t("Choose a wallet to connect.")),rt.createElement(mS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return rt.createElement(uS,{key:Z,...G,container:_(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!g})}),rt.createElement(Ro,{open:!!a,onClose:k,image:x,state:w,error:y}),rt.createElement(po,{open:!!l?.open,onClose:v,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),rt.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:I,onConfirm:j}))))}i(Gc,"WalletsPage");import{keyframes as fS,styled as La}from"@rango-dev/ui";var Vc=La("div",{position:"relative"}),gS=fS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Xc=La("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${gS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Kc=La("div",{"& img":{borderRadius:"50%"}});var CS=7;function Pa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ae.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=co(""),[f,d]=co(null),[g,S]=co(!1),[C,y]=co(null),[T,k]=co(null),[v,I]=co(null),{suggestAndConnect:N}=br(),x=null,{list:w,error:b,handleClick:E,disconnectWallet:P,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{m(L)},Ma)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{m("")},wr)}}),[A,z]=co(w),j=w.length,G=r&&j-r>0,B=i(async L=>{S(!1),y("in-progress");try{await N(L.walletType,L.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),Z=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),ie=i(()=>{v&&I({...v,open:!1})},"handleCloseDerivationPathModal"),J=i(L=>{k({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace})},"handleOpenNamespacesModal"),ne=i(L=>{let me=A.find(se=>se.type===T?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?I({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):E(T?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=i(L=>{L&&v?.namespace&&E(v.providerType,[{namespace:v.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");Zc(()=>{z(L=>{let me=w.findIndex(se=>o(se.type,e));return G&&me>1?[w[me]].concat(w.filter((se,_e)=>_e!==me)):L.map(se=>w.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(w)]);let Ce=document.getElementById(he.SWAP_BOX_ID);Zc(()=>{let L=null;return(C==="completed"||C==="rejected")&&(L=setTimeout(()=>y(null),wr)),()=>{L&&clearTimeout(L)}},[C]);let D=i(()=>{Q(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,r).map(L=>{let me=$l({connectedWallets:p,walletType:L.type,chain:e}),se=me?Qn(me,CS):"",_e=On(u(),e),lt=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&lt&&L.state===Yc.CONNECTED,Ve=De?ct.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 P(L.type),J(L)):De?(d({walletType:L.type,chain:e,address:me??""}),S(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),ve=f?.chain?Bn(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${ve}`},ue.createElement(Ro,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:b}),ue.createElement(po,{open:!!T?.open,onClose:Z,onConfirm:ne,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),ue.createElement(so,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:ie,onConfirm:ge}),!!f&&ue.createElement(re,{open:!!f&&g,container:Ce,onClose:()=>{d(null)}},ue.createElement(xr,{title:ct.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:ct.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}})},ue.createElement(Ba,{size:18}),ue.createElement(Ba,{size:32}),ue.createElement(hS,{onClick:B.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ct.t("Confirm")))),C&&ue.createElement(re,{open:!!C,onClose:y.bind(null,null),container:Ce},C==="in-progress"&&ue.createElement(xr,{type:"loading",title:ct.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:ct.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}}),icon:ue.createElement(Vc,null,ue.createElement(Kc,null,ue.createElement(yS,{src:L.image,size:45})),ue.createElement(Xc,null))}),C==="completed"&&ue.createElement(xr,{type:"success",title:ct.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:ct.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:ct.t("Request Rejected"),description:ct.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Ba,{direction:"vertical",size:32})),ue.createElement(SS,{key:L.type,description: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"},ct.t("Show more wallets"),ue.createElement(jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(Pa,"WalletList");var MS=2;function tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=WS(),l=h().config,p=NS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:S}=Y(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=uo(""),[v,I]=uo([]),[N,x]=uo(""),[w,b]=uo(null),[E,P]=uo(!!g),Q=navigator?.userAgent.includes("Firefox"),A=AS(()=>Jt({filter:"all",quote:c}),[c]),z=Jt({filter:"required",quote:c}),j=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),G=i(W=>z.includes(W),"isWalletRequiredFor"),B=IS(()=>C.filter(W=>W.selected&&A.includes(W.chain)),[C,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=i((W,V)=>ne(X=>X.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=v.length>0,D=i((W,V)=>!!Z.find(X=>X.walletType===W&&X.chain===V&&X.selected&&(G(V)||!G(V)&&!g)),"isSelected"),L=!!g&&E&&j&&!jn(j,g),me=i(()=>{P(!1),S(null),ie(W=>{let V=!1;return W.map(X=>!V&&X.chain===j?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),se=i(()=>S(""),"handleClearCustomDestination"),_e=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),lt=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)&&(P(!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(wS,{size:12,color:"gray"})):Q?null:$.createElement(Rc,{onClick:_e,variant:"ghost"},$.createElement(bS,{size:16})),"renderCustomDestinationSuffix");eu(()=>{ie(W=>{let V=[];return W.forEach(X=>{!C.some(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(vS,{size:16})),$.createElement(Er,{variant:"headline",size:"small"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(T,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:I.bind(null,[]),container:de},$.createElement(xS,{title:kt.t("Insufficient account balance"),type:"error",description:$.createElement(TS,{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:MS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{ge(W,Zt)}})),!yt&&$.createElement(tn,{size:32}),yt&&l?.customDestination!==!1&&$.createElement(ec,null,$.createElement(mr,{onOpenChange:lt,hasSelected:!0,open:E,triggerAnchor:"top",trigger:$.createElement(ic,null,$.createElement("div",{className:"button__content"},$.createElement(ES,{size:18,color:"info"}),$.createElement(tn,{size:4,direction:"horizontal"}),$.createElement(Er,{variant:"label",size:"medium",color:E?"$neutral600":void 0},kt.t("Send to a different address"))),$.createElement(cr,{orientation:E?"up":"down"},$.createElement(kS,{size:10,color:"secondary"}))),onClickTrigger:()=>P(Zt=>!Zt)},$.createElement(nc,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:kt.t("Enter {blockchainName} address",{blockchainName:Bn(W,u)}),value:g||"",suffix:ve(),onChange:Zt=>{let Rf=Zt.target.value;S(Rf)},...!g&&{autoFocus:!0}})),L&&$.createElement("div",{className:tc()},$.createElement(_a,{variant:"alarm",type:"error",title:kt.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tu,"ConfirmWalletsModal");import{i18n as YS}from"@lingui/core";import{Alert as ZS,Button as JS,InfoIcon as RS}from"@rango-dev/ui";import Ye from"react";import{Alert as PS,Button as _S,Divider as Fa,NoRouteIcon as DS,RefreshIcon as $S,Typography as lu}from"@rango-dev/ui";import je from"react";import{i18n as ou}from"@lingui/core";var LS=24,BS=60;function nu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:ou.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:ou.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(nu,"makeInfo");var Da=(o=>(o[o.small=LS]="small",o[o.large=BS]="large",o))(Da||{}),$a=(o=>(o.small="small",o.large="medium",o))($a||{});import{styled as Ir}from"@rango-dev/ui";var ru=Ir("div",{display:"flex",flexDirection:"column",alignItems:"center"}),iu=Ir("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),au=Ir("div",{variants:{size:{small:{width:"100%"},large:{}}}}),su=Ir("div",{padding:"$6 $0"});function on(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=nu(o,r,()=>a(s,!0),e);return je.createElement(ru,null,je.createElement(DS,{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(PS,{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($S,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(on,"NoResult");import{i18n as nn}from"@lingui/core";import{Button as OS,Divider as US,MessageBox as QS,Typography as zS,WarningIcon as qS}from"@rango-dev/ui";import Nt from"react";import{Typography as mu}from"@rango-dev/ui";import Ua from"react";import{darkTheme as FS,styled as Ar}from"@rango-dev/ui";var pu=Ar("div",{width:"100%"}),Oa=Ar("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),cu=Ar("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${FS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uu=Ar("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function du(t){let{title:e,value:o,valueColor:n}=t;return Ua.createElement(cu,null,Ua.createElement(mu,{size:"medium",variant:"label",className:"_title"},e),Ua.createElement(mu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(du,"QuoteErrorsModalItem");function fu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:nn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:nn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:nn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:nn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Nt.createElement(re,{footer:Nt.createElement(OS,{type:"primary",size:"large",prefix:Nt.createElement(qS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:_()},Nt.createElement(QS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Nt.createElement(Oa,null,Nt.createElement(US,{size:"4"}),Nt.createElement(zS,{size:"small",variant:"title"},nn.t("Details")),Nt.createElement(Oa,null,l.map((p,u)=>Nt.createElement(du,{key:u,...p})))))}i(fu,"HighValueLossWarningModal");import{i18n as Qa}from"@lingui/core";function gu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Qa.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(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 HS,Typography as GS}from"@rango-dev/ui";import mo from"react";import{useNavigate as VS}from"react-router-dom";function Su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=VS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(hu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(GS,{variant:"label",size:"medium",color:"$neutral900"},Po.t("Change settings"))),container:_(),onClose:r},mo.createElement(HS,{type:"warning",title:s.type===3?Po.t("High slippage"):Po.t("Low slippage"),description:s.type===3?Po.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Po.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(yu,{size:18}),mo.createElement(yu,{size:32}),mo.createElement(hu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Po.t("Confirm anyway"))))}i(Su,"SlippageWarningModal");import{Button as XS,MessageBox as KS,WarningIcon as jS}from"@rango-dev/ui";import Nr from"react";function Cu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Nr.createElement(re,{footer:Nr.createElement(XS,{type:"primary",size:"large",prefix:Nr.createElement(jS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:_()},Nr.createElement(KS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cu,"UnknownPriceWarningModal");function rn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=gu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),Ye.createElement(Ye.Fragment,null,f&&Ye.createElement(on,{error:o,fetch:s}),!!d&&Ye.createElement(pu,null,Ye.createElement(ZS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ye.createElement(uu,{onClick:l},Ye.createElement(RS,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:Ye.createElement(JS,{size:"xxsmall",type:d.alertType,onClick:c},YS.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 WC from"bignumber.js";import qr from"react";import{i18n as fo}from"@lingui/core";import{Alert as yC,Divider as Do,FullExpandedQuote as SC,InfoIcon as CC,NumericTooltip as Ju,QuoteTag as TC,StepDetails as kC,TokenAmount as vC,Typography as $o}from"@rango-dev/ui";import ja from"bignumber.js";import F,{useRef as wC,useState as xC}from"react";import{styled as za}from"@rango-dev/ui";var qa=za("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Tu=za("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ku=za("div",{width:"100%",display:"flex"});import*as Wr from"@radix-ui/react-collapsible";import{Button as eC,css as an,darkTheme as be,Image as vu,styled as Ue,Typography as tC}from"@rango-dev/ui";var oC=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(eC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Eu=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 ${oC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),OB=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(tC,{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 rC,CloseIcon as iC,Divider as Pr,IconButton as aC,NumericTooltip as sC,QuoteCost as lC,Typography as ut}from"@rango-dev/ui";import R,{useState as Uu}from"react";import{css as nC,styled as Lr}from"@rango-dev/ui";var Br=Lr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Xa=Lr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),$u=Lr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Fu=Lr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Ou=nC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var pC=i(t=>t.fee.isZero()?null:R.createElement(Br,null,R.createElement(ut,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(ut,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Qu(t){let[e,o]=Uu(!1),[n,r]=Uu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=_(),d=kp(m);return R.createElement(R.Fragment,null,R.createElement(lC,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?vt.t("View more info"):void 0,tooltipContainer:f}),R.createElement(re,{container:f,open:e,header:R.createElement(Fu,null,R.createElement(ut,{variant:"title",size:"medium"},vt.t("Gas & Fee Explanation")),R.createElement(aC,{onClick:()=>o(!1),variant:"ghost"},R.createElement(iC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement($u,null,R.createElement(ut,{variant:"title",size:"small"},vt.t("Details")),R.createElement(Pr,{size:10}),Object.entries(d.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Xi(C);return R.createElement(Br,{key:T},R.createElement(ut,{variant:"label",size:"medium",color:"neutral600"},qi(g,vt.t)),R.createElement(sC,{content:C.amount,container:f},R.createElement(ut,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),R.createElement(Br,{className:"total_payable_fee"},R.createElement(ut,{variant:"label",size:"medium"},vt.t("Total Payable Fee")),R.createElement(ut,{variant:"label",size:"medium"},"$",M(l,4,4))),R.createElement(Xa,null),Object.keys(d.nonePayable).length&&R.createElement(mr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:R.createElement("div",{className:Ou()},R.createElement(ut,{size:"small",variant:"body",color:"neutral700"},n?vt.t("Hide non-payable fees"):vt.t("Show non-payable fees")),R.createElement(Pr,{size:4,direction:"horizontal"}),R.createElement(cr,{orientation:n?"up":"down"},R.createElement(rC,{size:12,color:"gray"}))),open:n},R.createElement(ut,{size:"small",variant:"title"},vt.t("Description")),R.createElement(Pr,{size:4}),R.createElement(ut,{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.`)),R.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 R.createElement(pC,{key:k,fee:y,label:T})}),R.createElement(Xa,null)))))}i(Qu,"QuoteCostDetails");import{i18n as Hu}from"@lingui/core";import{TokenAmount as Gu}from"@rango-dev/ui";import _r from"react";import{css as cC,styled as uC}from"@rango-dev/ui";var zu=uC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qu=cC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function sn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return _r.createElement(zu,null,_r.createElement(Gu,{direction:"horizontal",label:Hu.t("Swap input"),type:"input",tooltipContainer:_(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),_r.createElement("div",{className:qu()}),_r.createElement(Gu,{direction:"horizontal",tooltipContainer:_(),label:Hu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(sn,"QuoteSummary");import{i18n as Yu}from"@lingui/core";import{ChevronDownIcon as fC,ChevronRightIcon as gC,Divider as Ka,Image as hC,Tooltip as Ur,Typography as $r}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as mC,useState as ln}from"react";var Vu=480,Xu=768,Ku=1024,ju=1200,dC=i(()=>{let[t,e]=ln(!1),[o,n]=ln(!1),[r,a]=ln(!1),[s,l]=ln(!1),[p,u]=ln(!1),c=i(()=>{e(window.innerWidth<=Vu),n(window.innerWidth>Vu&&window.innerWidth<=Xu),a(window.innerWidth>Xu&&window.innerWidth<=Ku),l(window.innerWidth>Ku&&window.innerWidth<=ju),u(window.innerWidth>ju)},"handleResize");return mC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Dr=dC;var Fr=4,Or=6,pn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||_();return O.createElement(Ur,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Mu,{className:n,state:a},O.createElement(hC,{src:o,size:16})))},"ImageComponent");function Zu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||_(),u=r.length,c=Fp(r),{isTablet:m,isMobile:f}=Dr();return O.createElement(Wu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},O.createElement("div",{className:_o()},O.createElement($r,{variant:"body",size:"xsmall"},Yu.t("Via:")),O.createElement(Ka,{direction:"horizontal",size:4}),r.map((d,g)=>{let S=`item-${g}`,C=O.createElement(Ha,null,O.createElement(gC,{size:12,color:"black"}));return f||m?O.createElement(O.Fragment,{key:S},O.createElement(pn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):O.createElement(O.Fragment,{key:S},u<=Fr||u>Fr&&g<Fr-1?O.createElement(O.Fragment,null,O.createElement(pn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):g===Fr-1&&O.createElement(Ur,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&O.createElement(O.Fragment,{key:k},O.createElement(pn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&O.createElement(O.Fragment,null,C))}))},O.createElement(Va,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},O.createElement($r,{size:"xsmall",variant:"body"},"+",u-g))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement($r,{variant:"body",size:"xsmall"},Yu.t("Chains:")),O.createElement(Ka,{direction:"horizontal",size:4}),c.map((d,g)=>O.createElement(O.Fragment,{key:d.displayName},c.length<=Or||c.length>Or&&g<Or-1?O.createElement(Ur,{container:p,side:"bottom",content:d.displayName,sideOffset:4},O.createElement(pn,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===Or-1&&O.createElement(Ur,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},c.map((S,C)=>C>=g&&O.createElement(pn,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},O.createElement(Va,{className:"blockchainImage"},O.createElement($r,{size:"xsmall",variant:"body"},"+",c.length-g))))),O.createElement(Ka,{direction:"horizontal",size:32}))),O.createElement(Ha,{orientation:a?"up":"down"},O.createElement(fC,{size:12,color:"black"}))))}i(Zu,"QuoteTrigger");function Ya(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=xC(t.expanded),I=wC(null),N=M(o.value,6,6),x=M(n.value,6,6),w=n.usdValue?M(n.usdValue,4,4):"",b=et(o.usdValue,n.usdValue??null),E=M(b,2,2),P=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),lt=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ve=lt;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:Je(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:Je(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(yC,{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||lt)&&!se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(L)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(L)}}})),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Ho(D.estimatedTimeInSeconds),fee:M(Vi(D,g),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=f||_(),G=Up(t.quote.tags||[]),B=!!c,Z=Ho(Pn(e?.swaps)),ie=Jn(e?.swaps??[],g),J=M(ie,2,2),ne=ie.gte(new ja(fp));return m?F.createElement(SC,{selected:l,fee:J,time:Z,tooltipContainer:zo(),steps:A,tags:G,feeWarning:ne,percentageChange:E,warningLevel:P,outputPrice:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Eu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Iu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(Du,null,G.map((ge,Ce)=>{let D=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:D},F.createElement(TC,{label:ge.label,value:ge.value}),F.createElement(Do,{size:4,direction:"horizontal"}))})),F.createElement(Mr,null),!B&&F.createElement(Do,{size:4})):null,F.createElement("div",{id:"portal-root",className:Au()},F.createElement(Qu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&F.createElement(bu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement($o,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Nu()},F.createElement(Pu,null,F.createElement(CC,{size:12,color:"gray"})),F.createElement(_u,null,F.createElement(Ga,{size:"small",variant:"body"},`${N} ${A[0].from.token.displayName} = `),F.createElement(Ju,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(Ga,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(Ju,{content:n.usdValue,container:j},F.createElement(Do,{size:2,direction:"horizontal"}),F.createElement($o,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&F.createElement(vC,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[z-1].to.token.displayName,image:A[z-1].to.token.image},chain:{image:A[z-1].to.chain.image},percentageChange:E,warningLevel:P}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(sn,{from:A[0].from,to:A[z-1].to,percentageChange:E,warningLevel:P}),F.createElement(Do,{size:4}))),F.createElement(wu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},F.createElement(Zu,{type:s,quoteRef:I,selected:l,setExpanded:v,container:j,expanded:k,steps:A}),F.createElement(Lu,{open:k},F.createElement(Bu,null),F.createElement("div",{className:xu()},A.map((ge,Ce)=>{let D=`item-${Ce}`;return F.createElement(kC,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}i(Ya,"Quote");import{Divider as AC,Skeleton as NC}from"@rango-dev/ui";import Mt from"react";import{darkTheme as bC,styled as Qr}from"@rango-dev/ui";var Ru=Qr("div",{$$color:"$colors$neutral100",[`.${bC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),em=Qr("div",{paddingTop:"$2"}),tm=Qr("div",{paddingLeft:"$8"}),om=Qr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as mm,Divider as mt,Skeleton as Ze}from"@rango-dev/ui";import H from"react";import{css as EC,styled as Wt}from"@rango-dev/ui";var Za=Wt("div",{display:"flex"}),nm=Wt("div",{padding:"$10 $0 $20"}),rm=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),im=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),am=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),sm=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),lm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),pm=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),cm=Wt("div",{padding:"$15 $0 $15 $0"}),um=EC({display:"flex",justifyContent:"space-between",alignItems:"center"});function cn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(am,null,H.createElement(lm,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(mt,{size:8,direction:"horizontal"}),H.createElement(pm,null,H.createElement(Ze,{height:10,width:60,variant:"rounded"}),H.createElement(mt,{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(mt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(mt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"})),H.createElement(Mr,null),!r&&H.createElement(mt,{size:4})),H.createElement("div",{className:um()},H.createElement(Za,null,H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(mt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(mt,{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(mt,{direction:"horizontal",size:4}),H.createElement(Ze,{height:15,width:150,variant:"rounded"})),H.createElement(mt,{size:10}),H.createElement(Ze,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(mt,{size:4}),H.createElement(cm,null,n,H.createElement(sm,null),n),H.createElement(mt,{size:12})))}i(cn,"QuoteSummarySkeleton");import{ChainToken as ym,Divider as Ra,NextIcon as IC,Skeleton as zr}from"@rango-dev/ui";import Ee from"react";import{styled as un}from"@rango-dev/ui";var dm=un("div",{display:"flex",alignItems:"start"}),fm=un("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ja=un("div",{display:"flex",alignItems:"center",flexGrow:1}),gm=un("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),hm=un("div",{display:"flex",alignItems:"center"});function 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(IC,{color:"gray",size:16})),Ee.createElement(Ja,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:12,variant:"rounded"})))))}i(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(NC,{height:15,variant:"rounded"})),o&&Mt.createElement(tm,null,Mt.createElement(AC,{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 WC(e?.outputAmount):null,T=e?.outputAmount?er(e?.outputAmount,or(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?qr.createElement(qa,null,qr.createElement(mn,{tagHidden:l,type:o,expanded:s})):v?qr.createElement(qa,{onClick:()=>p?.(e)},qr.createElement(Ya,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as PC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as _C}from"react";import{useRef as MC,useState as LC}from"react";var BC=2e3;function Hr({request:t}){let[e,o]=LC(!1),n=MC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,BC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Hr,"useFetch");function Sm(){let{fetch:t,loading:e,cancelFetch:o}=Hr({request:async(n,r)=>await Ot().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Sm,"useFetchConfirmQuote");function Gr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=es(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Gr,"throwErrorIfResponseIsNotValid");function es(t){if(yp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Sp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=vp(t);if(o){let n=Rn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(es,"getQuoteError");function Cm(t,e,o){let n=!1;t&&(n=$p(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=wo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Ap(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(vo(e)),percentageChange:M(et(vo(t)??"",vo(e)??""),null,2)}:Ki(t,e)?r.quoteUpdate={type:0}:ji(t,e)?r.quoteUpdate={type:1}:Yi(t,e)&&(r.quoteUpdate={type:2}));let s=Np(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Cm,"generateWarnings");function Vr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Vr,"handleQuoteErrors");function ts(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Y(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=Sm();return _C(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,I=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),x={requestId:r?.requestId||"",selectedWallets:N,destination:I||void 0};try{return await S(x,!0).then(w=>{let{result:b}=w;Gr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let E={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(E);let P={slippage:g.toString(),disabledSwappersGroups:c},Q=Cm(r??void 0,E,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=PC(o.toString(),b,Ep(v),P,!A,{blockchains:m,tokens:f});return{quote:E,swap:z,error:null,warnings:Q}})}catch(w){return Vr(w)}},"fetch"),cancelFetch:C}}i(ts,"useConfirmSwap");var HC=FC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${km}`]:{width:"$48",height:"$48"}}),GC=rs({flexGrow:1,paddingRight:"$10"}),VC=rs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),XC=rs({display:"flex",justifyContent:"space-between",alignItems:"center"});function vm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Y(),s=qC(),[l,p]=dn(""),u=!n,[c,m]=dn(!1),[f,d]=dn(!1),{isActiveTab:g}=ae(),S=h().getDisabledLiquiditySources(),C=zC(S),{manager:y}=DC(),{fetch:T,loading:k,cancelFetch:v}=ts(),[I,N]=dn({swap:null,error:null,warnings:null}),[x,w]=dn(!1),b=i(async({selectedWallets:B,customDestination:Z})=>{let ie=await T?.({selectedWallets:B,customDestination:Z});return N(ie),ie},"onConfirmSwap"),E=i(async()=>{if(I.swap&&n)try{await y?.create("swap",{swapDetails:I.swap},{id:I.swap.requestId});let B=`../${q.swaps}/${I.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),P=i(async()=>{d(!0),await E(),d(!1)},"onConfirm"),Q=i(async()=>{I?.warnings?.quote&&!a?w(!0):await P()},"onStartConfirmSwap"),A=i(async()=>{N({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(B=>{N(B)}).catch(B=>console.error(B))},"onRefresh");Xr(()=>{!!C.current.length&&!S.length&&A(),C.current=S},[S.length]),Xr(()=>{u&&v()},[u]),Xr(()=>{u&&m(u)},[u]),Xr(()=>{u||T({selectedWallets:o,customDestination:r}).then(B=>N(B)).catch(B=>console.error(B))},[]),QC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=I.warnings?.quote??null,j=I.error,G=[];if(l&&G.push(Ie.createElement(Tm,{type:"error",variant:"alarm",title:l})),I.warnings?.quoteUpdate&&G.push(Ie.createElement(Tm,{variant:"alarm",type:"warning",title:I.warnings.quoteUpdate&&sr(I.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(rn,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await E()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:os.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(HC,null,Ie.createElement("div",{className:GC()},Ie.createElement($C,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!I.error||!g,onClick:Q},os.t("Start Swap"))),Ie.createElement(km,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},Ie.createElement(UC,{size:24})))},c&&Ie.createElement(tu,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),Ie.createElement(fe,null,Ie.createElement("div",{className:XC()},Ie.createElement(OC,{variant:"title",size:"small"},os.t("You get")),Ie.createElement("div",{className:VC()},Ie.createElement(yr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(ns,{size:"12"}),lc(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(ns,{size:10})),G.length>0?Ie.createElement(ns,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:I.error,loading:k,warning:I.warnings?.quote??null})))}i(vm,"ConfirmSwapPage");import{i18n as jr}from"@lingui/core";import{useManager as pT}from"@rango-dev/queue-manager-react";import{Divider as Bm,NotFound as cT,styled as uT}from"@rango-dev/ui";import Bt,{useState as mT}from"react";import{useNavigate as dT}from"react-router-dom";import{i18n as YC}from"@lingui/core";import{Divider as Im,GroupedVirtualizedList as ZC,Skeleton as JC,SwapListItem as Am,Typography as RC}from"@rango-dev/ui";import Qe,{useCallback as Nm,useEffect as eT,useRef as tT,useState as oT}from"react";function wm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(wm,"calculateGroupsSoFar");import{css as KC,darkTheme as jC,styled as fn}from"@rango-dev/ui";var is=KC(),xm=fn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),as=fn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${is}`]:{$$color:"$colors$neutral600",[`.${jC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ss=fn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bm=fn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Em=fn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var nT=10;function ls(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=oT([]),l=tT(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Nm(wm,[]),f=Nm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,nT),s(m(u,l.current)))},[e.length]);if(eT(()=>{r||f()},[r,f]),r){let d=[1,2];return Qe.createElement(Qe.Fragment,null,[d,d].map((S,C)=>Qe.createElement(as,{key:C},Qe.createElement(ss,null,Qe.createElement(JC,{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(ZC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>Qe.createElement(as,null,Qe.createElement(ss,null,Qe.createElement(RC,{variant:"label",size:"medium",className:is()},c[d]))),itemContent:(d,g)=>{let S=p[d];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return Qe.createElement(xm,{key:S.requestId},Qe.createElement(Am,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:_(),onlyShowTime:c[g]===YC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(S.inputAmount,6,6),realAmount:S.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(ls,"HistoryGroupedList");import{CloseIcon as iT,IconButton as aT,SearchIcon as sT,TextField as lT}from"@rango-dev/ui";import gn from"react";import{styled as rT}from"@rango-dev/ui";var Wm=rT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return gn.createElement(lT,{prefix:gn.createElement(Wm,null,gn.createElement(sT,{color:"black"})),suffix:!!s.length&&gn.createElement(aT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},gn.createElement(iT,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Lt,"SearchInput");import{i18n as Kr}from"@lingui/core";import Mm from"dayjs";var Lm=i(t=>{let e=new Map([["today",{title:Kr.t("Today"),swaps:[]}],["week",{title:Kr.t("This week"),swaps:[]}],["month",{title:Kr.t("This month"),swaps:[]}],["year",{title:Kr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Mm();t.forEach(p=>{let u=Number(p.creationTime),c=Mm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var fT=uT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),gT=i((t,e)=>t?.length?t.filter(o=>St(o.fromBlockchain,e)||St(o.toBlockchain,e)||St(o.toSymbol,e)||St(o.fromSymbol,e)).length:!1,"isStepContainsText");function Pm(){let t=dT(),{manager:e,state:o}=pT(),n=nt(e).map(({swap:c})=>c),[r,a]=mT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>St(c.inputAmount,r)||St(c.status,r)||gT(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(fT,null,u&&Bt.createElement(Em,null,Bt.createElement(Bm,{size:32}),Bt.createElement(cT,{title:jr.t("No results found"),description:r?jr.t("Try using different keywords"):""})),!u&&Bt.createElement(ls,{list:p,onSwapClick:t,groupBy:Lm,isLoading:s}))))}i(Pm,"HistoryPage");import{i18n as PT}from"@lingui/core";import{Button as _T,Divider as Jm,styled as DT,WarningIcon as $T}from"@rango-dev/ui";import FT from"bignumber.js";import He,{useEffect as Rm,useState as ed}from"react";import{useNavigate as OT}from"react-router-dom";import{i18n as kT}from"@lingui/core";import{Header as vT}from"@rango-dev/ui";import Vt,{useEffect as wT,useState as xT}from"react";import{i18n as yT}from"@lingui/core";import{Divider as cs,FullExpandedQuote as ST,Typography as CT}from"@rango-dev/ui";import ye from"react";import{styled as ps}from"@rango-dev/ui";var _m=ps("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Dm=ps("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),$m=ps("div",{width:"146px"});import{i18n as hn}from"@lingui/core";import{Select as hT}from"@rango-dev/ui";import Fm from"react";function Yr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),n=[{value:"SMART",label:hn.t("Smart Routing")},{value:"FEE",label:hn.t("Lowest Fee")},{value:"SPEED",label:hn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:hn.t("Maximum Return")},{value:"PRICE",label:hn.t("Maximum Output")}];return Fm.createElement($m,null,Fm.createElement(hT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Yr,"SelectStrategy");var Om=3;function yn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=Y(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||_(),k=!!u&&u.results.length,v=C??S,I=i(w=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...w};return wo(b,{fromToken:m,toToken:f,userSlippage:v,findToken:y})},"getQuoteWarning"),N=g?.type===0||g?.type===1,x=u?.results?rr(d,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(Dm,null,ye.createElement(CT,{size:"xmedium",variant:"title"},yT.t("Sort by")),ye.createElement(Yr,{container:T})),ye.createElement(cs,{size:"10"})),e&&Array.from({length:Om},(w,b)=>ye.createElement(ye.Fragment,{key:b},s?ye.createElement(ST,{loading:!0}):ye.createElement(mn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Om-1&&ye.createElement(cs,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?x.map((w,b)=>{let E=I(w),P=es(w.swaps),Q=x.length-1===b;return ye.createElement(ye.Fragment,{key:w.requestId},ye.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:P?.options||null,warning:E,fullExpandedMode:s,onClick:A=>{P||c("warning",E),c("error",P?.options||null),o(A)},type:"list-item"}),!Q&&ye.createElement(cs,{size:16}))}):N&&ye.createElement(_m,null,ye.createElement(on,{size:s?"large":"small",error:g,fetch:n}))))}i(yn,"Quotes");import{darkTheme as TT,styled as Um}from"@rango-dev/ui";var Qm=Um("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${TT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),zm=Um("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var bT=100;function us(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=xT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=zo();return wT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},bT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Qm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Tr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(vT,{title:kT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Yr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(zm,null,Vt.createElement(yn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:zo(),onClickOnQuote:n,fullExpandedMode:c})))}i(us,"ExpandedQuotes");import{i18n as jm}from"@lingui/core";import{SwapInput as Ym}from"@rango-dev/ui";import Sn from"react";import{ReverseIcon as AT}from"@rango-dev/ui";import ds from"react";import{keyframes as ET,styled as qm}from"@rango-dev/ui";var ms=450,IT=ET({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Hm=qm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gm=qm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${IT} ${ms}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function fs(){let t=Y.use.switchFromAndTo();return ds.createElement(Hm,null,ds.createElement(Gm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ms),t()}},ds.createElement(AT,{size:12})))}i(fs,"SwitchFromAndToButton");import{styled as Vm}from"@rango-dev/ui";var Xm=Vm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Km=Vm("div",{position:"relative"});function gs(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=Y(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Un(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",v=!!s&&Fl(S,s.name),I=!Gi(g,c,m),N=!Gi(g,c,d),x=!m||!d||!d.gt(0)?null:et(m.toString(),d.toString());return Sn.createElement(Xm,null,Sn.createElement(Km,null,Sn.createElement(Ym,{label:jm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:I?void 0:M(m,4,4),realUsdValue:I?void 0:m?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:_(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),Sn.createElement(fs,null)),Sn.createElement(Ym,{sharpBottomStyle:!r&&(!!g||e),label:jm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(et(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:_()}))}i(gs,"Inputs");import{useCallback as NT,useEffect as WT,useRef as MT,useState as LT}from"react";function Zm(){let{fetch:t,loading:e,cancelFetch:o}=Hr({request:async(n,r)=>await Ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Zm,"useFetchAllQuotes");var BT=600;function Zr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Zm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=Y(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:I,affiliateWallets:N,fetchStatus:x}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),E=h().excludeLiquiditySources(),{findToken:P}=h(),[Q,A]=LT(!0),z=MT(u),j=k??T,B=!l||!p||Rt(l,p)||!Go(u),Z=i(ne=>{A(ne)},"resetState"),ie=i(ne=>{let{fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:lt,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:lt,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:P});y("warning",V)}).catch(ve=>{let{error:de}=Vr(ve);(de?.type===0||de?.type===1)&&d(),de?.type!==2&&(y("error",de),A(!1))})}},"fetch"),J=NT(xl(ne=>{ie(ne)},BT),[B]);return WT(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(m||g||S)&&d();return}if(!Go(u)||c?.eq(0)){Z(!1),o();return}d(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:N}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,w?.length,n,b.length,j,I,v,JSON.stringify(N)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:N}),loading:Q}}i(Zr,"useSwapInput");var UT=DT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),QT=300;function td(){let t=OT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=Y(),[d,g]=ed(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Dr(),{fetch:y,loading:T}=Zr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:I}=te(),{isActiveTab:N}=ae(),[x,w]=ed(!1),E=Cp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),P=Gl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new FT(n).gt(0)&&!Pp(e,o),A=Q&&v==="success"&&T,G=(!P||P&&p?.results.length)&&(l||s);Rm(()=>{c(),f("refetchQuote",!0)},[]),Rm(()=>{g(Q)},[Q]);let B=(r||s)&&!x?y:void 0,Z=i(J=>{P&&d?(g(!1),setTimeout(()=>{t(J)},QT)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(w(!1),u(J))},"onClickOnQuote");return He.createElement(UT,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($T,null),fullWidth:!0,onClick:()=>{E.action==="connect-wallet"?Z(q.wallets):E.action==="confirm-warning"?w(!0):Z(q.confirmSwap)}},E.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||PT.t("Swap"),suffix:He.createElement(ao,{hidden:P?["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:P,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),He.createElement(Jm,{size:"2"}),P?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)),P?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 zT,Divider as qT,List as HT,ListItemButton as GT,Radio as VT,RadioRoot as XT,Typography as KT}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=ot(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:xt.createElement(KT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:xt.createElement(VT,{value:s}),start:xt.createElement(p,null)}});return xt.createElement(ce,{header:{title:od.t("Language")}},xt.createElement(fe,null,xt.createElement(zT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),xt.createElement(qT,{size:"8"}),xt.createElement(XT,{value:t},xt.createElement(HT,{type:xt.createElement(GT,{title:od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(nd,"LanguagePage");import{i18n as Pt}from"@lingui/core";import{Button as RT,Checkbox as ek,Image as tk,ListItemButton as ok,NotFound as nk,Typography as rk}from"@rango-dev/ui";import ze,{useState as ik}from"react";import{Checkbox as ZT,Skeleton as id}from"@rango-dev/ui";import Tn from"react";import{styled as hs}from"@rango-dev/ui";var Cn=hs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ys=hs("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ss=hs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as jT,styled as YT}from"@rango-dev/ui";var rd=YT(jT,{height:61});var JT=30;function Cs(){return Tn.createElement(Cn,null,Array.from(Array(JT),(t,e)=>Tn.createElement(rd,{hasDivider:!0,key:e,start:Tn.createElement(id,{variant:"circular",width:35,height:35}),title:Tn.createElement(id,{variant:"text",size:"large",width:90}),end:Tn.createElement(ZT,{checked:!1})})))}i(Cs,"LoadingLiquiditySourceList");function Ts({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=ik(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Gn(o,n),u={Exchanges:Pt.t("Exchanges"),Bridges:Pt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:ze.createElement(tk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:ze.createElement(ek,{checked:T,disabled:l}),title:ze.createElement(rk,{variant:"title",size:"xmedium"},Pt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>St(y.groupTitle,r))),ze.createElement(ce,{header:{title:Pt.t(t),suffix:ze.createElement(ys,null,ze.createElement(RT,{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(nk,{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(ok,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ts,"LiquiditySourcePage");import{i18n as ak}from"@lingui/core";import Jr from"react";import{useNavigate as sk}from"react-router-dom";function ad(){let t=sk(),e=ot(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=Zr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Jr.createElement(ce,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:ak.t("Routes"),suffix:Jr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Jr.createElement(fe,null,Jr.createElement(yn,{fetch:l,loading:p,onClickOnQuote:u})))}i(ad,"RoutesPage");import{i18n as fd}from"@lingui/core";import{Divider as gd,getCategoriesCount as hk,SelectableCategoryList as yk}from"@rango-dev/ui";import _t,{useState as hd}from"react";import{i18n as ks}from"@lingui/core";import{Divider as md,Image as uk,ListItemButton as mk,NotFound as dk,Typography as dd}from"@rango-dev/ui";import it,{useEffect as fk,useState as gk}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 lk,styled as ld}from"@rango-dev/ui";var pd=ld("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Rr=ld(Zo,{padding:0,margin:0,listStyle:"none",[`& ${lk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as pk,Skeleton as cd}from"@rango-dev/ui";import ei from"react";var ck=20;function ud(){return ei.createElement(Rr,null,Array.from(Array(ck),t=>ei.createElement(pk,{key:t,hasDivider:!0,start:ei.createElement(cd,{variant:"circular",width:35,height:35}),title:ei.createElement(cd,{variant:"text",size:"large",width:90})})))}i(ud,"LoadingBlockchainList");function vs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=gk(e),{fetchStatus:l}=h();fk(()=>{s([...sd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?it.createElement(it.Fragment,null,it.createElement(md,{size:32}),it.createElement(dk,{title:ks.t("No results found"),description:ks.t("Try using different keywords")})):it.createElement(Rr,{as:"ul",key:`${r}-${o}`},a.map(u=>it.createElement(mk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:it.createElement(uk,{src:u.logo,size:30}),title:it.createElement(dd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return it.createElement(pd,null,it.createElement(dd,{variant:"label",size:"large"},ks.t("Select Blockchain")),it.createElement(md,{size:4}),l==="loading"&&it.createElement(ud,null),l==="success"&&p())}i(vs,"BlockchainList");function ws(t){let{type:e}=t,o=ot(),[n,r]=hd(""),[a,s]=hd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=hk(c)!==1;return _t.createElement(ce,{header:{title:fd.t("Select Blockchain")}},_t.createElement(fe,{view:!0},f&&_t.createElement(_t.Fragment,null,_t.createElement(yk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),_t.createElement(gd,{size:24})),_t.createElement(Lt,{value:n,autoFocus:!0,placeholder:fd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),_t.createElement(gd,{size:16}),_t.createElement(vs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ws,"SelectBlockchainPage");import{i18n as ii}from"@lingui/core";import{Divider as $d}from"@rango-dev/ui";import ho,{useState as Pk}from"react";import{useNavigate as _k}from"react-router-dom";import{i18n as Es}from"@lingui/core";import{BlockchainsChip as ti,Divider as Td,Image as kd,Skeleton as vk,Tooltip as wk,Typography as Is}from"@rango-dev/ui";import Le from"react";import{useEffect as Tk}from"react";var yd=["ETH","COSMOS","OSMOSIS"];function xs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Sk),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(Ck(s)),r=n.splice(a)}return{list:n,more:r}}i(xs,"prepare");function Sk(t,e){let o=yd,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(Sk,"sortByMostUsedBlockchains");function Ck(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Ck,"generateSortByPreferredBlockchainsFor");function Sd(t,e){return!!e.list.find(o=>o.name===t)}i(Sd,"isInVisibleList");function bs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Tk(()=>{if(e?.selected){let a=xs(t,o,e);Sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=xs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(bs,"usePrepareBlockchainList");import{styled as kk}from"@rango-dev/ui";var Cd=kk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var xk=12;function As(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=bs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Le.createElement(Le.Fragment,null,Le.createElement(Td,{size:12}),Le.createElement(Is,{variant:"label",size:"large"},Es.t("Select Blockchain")),Le.createElement(Td,{size:12}),Le.createElement(Cd,null,l==="loading"&&Array.from(Array(xk),d=>Le.createElement(vk,{key:d,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(ti,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(Is,{variant:"body",size:"xsmall",color:"secondary500"},Es.t("All"))),s.list.map(d=>Le.createElement(wk,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:_()},Le.createElement(ti,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Le.createElement(kd,{src:d.logo,size:30})))),m?Le.createElement(ti,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(kd,{src:s.more[0].logo,size:30})):null,f?Le.createElement(ti,{onClick:a,key:"more-blockchains"},Le.createElement(Is,{variant:"body",size:"xsmall",color:"secondary500"},Es._("More +{count}",{count:s.more.length}))):null)))}i(As,"BlockchainsSection");import{i18n as Fs}from"@lingui/core";import{darkTheme as Ld,Divider as Oo,ExternalLinkIcon as Ik,Image as Ak,ListItemButton as Nk,NotFound as Wk,PinIcon as Mk,Skeleton as Bd,Typography as ri,VirtualizedList as Lk}from"@rango-dev/ui";import K,{useEffect as Pd,useState as _d}from"react";import{Divider as Wd,ListItem as Ek,Skeleton as kn}from"@rango-dev/ui";import dt from"react";import{css as Fo,darkTheme as vd,ImageContainer as bk,styled as at,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=at("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),_s=at("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),oi=at("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=at("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),$s=at(wd,{}),bd=at("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ps}`]:{$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ni=at("div",{display:"flex",alignItems:"end",flexDirection:"column"}),wU=at("div",{display:"flex",alignItems:"center"}),Ed=at("div",{position:"relative",[`& ${bk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Id=at("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ad=at(wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Nd=at("a",{"& svg:hover":{color:"$colors$info"}});function Md(t){return dt.createElement(oi,null,Array.from(Array(t.size),e=>dt.createElement(Ek,{key:e,hasDivider:!0,start:dt.createElement(kn,{variant:"circular",width:35,height:35}),end:dt.createElement(ni,null,dt.createElement(kn,{variant:"text",size:"large",width:70}),dt.createElement(Wd,{size:4}),dt.createElement(kn,{variant:"text",size:"medium",width:50})),title:dt.createElement("div",null,dt.createElement(kn,{variant:"text",size:"large",width:90}),dt.createElement(Wd,{size:4}),dt.createElement(kn,{variant:"text",size:"medium",width:90}))})))}i(Md,"LoadingTokenList");var Os=20,Bk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:Ws()},o?K.createElement("div",{className:Ns()},o):K.createElement(_s,{className:Ms()},K.createElement(ri,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Oo,{direction:"horizontal",size:4}),K.createElement(Ds,{css:a},K.createElement($s,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Ls()} ${!o&&Bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Oo,{size:4,direction:"horizontal"}),K.createElement(Nd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(Ik,{size:12}))))},"renderDesc");function Dd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=_d(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=_d(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Os))},"loadNextPage");Pd(()=>{c(e.length>a.length)},[a.length]),Pd(()=>{s(e.slice(0,Os))},[e.length,r]);let S=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Oo,{size:32}),K.createElement(Wk,{title:Fs.t("No results found"),description:Fs.t("Try using different keywords")})):K.createElement(Lk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Un(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),I=aa(v.color,"main"),N={$$color:I.main150,[`.${Ld} &`]:{$$color:I.main750},backgroundColor:"$$color"},x={$$color:I.main750,[`.${Ld} &`]:{$$color:I.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(Nk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(Ed,null,K.createElement(Ak,{src:y.image,size:30}),d(y,t.type)&&K.createElement(Id,null,K.createElement(Mk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(_s,null,K.createElement(ri,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Oo,{direction:"horizontal",size:4}),K.createElement(Ds,{css:N},K.createElement($s,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?Bk({address:k,token:a[C],customCssForTag:N,customCssForTagTitle:x,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(ni,null,K.createElement(Bd,{variant:"text",size:"large",width:70}),K.createElement(Oo,{size:4}),K.createElement(Bd,{variant:"text",size:"medium",width:50})):T&&K.createElement(bd,null,K.createElement(Ad,{variant:"title",size:"small"},T.amount),K.createElement("div",null),T.usdValue&&K.createElement(ri,{variant:"body",className:Ps(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(xd,null,K.createElement(ri,{variant:"label",size:"large"},Fs.t("Select Token")),K.createElement(Oo,{size:4}),l==="loading"&&K.createElement(Md,{size:Os}),l==="success"&&K.createElement(oi,{as:"ul"},S()))}i(Dd,"TokenList");function Us(t){let{type:e}=t,o=_k(),n=ot(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[m,f]=Pk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:ii.t("Source"),destination:ii.t("Destination")};return ho.createElement(ce,{header:{title:ii.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(As,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:v=>{y(v)}}),ho.createElement($d,{size:24}),ho.createElement(Lt,{value:m,autoFocus:!0,placeholder:ii.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:v=>f(v.target.value)}),ho.createElement($d,{size:16}),ho.createElement(Dd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let I=S.find(N=>v.blockchain===N.name);I&&y(I),n()}})))}i(Us,"SelectSwapItemsPage");import{i18n as Hs}from"@lingui/core";import{Alert as av,Button as sv,styled as lv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as pv,useSearchParams as cv}from"react-router-dom";import{i18n as qd}from"@lingui/core";import{Divider as Ok,InfoIcon as Uk,TextField as Qk,Tooltip as zk,Typography as Hd}from"@rango-dev/ui";import ft from"react";import{Chip as Dk,styled as vn,TextField as $k}from"@rango-dev/ui";var Fd=vn("div",{paddingTop:"$5",padding:"$10 $5"}),Od=vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${$k}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ud=vn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ai=vn("div",{maxWidth:"280px",padding:"$10"}),Qd=vn(Dk,{width:"61px",flexShrink:0});import{i18n as Qs}from"@lingui/core";import{Typography as Fk}from"@rango-dev/ui";import wn from"react";function zd(){return wn.createElement(ai,null,wn.createElement(Fk,{variant:"label",size:"medium",color:"neutral700"},Qs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),wn.createElement("br",null),wn.createElement("br",null),wn.createElement("b",null,Qs.t("Warning")),":",Qs.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(zd,"SlippageTooltipContent");function zs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ft.createElement(Fd,null,ft.createElement(Ud,null,ft.createElement(Hd,{variant:"title",size:"xmedium"},qd.t("Slippage tolerance per swap")),ft.createElement(Ok,{direction:"horizontal",size:4}),ft.createElement(zk,{container:_(),side:"top",sideOffset:4,content:ft.createElement(zd,null)},ft.createElement(Uk,{color:"gray"}))),ft.createElement(Od,null,ep.map((r,a)=>{let s=`slippage-${a}`;return ft.createElement(Qd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ft.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&&ft.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 qk,ChevronRightIcon as qs,DarkModeIcon as Vd,Divider as si,ExchangeIcon as Hk,InfinityIcon as Gk,InfoIcon as Vk,LanguageIcon as Xk,LightModeIcon as Xd,List as Kk,ListItem as jk,ListItemButton as Yk,Skeleton as Zk,styled as Jk,Switch as Rk,Tabs as ev,Tooltip as tv,Typography as st}from"@rango-dev/ui";import U from"react";import{useNavigate as ov}from"react-router-dom";var nv=Jk("div",{width:"202px",height:"$40"}),rv=[{id:"light",icon:U.createElement(Xd,{color:"black",size:24}),tooltip:U.createElement(st,{size:"xsmall",variant:"body"},bt.t("Light"))},{id:"dark",icon:U.createElement(Vd,{color:"black",size:24}),tooltip:U.createElement(st,{size:"xsmall",variant:"body"},bt.t("Dark"))},{id:"auto",icon:U.createElement(Gd,{color:"black",size:24}),tooltip:U.createElement(st,{size:"xsmall",variant:"body"},bt.t("Auto"))}],iv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Gd,{...e});case"dark":return U.createElement(Vd,{...e});default:return U.createElement(Xd,{...e})}},"getThemeIcon");function Kd(){let t=ov(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(z=>z.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Re("theme",c),f=Re("liquiditySource",c),d=Re("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=Gn(p,u),y=C.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),T=y.length,k=y.filter(z=>z.selected).length,v=C.filter(z=>z.type==="DEX"),I=v.length,N=v.filter(z=>z.selected).length,x=i((z,j)=>{switch(l){case"loading":return U.createElement(Zk,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(st,{variant:"body",size:"medium",color:"$error500"},bt.t("Loading failed"));default:return U.createElement(st,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:U.createElement(st,{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(qk,{color:"gray",size:16})},b={id:"exchange-item",title:U.createElement(st,{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(Hk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},E={id:"language-item",title:U.createElement(st,{variant:"title",size:"xmedium"},bt.t("Language")),start:U.createElement(Xk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(st,{variant:"body",size:"medium"},s),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),onClick:()=>t(q.languages)},P={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(st,{variant:"title",size:"xmedium"},bt.t("Infinite approval")),U.createElement(si,{direction:"horizontal",size:4}),U.createElement(tv,{side:"top",sideOffset:4,container:_(),content:U.createElement(ai,null,U.createElement(st,{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(Vk,{color:"gray"}))),start:U.createElement(Gk,{color:"gray",size:16}),end:U.createElement(Rk,{checked:g}),onClick:S},Q={id:"theme-item",type:U.createElement(jk,null),title:U.createElement(st,{variant:"title",size:"xmedium"},bt.t("Theme")),end:U.createElement(nv,null,U.createElement(ev,{container:_(),items:rv,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:iv(n)},A=f?[]:[w,b];return d||A.push(E),A.push(P),!e?.singleTheme&&!m&&A.push(Q),U.createElement(Kk,{type:U.createElement(Yk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Kd,"SettingsLists");var uv=lv("div",{paddingLeft:"$8"});function jd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=cv(),r=pv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:Hs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(av,{type:"info",variant:"alarm",title:Hs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:yo.createElement(uv,null,yo.createElement(sv,{type:"secondary",size:"small",onClick:a},Hs.t("Reset")))}),yo.createElement(zs,null),yo.createElement(Kd,null)))}i(jd,"SettingsPage");import{i18n as Zv}from"@lingui/core";import{cancelSwap as Jv}from"@rango-dev/queue-manager-rango-preset";import{useManager as Rv}from"@rango-dev/queue-manager-react";import{Alert as ew}from"@rango-dev/ui";import ll from"react";import{useParams as tw}from"react-router-dom";import{i18n as gt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Lv,getCurrentStep as Bv,getRelatedWalletOrNull as Pv}from"@rango-dev/queue-manager-rango-preset";import{Button as If,CopyIcon as _v,Divider as Dv,IconButton as $v,QuoteCost as Fv,RangoExplorerIcon as Ov,StepDetails as Uv,Tooltip as Qv,Typography as Co,useCopyToClipboard as zv}from"@rango-dev/ui";import{useWallets as qv}from"@rango-dev/wallets-react";import Af from"bignumber.js";import{PendingSwapNetworkStatus as hi}from"rango-types";import ee,{useEffect as Nf,useRef as Hv,useState as Wf}from"react";import{useNavigate as Gv}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var mv=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Yd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${mv[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Yd,"timeSince");function Zd(t){return t.finishTime?Yd(parseInt(t.finishTime)):Yd(parseInt(t.creationTime))}i(Zd,"getSwapDate");import{PendingSwapNetworkStatus as ci}from"rango-types";import ui from"react";import{i18n as li}from"@lingui/core";import{Button as Jd,Divider as Gs,MessageBox as dv}from"@rango-dev/ui";import jt from"react";var Rd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Gs,{size:20}),jt.createElement(dv,{type:"error",title:li.t("Cancel Swap"),description:li.t("Are you sure you want to cancel this swap?")}),jt.createElement(Gs,{size:32}),jt.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},li.t("Yes, Cancel it")),jt.createElement(Gs,{size:12}),jt.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},li.t("No, Continue"))),"CancelContent");import{i18n as pi}from"@lingui/core";import{Button as ef,Divider as Vs,MessageBox as fv,Typography as gv}from"@rango-dev/ui";import Dt from"react";var tf=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(Vs,{size:20}),Dt.createElement(fv,{type:"error",title:pi.t("Delete Transaction"),description:pi.t("Are you sure you want to delete this swap?")}),Dt.createElement(Vs,{size:32}),Dt.createElement(ef,{variant:"contained",type:"primary",size:"large",onClick:t},pi.t("Yes, Delete it")),Dt.createElement(Vs,{size:12}),Dt.createElement(ef,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(gv,{variant:"title",size:"medium",color:"primary"},pi.t("No, Cancel")))),"DeleteContent");import{i18n as Xs}from"@lingui/core";import{PendingSwapNetworkStatus as Ks}from"rango-types";var js={[Ks.WaitingForNetworkChange]:{type:"loading",title:Xs.t("Change Network")},[Ks.WaitingForConnectingWallet]:{type:"warning",title:Xs.t("Connect Wallet")},[Ks.NetworkChanged]:{type:"success",title:Xs.t("Network Changed")}};import{debug as Ys}from"@rango-dev/logging-core";import{MessageBox as hv,Wallet as yv}from"@rango-dev/ui";import{useWallets as Sv}from"@rango-dev/wallets-react";import So,{useState as rf}from"react";import{styled as of}from"@rango-dev/ui";var nf=of("div",{display:"flex",justifyContent:"center"}),uz=of("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var af=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Sv(),[c,m]=rf(null),[f,d]=rf(null),g=n?.walletType,S=g?Bi(u(g)):null,C=g?p(g):null,y=a&&!!g&&!!S&&!!C,T=i(()=>{c&&m({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{f&&d({...f,open:!1})},"handleCloseDerivationPathModal"),v=i(N=>{C?.needsDerivationPath&&C?.singleNamespace&&N[0]&&g?d({open:!0,providerType:g,providerImage:C.img,namespace:N[0]}):l(c?.providerType,void 0,N.map(x=>({namespace:x}))).catch(x=>Ys(x)),T()},"handleConfirmNamespaces"),I=i(N=>{N&&f?.namespace&&l(f?.providerType,void 0,[{namespace:f.namespace,derivationPath:N}]).catch(x=>Ys(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(hv,{type:e,title:o,description:r}),y&&So.createElement(nf,null,So.createElement(yv,{container:_(),title:C.name,image:C.img,type:g,state:S,link:C.installLink,disabled:s,onClick:async()=>{C.namespaces?m({open:!0,providerType:g,providerImage:C.img,availableNamespaces:C.namespaces,singleNamespace:C.singleNamespace}):l(g).catch(N=>Ys(N))}})),So.createElement(po,{open:!!c?.open,onClose:T,onConfirm:v,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!f?.open,selectedNamespace:f?.namespace,type:f?.providerType,image:f?.providerImage,onClose:k,onConfirm:I}))},"WalletStateContent");function Zs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ci.WaitingForNetworkChange||e===ci.WaitingForConnectingWallet||e===ci.NetworkChanged;return ui.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ui.createElement(af,{type:js[e].type,title:js[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ci.WaitingForNetworkChange}),e==="delete"&&ui.createElement(tf,{onClose:o,onDelete:n}),e==="cancel"&&ui.createElement(Rd,{onClose:o,onCancel:r}))}i(Zs,"SwapDetailsModal");import{i18n as xn}from"@lingui/core";import{Button as Js,Divider as mi,MessageBox as sf,TokenAmount as Cv,Typography as Rs}from"@rango-dev/ui";import Pe from"react";import{useNavigate as Tv}from"react-router-dom";function el(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=Tv();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(sf,{type:"success",title:xn.t("Swap Successful")},Pe.createElement(Cv,{direction:"vertical",tooltipContainer:_(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(mi,{size:12}),Pe.createElement(Rs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Pe.createElement(sf,{type:"error",title:xn.t("Transaction Failed"),description:m}),Pe.createElement(mi,{size:32}),n==="success"&&Pe.createElement(Js,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Pe.createElement(Rs,{variant:"title",size:"medium",color:"neutral100"},xn.t("Done"))),Pe.createElement(mi,{size:12}),f&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Js,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},xn.t("Diagnosis")),Pe.createElement(mi,{size:12})),Pe.createElement(Js,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(Rs,{variant:"title",size:"medium",color:"primary"},xn.t("See Details"))))}i(el,"SwapDetailsCompleteModal");import Mv from"react";import{i18n as Iv}from"@lingui/core";import{Alert as wf,IconButton as Av,LinkIcon as Nv}from"@rango-dev/ui";import Yt,{Fragment as Wv}from"react";import{Alert as wv,ChevronDownIcon as xv,IconButton as bv}from"@rango-dev/ui";import Qo,{useState as Ev}from"react";import{css as bn,darkTheme as kv,styled as $t,Typography as vv}from"@rango-dev/ui";var lf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),di=$t("div",{width:"100%"}),pf=$t(Zo,{padding:"$0 $20 $20 $20"}),Kz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),cf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),jz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Uo=bn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${kv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),uf=bn({padding:"$5 0"}),fi=bn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),mf=bn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),df=bn({width:"100%",padding:"0 $20 $10"}),ff=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),gf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),gi=$t(vv,{wordBreak:"break-word"});import{styled as tl}from"@rango-dev/ui";var hf=tl("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=tl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Sf=tl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Cf(t){let{message:e}=t,[o,n]=Ev(!1);return Qo.createElement(wv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qo.createElement(bv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Qo.createElement(yf,{rotated:o},Qo.createElement(xv,{size:12,color:"gray"}))),footer:Qo.createElement(Sf,{open:o},Qo.createElement(gi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Cf,"FailedAlert");import{i18n as Tf}from"@lingui/core";import{Alert as ol,Button as kf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as nl}from"rango-types";import En from"react";function vf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Tf.t("Change"))}):r===nl.WaitingForConnectingWallet?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForConnectingWallet)}},Tf.t("Connect"))}):En.createElement(ol,{type:"warning",title:n.shortMessage})}i(vf,"WarningAlert");function rl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=jo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(hf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,S=f===d.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Yt.createElement(Wv,{key:g},Yt.createElement(wf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Iv.t("View transaction"),action:m.url&&Yt.createElement(Av,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(Nv,{size:12}))}))}),c&&Yt.createElement(wf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(vf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Cf,{message:r}))}i(rl,"SwapDetailsAlerts");var xf=2e3;var bf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Je(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Je(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:Je(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Je(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Mv.createElement(rl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Ef(t){if(jo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(Ef,"getStepState");function il(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=qv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=Y.use.retry(),f=ae.use.isActiveTab(),d=Gv(),[g,S]=zv(xf),C=Hv(null),[y,T]=Wf(null),[k,v]=Wf(null),I=i(()=>{r(),T(null)},"onCancel"),N=xe.use.getNotifications(),x=xe.use.removeNotification(),w=N(),b=Bv(e),E=b?.networkStatus;Nf(()=>{w.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Nf(()=>{B?T(hi.WaitingForNetworkChange):E===hi.WaitingForConnectingWallet||E===hi.NetworkChanged?T(E):T(null)},[E]);let P=Mp(e),Q=b?Lv(e,b):null,A=b?Pv(e,b):null,z=Zd(e),j=Lp(e),G=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=E===hi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Wp(e,b),J=bf({swap:e,switchNetwork:Z,showNetworkModal:E,setNetworkModal:T,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Ce]=[e.steps[0],e.steps[ne-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,L=e.steps.reduce((de,W)=>de+parseFloat(W.feeInUsd||""),0),me=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,se=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),lt=D?new Af(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new Af(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ve=et(_e,se),Xe=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?gt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:J[ne-1].to.token.displayName,conciseAddress:Qn(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):ee.createElement(gf,null,ee.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xe?"":gt.t("Transaction was not sent."),P?`${gt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),Xe&&ee.createElement(gi,{align:"center",variant:"body",size:"medium",color:"neutral700"},ee.createElement("b",null,"Reason:")," ",Xe));return ee.createElement(ce,{header:{title:gt.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&ee.createElement(Io,null,ee.createElement(If,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},ee.createElement(Co,{size:"medium",variant:"label",color:"error"},gt.t("Delete"))))},footer:j&&!k&&ee.createElement(If,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=nr(e,p,c);m(de),setTimeout(()=>{d("../../")},0)}},gt.t("Try again"))},ee.createElement(fe,{compact:!0,view:!0},ee.createElement(di,null,ee.createElement("div",{className:Uo()},ee.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${gt.t("Request ID")}:`),ee.createElement("div",{className:fi()},ee.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),ee.createElement($v,{variant:"ghost",onClick:S.bind(null,o||"")},ee.createElement(_v,{size:16,color:"gray"})),ee.createElement(ff,{target:"_blank",href:`${hl}/swap/${o}`},ee.createElement(Qv,{container:_(),content:gt.t("View on Rango Explorer"),side:"bottom"},ee.createElement(Ov,{size:20}))))),ee.createElement("div",{className:Uo()},ee.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?gt.t("Finished at"):gt.t("Created at")),ee.createElement(Co,{variant:"label",size:"small",color:"neutral700"},z))),ee.createElement("div",{className:mf()},ee.createElement(Fv,{fee:M(String(L),2,2),time:Ho(Pn(e.steps)),steps:ne}),ee.createElement(sn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:_e,realUsdValue:De,realValue:e.inputAmount},token:{displayName:J[0].from.token.displayName,image:J[0].from.token.image},chain:{image:J[0].from.chain.image,displayName:J[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:se,realUsdValue:lt,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)})),ee.createElement("div",{className:df()},ee.createElement(Co,{variant:"title",size:"small"},gt.t("Swaps steps"))),ee.createElement(Dv,{size:8}),ee.createElement(pf,{ref:C},J.map((de,W)=>{let V=W,X=Ef(e.steps[W]),Ke=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&W===J.length-1;return ee.createElement(Uv,{key:V,step:de,type:"swap-progress",ref:C,state:X,hasSeparator:W!==0,tabIndex:V,isFocused:Ke,tooltipContainer:_()})}))),ee.createElement(Zs,{state:y,onClose:()=>T(null),onCancel:I,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!f}),ee.createElement(el,{open:!!k,diagnosisUrl:me,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:lt,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 Bf,NotFound as Yv,Skeleton as An,Typography as Ci}from"@rango-dev/ui";import Se from"react";import{i18n as Vv}from"@lingui/core";import{Divider as Xv,Skeleton as Kv,Typography as jv}from"@rango-dev/ui";import ke from"react";import{css as ht,styled as al}from"@rango-dev/ui";var Mf=al("div",{width:"100%",height:"100%",padding:"$10 $20"}),In=al("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),yi=al("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),sH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),lH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),pH=ht({paddingTop:"$15",display:"flex"}),cH=ht({padding:"$15 $0"}),uH=ht({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),mH=ht({paddingBottom:"$10"}),dH=ht({display:"flex",justifyContent:"start",alignItems:"center"}),fH=ht({paddingTop:"$5",display:"flex",alignItems:"center"}),gH=ht({display:"flex",alignItems:"center"}),hH=ht({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Lf=ht({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function sl(){return ke.createElement(Mf,null,ke.createElement(cn,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(jv,{variant:"title",size:"small"},Vv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(In,null,ke.createElement(wt,{separator:!1}),ke.createElement("div",{className:Lf()},ke.createElement(Xv,{direction:"horizontal",size:20}),ke.createElement(Kv,{height:22,variant:"rectangular"}))),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(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 Pf(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(ce,{header:{title:Si.t("Swap Details"),suffix:Se.createElement(Io,null)}},o&&Se.createElement(lf,null,Se.createElement(di,null,Se.createElement("div",{className:Uo()},Se.createElement(Ci,{variant:"label",size:"large",color:"neutral700"},`${Si.t("Request ID")}:`),Se.createElement("div",{className:fi()},Se.createElement(Ci,{variant:"label",size:"small",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})),Se.createElement(Bf,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}),Se.createElement(Bf,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Uo()},Se.createElement(Ci,{className:uf(),variant:"label",size:"large",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})),Se.createElement(Ci,{variant:"label",size:"small",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})))),Se.createElement(sl,null)),!o&&Se.createElement(cf,null,Se.createElement(Yv,{title:Si.t("Not found"),description:Si.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Pf,"SwapDetailsPlaceholder");function _f(){let{manager:t,state:e}=Rv(),o=!e.loadedFromPersistor,n=nt(t),{requestId:r}=tw(),a=ot(),{fetchStatus:s}=h();if(!r)return ll.createElement(ew,{containerStyles:{margin:"20px"},type:"error",title:Zv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&Jv(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?ll.createElement(Pf,{requestId:r,showSkeleton:l}):ll.createElement(il,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(_f,"SwapDetailsPage");function Df(){return zp(),ea(),ow([{path:q.home,element: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(Df,"AppRoutes");import{useQueueManager as uw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as mw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as dw}from"rango-sdk";import{useContext as fw,useEffect as qf,useState as Hf}from"react";import{globalCss as nw}from"@rango-dev/ui";var $f=i(()=>nw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Ff(){let{setWatermark:t}=ae();return{fetchApiConfig:i(async()=>{let o=await fetch(`${It("BASE_URL")}/meta/dapp/config?apiKey=${It("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Ff,"useFetchApiConfig");import{useWallets as rw}from"@rango-dev/wallets-react";import{useEffect as iw,useRef as aw}from"react";function Of(){let{connect:t,state:e}=rw(),o=aw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);iw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Of,"useForceAutoConnect");import{isApprovalTX as sw,RouteEventType as Uf,StepEventType as Qf,StepExecutionEventStatus as lw,WidgetEvents as Ti}from"@rango-dev/queue-manager-rango-preset";import{useEffect as zf}from"react";function pl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();zf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Qf.TX_EXECUTION&&s.status===lw.TX_SENT&&!sw(l)||s.type===Qf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return we.on(Ti.StepEvent,r),()=>we.off(Ti.StepEvent,r)},[we,t]),zf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Uf.FAILED||s.type===Uf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Ti.RouteEvent,r),()=>we.off(Ti.RouteEvent,r)},[we])}i(pl,"useSubscribeToWidgetEvents");import{useManager as pw}from"@rango-dev/queue-manager-react";import{useEffect as cw}from"react";function cl(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=pw();cw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(nt(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(cl,"useSyncNotifications");function ul(){Of(),$f(),pl(),cl();let t=h().blockchains(),{canSwitchNetworkTo:e}=br(),[o,n]=Hf(""),[r,a]=Hf(),s=fw(Xn),l=t.filter(dw),{fetchApiConfig:p}=Ff();qf(()=>()=>Qp(),[]),uw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),qf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===mw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(ul,"useBootstrap");import{styled as gw}from"@rango-dev/ui";var Gf=gw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ki(){ul();let{config:t}=h(),{activeTheme:e}=fr(t?.theme||{}),{activeLanguage:o}=Xt();return ml.createElement(hw,{language:o},ml.createElement(Gf,{id:"swap-container",className:e()},ml.createElement(Df,null)))}i(ki,"Main");import{setSolanaSignerConfig as Dw}from"@rango-dev/signer-solana";import fl,{useEffect as Yf,useMemo as $w}from"react";import{useState as yw}from"react";var Sw=i(()=>{let[t,e]=yw(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=El(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Vf=Sw;import{checkWaitingForNetworkChange as Cw,makeQueueDefinition as Tw}from"@rango-dev/queue-manager-rango-preset";import{Provider as kw}from"@rango-dev/queue-manager-react";import{useWallets as vw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ww}from"@rango-dev/wallets-shared";import{isEvmBlockchain as xw}from"rango-types";import bw,{useMemo as Ew}from"react";function Iw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=vw(),l=Ew(()=>Tw({API_KEY:t.apiKey||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(xw),S=i(k=>{let{supportedChains:v}=s(k);return $n(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:ww(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},T=ae.use.isActiveTab();return bw.createElement(kw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Cw(k)},isPaused:!T},t.children)}i(Iw,"QueueManager");var Xf=Iw;import{useManager as Lw}from"@rango-dev/queue-manager-react";import Bw,{createContext as Pw,useContext as _w}from"react";import{cancelSwap as Aw,getCurrentBlockchainOfOrNull as Nw,getCurrentStep as Ww,getRelatedWalletOrNull as Mw}from"@rango-dev/queue-manager-rango-preset";var vi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return nt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=nr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Aw(o)}getCurrentStepInfo(e){let o=Ww(e);return{step:o,wallet:o?Mw(e,o):null,network:o?Nw(e,o):null}}};var Kf=Pw(void 0);function dl(t){let{manager:e}=Lw(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:r}=h(),a=new vi(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Pl(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,S=xe().getNotifications(),C=xe().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:T=>u(T,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:S,clearAll:C}};return Bw.createElement(Kf.Provider,{value:y},t.children)}i(dl,"WidgetInfo");function jf(){let t=_w(Kf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(jf,"useWidget");function wi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Vf();return Yf(()=>{n&&r(n)},[n]),$w(()=>{zl({API_KEY:o?.apiKey||Nn,BASE_URL:o?.apiUrl||gl})},[o.apiKey,o.apiUrl]),Yf(()=>{t.config?.signers?.customSolanaRPC&&Dw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),fl.createElement(Kn,{config:o,onUpdateState:e},fl.createElement(Xf,{apiKey:o.apiKey},fl.createElement(dl,null,t.children)))}i(wi,"WidgetProvider");function Zf(t){let e=t.config?.externalWallets;return xi.createElement(dp,null,e?xi.createElement(ki,null):xi.createElement(wi,{config:t.config??Ui},xi.createElement(ki,null)))}i(Zf,"Widget");function Jf(){let{on:t,off:e}=we;return{on:t,off:e}}i(Jf,"useWidgetEvents");export{B2 as EventSeverity,Xo as MainEvents,z2 as Networks,G2 as PendingSwapNetworkStatus,$i as QuoteEventTypes,P2 as RouteEventType,bi as SUPPORTED_FONTS,_2 as StepEventType,D2 as StepExecutionBlockedEventStatus,$2 as StepExecutionEventStatus,he as UI_ID,Fi as WalletEventTypes,U2 as WalletEvents,q2 as WalletTypes,Zf as Widget,Xo as WidgetEvents,wi as WidgetProvider,Kn as WidgetWallets,ca as customizedThemeTokens,O2 as readAccountAddress,no as useWalletList,br as useWallets,jf as useWidget,Jf as useWidgetEvents,ng as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map