@rango-dev/widget-embedded 0.29.1-next.2 → 0.29.1-next.20

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 (109) hide show
  1. package/dist/QueueManager.d.ts.map +1 -1
  2. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  3. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  4. package/dist/components/Quote/Quote.d.ts.map +1 -1
  5. package/dist/components/Quote/Quote.styles.d.ts +1 -1
  6. package/dist/components/Quote/QuoteCostDetails.d.ts.map +1 -1
  7. package/dist/components/RefreshModal/RefreshModal.styles.d.ts +1 -1
  8. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  9. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts +0 -2
  10. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts.map +1 -1
  11. package/dist/constants/quote.d.ts +2 -1
  12. package/dist/constants/quote.d.ts.map +1 -1
  13. package/dist/constants/routing.d.ts +0 -1
  14. package/dist/constants/routing.d.ts.map +1 -1
  15. package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
  16. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -1
  17. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +3 -1
  18. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -1
  19. package/dist/hooks/useBootstrap/useBootstrap.d.ts.map +1 -1
  20. package/dist/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.d.ts.map +1 -1
  21. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  22. package/dist/hooks/useWalletList.d.ts +2 -1
  23. package/dist/hooks/useWalletList.d.ts.map +1 -1
  24. package/dist/hooks/useWalletProviders/index.d.ts +2 -0
  25. package/dist/hooks/useWalletProviders/index.d.ts.map +1 -0
  26. package/dist/hooks/{useWalletProviders.d.ts → useWalletProviders/useWalletProviders.d.ts} +2 -2
  27. package/dist/hooks/useWalletProviders/useWalletProviders.d.ts.map +1 -0
  28. package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts +3 -0
  29. package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts.map +1 -0
  30. package/dist/hooks/useWidgetEvents/index.d.ts +2 -0
  31. package/dist/hooks/useWidgetEvents/index.d.ts.map +1 -0
  32. package/dist/hooks/useWidgetEvents/useWidgetEvents.d.ts +3 -0
  33. package/dist/hooks/useWidgetEvents/useWidgetEvents.d.ts.map +1 -0
  34. package/dist/index.d.ts +16 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -2
  37. package/dist/index.js.map +4 -4
  38. package/dist/pages/WalletsPage.d.ts.map +1 -1
  39. package/dist/services/eventEmitter.d.ts +4 -0
  40. package/dist/services/eventEmitter.d.ts.map +1 -0
  41. package/dist/store/notification.d.ts.map +1 -1
  42. package/dist/store/quote.d.ts +2 -1
  43. package/dist/store/quote.d.ts.map +1 -1
  44. package/dist/store/slices/config.d.ts.map +1 -1
  45. package/dist/store/slices/settings.d.ts.map +1 -1
  46. package/dist/store/wallets.d.ts.map +1 -1
  47. package/dist/types/config.d.ts +8 -0
  48. package/dist/types/config.d.ts.map +1 -1
  49. package/dist/types/event.d.ts +68 -0
  50. package/dist/types/event.d.ts.map +1 -0
  51. package/dist/types/index.d.ts +1 -0
  52. package/dist/types/index.d.ts.map +1 -1
  53. package/dist/utils/common.d.ts +2 -0
  54. package/dist/utils/common.d.ts.map +1 -1
  55. package/dist/utils/meta.d.ts +1 -0
  56. package/dist/utils/meta.d.ts.map +1 -1
  57. package/dist/utils/numbers.d.ts +0 -1
  58. package/dist/utils/numbers.d.ts.map +1 -1
  59. package/dist/utils/providers.d.ts +1 -0
  60. package/dist/utils/providers.d.ts.map +1 -1
  61. package/dist/widget-embedded.build.json +1 -1
  62. package/package.json +7 -7
  63. package/src/QueueManager.tsx +4 -0
  64. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +19 -9
  65. package/src/components/HistoryGroupedList/HistoryGroupedList.tsx +5 -5
  66. package/src/components/NotificationContent/NotificationContent.tsx +12 -113
  67. package/src/components/Quote/Quote.tsx +18 -25
  68. package/src/components/Quote/QuoteCostDetails.tsx +10 -9
  69. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +1 -1
  70. package/src/components/SwapDetails/SwapDetails.tsx +9 -10
  71. package/src/components/TokenList/TokenList.tsx +5 -5
  72. package/src/components/WalletNamespacesModal/WalletNamespacesModal.tsx +2 -10
  73. package/src/constants/quote.ts +11 -9
  74. package/src/constants/routing.ts +0 -2
  75. package/src/containers/Inputs/Inputs.tsx +4 -4
  76. package/src/containers/Wallets/Wallets.tsx +2 -1
  77. package/src/containers/WidgetInfo/WidgetInfo.tsx +3 -0
  78. package/src/containers/WidgetInfo/WidgetInfo.types.ts +3 -1
  79. package/src/hooks/useBootstrap/useBootstrap.ts +4 -0
  80. package/src/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.ts +8 -10
  81. package/src/hooks/useSyncStoresWithConfig.ts +3 -1
  82. package/src/hooks/useWalletList.ts +9 -7
  83. package/src/hooks/useWalletProviders/index.ts +1 -0
  84. package/src/hooks/useWalletProviders/useWalletProviders.helpers.ts +14 -0
  85. package/src/hooks/{useWalletProviders.ts → useWalletProviders/useWalletProviders.ts} +11 -5
  86. package/src/hooks/useWidgetEvents/index.ts +1 -0
  87. package/src/hooks/useWidgetEvents/useWidgetEvents.ts +9 -0
  88. package/src/index.ts +26 -2
  89. package/src/pages/WalletsPage.tsx +23 -16
  90. package/src/services/eventEmitter.ts +11 -0
  91. package/src/store/notification.ts +3 -1
  92. package/src/store/quote.ts +63 -1
  93. package/src/store/slices/config.ts +4 -0
  94. package/src/store/slices/settings.ts +6 -0
  95. package/src/store/wallets.ts +194 -173
  96. package/src/types/config.ts +9 -0
  97. package/src/types/event.ts +89 -0
  98. package/src/types/index.ts +1 -0
  99. package/src/utils/common.ts +12 -1
  100. package/src/utils/meta.ts +8 -0
  101. package/src/utils/numbers.ts +0 -12
  102. package/src/utils/providers.ts +4 -0
  103. package/dist/components/NotificationContent/NotificationContent.styles.d.ts +0 -1559
  104. package/dist/components/NotificationContent/NotificationContent.styles.d.ts.map +0 -1
  105. package/dist/components/NotificationContent/NotificationNotFound.d.ts +0 -3
  106. package/dist/components/NotificationContent/NotificationNotFound.d.ts.map +0 -1
  107. package/dist/hooks/useWalletProviders.d.ts.map +0 -1
  108. package/src/components/NotificationContent/NotificationContent.styles.ts +0 -63
  109. package/src/components/NotificationContent/NotificationNotFound.tsx +0 -17
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var Yf=Object.defineProperty;var i=(t,e)=>Yf(t,"name",{value:e,configurable:!0});import{EventSeverity as JV,MainEvents as RV,RouteEventType as e2,StepEventType as t2,StepExecutionBlockedEventStatus as o2,StepExecutionEventStatus as n2,useEvents as r2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as a2,useWallets as vr,Events as s2}from"@rango-dev/wallets-react";import{Networks as p2,WalletTypes as c2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as m2}from"rango-types";import{UI_ID as Zf}from"@rango-dev/ui";var xn="c6381a79-2817-4602-83bf-6a641a409e32",ll="https://api.rango.exchange",pl="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Zf};var cl="Roboto",vi=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as Di,Provider as qg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Qg}from"rango-sdk";import Un,{createContext as Hg,useEffect as np,useMemo as Gg,useRef as rp}from"react";import{useEffect as gg}from"react";import{create as mg}from"zustand";import{subscribeWithSelector as dg}from"zustand/middleware";import{RangoClient as cg}from"rango-sdk";import{BlockchainCategories as ng,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as rg}from"@rango-dev/wallets-react";import{detectInstallLink as ig,getCosmosExperimentalChainInfo as ag,isEvmAddress as sg,KEPLR_COMPATIBLE_WALLETS as ix,Networks as wl}from"@rango-dev/wallets-shared";import Wi from"bignumber.js";import{isCosmosBlockchain as lg}from"rango-types";import Jf from"bignumber.js";var Be=new Jf(0);import{WalletTypes as Rf}from"@rango-dev/wallets-shared";var ul=[Rf.LEAP];import{BlockchainCategories as xi}from"@rango-dev/ui";import{TransactionType as bn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function Ei(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ei,"areEqual");function yl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(yl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function fl(t,e){return t.toLowerCase()===e.toLowerCase()}i(fl,"exactText");function gl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(gl,"startWithText");var B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Fo=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function hl(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:0}i(hl,"compareExactMatchText");function bi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareContainsText");function Ii(t,e,o){let n=!!e&&gl(e,t),r=!!o&&gl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ii,"compareStartWithText");function Sl(t,e,o){if(!o)return 0;let n=hl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=hl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ii(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ii(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=bi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ii(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=bi(o,t.address,e.address);if(r!==0)return r}return 0}i(Sl,"compareWithSearchFor");var In=i((t,e)=>{switch(e){case xi.ALL:return!0;case xi.UTXO:return t===bn.TRANSFER;case xi.OTHER:return t!==bn.TRANSFER&&t!==bn.COSMOS&&t!==bn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Cl=i(t=>vi.find(o=>o.value===t)?.url,"getFontUrlByName");function En(t,e){return e.find(o=>o.name===t)?.displayName}i(En,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Oo(t,e){return e.find(o=>o.id===t)?.title}i(Oo,"getSwapperDisplayName");function Ai(t,e){return e.find(o=>o.name===t)??null}i(Ai,"findBlockchain");function Ni(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ni,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as kl}from"bignumber.js";var Uo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new kl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new kl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var An=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),zo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Mi(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Mi,"mapStatusToWalletState");function vl(t,e,o,n){return o.filter(r=>!ul.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m}=e(r),d=yo(m.map(g=>g.type)),f=Mi(t(r));return{title:a,image:s,link:ig(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d}})}i(vl,"mapWalletTypesToWalletInfo");function Mn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Mn,"walletAndSupportedChainsNames");function xl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=rg(p),m=l.length>0,d=l.includes(c),f=c===wl.Unknown;if(m&&!d&&!f)return;let S=c===wl.Unknown&&sg(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(xl,"prepareAccountsForWalletStore");function Rt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,d=u.to.blockchain,f=a===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Rt,"getQuoteWallets");function Ln(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ln,"isAccountAndWalletMatched");function bl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Wi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(bl,"makeBalanceFor");function Il(t){return{...t,loading:!1,error:!0}}i(Il,"resetConnectedWalletState");var El=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Wi(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return pg(r)},"calculateWalletUsdValue");function pg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(pg,"numberWithThousandSeparator");var Bn=i((t,e)=>{let o=ag(Object.entries(t).map(([,n])=>n).filter(lg));return o&&o[e]?.experimental},"isExperimentalChain");function Pn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Pn,"formatBalance");function Al(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(Al,"compareTokenBalance");function eo(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(eo,"areTokensEqual");function Nl(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Nl,"sortWalletsBasedOnConnectionState");function _n(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(_n,"getConciseAddress");function Wl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Wl,"getAddress");function $n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Wi(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var Ml=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ll(t){return t.map(e=>e.state).join("-")}i(Ll,"hashWalletsState");function Bl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Bl,"filterBlockchainsByWalletTypes");function Pl(t,e){return e===ng.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(In(n,e))return!0;return!1})}i(Pl,"filterWalletsByCategory");var Li={API_KEY:xn};function bt(t){return Li[t]||""}i(bt,"getConfig");function _l(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Li=e,Li}i(_l,"initConfig");var $l=20,Dl=25,Bi="theme-widget",qo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>eo(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>eo(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Pi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Fl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Dn,Ft=i(()=>Dn||(Dn=new cg(bt("API_KEY"),bt("BASE_URL")),Dn),"httpService");var ug=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ot=ug;var te=Ot(mg()(dg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:$n(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Ln(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let f=o.find(S=>Ln(S,d)),g=p.find(S=>S.address===d.address&&S.blockChain===d.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...d,explorerUrl:g.explorerUrl,balances:bl(g,n),loading:!1}:d});return{loading:!1,balances:$n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Ln(m,c))?Il(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as fg}from"@rango-dev/provider-all";function Fn(t,e){let o=fg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Fn,"matchAndGenerateProviders");function Ol(t,e){return Fn(t,e).map(r=>r.config.type)}i(Ol,"configWalletsToWalletName");function Ul(t,e){let o=te.use.clearConnectedWallet(),n=Fn(t,e);return gg(()=>{o(),n=Fn(t,e)},[t?.length]),{providers:n}}i(Ul,"useWalletProviders");import _g,{createContext as $g,useContext as Dg,useEffect as Fg,useRef as Og}from"react";import{create as Bg}from"zustand";import{persist as Pg}from"zustand/middleware";var _i={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},hg={clientUrl:void 0},yg={liquiditySources:void 0},zl=i((t,e,o)=>({config:{..._i,...t},iframe:hg,campaignMode:yg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function On(t,e){let o=t.map(a=>a.swapperGroup),n=[];return yo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(On,"getUniqueSwappersGroups");function ql(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(ql,"sortLiquiditySourcesByGroupTitle");function je(t,e){return e?.[t]==="hidden"}i(je,"isFeatureHidden");function Ql(t,e){return e?.[t]==="enabled"}i(Ql,"isFeatureEnabled");var Hl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&qo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let d=e().isTokenPinned(c,o.type),f=e().isTokenPinned(m,o.type);if(d!==f)return d?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=Al(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Ni(c,g),y=Ni(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=Sl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>eo(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(ql)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,d)=>m.sort-d.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let d=Dt(m);a.set(d,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Sg,English as Cg,Finland as Tg,French as kg,German as wg,Greece as vg,Italian as xg,Japanese as bg,Netherlands as Ig,Poland as Eg,Portuguese as Ag,Russian as Ng,Spanish as Wg,Swedish as Mg,Ukrainian as Lg}from"@rango-dev/ui";var Gl=[{title:"English",label:"English",local:"en",SVGFlag:Cg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Wg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:kg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:bg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ag},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Sg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Ng},{title:"German",label:"Deutsch",local:"de",SVGFlag:wg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Lg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Mg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Tg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ig},{title:"Greek",label:"Grieks",local:"el",SVGFlag:vg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:xg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Eg}],Qo="en";var Vl=[.5,1,3],Xl=1,jl=5,Kl=100,Yl=0;var Zl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Xl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=yo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=je("theme",n),s=je("language",n),l=je("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Qo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Jl(t){return Bg()(Pg((...e)=>({...Hl(...e),...Zl(...e),...zl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Jl,"createAppStore");var Rl=$g(null);function h(){let t=Dg(Rl);if(Fg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function ep(t){let e=Og();return e.current||(e.current=Jl(t.config)),_g.createElement(Rl.Provider,{value:e.current},t.children)}i(ep,"AppStoreProvider");import{create as zg}from"zustand";var tp="rango-widget";var Ho=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(tp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ie=Ot(zg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),to=new Ho({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var zn=Hg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Vg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Ul(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=rp(),d=rp();np(()=>{n().catch(console.log)},[]),np(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(Qg).map(y=>y.name),g=i((y,T,k,v,E)=>{if(T===Di.ACCOUNTS)if(k){let x=Mn(E.supportedBlockchains),L=xl(y,k,f,x,E.isContractWallet);L.length&&u(L,a)}else c(y),d.current?d.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Di.ACCOUNTS&&v.connected){let x=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===Di.NETWORK&&v.network){let x=`${y}-${v.network}`;m.current?m.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,E)},"onUpdateState"),S=ie.use.isActiveTab(),C=Gg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{d.current=y}}),[]);return Un.createElement(zn.Provider,{value:C},Un.createElement(qg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Vg,"Main");function qn(t){let{config:e,...o}=t;return Un.createElement(ep,{config:e},Un.createElement(Vg,{...o,config:e}))}i(qn,"WidgetWallets");import wi from"react";import Xg,{Fragment as jg}from"react";import{MemoryRouter as Kg,useInRouterContext as Yg}from"react-router";function ip({children:t}){let o=Yg()?jg:Kg;return Xg.createElement(o,null,t)}i(ip,"AppRouter");import{I18nManager as uv}from"@rango-dev/ui";import il from"react";import ze from"react";import{useRoutes as Kw}from"react-router-dom";var z={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as To,useRef as Rn}from"react";import Et from"bignumber.js";import{create as Rg}from"zustand";import{subscribeWithSelector as eh}from"zustand/middleware";import{getLastSuccessfulStep as Jg}from"@rango-dev/queue-manager-rango-preset";import WI from"bignumber.js";import{i18n as Go}from"@lingui/core";var Fi={"Network Fee":Go.t("Network Fee"),"Swapper Fee":Go.t("Protocol Fee"),"Affiliate Fee":Go.t("Affiliate Fee"),"Outbound network fee":Go.t("Outbound Fee"),"Rango Fee":Go.t("Rango Fee")},Oi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ap=30;import{i18n as it}from"@lingui/core";import{RouteEventType as fI}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Gn}from"rango-types";function Qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Qn,"isValidAddress");import{i18n as Me}from"@lingui/core";var oe=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function sp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(sp,"getQuoteErrorMessage");import{i18n as Hn}from"@lingui/core";var oo=i(()=>({connectWallet:Hn.t("Connect Wallet"),swap:Hn.t("Swap"),swapAnyway:Hn.t("Swap anyway"),ethWarning:Hn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function lp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(lp,"hasHighValueLoss");function pp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(pp,"hasLimitError");function cp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(cp,"getLimitErrorMessage");function up(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:oo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:oo().swap,action:"confirm-swap",disabled:!0}:s?{title:oo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:oo().ethWarning,action:"confirm-warning",disabled:!1}:{title:oo().swap,action:"confirm-swap",disabled:!1}:{title:oo().connectWallet,action:"connect-wallet",disabled:!1}}i(up,"getSwapButtonState");function Ui(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ui,"canComputePriceImpact");function zi(t,e){let o=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(zi,"getUsdFeeOfStep");function Vn(t,e){return t.reduce((o,n)=>o.plus(zi(n,e)),Be)}i(Vn,"getTotalFeeInUsd");function qi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(qi,"getUsdFee");function mp(t){return t.reduce((e,o)=>e.plus(qi(o)),Be)}i(mp,"getTotalFeesInUsd");function dp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(dp,"getFeesGroup");function fp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(fp,"checkSlippageErrors");function gp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(gp,"checkSlippageWarnings");function Xn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Xn,"getMinRequiredSlippage");function hp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(hp,"hasProperSlippage");function yp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:d,destination:f,enableCentralizedSwappers:g}=t,S=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(yp,"createQuoteRequestBody");function Sp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Sp,"getWalletsForNewSwap");function So(t){return t?.outputAmount||null}i(So,"getQuoteOutputAmount");function Cp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(Cp,"getPercentageChange");function Tp(t,e){let o=So(t),n=So(e);if(!o||!n)return!1;let r=Ke(o,n);return r?r<=-1:!0}i(Tp,"isOutputAmountChangedALot");function kp(t,e,o){let n=t.validationStatus,r=Rt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Ep(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Xe(s.asset.blockchain,o)}})})}i(kp,"generateBalanceWarnings");function jn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(jn,"calcOutputUsdValue");function Vo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Gn.NetworkChanged}i(Vo,"isNetworkStatusInWarningState");function wp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Vo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Gn.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Gn.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Gn.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(wp,"getSwapMessages");function vp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(vp,"getLastConvertedTokenInFailedSwap");function xp(t){return t.status==="failed"}i(xp,"shouldRetrySwap");function bp(t,e,o,n,r,a){if(!n||t)return!0;let s=Rt({filter:"all",quote:n}),l=Rt({filter:"required",quote:n}),p=s.every(m=>r.some(d=>d.chain===m)),u=l.every(m=>r.some(d=>d.chain===m)),c=o&&a?Qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(bp,"isConfirmSwapDisabled");function Ip(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ip,"isTokensIdentical");function Yn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Yn,"getQuoteToTokenUsdPrice");function Qi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Qi,"isNumberOfSwapsChanged");function Hi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ei(o,n)}i(Hi,"isQuoteSwappersUpdated");function Gi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ei(o,n)}i(Gi,"isQuoteInternalCoinsUpdated");function Np(t,e){return Qi(t,e)||Hi(t,e)||Gi(t,e)}i(Np,"isQuoteChanged");function Ep(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ep,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function Zn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Jg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ai(a?a.toBlockchain:n.fromBlockchain,e),p=Ai(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Zn,"createRetryQuote");function Co(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=no(o,t.requestAmount),l=no(n,t?.outputAmount??"");if(t&&s&&l){let c=Ke(s.toString(),l.toString());if(!!c&&lp(s,c)){let d=Vn(t?.swaps,r),f=It(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>jl;if(hp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:gp(t,a),minRequiredSlippage:p};return null}i(Co,"generateQuoteWarnings");function Ke(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Cp(t.toString(),e.toString());return n&&n<0?n:null}i(Ke,"getPriceImpact");var Wp=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Jn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Mp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Lp=i(t=>{let e=i((o,n)=>{let r=Oi.indexOf(o.value),a=Oi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var no=i((t,e)=>t?.usdPrice?new Et(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),K=Ot(Rg()(eh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Et(0),outputUsdValue:new Et(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Be;return zo(o.inputAmount)?(e&&(n=e?.outputAmount?new Et(e?.outputAmount):null,r=jn(e?.outputAmount,Yn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Et(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:no(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Et(0),outputUsdValue:new Et(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:no(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:no(n??null,s),outputUsdValue:new Et(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?no(e.toToken,e.outputAmount?.toString()||""):new Et(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Bp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=K(),c=h().config,m=h().fetchStatus,d=h().blockchains(),f=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,E=c?.to?.blockchains,x=Rn(void 0),L=Rn(void 0),w=Rn(void 0),b=Rn(void 0);To(()=>{t(c?.amount?.toString()||"")},[c?.amount]),To(()=>{if(m==="success"){r();let A=d.find(I=>I.name===c?.from?.blockchain),P=c?.from?.token,Q=P&&g(P);(A||!A&&w.current)&&n(A??null),Q?a({token:Q,meta:{blockchains:d,tokens:f}}):!Q&&x.current&&a({token:null}),w.current=c?.from?.blockchain,x.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),To(()=>{qo(s,T)&&a({token:null}),Pi(p,k)&&n(null)},[T,k]),To(()=>{qo(l,v)&&a({token:null}),Pi(u,E)&&o(null)},[v,E]),To(()=>{if(m==="success"){r();let A=d.find(I=>I.name===c?.to?.blockchain),P=c?.to?.token,Q=P&&g(P);(A||!A&&b.current)&&o(A??null),Q?e({token:Q,meta:{blockchains:d,tokens:f}}):!Q&&L.current&&e({token:null}),b.current=c?.to?.blockchain,L.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),To(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Bp,"useSyncStoresWithConfig");import{useEffect as ji,useRef as th}from"react";import{useInRouterContext as oh,useLocation as nh,useSearchParams as rh}from"react-router-dom";function Vi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Vi,"convertTokenSearchParamToAsset");function Xi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Xi,"tokenToSearchParam");function Ki(){let t=nh(),[e,o]=rh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:d}=K(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=oh(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=th(),{findToken:E}=h(),x=i(()=>{let w={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(w[G]=ee);let b=e.get("fromAmount"),A=e.get("fromBlockchain"),P=e.get("fromToken"),Q=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:A,fromToken:P,toBlockchain:Q,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:w}},"getUrlSearchParams"),L=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");ji(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:A}=x();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:Xi(a),toBlockchain:r?.name,toToken:Xi(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...A})},[t.pathname,l,n,a,r,s,k]),ji(()=>{if(!C)return;let w=x();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&d(w.fromAmount),f==="success"){let b=g.find(I=>I.name===w.fromBlockchain),A=w.fromToken&&b?E(Vi(w.fromToken,b)):void 0,P=g.find(I=>I.name===w.toBlockchain),Q=w.toToken&&P?E(Vi(w.toToken,P)):void 0;b&&(p(b),A&&c({token:A,meta:{blockchains:g,tokens:S}})),P&&(u(P),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[f]),ji(()=>{let{clientUrl:w,liquiditySources:b}=x();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(Ki,"useSyncUrlAndStore");import{i18n as Ya}from"@lingui/core";import{useManager as AC}from"@rango-dev/queue-manager-react";import{Alert as Sm,Button as NC,css as Ja,Divider as Za,IconButton as Cm,styled as WC,Typography as MC,WalletIcon as LC}from"@rango-dev/ui";import xe,{useEffect as Gr,useLayoutEffect as BC,useRef as PC,useState as ln}from"react";import{useNavigate as _C}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Na,BalanceErrors as dS,Button as Yc,ChevronDownIcon as fS,ChevronLeftIcon as gS,CloseIcon as hS,Divider as Yo,IconButton as Zc,MessageBox as yS,PasteIcon as SS,Typography as xr,WalletIcon as CS}from"@rango-dev/ui";import $,{useCallback as TS,useEffect as Jc,useRef as kS,useState as po}from"react";import{useNavigate as wS}from"react-router-dom";import{i18n as er}from"@lingui/core";function tr(t){switch(t.type){case 0:return er.t("Route has been updated.");case 3:return er.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return er.t("Route swappers has been updated.");case 2:return er.t("Route internal coins has been updated.");default:return""}}i(tr,"getQuoteUpdateWarningMessage");import{Modal as ah}from"@rango-dev/ui";import sh from"react";function ne(t){let{watermark:e}=ie();return sh.createElement(ah,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import ir,{useRef as ch}from"react";import*as ko from"@radix-ui/react-collapsible";import{keyframes as _p,styled as or}from"@rango-dev/ui";var Yi=300,lh=_p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),ph=_p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),$p=or(ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Zi=or(ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),nr=or(ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${lh} ${Yi}ms ease-out`},false:{animation:`${ph} ${Yi}ms ease-out`}}}}),rr=or("div",{transition:`all ${Yi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ar(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ch(null);return ir.createElement($p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ir.createElement(Zi,{className:"collapsible_trigger",onClick:a},s),ir.createElement(nr,{className:"collapsible_content",open:e},r),l==="bottom"&&ir.createElement(Zi,{className:"collapsible_trigger",onClick:a},s))}i(ar,"CustomCollapsible");import{css as Dp,darkTheme as Xo,IconButton as uh,styled as Ye,TextField as mh}from"@rango-dev/ui";var Fp=Ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Op=Ye("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),dh=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Xo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Xo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Xo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Up=Ye(dh,{alignSelf:"stretch",minHeight:"93px"}),zp=Ye("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),qp=Ye(uh,{position:"absolute",left:"$20"}),Qp=Ye("div",{paddingTop:"$20"}),Hp=Dp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Gp=Ye("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Vp=Dp({paddingTop:"$5"}),Xp=Ye("div",{display:"flex"}),jp=Ye(mh,{backgroundColor:"$neutral100",padding:"$15"}),Kp=Ye("div",{overflow:"visible",width:"100%"}),Yp=Ye("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Xo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Xo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as pS,Divider as Ea,Image as cS,MessageBox as wr,SelectableWallet as uS,Typography as Xc,WalletState as jc}from"@rango-dev/ui";import ue,{useEffect as Kc,useState as Ao}from"react";import{WalletState as sr}from"@rango-dev/ui";import{useWallets as fh}from"@rango-dev/wallets-react";import{detectMobileScreens as gh,KEPLR_COMPATIBLE_WALLETS as hh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as yh,useEffect as Sh,useState as Ch}from"react";var Th=Object.values(wo);function vo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=fh(),{connectedWallets:u}=te(),c=h().blockchains(),m=Ol(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Th,d=vl(a,l,m,e);d=gh()?d.filter(x=>x.showOnMobile!==!1&&a(x.type).installed):d;let f=Nl(d),[g,S]=Ch(""),C=i(x=>!u.find(L=>L.walletType===x&&L.chain===e),"isExperimentalChainNotAdded"),y=i(async(x,L)=>{let w=a(x);try{if(g&&S(""),w.connected)await s(x);else{let b=!!d.find(A=>A.state===sr.CONNECTED);if(r?.multiWallets===!1&&b)return;o?.(x),await p(x,void 0,L),n?.(x)}}catch(b){S("Error: "+b?.message)}},"handleClick"),T=yh(()=>{let x=d?.filter(L=>L.state===sr.CONNECTING)||[];for(let L of x)s(L.type)},[Ll(d)]),k=i(async x=>{a(x).connected&&await s(x)},"disconnectWallet");Sh(()=>()=>{T()},[]);let v=i(x=>{let L=x.find(b=>b.type===wo.DEFAULT);return!L||L.state===sr.NOT_INSTALLED?!1:x.filter(b=>b.state!=sr.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(b.type)&&l(b.type).supportedChains.filter(A=>A.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((x,L,w)=>Bn(w,L)&&C(x)&&!hh.includes(x)||x==wo.DEFAULT&&!v(d),"shouldExcludeWallet");return{list:f.filter(x=>!E(x.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:T,disconnectWallet:k}}i(vo,"useWalletList");import{i18n as Uc}from"@lingui/core";import{Divider as eS,getCategoriesCount as tS,SelectableCategoryList as oS,styled as qc,Typography as nS,Wallet as rS,WalletState as zc}from"@rango-dev/ui";import at,{useState as Tr}from"react";import{useManager as Ly}from"@rango-dev/queue-manager-react";import{BottomLogo as By,Divider as Bc,Header as Py}from"@rango-dev/ui";import Ce,{useEffect as ka,useRef as Pc,useState as _y}from"react";import{useRef as kh}from"react";function lr(){return window.self!==window.top}i(lr,"isAppLoadedIntoIframe");function Ji(){let t=kh(null),{iframe:e}=h(),o=lr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ji,"useIframe");import{useNavigate as wh}from"react-router-dom";function Ze(){let t=wh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as ia,darkTheme as $h,lightTheme as Dh}from"@rango-dev/ui";import{useEffect as Fh,useState as Oh}from"react";import{theme as Ph,darkColors as _h}from"@rango-dev/ui";import na from"react";function vh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(vh,"expandShortHexColor");function xh(t){return/[0-9]+$/.test(t)}i(xh,"isOverridingColor");function bh(t,e){return t.padStart(e,"0")}i(bh,"pad");function Ri(t){let e=Math.min(Math.max(Math.round(t),0),255);return bh(e.toString(16),2)}i(Ri,"intToHex");function Ih(t){return`#${Ri(t.red)}${Ri(t.green)}${Ri(t.blue)}`}i(Ih,"rgbToHex");function Eh(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(Eh,"hexToRGB");function Ah(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Ah,"generateShade");function Nh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(Nh,"generateTint");function Wh(t){return Zp(t,Ah)}i(Wh,"calculateShades");function Mh(t){return Zp(t,Nh)}i(Mh,"calculateTints");function Zp(t,e){let o=Eh(t),n=[];for(let r=1;r<9;r++)n.push(Ih(e(o,r)));return n}i(Zp,"calculateColors");function ea(t,e,o){let a=Mh(t).reverse().concat(t),s=Wh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(ea,"createTintsAndShades");function ta(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!xh(r)){let p=vh(a);Object.assign(n,ea(p,r,s))}}return{...n,...e}}i(ta,"expandToGenerateThemeColors");var Jp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Lh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Jp(o%52)+e;return Jp(o%52)+e},"toAlphabeticName"),Bh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),oa=i(t=>Lh(Bh(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=Ph.colors,o={...e,..._h},n,r;if(t?.light){let s={colors:ta(e,t.light)};n={id:`${Bi}-light-${oa(s)}`,tokens:s}}if(t?.dark){let s={colors:ta(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Bi}-dark-${oa(s)}`,tokens:s}}return{light:n,dark:r}}i(ra,"customizedThemeTokens");function Rp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>na.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(na.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(na.cloneElement(e,{key:l}))}}),o}i(Rp,"joinList");function pr(t){let{colors:e,fontFamily:o=cl,borderRadius:n=$l,secondaryBorderRadius:r=Dl}=t,[a,s]=Oh("light"),{theme:l}=h(),{dark:p,light:u}=ra(e),c=ia({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Dh.className],d=[c.className,$h.className];if(u){let g=ia(u.id,u.tokens);m.push(g.className)}if(p){let g=ia(p.id,p.tokens);d.push(g.className)}return Fh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),S=d.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(pr,"useTheme");var Je=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as ec}from"@lingui/core";import{Alert as Uh,Button as zh}from"@rango-dev/ui";import tc from"react";function aa(t){return tc.createElement(Uh,{action:tc.createElement(zh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},ec.t("Activate this tab")),type:"warning",variant:"alarm",title:ec.t("Another tab is open and handles transactions.")})}i(aa,"ActivateTabAlert");import{i18n as sa}from"@lingui/core";import{Button as qh,Divider as Qh,MessageBox as Hh}from"@rango-dev/ui";import cr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return cr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},cr.createElement(Hh,{title:sa.t("Activate current tab"),type:"warning",description:sa.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},cr.createElement(Qh,{size:20}),cr.createElement(qh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as Xh}from"@rango-dev/ui";import lc from"react";import{css as Gh,darkTheme as oc,IconButton as Vh,styled as ro}from"@rango-dev/ui";var yt=ro(Vh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${oc} &`]:{backgroundColor:"$neutral"}}}),nc=ro("div",{position:"absolute",background:"$secondary500",[`.${oc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),xo=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),rc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),ic=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ac=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),sc=Gh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ur=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function pa(t){return lc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},lc.createElement(Xh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as jh}from"@lingui/core";import{Button as Kh,Typography as Yh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(xo,null,ca.createElement(Kh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(Yh,{variant:"label",size:"medium",color:"error500"},jh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as Zh}from"@lingui/core";import{Image as Jh,Tooltip as Rh,WalletIcon as ey}from"@rango-dev/ui";import io from"react";function ma(t){let{list:e}=vo({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:sc()},o.map(r=>io.createElement(ur,{key:r.title},io.createElement(Jh,{src:r.image,size:14})))):Zh.t("Connect Wallet");return io.createElement(Rh,{container:t.container,side:"bottom",content:n},io.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(nc,null),io.createElement(ey,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as fr}from"@lingui/core";import{NotificationsIcon as vy,Popover as xy,SettingsIcon as by,Tooltip as gr,TransactionIcon as Iy}from"@rango-dev/ui";import Ae from"react";import{i18n as da}from"@lingui/core";import{EventSeverity as Sc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Cc,ChevronRightIcon as uy,Divider as Tc,Typography as fa}from"@rango-dev/ui";import de from"react";import{useNavigate as my}from"react-router-dom";import{create as ty}from"zustand";import{persist as oy,subscribeWithSelector as ny}from"zustand/middleware";var Ee=Ot(ty()(oy(ny((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n:[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));import{Button as ry,darkTheme as iy,ListItemButton as ay,styled as zt}from"@rango-dev/ui";var pc=zt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),cc=zt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),uc=zt(ry,{padding:"$5 !important"}),mc=zt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),dc=zt(ay,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${iy} &`]:{backgroundColor:"$error600"}}}}}),fc=zt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),gc=zt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),hc=zt("span",{paddingRight:"$8"});import{i18n as sy}from"@lingui/core";import{Divider as ly,NoNotificationIcon as py,Typography as cy}from"@rango-dev/ui";import mr from"react";function yc(){return mr.createElement(gc,null,mr.createElement(py,{color:"secondary",size:26}),mr.createElement(ly,{size:12}),mr.createElement(cy,{variant:"body",size:"medium",color:"neutral700"},sy.t("There are no notifications.")))}i(yc,"NotificationNotFound");var dy=4;function ga(){let t=my(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,dy),l=i(p=>{t(`${z.swaps}/${p}`)},"handleOnClick");return de.createElement(pc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(cc,null,de.createElement(fa,{variant:"label",size:"medium"},da.t("Notifications")),de.createElement(uc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(fa,{variant:"body",size:"xsmall"},da.t("Clear all")))),de.createElement(Tc,{direction:"vertical",size:4})),s.length?de.createElement(mc,null,s.map((p,u)=>{let{route:c,requestId:m,event:d}=p,f=a(c.from),g=r.find(y=>y.name===c.from.blockchain),S=a(c.to),C=r.find(y=>y.name===c.to.blockchain);return de.createElement(de.Fragment,{key:m},u>0&&de.createElement(Tc,{size:4}),de.createElement(dc,{onClick:()=>l(m),actionRequired:d.messageSeverity===Sc.WARNING,title:de.createElement(fa,{variant:"body",size:"small",color:d.messageSeverity===Sc.WARNING?"$foreground":"$neutral700"},da.t(d.message)),id:m,start:de.createElement(fc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Cc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Cc,{tokenImage:S?S.image:"",chainImage:C?C.logo:"",size:"small"}))),end:de.createElement(hc,null,de.createElement(uy,{size:12,color:"gray"}))}))})):de.createElement(yc,null))}i(ga,"NotificationContent");import{useManager as fy}from"@rango-dev/queue-manager-react";import{InProgressIcon as gy}from"@rango-dev/ui";import kc from"react";var hy=i(()=>{let{manager:t}=fy();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?kc.createElement(ac,null,kc.createElement(gy,{color:"info",size:6})):null},"InProgressTransactionBadge"),wc=hy;import{EventSeverity as yy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Sy}from"@rango-dev/ui";import vc from"react";function xc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===yy.WARNING);return o?vc.createElement(rc,{isSever:n},vc.createElement(Sy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(xc,"NotificationsBadge");import{RefreshProgressButton as Cy}from"@rango-dev/ui";import ha,{useEffect as Ty,useState as bc}from"react";var ky=1e3,Ic=60,wy=100;function dr({onClick:t}){let[e,o]=bc(0),[n,r]=bc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Ty(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},ky):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ha.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ha.createElement(ic,{onTransitionEnd:()=>r(!1),isRefetched:n},ha.createElement(Cy,{size:22,color:t?"black":"gray",progress:e/Ic*wy})))}i(dr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=je("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(gr,{container:a||B(),side:"top",content:fr.t("Refresh")},Ae.createElement(dr,{onClick:e})),!l&&Ae.createElement(xy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ae.createElement(ga,null)},Ae.createElement("div",null,Ae.createElement(gr,{container:B(),side:"top",content:fr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(vy,{size:18,color:"black"}),Ae.createElement(xc,null))))),!r.includes("settings")&&Ae.createElement(gr,{container:B(),side:"top",content:fr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(by,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(gr,{container:B(),side:"top",content:fr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(Iy,{size:18,color:"black"}),Ae.createElement(wc,null))))}i(ao,"HeaderButtons");import{i18n as ya}from"@lingui/core";import{Divider as Ac,MessageBox as Ny,RefreshIcon as Wy}from"@rango-dev/ui";import bo from"react";import{Button as Ey,styled as Ay}from"@rango-dev/ui";var Ec=Ay(Ey,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Sa(t){let{open:e,onClose:o}=t;return bo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},bo.createElement(Ny,{title:ya.t("Something went wrong"),type:"error",description:ya.t("Something went wrong. Please refresh the app.")},bo.createElement(Ac,{size:30}),bo.createElement(Ec,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},bo.createElement(Wy,{size:20,color:"primary"}),bo.createElement(Ac,{size:4,direction:"horizontal"}),ya.t("Refresh"))))}i(Sa,"RefreshModal");function Ca(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ca,"onScrollContentAttachStatusToContainer");import{css as My,styled as Ta}from"@rango-dev/ui";var Nc="700px",hr=My({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Wc=Ta("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Mc=Ta("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Lc=Ta("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ji(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=_y(!1),c=te.use.connectedWallets(),{config:{features:m,theme:d}}=h(),{watermark:f}=ie(),g=f==="FULL",{activeTheme:S}=pr(d||{}),C=je("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ie(),x=Ze(),{manager:L}=Ly(),b=Je(L).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),A=i(()=>E(to.forceClaim,b),"onActivateTab"),P=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,I=Pc(null),H=Pc(null);return ka(()=>(lr()&&H.current&&e(H.current),()=>{o()}),[]),ka(()=>(I.current?.addEventListener("scroll",Ca),()=>{I.current?.removeEventListener("scroll",Ca)}),[]),ka(()=>{u(l==="failed")},[l]),Ce.createElement(Wc,{height:s,id:Se.SWAP_BOX_ID,className:`${S()} ${hr()}`,ref:H},Ce.createElement(Py,{prefix:Ce.createElement(Ce.Fragment,null,Q&&Ce.createElement(pa,{onClick:()=>{x(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ce.createElement(Ce.Fragment,null,r.suffix,r.onWallet&&!C&&Ce.createElement(ma,{container:B(),onClick:P,isConnected:!!c?.length}),r.onCancel&&Ce.createElement(ua,{onClick:r.onCancel}))}),Ce.createElement(Mc,{ref:I},n),Ce.createElement(la,{open:k,onClose:()=>v(!1),onConfirm:A}),Ce.createElement(Lc,null,Ce.createElement("div",{className:"footer__content"},T&&!y&&Ce.createElement("div",{className:"footer__alert"},Ce.createElement(aa,{onActivateTab:A}),Ce.createElement(Bc,{size:10})),a),Ce.createElement(Bc,{size:12}),Ce.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Ce.createElement(By,null))),Ce.createElement(Sa,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as $y}from"@rango-dev/ui";var _c="$20 $20 $10 $20",jo=$y("div",{padding:_c,overflowY:"auto",flexGrow:1});import{styled as Dy}from"@rango-dev/ui";var me=Dy("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as qy}from"@rango-dev/ui";import va from"react";import{i18n as Io}from"@lingui/core";import{Image as Uy,MessageBox as wa,WalletState as zy}from"@rango-dev/ui";import so from"react";import{keyframes as Fy,styled as yr}from"@rango-dev/ui";var pW=yr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Sr=yr("div",{position:"relative"}),Oy=Fy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Cr=yr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Oy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=yr("div",{"& img":{borderRadius:"50%"}});function Dc(t){let{state:e,image:o,error:n}=t;return e===zy.CONNECTED?so.createElement(wa,{type:"success",title:Io.t("Wallet Connected"),description:Io.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(wa,{type:"error",title:Io.t("Failed to Connect"),description:n||Io.t("Your wallet is not connected. Please try again.")}):so.createElement(wa,{type:"loading",title:Io.t("Connecting to your wallet"),description:Io.t("Click connect in your wallet popup."),icon:so.createElement(Sr,null,so.createElement($c,null,so.createElement(Uy,{src:o,size:45})),so.createElement(Cr,null))})}i(Dc,"ModalContent");function Ko(t){let{open:e,onClose:o,...n}=t;return va.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},va.createElement(Dc,{...n}),va.createElement(qy,{direction:"vertical",size:32}))}i(Ko,"WalletModal");import{i18n as xa}from"@lingui/core";import{Button as Hy,Checkbox as Gy,Image as Oc,ListItemButton as Vy,MessageBox as Xy,Radio as jy,RadioRoot as Ky}from"@rango-dev/ui";import{Namespace as Eo}from"@rango-dev/wallets-shared";import We,{useMemo as Yy,useState as Zy}from"react";import{styled as Qy}from"@rango-dev/ui";var Fc=Qy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Jy={[Eo.Evm]:"ETH",[Eo.Solana]:"SOLANA",[Eo.Cosmos]:"COSMOS",[Eo.Utxo]:"BTC",[Eo.Starknet]:"STARKNET",[Eo.Tron]:"TRON"},Ry=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Zy([]),a=h().blockchains(),s=Yy(()=>o?.map(u=>({name:u,logo:Ry(a,Jy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(Ky,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},We.createElement(Xy,{type:"info",title:xa.t("Select chain types"),description:xa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(Sr,null,We.createElement(ur,null,We.createElement(Oc,{src:t.image,size:45})),We.createElement(Cr,null))}),We.createElement(Fc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(Vy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Oc,{src:u.logo,size:22}),end:e?We.createElement(jy,{value:u.name}):We.createElement(Gy,{checked:n.includes(u.name)})}))))),We.createElement(Hy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},xa.t("Confirm")))}i(lo,"WalletNamespacesModal");var iS=qc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),aS=qc(me,{textAlign:"center"}),kr=3e3,ba=300;function Qc(){let{fetchStatus:t}=h(),[e,o]=Tr("ALL"),n=h().blockchains(),[r,a]=Tr(!1),[s,l]=Tr(null),[p,u]=Tr(""),c=null,m=ie.use.isActiveTab(),{list:d,handleClick:f,error:g,disconnectConnectingWallets:S}=vo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},ba)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},kr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),y=d.find(w=>w.type===p),T=y?.image||"",k=y?.state||zc.NOT_INSTALLED,v=Bl(d,n),x=tS(v)!==1,L=Pl(d,e);return at.createElement(le,{header:{title:Uc.t("Connect Wallets")}},at.createElement(aS,null,x&&at.createElement(at.Fragment,null,at.createElement(oS,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),at.createElement(eS,{size:24})),at.createElement(nS,{variant:"title",size:"xmedium",align:"center"},Uc.t("Choose a wallet to connect.")),at.createElement(iS,null,L.map((w,b)=>{let A=`wallet-${b}-${w.type}`;return at.createElement(rS,{key:A,...w,container:B(),onClick:P=>{w.namespaces&&w.state===zc.DISCONNECTED?l({providerType:P,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(P)},isLoading:t==="loading",disabled:!m})}),at.createElement(Ko,{open:!!r,onClose:C,image:T,state:k,error:g}),at.createElement(lo,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Qc,"WalletsPage");import{keyframes as sS,styled as Ia}from"@rango-dev/ui";var Hc=Ia("div",{position:"relative"}),lS=sS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Gc=Ia("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${lS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Vc=Ia("div",{"& img":{borderRadius:"50%"}});var mS=7;function Aa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Ao(""),[d,f]=Ao(null),[g,S]=Ao(!1),[C,y]=Ao(null),[T,k]=Ao(null),{suggestAndConnect:v}=vr(),E=null,{list:x,error:L,handleClick:w,disconnectWallet:b,disconnectConnectingWallets:A}=vo({chain:e,onBeforeConnect:W=>{E=setTimeout(()=>{m(W)},ba)},onConnect:W=>{s?.(W),E&&clearTimeout(E),setTimeout(()=>{m("")},kr)}}),[P,Q]=Ao(x),I=x.length,H=r&&I-r>0,Y=i(async W=>{S(!1),y("in-progress");try{await v(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");Kc(()=>{Q(W=>{let U=x.findIndex(Z=>o(Z.type,e));return H&&U>1?[x[U]].concat(x.filter((Z,re)=>re!==U)):W.map(Z=>x.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(x)]);let G=document.getElementById(Se.SWAP_BOX_ID);Kc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),kr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{A(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,P.slice(0,r).map(W=>{let U=Wl({connectedWallets:p,walletType:W.type,chain:e}),Z=U?_n(U,mS):"",re=Bn(u(),e),ke=!p.find(Oe=>Oe.walletType===W.type&&Oe.chain===e),_=re&&ke&&W.state===jc.CONNECTED,Fe=_?st.t({id:"Add {chain} chain",values:{chain:e}}):Z,ot=i(async()=>{W.state===jc.DISCONNECTED?W.namespaces?pe(W):w(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(f({walletType:W.type,chain:e,address:U??""}),S(!0)):n({walletType:W.type,chain:e,address:U??""})},"onClick"),fe=d?.chain?En(d.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${fe}`},ue.createElement(Ko,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:L}),ue.createElement(lo,{open:!!T,onClose:()=>k(null),onConfirm:Oe=>{w(T?.providerType,Oe),k(null)},image:T?.providerImage,namespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),!!d&&ue.createElement(ne,{open:!!d&&g,container:G,onClose:()=>{f(null)}},ue.createElement(wr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}})},ue.createElement(Ea,{size:18}),ue.createElement(Ea,{size:32}),ue.createElement(pS,{onClick:Y.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(wr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}}),icon:ue.createElement(Hc,null,ue.createElement(Vc,null,ue.createElement(cS,{src:W.image,size:45})),ue.createElement(Gc,null))}),C==="completed"&&ue.createElement(wr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:fe}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:fe}})}),C==="rejected"&&ue.createElement(wr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:fe}})}),ue.createElement(Ea,{direction:"vertical",size:32})),ue.createElement(uS,{key:W.type,description:Fe,onClick:ot,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(Up,{selected:!1,onClick:a},ue.createElement(Xc,{variant:"label",size:"medium"},st.t("Show more wallets"),ue.createElement(Xc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Aa,"WalletList");var vS=2;function Rc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=wS(),l=h().config,p=kS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:d,setQuoteWalletConfirmed:f,customDestination:g,setCustomDestination:S}=K(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=po(""),[v,E]=po([]),[x,L]=po(""),[w,b]=po(null),[A,P]=po(!!g),Q=navigator?.userAgent.includes("Firefox"),I=Rt({filter:"all",quote:c}),H=Rt({filter:"required",quote:c}),Y=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(M=>H.includes(M),"isWalletRequiredFor"),G=TS(()=>C.filter(M=>M.selected&&I.includes(M.chain)),[C.length,I.length]),[ee,W]=po(G()),[U,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),ke=v.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&A&&Y&&!Qn(Y,g),ot=i(()=>{P(!1),S(null),W(M=>{let V=!1;return M.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),fe=i(()=>S(""),"handleClearCustomDestination"),Oe=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),vt=i(M=>{M?pe(Y?.name??"")||W(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):ot()},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(M=>{if(T&&k(""),_(M.walletType,M.chain))return;let X=C.find(qe=>qe.walletType===M.walletType&&qe.chain===M.chain);X&&(n(),M.chain===Y?.name&&A&&!pe(Y.name)&&(P(!1),S(null)),W(qe=>qe.filter(ft=>ft.chain!==M.chain).concat({...X,selected:!0})))},"onChange"),nt=i(()=>{let M=ee.filter(V=>V.selected);y(M),m(M),f(!0),o()},"onConfirmBalance"),rt=i(async()=>{E([]),L(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&E(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&L(sp(M.error)),!M.error&&!V?.balance?.messages.length?nt():E(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Zc,{onClick:fe,variant:"ghost"},$.createElement(hS,{size:12,color:"gray"})):Q?null:$.createElement(Zc,{onClick:Oe,variant:"ghost"},$.createElement(SS,{size:16})),"renderCustomDestinationSuffix");Jc(()=>{W(M=>{let V=[];return M.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C.length,I.length]),Jc(()=>{let M=[];U.length>0&&(U.forEach(V=>{let X=C.find(qe=>qe.chain===V.blockchain&&qe.walletType===V.walletType);X?Ve(X):M.push(V)}),Z(M))},[C.length,U.length]);let ye=document.getElementById(Se.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{d||s("../",{replace:!0}),o()},dismissible:!T,container:ye,...!T&&{footer:$.createElement(Xp,null,$.createElement(Yc,{loading:a,disabled:bp(a,A,g,c,ee,Y),onClick:rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(zp,null,$.createElement(qp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(gS,{size:16})),$.createElement(xr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(T,u)}})))},anchor:"center"},$.createElement(ne,{open:ke,onClose:E.bind(null,[]),container:ye},$.createElement(yS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(dS,{messages:v??[]})},$.createElement(Yc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:nt},St.t("Proceed anyway")))),T&&$.createElement(Qp,null,$.createElement("div",{className:Hp()},$.createElement(Aa,{chain:T,isSelected:_,selectWallet:Ve,onShowMore:()=>k(T),onConnect:M=>{re(T,M)}}))),!T&&$.createElement($.Fragment,null,x&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"error",title:St.t(x)}),$.createElement(Yo,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"warning",title:tr(w)}),$.createElement(Yo,{size:12})),$.createElement(Kp,null,I.map((M,V)=>{let X=u.find(Jt=>Jt.name===M),qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:qe},$.createElement(Fp,null,$.createElement(xr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(xr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Yo,{size:24}),$.createElement(Op,null,$.createElement(Aa,{chain:M,isSelected:_,selectWallet:Ve,limit:vS,onShowMore:()=>k(X?.name??""),onConnect:Jt=>{re(M,Jt)}})),!ft&&$.createElement(Yo,{size:32}),ft&&l?.customDestination&&$.createElement(Gp,null,$.createElement(ar,{onOpenChange:vt,hasSelected:!0,open:A,triggerAnchor:"top",trigger:$.createElement(Yp,null,$.createElement("div",{className:"button__content"},$.createElement(CS,{size:18,color:"info"}),$.createElement(Yo,{size:4,direction:"horizontal"}),$.createElement(xr,{variant:"label",size:"medium",color:A?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(rr,{orientation:A?"up":"down"},$.createElement(fS,{size:10,color:"secondary"}))),onClickTrigger:()=>P(Jt=>!Jt)},$.createElement(jp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:En(M,u)}),value:g||"",suffix:dt(),onChange:Jt=>{let Kf=Jt.target.value;S(Kf)},...!g&&{autoFocus:!0}})),Fe&&$.createElement("div",{className:Vp()},$.createElement(Na,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Rc,"ConfirmWalletsModal");import{i18n as qS}from"@lingui/core";import{Alert as QS,Button as HS,InfoIcon as GS}from"@rango-dev/ui";import He from"react";import{Alert as IS,Button as ES,Divider as La,NoRouteIcon as AS,RefreshIcon as NS,Typography as au}from"@rango-dev/ui";import Qe from"react";import{i18n as eu}from"@lingui/core";var xS=24,bS=60;function tu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:eu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:eu.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(tu,"makeInfo");var Wa=(o=>(o[o.small=xS]="small",o[o.large=bS]="large",o))(Wa||{}),Ma=(o=>(o.small="small",o.large="medium",o))(Ma||{});import{styled as br}from"@rango-dev/ui";var ou=br("div",{display:"flex",flexDirection:"column",alignItems:"center"}),nu=br("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),ru=br("div",{variants:{size:{small:{width:"100%"},large:{}}}}),iu=br("div",{padding:"$6 $0"});function Zo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=tu(o,r,()=>a(s,!0),e);return Qe.createElement(ou,null,Qe.createElement(AS,{size:Wa[n],color:"gray"}),Qe.createElement(La,{size:4}),Qe.createElement(au,{variant:"title",size:Ma[n]},oe().noResultError.title),n==="large"&&Qe.createElement(La,{size:4}),!!l.description&&Qe.createElement(nu,{size:n},Qe.createElement(au,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Qe.createElement(La,{size:n==="large"?"24":"4"}),!!l.alert&&Qe.createElement(ru,{size:n},Qe.createElement(IS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Qe.createElement(ES,{size:"xsmall",type:l.alert.type,prefix:Qe.createElement(iu,null,Qe.createElement(NS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Zo,"NoResult");import{i18n as Jo}from"@lingui/core";import{Button as MS,Divider as LS,MessageBox as BS,Typography as PS,WarningIcon as _S}from"@rango-dev/ui";import At from"react";import{Typography as cu}from"@rango-dev/ui";import Pa from"react";import{darkTheme as WS,styled as Ir}from"@rango-dev/ui";var su=Ir("div",{width:"100%"}),Ba=Ir("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),lu=Ir("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${WS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),pu=Ir("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function uu(t){let{title:e,value:o,valueColor:n}=t;return Pa.createElement(lu,null,Pa.createElement(cu,{size:"medium",variant:"label",className:"_title"},e),Pa.createElement(cu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(uu,"QuoteErrorsModalItem");function mu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Jo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Jo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Jo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Jo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(MS,{type:"primary",size:"large",prefix:At.createElement(_S,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},At.createElement(BS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(Ba,null,At.createElement(LS,{size:"4"}),At.createElement(PS,{size:"small",variant:"title"},Jo.t("Details")),At.createElement(Ba,null,l.map((p,u)=>At.createElement(uu,{key:u,...p})))))}i(mu,"HighValueLossWarningModal");import{i18n as _a}from"@lingui/core";function du(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=_a.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(It(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=_a.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=_a.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(du,"makeAlerts");import{i18n as No}from"@lingui/core";import{Button as fu,Divider as gu,MessageBox as $S,Typography as DS}from"@rango-dev/ui";import co from"react";import{useNavigate as FS}from"react-router-dom";function hu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=FS(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(fu,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},co.createElement(DS,{variant:"label",size:"medium",color:"$neutral900"},No.t("Change settings"))),container:B(),onClose:r},co.createElement($S,{type:"warning",title:s.type===3?No.t("High slippage"):No.t("Low slippage"),description:s.type===3?No.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):No.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},co.createElement(gu,{size:18}),co.createElement(gu,{size:32}),co.createElement(fu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},No.t("Confirm anyway"))))}i(hu,"SlippageWarningModal");import{Button as OS,MessageBox as US,WarningIcon as zS}from"@rango-dev/ui";import Er from"react";function yu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Er.createElement(ne,{footer:Er.createElement(OS,{type:"primary",size:"large",prefix:Er.createElement(zS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Er.createElement(US,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(yu,"UnknownPriceWarningModal");function Ro(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,f=du(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),He.createElement(He.Fragment,null,d&&He.createElement(Zo,{error:o,fetch:s}),!!f&&He.createElement(su,null,He.createElement(QS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:He.createElement(pu,{onClick:l},He.createElement(GS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:He.createElement(HS,{size:"xxsmall",type:f.alertType,onClick:c},qS.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(mu,{...m,warning:e}),(e.type===3||e.type===2)&&He.createElement(hu,{...m,warning:e}),e.type===1&&He.createElement(yu,{...m,warning:e})))}i(Ro,"QuoteWarningsAndErrors");import wC from"bignumber.js";import zr from"react";import{i18n as uo}from"@lingui/core";import{Alert as pC,Divider as Mo,FullExpandedQuote as cC,InfoIcon as uC,QuoteTag as mC,StepDetails as dC,TokenAmount as fC,Tooltip as Yu,Typography as Lo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as gC,useState as hC}from"react";import{styled as $a}from"@rango-dev/ui";var Da=$a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Su=$a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Cu=$a("div",{width:"100%",display:"flex"});import*as Ar from"@radix-ui/react-collapsible";import{Button as VS,css as en,darkTheme as we,Image as Tu,styled as _e,Typography as XS}from"@rango-dev/ui";var jS=300,ku=_e(Ar.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),wu=en({padding:"$10 $15"}),vu=_e(VS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),xu=_e("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),bu=en({width:"100%",padding:"$15 $15 $10 $15"}),Iu=en({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Wo=en({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Eu=en({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Au=_e(Ar.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Tu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Tu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Nu=_e("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Wu=_e(nr,{width:"100%",background:"inherit"}),Fa=_e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${jS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),dB=_e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Mu=_e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Lu=_e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Oa=_e(XS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Bu=_e("div",{display:"flex",flexWrap:"wrap"}),Ua=_e("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Pu=_e("div",{display:"flex"}),Nr=_e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Vt}from"@lingui/core";import{ChevronDownIcon as YS,CloseIcon as ZS,Divider as Lr,IconButton as JS,QuoteCost as RS,Tooltip as eC,Typography as lt}from"@rango-dev/ui";import J,{useState as Fu}from"react";import{css as KS,styled as Wr}from"@rango-dev/ui";var Mr=Wr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),za=Wr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),_u=Wr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),$u=Wr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Du=KS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var tC=i(t=>t.fee.isZero()?null:J.createElement(Mr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Ou(t){let[e,o]=Fu(!1),[n,r]=Fu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],d=B(),f=dp(m);return J.createElement(J.Fragment,null,J.createElement(RS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Vt.t("View more info"):void 0,tooltipContainer:d}),J.createElement(ne,{container:d,open:e,header:J.createElement($u,null,J.createElement(lt,{variant:"title",size:"medium"},Vt.t("Gas & Fee Explanation")),J.createElement(JS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(ZS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(_u,null,J.createElement(lt,{variant:"title",size:"small"},Vt.t("Details")),J.createElement(Lr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=qi(C);return J.createElement(Mr,{key:T},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Fi[g]),J.createElement(eC,{content:ce(C.amount),container:d},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Mr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Vt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(za,null),Object.keys(f.nonePayable).length&&J.createElement(ar,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:Du()},J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?Vt.t("Hide non-payable fees"):Vt.t("Show non-payable fees")),J.createElement(Lr,{size:4,direction:"horizontal"}),J.createElement(rr,{orientation:n?"up":"down"},J.createElement(YS,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Vt.t("Description")),J.createElement(Lr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Vt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),J.createElement(Lr,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let y=mp(S),T=Fi[g],k=`non-payable-fee-${C}`;return J.createElement(tC,{key:k,fee:y,label:T})}),J.createElement(za,null)))))}i(Ou,"QuoteCostDetails");import{i18n as qu}from"@lingui/core";import{TokenAmount as Qu}from"@rango-dev/ui";import Br from"react";import{css as oC,styled as nC}from"@rango-dev/ui";var Uu=nC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),zu=oC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function tn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Br.createElement(Uu,null,Br.createElement(Qu,{direction:"horizontal",label:qu.t("Swap input"),type:"input",tooltipContainer:B(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Br.createElement("div",{className:zu()}),Br.createElement(Qu,{direction:"horizontal",tooltipContainer:B(),label:qu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(tn,"QuoteSummary");import{i18n as ju}from"@lingui/core";import{ChevronDownIcon as aC,ChevronRightIcon as sC,Divider as qa,Image as lC,Tooltip as Fr,Typography as _r}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as rC,useState as on}from"react";var Hu=480,Gu=768,Vu=1024,Xu=1200,iC=i(()=>{let[t,e]=on(!1),[o,n]=on(!1),[r,a]=on(!1),[s,l]=on(!1),[p,u]=on(!1),c=i(()=>{e(window.innerWidth<=Hu),n(window.innerWidth>Hu&&window.innerWidth<=Gu),a(window.innerWidth>Gu&&window.innerWidth<=Vu),l(window.innerWidth>Vu&&window.innerWidth<=Xu),u(window.innerWidth>Xu)},"handleResize");return rC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Pr=iC;var $r=4,Dr=6,nn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return F.createElement(Fr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Nu,{className:n,state:a},F.createElement(lC,{src:o,size:16})))},"ImageComponent");function Ku(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Wp(r),{isTablet:m,isMobile:d}=Pr();return F.createElement(Au,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:Wo()},F.createElement(_r,{variant:"body",size:"xsmall"},ju.t("Via:")),F.createElement(qa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=F.createElement(Fa,null,F.createElement(sC,{size:12,color:"black"}));return d||m?F.createElement(F.Fragment,{key:S},F.createElement(nn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:S},u<=$r||u>$r&&g<$r-1?F.createElement(F.Fragment,null,F.createElement(nn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===$r-1&&F.createElement(Fr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Wo()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&F.createElement(F.Fragment,{key:k},F.createElement(nn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Ua,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(_r,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:Wo()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Wo()},F.createElement(_r,{variant:"body",size:"xsmall"},ju.t("Chains:")),F.createElement(qa,{direction:"horizontal",size:4}),c.map((f,g)=>F.createElement(F.Fragment,{key:f.displayName},c.length<=Dr||c.length>Dr&&g<Dr-1?F.createElement(Fr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},F.createElement(nn,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===Dr-1&&F.createElement(Fr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Wo()},c.map((S,C)=>C>=g&&F.createElement(nn,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Ua,{className:"blockchainImage"},F.createElement(_r,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(qa,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(aC,{size:12,color:"black"}))))}i(Ku,"QuoteTrigger");function Ha(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:d}=t,f=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=hC(t.expanded),E=gC(null),x=N(o.value,6,6),L=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",b=Ke(o.usdValue,n.usdValue??null),A=N(b,2,2),P=It(b??0),Q=i((re,ke)=>re.map((_,Fe)=>{let ot,fe=r?.type===3&&r.swap.swapperId===_.swapperId,Oe=r?.type===4&&r.recommendedSlippages?.has(Fe),vt=a?.type===2&&a.recommendedSlippages?.has(Fe),Ve=fe||Oe,nt=vt;Ve?ot="error":nt&&(ot="warning");let rt=Ve?uo.t("Slippage Error"):uo.t("Slippage Warning");return fe&&(rt=uo.t("Bridge Limit Error")),{swapper:{displayName:Oo(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Fe===0&&!ke?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Fe===0?o.value:_.fromAmount),realUsdValue:ce(new Qa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new Qa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:ot,alerts:Ve||nt?D.createElement(Su,{dense:m},D.createElement(pC,{variant:"alarm",type:Ve?"error":"warning",title:rt,footer:D.createElement(Cu,null,fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Mo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Oe||vt)&&!fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Fe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Fe)}}})),D.createElement(Mo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Uo(_.estimatedTimeInSeconds),fee:N(zi(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),I=Q(e?.swaps??[]),H=I.length,Y=d||B(),pe=Lp(t.quote.tags||[]),G=!!c,ee=Uo(An(e?.swaps)),W=Vn(e?.swaps??[],g),U=N(W,2,2),Z=W.gte(new Qa(ap));return m?D.createElement(cC,{selected:l,fee:U,time:ee,tooltipContainer:Fo(),steps:I,tags:pe,feeWarning:Z,percentageChange:A,warningLevel:P,outputPrice:{value:L,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(xu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:bu()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(Pu,null,pe.map((re,ke)=>{let _=`${re.value}_${ke}`;return D.createElement(D.Fragment,{key:_},D.createElement(mC,{label:re.label,value:re.value}),D.createElement(Mo,{size:4,direction:"horizontal"}))})),D.createElement(Nr,null),!G&&D.createElement(Mo,{size:4})):null,D.createElement("div",{id:"portal-root",className:Iu()},D.createElement(Ou,{quote:e,time:ee,fee:U,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(vu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Lo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},uo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Eu()},D.createElement(Lu,null,D.createElement(uC,{size:12,color:"gray"})),D.createElement(Bu,null,D.createElement(Oa,{size:"small",variant:"body"},`${x} ${I[0].from.token.displayName} = `),D.createElement(Yu,{content:ce(n.value),container:Y,open:n.value?void 0:!1},D.createElement(Oa,{size:"small",variant:"body"},"\xA0",`${L} ${I[I.length-1].to.token.displayName}`))),D.createElement(Yu,{content:ce(n.usdValue),container:Y},D.createElement(Mo,{size:2,direction:"horizontal"}),D.createElement(Lo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&D.createElement(fC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:L,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:A,warningLevel:P}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(tn,{from:I[0].from,to:I[H-1].to,percentageChange:A,warningLevel:P}),D.createElement(Mo,{size:4}))),D.createElement(ku,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},D.createElement(Ku,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:I}),D.createElement(Wu,{open:k},D.createElement(Mu,null),D.createElement("div",{className:wu()},I.map((re,ke)=>{let _=`item-${ke}`;return D.createElement(dC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:ke!==I.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as TC,Skeleton as kC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as yC,styled as Or}from"@rango-dev/ui";var Zu=Or("div",{$$color:"$colors$neutral100",[`.${yC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ju=Or("div",{paddingTop:"$2"}),Ru=Or("div",{paddingLeft:"$8"}),em=Or("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as cm,Divider as pt,Skeleton as Ge}from"@rango-dev/ui";import q from"react";import{css as SC,styled as Nt}from"@rango-dev/ui";var Ga=Nt("div",{display:"flex"}),tm=Nt("div",{padding:"$10 $0 $20"}),om=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),nm=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),rm=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),im=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),am=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),sm=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),lm=Nt("div",{padding:"$15 $0 $15 $0"}),pm=SC({display:"flex",justifyContent:"space-between",alignItems:"center"});function rn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(rm,null,q.createElement(am,null,q.createElement(cm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{size:8,direction:"horizontal"}),q.createElement(sm,null,q.createElement(Ge,{height:10,width:60,variant:"rounded"}),q.createElement(pt,{size:4}),q.createElement(Ge,{height:15,variant:"rounded"}))),q.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(Ga,null,q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"})),q.createElement(Nr,null),!r&&q.createElement(pt,{size:4})),q.createElement("div",{className:pm()},q.createElement(Ga,null,q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&q.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(tm,null,q.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(om,null,q.createElement(nm,null,q.createElement(cm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{direction:"horizontal",size:4}),q.createElement(Ge,{height:15,width:150,variant:"rounded"})),q.createElement(pt,{size:10}),q.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(pt,{size:4}),q.createElement(lm,null,n,q.createElement(im,null),n),q.createElement(pt,{size:12})))}i(rn,"QuoteSummarySkeleton");import{ChainToken as gm,Divider as Xa,NextIcon as CC,Skeleton as Ur}from"@rango-dev/ui";import ve from"react";import{styled as an}from"@rango-dev/ui";var um=an("div",{display:"flex",alignItems:"start"}),mm=an("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Va=an("div",{display:"flex",alignItems:"center",flexGrow:1}),dm=an("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),fm=an("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(fm,null,ve.createElement(Ur,{height:22,width:22,variant:"circular"}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Ur,{height:15,width:148,variant:"rounded"})),ve.createElement(um,null,ve.createElement(em,{hideSeparator:!e}),ve.createElement(mm,{extraSpace:e},ve.createElement(Va,null,ve.createElement(gm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Ur,{height:12,variant:"rounded"})),ve.createElement(dm,null,ve.createElement(CC,{color:"gray",size:16})),ve.createElement(Va,null,ve.createElement(gm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Ur,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function sn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Zu,{expanded:o,rounded:e!=="basic"},Wt.createElement(rn,{type:e,tagHidden:n}),Wt.createElement(Ju,null,Wt.createElement(kC,{height:15,variant:"rounded"})),o&&Wt.createElement(Ru,null,Wt.createElement(TC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(sn,"QuoteSkeleton");function mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:d=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=K(),y=e?.outputAmount?new wC(e?.outputAmount):null,T=e?.outputAmount?jn(e?.outputAmount,Yn(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?zr.createElement(Da,null,zr.createElement(sn,{tagHidden:l,type:o,expanded:s})):v?zr.createElement(Da,{onClick:()=>p?.(e)},zr.createElement(Ha,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:d,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as IC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as EC}from"react";import{useRef as vC,useState as xC}from"react";var bC=2e3;function qr({request:t}){let[e,o]=xC(!1),n=vC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,bC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(qr,"useFetch");function hm(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(hm,"useFetchConfirmQuote");function Qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=ja(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Qr,"throwErrorIfResponseIsNotValid");function ja(t){if(pp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=cp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=fp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(ja,"getQuoteError");function ym(t,e,o){let n=!1;t&&(n=Np(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Co(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Tp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(So(e)),percentageChange:N(Ke(So(t)??"",So(e)??""),null,2)}:Qi(t,e)?r.quoteUpdate={type:0}:Hi(t,e)?r.quoteUpdate={type:1}:Gi(t,e)&&(r.quoteUpdate={type:2}));let s=kp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(ym,"generateWarnings");function Hr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Hr,"handleQuoteErrors");function Ka(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=K(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),d=h().tokens(),{findToken:f}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=hm();return EC(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,E=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let x=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),L={requestId:r?.requestId||"",selectedWallets:x,destination:E||void 0};try{return await S(L,!0).then(w=>{let{result:b}=w;Qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let A={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(A);let P={slippage:g.toString(),disabledSwappersGroups:c},Q=ym(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:f,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let I=!!Q.balance,H=IC(o.toString(),b,Sp(v),P,!I,{blockchains:m,tokens:d});return{quote:A,swap:H,error:null,warnings:Q}})}catch(w){return Hr(w)}},"fetch"),cancelFetch:C}}i(Ka,"useConfirmSwap");var $C=WC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Cm}`]:{width:"$48",height:"$48"}}),DC=Ja({flexGrow:1,paddingRight:"$10"}),FC=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),OC=Ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function Tm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=K(),s=_C(),[l,p]=ln(""),u=!n,[c,m]=ln(!1),[d,f]=ln(!1),{isActiveTab:g}=ie(),S=h().getDisabledLiquiditySources(),C=PC(S),{manager:y}=AC(),{fetch:T,loading:k,cancelFetch:v}=Ka(),[E,x]=ln({swap:null,error:null,warnings:null}),[L,w]=ln(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await T?.({selectedWallets:G,customDestination:ee});return x(W),W},"onConfirmSwap"),A=i(async()=>{if(E.swap&&n)try{await y?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let G=`../${z.swaps}/${E.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),P=i(async()=>{f(!0),await A(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await P()},"onStartConfirmSwap"),I=i(async()=>{x({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(G=>{x(G)}).catch(G=>console.error(G))},"onRefresh");Gr(()=>{!!C.current.length&&!S.length&&I(),C.current=S},[S.length]),Gr(()=>{u&&v()},[u]),Gr(()=>{u&&m(u)},[u]),Gr(()=>{u||T({selectedWallets:o,customDestination:r}).then(G=>x(G)).catch(G=>console.error(G))},[]),BC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=E.warnings?.quote??null,Y=E.error,pe=[];if(l&&pe.push(xe.createElement(Sm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&pe.push(xe.createElement(Sm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&tr(E.warnings.quoteUpdate)})),H||Y){let G=`../${z.settings}`;pe.push(xe.createElement(Ro,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:L,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await A()},onChangeSettings:()=>s(G)}))}return xe.createElement(le,{header:{title:Ya.t("Confirm Swap"),onWallet:()=>{let G=`../${z.wallets}`;s(G)}},footer:xe.createElement($C,null,xe.createElement("div",{className:DC()},xe.createElement(NC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!E.error||!g,onClick:Q},Ya.t("Start Swap"))),xe.createElement(Cm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!g,onClick:m.bind(null,!0)},xe.createElement(LC,{size:24})))},c&&xe.createElement(Rc,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),xe.createElement(me,null,xe.createElement("div",{className:OC()},xe.createElement(MC,{variant:"title",size:"small"},Ya.t("You get")),xe.createElement("div",{className:FC()},xe.createElement(dr,{onClick:!k&&!c&&!L?I:void 0}))),xe.createElement(Za,{size:"12"}),Rp(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),xe.createElement(Za,{size:10})),pe.length>0?xe.createElement(Za,{size:10}):null,xe.createElement(mo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(Tm,"ConfirmSwapPage");import{i18n as Xr}from"@lingui/core";import{useManager as tT}from"@rango-dev/queue-manager-react";import{Divider as Mm,NotFound as oT,styled as nT}from"@rango-dev/ui";import Lt,{useState as rT}from"react";import{useNavigate as iT}from"react-router-dom";import{i18n as qC}from"@lingui/core";import{Divider as bm,GroupedVirtualizedList as QC,Skeleton as HC,SwapListItem as Im,Typography as GC}from"@rango-dev/ui";import $e,{useCallback as Em,useEffect as VC,useRef as XC,useState as jC}from"react";function km(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(km,"calculateGroupsSoFar");import{css as UC,darkTheme as zC,styled as pn}from"@rango-dev/ui";var Ra=UC(),wm=pn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),es=pn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ra}`]:{$$color:"$colors$neutral600",[`.${zC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=pn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),vm=pn("div",{gap:"$10",display:"flex",flexDirection:"column"}),xm=pn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var KC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=jC([]),l=XC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Em(km,[]),d=Em(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,KC),s(m(u,l.current)))},[e.length]);if(VC(()=>{r||d()},[r,d]),r){let f=[1,2];return $e.createElement($e.Fragment,null,[f,f].map((S,C)=>$e.createElement(es,{key:C},$e.createElement(ts,null,$e.createElement(HC,{variant:"text",width:60,size:"small"}),$e.createElement(bm,{size:16})),$e.createElement(bm,{size:4}),$e.createElement(vm,null,S.map((T,k)=>$e.createElement(Im,{isLoading:!0,key:k}))))))}return $e.createElement(QC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:f=>$e.createElement(es,null,$e.createElement(ts,null,$e.createElement(GC,{variant:"label",size:"medium",className:Ra()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return $e.createElement(wm,{key:S.requestId},$e.createElement(Im,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===qC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:ce(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(os,"HistoryGroupedList");import{CloseIcon as ZC,IconButton as JC,SearchIcon as RC,TextField as eT}from"@rango-dev/ui";import cn from"react";import{styled as YC}from"@rango-dev/ui";var Am=YC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return cn.createElement(eT,{prefix:cn.createElement(Am,null,cn.createElement(RC,{color:"black"})),suffix:!!s.length&&cn.createElement(JC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},cn.createElement(ZC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as Vr}from"@lingui/core";import Nm from"dayjs";var Wm=i(t=>{let e=new Map([["today",{title:Vr.t("Today"),swaps:[]}],["week",{title:Vr.t("This week"),swaps:[]}],["month",{title:Vr.t("This month"),swaps:[]}],["year",{title:Vr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Nm();t.forEach(p=>{let u=Number(p.creationTime),c=Nm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var aT=nT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),sT=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Lm(){let t=iT(),{manager:e,state:o}=tT(),n=Je(e).map(({swap:c})=>c),[r,a]=rT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||sT(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Xr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Mm,{size:"16"}),Lt.createElement(aT,null,u&&Lt.createElement(xm,null,Lt.createElement(Mm,{size:32}),Lt.createElement(oT,{title:Xr.t("No results found"),description:r?Xr.t("Try using different keywords"):""})),!u&&Lt.createElement(os,{list:p,onSwapClick:t,groupBy:Wm,isLoading:s}))))}i(Lm,"HistoryPage");import{i18n as IT}from"@lingui/core";import{Button as ET,Divider as Ym,styled as AT,WarningIcon as NT}from"@rango-dev/ui";import WT from"bignumber.js";import Ue,{useEffect as Zm,useState as Jm}from"react";import{useNavigate as MT}from"react-router-dom";import{i18n as dT}from"@lingui/core";import{Header as fT}from"@rango-dev/ui";import Xt,{useEffect as gT,useState as hT}from"react";import{i18n as pT}from"@lingui/core";import{Divider as rs,FullExpandedQuote as cT,Typography as uT}from"@rango-dev/ui";import ge from"react";import{styled as ns}from"@rango-dev/ui";var Bm=ns("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Pm=ns("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),_m=ns("div",{width:"146px"});import{i18n as un}from"@lingui/core";import{Select as lT}from"@rango-dev/ui";import $m from"react";function jr(t){let{updateQuotePartialState:e,sortStrategy:o}=K(),n=[{value:"SMART",label:un.t("Smart Routing")},{value:"FEE",label:un.t("Lowest Fee")},{value:"SPEED",label:un.t("Fastest Transfer")},{value:"NET_OUTPUT",label:un.t("Maximum Return")},{value:"PRICE",label:un.t("Maximum Output")}];return $m.createElement(_m,null,$m.createElement(lT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(jr,"SelectStrategy");var Dm=3;function mn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:d,sortStrategy:f,error:g}=K(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(w=>{if(!m||!d||!u)return null;let b={requestAmount:u.requestAmount,...w};return Co(b,{fromToken:m,toToken:d,userSlippage:v,findToken:y})},"getQuoteWarning"),x=g?.type===0||g?.type===1,L=u?.results?Jn(f,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement(Pm,null,ge.createElement(uT,{size:"xmedium",variant:"title"},pT.t("Sort by")),ge.createElement(jr,{container:T})),ge.createElement(rs,{size:"10"})),e&&Array.from({length:Dm},(w,b)=>ge.createElement(ge.Fragment,{key:b},s?ge.createElement(cT,{loading:!0}):ge.createElement(sn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Dm-1&&ge.createElement(rs,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?L.map((w,b)=>{let A=E(w),P=ja(w.swaps),Q=L.length-1===b;return ge.createElement(ge.Fragment,{key:w.requestId},ge.createElement(mo,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:P?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{P||c("warning",A),c("error",P?.options||null),o(I)},type:"list-item"}),!Q&&ge.createElement(rs,{size:16}))}):x&&ge.createElement(Bm,null,ge.createElement(Zo,{size:s?"large":"small",error:g,fetch:n}))))}i(mn,"Quotes");import{darkTheme as mT,styled as Fm}from"@rango-dev/ui";var Om=Fm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${mT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Um=Fm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var yT=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=hT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Fo();return gT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},yT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Xt.createElement(Om,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${hr()}`,id:Se.EXPANDED_BOX_ID},Xt.createElement(fT,{title:dT.t("Routes"),suffix:Xt.createElement(Xt.Fragment,null,Xt.createElement(jr,{container:m}),Xt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Xt.createElement(Um,null,Xt.createElement(mn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Fo(),onClickOnQuote:n,fullExpandedMode:c})))}i(is,"ExpandedQuotes");import{i18n as Xm}from"@lingui/core";import{SwapInput as jm}from"@rango-dev/ui";import dn from"react";import{ReverseIcon as TT}from"@rango-dev/ui";import ss from"react";import{keyframes as ST,styled as zm}from"@rango-dev/ui";var as=450,CT=ST({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),qm=zm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Qm=zm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${CT} ${as}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function ls(){let t=K.use.switchFromAndTo();return ss.createElement(qm,null,ss.createElement(Qm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},as),t()}},ss.createElement(TT,{size:12})))}i(ls,"SwitchFromAndToButton");import{styled as Hm}from"@rango-dev/ui";var Gm=Hm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Vm=Hm("div",{position:"relative"});function ps(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:d,outputUsdValue:f,selectedQuote:g}=K(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Pn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",v=!!s&&Ml(S,s.name),E=!Ui(g,c,m),x=!Ui(g,c,f),L=!m||!f||!f.gt(0)?null:Ke(m.toString(),f.toString());return dn.createElement(Gm,null,dn.createElement(Vm,null,dn.createElement(jm,{label:Xm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(m,4,4),realUsdValue:E?void 0:ce(m),error:E?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),dn.createElement(ls,null)),dn.createElement(jm,{sharpBottomStyle:!r&&(!!g||e),label:Xm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Ke(m,f),2,2),warningLevel:It(L??0),price:{value:N(d,6,6),usdValue:x?void 0:N(f,4,4),realValue:ce(d),realUsdValue:x?void 0:ce(f),error:x?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ps,"Inputs");import{useCallback as kT,useEffect as wT,useRef as vT,useState as xT}from"react";function Km(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Km,"useFetchAllQuotes");var bT=600;function Kr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Km(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:d,resetQuote:f,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=K(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:E,affiliateWallets:x,fetchStatus:L}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:P}=h(),[Q,I]=xT(!0),H=vT(u),Y=k??T,G=!l||!p||eo(l,p)||!zo(u),ee=i(Z=>{I(Z)},"resetState"),W=i(Z=>{let{fromToken:re,toToken:ke,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:fe,slippage:Oe,affiliateRef:vt,affiliatePercent:Ve,affiliateWallets:nt}=Z;if(Q||ee(!0),!G&&re&&ke){f();let rt=yp({fromToken:re,toToken:ke,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:fe,wallets:s,slippage:Oe,affiliateRef:vt,affiliatePercent:Ve,affiliateWallets:nt,enableCentralizedSwappers:a});Ql("experimentalRoute",r)&&(rt.experimental=!0),e(rt).then(dt=>{let ye=Jn(d,dt.results),M=Mp(m,ye,dt.requestAmount);I(!1),y("quotes",dt),C(M),Qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&Co(M,{fromToken:re,toToken:ke,userSlippage:Y,findToken:P});y("warning",V)}).catch(dt=>{let{error:ye}=Hr(dt);(ye?.type===0||ye?.type===1)&&f(),ye?.type!==2&&(y("error",ye),I(!1))})}},"fetch"),U=kT(yl(Z=>{W(Z)},bT),[G]);return wT(()=>{if(!t){I(!1);return}if(L!=="success")return;if(G){I(!1),(m||g||S)&&f();return}if(!zo(u)||c?.eq(0)){ee(!1),o();return}f(),ee(!0);let Z=W;return H.current&&H.current!=u&&(Z=U),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:b,slippage:Y,affiliateRef:E,affiliatePercent:v,affiliateWallets:x}),o},[L,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,w?.length,n,b.length,Y,E,v,JSON.stringify(x)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:b,slippage:Y,affiliateRef:E,affiliatePercent:v,affiliateWallets:x}),loading:Q}}i(Kr,"useSwapInput");var LT=AT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),BT=300;function Rm(){let t=MT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:d}=K(),[f,g]=Jm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Pr(),{fetch:y,loading:T}=Kr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:E}=te(),{isActiveTab:x}=ie(),[L,w]=Jm(!1),A=up({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),P=Fl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new WT(n).gt(0)&&!Ip(e,o),I=Q&&v==="success"&&T,pe=(!P||P&&p?.results.length)&&(l||s);Zm(()=>{c(),d("refetchQuote",!0)},[]),Zm(()=>{g(Q)},[Q]);let G=(r||s)&&!L?y:void 0,ee=i(U=>{P&&f?(g(!1),setTimeout(()=>{t(U)},BT)):t(U)},"onHandleNavigation"),W=i(U=>{r?.requestId!==U.requestId&&(w(!1),u(U))},"onClickOnQuote");return Ue.createElement(LT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(ET,{type:"primary",size:"large",disabled:A.disabled||!x,prefix:A.action==="confirm-warning"&&Ue.createElement(NT,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?ee(z.wallets):A.action==="confirm-warning"?w(!0):ee(z.confirmSwap)}},A.title),header:{onWallet:()=>{ee(z.wallets)},hasBackButton:!1,title:k.title||IT.t("Swap"),suffix:Ue.createElement(ao,{hidden:P?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(z.swaps),onClickSettings:()=>{ee(z.settings)}})}},Ue.createElement(me,null,Ue.createElement(ps,{fetchingQuote:I,fetchMetaStatus:v,isExpandable:P,onClickToken:U=>{ee(U==="from"?z.fromSwap:z.toSwap)}}),Ue.createElement(Ym,{size:"2"}),P?null:Ue.createElement(mo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),ee(z.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Ym,{size:"10"}),Ue.createElement(Ro,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:L,confirmationDisabled:!x,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),ee(z.confirmSwap)},onChangeSettings:()=>ee(z.settings)})):null)),P?Ue.createElement(is,{loading:I,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:f}):null)}i(Rm,"Home");import{i18n as ed}from"@lingui/core";import{Alert as PT,Divider as _T,List as $T,ListItemButton as DT,Radio as FT,RadioRoot as OT,Typography as UT}from"@rango-dev/ui";import Tt from"react";function jt(){let{setLanguage:t,language:e,config:o}=h(),n=Gl,r=o?.language||Qo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Qo),resetLanguage:()=>t(null)}}i(jt,"useLanguage");function td(){let{activeLanguage:t,changeLanguage:e,languages:o}=jt(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(UT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(FT,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:ed.t("Language")}},Tt.createElement(me,null,Tt.createElement(PT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(_T,{size:"8"}),Tt.createElement(OT,{value:t},Tt.createElement($T,{type:Tt.createElement(DT,{title:ed.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(td,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as GT,Checkbox as VT,Image as XT,ListItemButton as jT,NotFound as KT,Typography as YT}from"@rango-dev/ui";import De,{useState as ZT}from"react";import{Checkbox as QT,Skeleton as nd}from"@rango-dev/ui";import gn from"react";import{styled as cs}from"@rango-dev/ui";var fn=cs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),us=cs("div",{width:80,display:"flex",justifyContent:"flex-end"}),ms=cs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as zT,styled as qT}from"@rango-dev/ui";var od=qT(zT,{height:61});var HT=30;function ds(){return gn.createElement(fn,null,Array.from(Array(HT),(t,e)=>gn.createElement(od,{hasDivider:!0,key:e,start:gn.createElement(nd,{variant:"circular",width:35,height:35}),title:gn.createElement(nd,{variant:"text",size:"large",width:90}),end:gn.createElement(QT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=ZT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=On(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),d=m.length===m.filter(y=>y.selected).length,f=i(()=>{m.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:De.createElement(XT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement(VT,{checked:T,disabled:l}),title:De.createElement(YT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),De.createElement(le,{header:{title:Bt.t(t),suffix:De.createElement(us,null,De.createElement(GT,{variant:"ghost",size:"xsmall",onClick:f},d?Bt.t("Deselect all"):Bt.t("Select all")))}},De.createElement(me,{view:!0},De.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&De.createElement(ds,null),!C.length&&r?De.createElement(ms,null,De.createElement(KT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(fn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(jT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as JT}from"@lingui/core";import Yr from"react";import{useNavigate as RT}from"react-router-dom";function rd(){let t=RT(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=K(),{fetch:l,loading:p}=Kr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return Yr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:JT.t("Routes"),suffix:Yr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Yr.createElement(me,null,Yr.createElement(mn,{fetch:l,loading:p,onClickOnQuote:u})))}i(rd,"RoutesPage");import{i18n as md}from"@lingui/core";import{Divider as dd,getCategoriesCount as lk,SelectableCategoryList as pk}from"@rango-dev/ui";import Pt,{useState as fd}from"react";import{i18n as gs}from"@lingui/core";import{Divider as cd,Image as nk,ListItemButton as rk,NotFound as ik,Typography as ud}from"@rango-dev/ui";import Re,{useEffect as ak,useState as sk}from"react";var id=i((t,e,o)=>t.filter(n=>In(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as ek,styled as ad}from"@rango-dev/ui";var sd=ad("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Zr=ad(jo,{padding:0,margin:0,listStyle:"none",[`& ${ek}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as tk,Skeleton as ld}from"@rango-dev/ui";import Jr from"react";var ok=20;function pd(){return Jr.createElement(Zr,null,Array.from(Array(ok),t=>Jr.createElement(tk,{key:t,hasDivider:!0,start:Jr.createElement(ld,{variant:"circular",width:35,height:35}),title:Jr.createElement(ld,{variant:"text",size:"large",width:90})})))}i(pd,"LoadingBlockchainList");function hs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=sk(e),{fetchStatus:l}=h();ak(()=>{s([...id(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(cd,{size:32}),Re.createElement(ik,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):Re.createElement(Zr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(rk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(nk,{src:u.logo,size:30}),title:Re.createElement(ud,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Re.createElement(sd,null,Re.createElement(ud,{variant:"label",size:"large"},gs.t("Select Blockchain")),Re.createElement(cd,{size:4}),l==="loading"&&Re.createElement(pd,null),l==="success"&&p())}i(hs,"BlockchainList");function ys(t){let{type:e}=t,o=Ze(),[n,r]=fd(""),[a,s]=fd("ALL"),l=K.use.setToBlockchain(),p=K.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=lk(c)!==1;return Pt.createElement(le,{header:{title:md.t("Select Blockchain")}},Pt.createElement(me,{view:!0},d&&Pt.createElement(Pt.Fragment,null,Pt.createElement(pk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(dd,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:md.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Pt.createElement(dd,{size:16}),Pt.createElement(hs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ys,"SelectBlockchainPage");import{i18n as ni}from"@lingui/core";import{Divider as _d}from"@rango-dev/ui";import fo,{useState as Ik}from"react";import{useNavigate as Ek}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Rr,Divider as Sd,Image as Cd,Skeleton as fk,Tooltip as gk,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as mk}from"react";var gd=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ck),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(uk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function ck(t,e){let o=gd,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(ck,"sortByMostUsedBlockchains");function uk(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(uk,"generateSortByPreferredBlockchainsFor");function hd(t,e){return!!e.list.find(o=>o.name===t)}i(hd,"isInVisibleList");function Cs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();mk(()=>{if(e?.selected){let a=Ss(t,o,e);hd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ss(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Cs,"usePrepareBlockchainList");import{styled as dk}from"@rango-dev/ui";var yd=dk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var hk=12;function ws(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Cs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=K.use.resetToBlockchain(),u=K.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,d=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Sd,{size:12}),Ne.createElement(ks,{variant:"label",size:"large"},Ts.t("Select Blockchain")),Ne.createElement(Sd,{size:12}),Ne.createElement(yd,null,l==="loading"&&Array.from(Array(hk),f=>Ne.createElement(fk,{key:f,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Rr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts.t("All"))),s.list.map(f=>Ne.createElement(gk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},Ne.createElement(Rr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ne.createElement(Cd,{src:f.logo,size:30})))),m?Ne.createElement(Rr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(Cd,{src:s.more[0].logo,size:30})):null,d?Ne.createElement(Rr,{onClick:a,key:"more-blockchains"},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts._("More +{count}",{count:s.more.length}))):null)))}i(ws,"BlockchainsSection");import{i18n as Ls}from"@lingui/core";import{darkTheme as Wd,Divider as Po,ExternalLinkIcon as Ck,Image as Tk,ListItemButton as kk,NotFound as wk,PinIcon as vk,Skeleton as Md,Typography as oi,VirtualizedList as xk}from"@rango-dev/ui";import j,{useEffect as Ld,useState as Bd}from"react";import{Divider as Ad,ListItem as Sk,Skeleton as hn}from"@rango-dev/ui";import ct from"react";import{css as Bo,darkTheme as Td,ImageContainer as yk,styled as et,Typography as kd}from"@rango-dev/ui";var vs=Bo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),xs=Bo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),bs=Bo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Is=Bo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Td} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Es=Bo({}),As=Bo(),wd=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ns=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ei=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${xs}`]:{[`& .${Is}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Es}`]:{bottom:"-15px"},[`& .${vs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ws=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ms=et(kd,{}),vd=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${As}`]:{$$color:"$colors$neutral600",[`.${Td} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ti=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),ZO=et("div",{display:"flex",alignItems:"center"}),xd=et("div",{position:"relative",[`& ${yk}`]:{borderRadius:"$xm",overflow:"hidden"}}),bd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Id=et(kd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Ed=et("a",{"& svg:hover":{color:"$colors$info"}});function Nd(t){return ct.createElement(ei,null,Array.from(Array(t.size),e=>ct.createElement(Sk,{key:e,hasDivider:!0,start:ct.createElement(hn,{variant:"circular",width:35,height:35}),end:ct.createElement(ti,null,ct.createElement(hn,{variant:"text",size:"large",width:70}),ct.createElement(Ad,{size:4}),ct.createElement(hn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(hn,{variant:"text",size:"large",width:90}),ct.createElement(Ad,{size:4}),ct.createElement(hn,{variant:"text",size:"medium",width:90}))})))}i(Nd,"LoadingTokenList");var Bs=20,bk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return j.createElement("div",{className:xs()},o?j.createElement("div",{className:vs()},o):j.createElement(Ns,{className:bs()},j.createElement(oi,{variant:"title",size:"xmedium"},r.symbol),j.createElement(Po,{direction:"horizontal",size:4}),j.createElement(Ws,{css:a},j.createElement(Ms,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&j.createElement("div",{className:`${Is()} ${!o&&Es()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",j.createElement(Po,{size:4,direction:"horizontal"}),j.createElement(Ed,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},j.createElement(Ck,{size:12}))))},"renderDesc");function Pd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Bd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Bd(!0),{getBalanceFor:m,loading:d}=te(),{isTokenPinned:f}=h(),g=i(()=>{s(e.slice(0,a.length+Bs))},"loadNextPage");Ld(()=>{c(e.length>a.length)},[a.length]),Ld(()=>{s(e.slice(0,Bs))},[e.length]);let S=i(()=>!a.length&&o?j.createElement(j.Fragment,null,j.createElement(Po,{size:32}),j.createElement(wk,{title:Ls.t("No results found"),description:Ls.t("Try using different keywords")})):j.createElement(xk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Pn(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),E=ea(v.color,"main"),x={$$color:E.main250,[`.${Wd} &`]:{$$color:E.main850},backgroundColor:"$$color"},L={$$color:E.main600,[`.${Wd} &`]:{$$color:E.main200},color:"$$color"};return j.createElement("div",{style:{paddingRight:5}},j.createElement(kk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:j.createElement(xd,null,j.createElement(Tk,{src:y.image,size:30}),f(y,t.type)&&j.createElement(bd,null,j.createElement(vk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?j.createElement(Ns,null,j.createElement(oi,{variant:"title",size:"xmedium"},y.symbol),j.createElement(Po,{direction:"horizontal",size:4}),j.createElement(Ws,{css:x},j.createElement(Ms,{variant:"body",size:"xsmall",css:L},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?bk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:L,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:d?j.createElement(ti,null,j.createElement(Md,{variant:"text",size:"large",width:70}),j.createElement(Po,{size:4}),j.createElement(Md,{variant:"text",size:"medium",width:50})):T&&j.createElement(vd,null,j.createElement(Id,{variant:"title",size:"small"},T.amount),j.createElement("div",null),T.usdValue&&j.createElement(oi,{variant:"body",className:As(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return j.createElement(wd,null,j.createElement(oi,{variant:"label",size:"large"},Ls.t("Select Token")),j.createElement(Po,{size:4}),l==="loading"&&j.createElement(Nd,{size:Bs}),l==="success"&&j.createElement(ei,{as:"ul"},S()))}i(Pd,"TokenList");function Ps(t){let{type:e}=t,o=Ek(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=K(),c=te.use.getBalanceFor(),[m,d]=Ik(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:ni.t("Source"),destination:ni.t("Destination")};return fo.createElement(le,{header:{title:ni.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(ws,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:v=>{y(v)}}),fo.createElement(_d,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:ni.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),fo.createElement(_d,{size:16}),fo.createElement(Pd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let E=S.find(x=>v.blockchain===x.name);E&&y(E),n()}})))}i(Ps,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as Jk,Button as Rk,styled as ew}from"@rango-dev/ui";import go from"react";import{useInRouterContext as tw,useSearchParams as ow}from"react-router-dom";import{i18n as zd}from"@lingui/core";import{Divider as Mk,InfoIcon as Lk,TextField as Bk,Tooltip as Pk,Typography as qd}from"@rango-dev/ui";import ut from"react";import{Chip as Ak,styled as yn,TextField as Nk}from"@rango-dev/ui";var $d=yn("div",{paddingTop:"$5",padding:"$10 $5"}),Dd=yn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Nk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Fd=yn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ri=yn("div",{maxWidth:"280px",padding:"$10"}),Od=yn(Ak,{width:"61px",flexShrink:0});import{i18n as _s}from"@lingui/core";import{Typography as Wk}from"@rango-dev/ui";import Sn from"react";function Ud(){return Sn.createElement(ri,null,Sn.createElement(Wk,{variant:"label",size:"medium",color:"neutral700"},_s.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),Sn.createElement("br",null),Sn.createElement("br",null),Sn.createElement("b",null,_s.t("Warning")),":",_s.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Ud,"SlippageTooltipContent");function $s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ut.createElement($d,null,ut.createElement(Fd,null,ut.createElement(qd,{variant:"title",size:"xmedium"},zd.t("Slippage tolerance per swap")),ut.createElement(Mk,{direction:"horizontal",size:4}),ut.createElement(Pk,{container:B(),side:"top",sideOffset:4,content:ut.createElement(Ud,null)},ut.createElement(Lk,{color:"gray"}))),ut.createElement(Dd,null,Vl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Od,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(Bk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Yl&&s<=Kl?n(s):n(null)},suffix:o&&ut.createElement(qd,{variant:"body",size:"small"},"%"),placeholder:zd.t("Custom")})))}i($s,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Qd,BridgesIcon as _k,ChevronRightIcon as Ds,DarkModeIcon as Hd,Divider as ii,ExchangeIcon as $k,InfinityIcon as Dk,InfoIcon as Fk,LanguageIcon as Ok,LightModeIcon as Gd,List as Uk,ListItem as zk,ListItemButton as qk,Skeleton as Qk,styled as Hk,Switch as Gk,Tabs as Vk,Tooltip as Xk,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as jk}from"react-router-dom";var Kk=Hk("div",{width:"202px",height:"$40"}),Yk=[{id:"light",icon:O.createElement(Gd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(Hd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(Qd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Zk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Qd,{...e});case"dark":return O.createElement(Hd,{...e});default:return O.createElement(Gd,{...e})}},"getThemeIcon");function Vd(){let t=jk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=jt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=je("theme",c),d=je("liquiditySource",c),f=je("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=On(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),T=y.length,k=y.filter(H=>H.selected).length,v=C.filter(H=>H.type==="DEX"),E=v.length,x=v.filter(H=>H.selected).length,L=i((H,Y)=>{switch(l){case"loading":return O.createElement(Qk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(tt,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(tt,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,L(k,T),O.createElement(ii,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(_k,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,L(x,E),O.createElement(ii,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement($k,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},A={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Ok,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ii,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.languages)},P={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ii,{direction:"horizontal",size:4}),O.createElement(Xk,{side:"top",sideOffset:4,container:B(),content:O.createElement(ri,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(Fk,{color:"gray"}))),start:O.createElement(Dk,{color:"gray",size:16}),end:O.createElement(Gk,{checked:g}),onClick:S},Q={id:"theme-item",type:O.createElement(zk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(Kk,null,O.createElement(Vk,{container:B(),items:Yk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Zk(n)},I=d?[]:[w,b];return f||I.push(A),I.push(P),!e?.singleTheme&&!m&&I.push(Q),O.createElement(Uk,{type:O.createElement(qk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Vd,"SettingsLists");var nw=ew("div",{paddingLeft:"$8"});function Xd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=ow(),r=tw(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return go.createElement(le,{header:{title:Fs.t("Settings")}},go.createElement(me,null,o&&go.createElement(Jk,{type:"info",variant:"alarm",title:Fs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:go.createElement(nw,null,go.createElement(Rk,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),go.createElement($s,null),go.createElement(Vd,null)))}i(Xd,"SettingsPage");import{i18n as Hw}from"@lingui/core";import{cancelSwap as Gw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Vw}from"@rango-dev/queue-manager-react";import{Alert as Xw}from"@rango-dev/ui";import tl from"react";import{useParams as jw}from"react-router-dom";import{i18n as wt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as bw,getCurrentStep as Iw,getRelatedWalletOrNull as Ew}from"@rango-dev/queue-manager-rango-preset";import{Button as bf,CopyIcon as Aw,Divider as Nw,IconButton as Ww,QuoteCost as Mw,RangoExplorerIcon as Lw,StepDetails as Bw,Tooltip as Pw,Typography as ho,useCopyToClipboard as _w}from"@rango-dev/ui";import{useWallets as $w}from"@rango-dev/wallets-react";import If from"bignumber.js";import{PendingSwapNetworkStatus as fi}from"rango-types";import R,{useEffect as Ef,useRef as Dw,useState as Af}from"react";import{useNavigate as Fw}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var rw=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function jd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${rw[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(jd,"timeSince");function Kd(t){return t.finishTime?jd(parseInt(t.finishTime)):jd(parseInt(t.creationTime))}i(Kd,"getSwapDate");import{PendingSwapNetworkStatus as li}from"rango-types";import pi from"react";import{i18n as ai}from"@lingui/core";import{Button as Yd,Divider as Os,MessageBox as iw}from"@rango-dev/ui";import Yt from"react";var Zd=i(({onCancel:t,onClose:e})=>Yt.createElement(Yt.Fragment,null,Yt.createElement(Os,{size:20}),Yt.createElement(iw,{type:"error",title:ai.t("Cancel Swap"),description:ai.t("Are you sure you want to cancel this swap?")}),Yt.createElement(Os,{size:32}),Yt.createElement(Yd,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Cancel it")),Yt.createElement(Os,{size:12}),Yt.createElement(Yd,{variant:"outlined",type:"primary",size:"large",onClick:e},ai.t("No, Continue"))),"CancelContent");import{i18n as si}from"@lingui/core";import{Button as Jd,Divider as Us,MessageBox as aw,Typography as sw}from"@rango-dev/ui";import _t from"react";var Rd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Us,{size:20}),_t.createElement(aw,{type:"error",title:si.t("Delete Transaction"),description:si.t("Are you sure you want to delete this swap?")}),_t.createElement(Us,{size:32}),_t.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},si.t("Yes, Delete it")),_t.createElement(Us,{size:12}),_t.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(sw,{variant:"title",size:"medium",color:"primary"},si.t("No, Cancel")))),"DeleteContent");import{i18n as zs}from"@lingui/core";import{PendingSwapNetworkStatus as qs}from"rango-types";var Qs={[qs.WaitingForNetworkChange]:{type:"loading",title:zs.t("Change Network")},[qs.WaitingForConnectingWallet]:{type:"warning",title:zs.t("Connect Wallet")},[qs.NetworkChanged]:{type:"success",title:zs.t("Network Changed")}};import{debug as of}from"@rango-dev/logging-core";import{MessageBox as lw,Wallet as pw}from"@rango-dev/ui";import{useWallets as cw}from"@rango-dev/wallets-react";import _o,{useState as uw}from"react";import{styled as ef}from"@rango-dev/ui";var tf=ef("div",{display:"flex",justifyContent:"center"}),Oz=ef("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var nf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=cw(),[c,m]=uw(null),d=n?.walletType,f=d?Mi(u(d)):null,g=d?p(d):null;return _o.createElement(_o.Fragment,null,_o.createElement(lw,{type:e,title:o,description:r}),a&&!!d&&!!f&&!!g&&_o.createElement(tf,null,_o.createElement(pw,{container:B(),title:g.name,image:g.img,type:d,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:d,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(d).catch(C=>of(C))}})),_o.createElement(lo,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>of(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Hs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===li.WaitingForNetworkChange||e===li.WaitingForConnectingWallet||e===li.NetworkChanged;return pi.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&pi.createElement(nf,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==li.WaitingForNetworkChange}),e==="delete"&&pi.createElement(Rd,{onClose:o,onDelete:n}),e==="cancel"&&pi.createElement(Zd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Cn}from"@lingui/core";import{Button as Gs,Divider as ci,MessageBox as rf,TokenAmount as mw,Typography as Vs}from"@rango-dev/ui";import Le from"react";import{useNavigate as dw}from"react-router-dom";function Xs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:d}=t,f=dw();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(rf,{type:"success",title:Cn.t("Swap Successful")},Le.createElement(mw,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(ci,{size:12}),Le.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(rf,{type:"error",title:Cn.t("Transaction Failed"),description:m}),Le.createElement(ci,{size:32}),n==="success"&&Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Le.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Cn.t("Done"))),Le.createElement(ci,{size:12}),d&&Le.createElement(Le.Fragment,null,Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Cn.t("Diagnosis")),Le.createElement(ci,{size:12})),Le.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Cn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import xw from"react";import{i18n as Tw}from"@lingui/core";import{Alert as kf,IconButton as kw,LinkIcon as ww}from"@rango-dev/ui";import Zt,{Fragment as vw}from"react";import{Alert as hw,ChevronDownIcon as yw,IconButton as Sw}from"@rango-dev/ui";import Do,{useState as Cw}from"react";import{css as Tn,darkTheme as fw,styled as $t,Typography as gw}from"@rango-dev/ui";var af=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ui=$t("div",{width:"100%"}),sf=$t(jo,{padding:"$0 $20 $20 $20"}),kq=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),lf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),wq=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),$o=Tn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${fw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),pf=Tn({padding:"$5 0"}),mi=Tn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),cf=Tn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),uf=Tn({width:"100%",padding:"0 $20 $10"}),mf=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),df=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),di=$t(gw,{wordBreak:"break-word"});import{styled as js}from"@rango-dev/ui";var ff=js("div",{display:"flex",flexDirection:"column",gap:"$10"}),gf=js("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),hf=js("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function yf(t){let{message:e}=t,[o,n]=Cw(!1);return Do.createElement(hw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Do.createElement(Sw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Do.createElement(gf,{rotated:o},Do.createElement(yw,{size:12,color:"gray"}))),footer:Do.createElement(hf,{open:o},Do.createElement(di,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(yf,"FailedAlert");import{i18n as Sf}from"@lingui/core";import{Alert as Ks,Button as Cf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ys}from"rango-types";import kn from"react";function Tf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?kn.createElement(Ks,{type:"warning",title:n.shortMessage,action:kn.createElement(Cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Sf.t("Change"))}):r===Ys.WaitingForConnectingWallet?kn.createElement(Ks,{type:"warning",title:n.shortMessage,action:kn.createElement(Cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},Sf.t("Connect"))}):kn.createElement(Ks,{type:"warning",title:n.shortMessage})}i(Tf,"WarningAlert");function Zs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Vo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Zt.createElement(ff,null,a.explorerUrl?.map((m,d,f)=>{let g=d+m.url,S=d===f.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Zt.createElement(vw,{key:g},Zt.createElement(kf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Tw.t("View transaction"),action:m.url&&Zt.createElement(kw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Zt.createElement(ww,{size:12}))}))}),c&&Zt.createElement(kf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Zt.createElement(Tf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Zt.createElement(yf,{message:r}))}i(Zs,"SwapDetailsAlerts");var wf=2e3;var vf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Xe(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Xe(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Oo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Oo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:xw.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function xf(t){if(Vo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(xf,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=$w(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=K.use.retry(),d=ie.use.isActiveTab(),f=Fw(),[g,S]=_w(wf),C=Dw(null),[y,T]=Af(null),[k,v]=Af(null),E=i(()=>{r(),T(null)},"onCancel"),x=Ee.use.getNotifications(),L=Ee.use.removeNotification(),w=x(),b=Iw(e),A=b?.networkStatus;Ef(()=>{w.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):k&&v(null))},[e.status,e.requestId]),Ef(()=>{G?T(fi.WaitingForNetworkChange):A===fi.WaitingForConnectingWallet||A===fi.NetworkChanged?T(A):T(null)},[A]);let P=vp(e),Q=b?bw(e,b):null,I=b?Ew(e,b):null,H=Kd(e),Y=xp(e),pe=i(ye=>!!l(ye)?.mobileWallet,"isMobileWallet"),G=A===fi.WaitingForNetworkChange&&!!Q&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,Q)),ee=G?s.bind(null,I.walletType,Q):void 0,W=wp(e,b),U=vf({swap:e,switchNetwork:ee,showNetworkModal:A,setNetworkModal:T,message:W,blockchains:p,swappers:u}),Z=U.length,[re,ke]=[e.steps[0],e.steps[Z-1]],_=ke.outputAmount||ke.expectedOutputAmountHumanReadable,Fe=e.steps.reduce((ye,M)=>ye+parseFloat(M.feeInUsd||""),0),ot=e.steps.find(ye=>ye.diagnosisUrl)?.diagnosisUrl,fe=N(parseFloat(N(_,6,6))*(ke.toUsdPrice||0),4,4),Oe=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),vt=_?ce(new If(_).multipliedBy(ke.toUsdPrice||0)):"",Ve=ce(new If(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),nt=Ke(Oe,fe),rt=W.detailedMessage.content||W.shortMessage,dt=e.status==="success"?wt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:U[Z-1].to.token.displayName,conciseAddress:_n(e.wallets[U[Z-1].to.chain.displayName]?.address||""),chain:U[Z-1].to.chain.displayName}}):R.createElement(df,null,R.createElement(ho,{variant:"body",size:"medium",color:"neutral700",align:"center"},rt?"":wt.t("Transaction was not sent."),P?`${wt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),rt&&R.createElement(di,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:wt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(xo,null,R.createElement(bf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(ho,{size:"medium",variant:"label",color:"error"},wt.t("Delete"))))},footer:Y&&!k&&R.createElement(bf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let ye=Zn(e,p,c);m(ye),setTimeout(()=>{f("../../")},0)}},wt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(ui,null,R.createElement("div",{className:$o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t("Request ID")}:`),R.createElement("div",{className:mi()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Ww,{variant:"ghost",onClick:S.bind(null,o||"")},R.createElement(Aw,{size:16,color:"gray"})),R.createElement(mf,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(Pw,{container:B(),content:wt.t("View on Rango Explorer"),side:"bottom"},R.createElement(Lw,{size:20}))))),R.createElement("div",{className:$o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${wt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:cf()},R.createElement(Mw,{fee:N(String(Fe),2,2),time:Uo(An(e.steps)),steps:Z}),R.createElement(tn,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:U[0].from.token.displayName,image:U[0].from.token.image},chain:{image:U[0].from.chain.image,displayName:U[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:_},token:{displayName:U[Z-1].to.token.displayName,image:U[Z-1].to.token.image},chain:{image:U[Z-1].to.chain.image,displayName:U[Z-1].to.chain.displayName}},percentageChange:N(nt,2,2),warningLevel:It(nt??0)})),R.createElement("div",{className:uf()},R.createElement(ho,{variant:"title",size:"small"},wt.t("Swaps steps"))),R.createElement(Nw,{size:8}),R.createElement(sf,{ref:C},U.map((ye,M)=>{let V=M,X=xf(e.steps[M]),qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===U.length-1;return R.createElement(Bw,{key:V,step:ye,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:qe,tooltipContainer:B()})}))),R.createElement(Hs,{state:y,onClose:()=>T(null),onCancel:E,onDelete:n,message:W.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),R.createElement(Xs,{open:!!k,diagnosisUrl:ot,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:fe,realUsdValue:vt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:U[Z-1].to.token.displayName,image:U[Z-1].to.token.image},chain:{image:U[Z-1].to.chain.image},description:dt}))}i(Js,"SwapDetails");import{i18n as hi}from"@lingui/core";import{Divider as Mf,NotFound as Qw,Skeleton as vn,Typography as yi}from"@rango-dev/ui";import he from"react";import{i18n as Ow}from"@lingui/core";import{Divider as Uw,Skeleton as zw,Typography as qw}from"@rango-dev/ui";import Te from"react";import{css as mt,styled as Rs}from"@rango-dev/ui";var Nf=Rs("div",{width:"100%",height:"100%",padding:"$10 $20"}),wn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),gi=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),PQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),_Q=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),$Q=mt({paddingTop:"$15",display:"flex"}),DQ=mt({padding:"$15 $0"}),FQ=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),OQ=mt({paddingBottom:"$10"}),UQ=mt({display:"flex",justifyContent:"start",alignItems:"center"}),zQ=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),qQ=mt({display:"flex",alignItems:"center"}),QQ=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Wf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function el(){return Te.createElement(Nf,null,Te.createElement(rn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(qw,{variant:"title",size:"small"},Ow.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(wn,null,Te.createElement(Ct,{separator:!1}),Te.createElement("div",{className:Wf()},Te.createElement(Uw,{direction:"horizontal",size:20}),Te.createElement(zw,{height:22,variant:"rectangular"}))),Te.createElement(gi,null),Te.createElement(wn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(gi,null),Te.createElement(wn,null,Te.createElement(Ct,{separator:!1})),Te.createElement(gi,null),Te.createElement(wn,null,Te.createElement(Ct,{separator:!1}))))}i(el,"LoadingSwapDetails");function Lf(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(le,{header:{title:hi.t("Swap and Bridge"),suffix:he.createElement(xo,null)}},o&&he.createElement(af,null,he.createElement(ui,null,he.createElement("div",{className:$o()},he.createElement(yi,{variant:"label",size:"large",color:"neutral700"},`${hi.t("Request ID")}:`),he.createElement("div",{className:mi()},he.createElement(yi,{variant:"label",size:"small",color:"neutral700"},he.createElement(vn,{width:60,height:10,variant:"rounded"})),he.createElement(Mf,{direction:"horizontal",size:4}),he.createElement(vn,{width:16,height:16,variant:"rectangular"}),he.createElement(Mf,{direction:"horizontal",size:4}),he.createElement(vn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:$o()},he.createElement(yi,{className:pf(),variant:"label",size:"large",color:"neutral700"},he.createElement(vn,{width:60,height:10,variant:"rounded"})),he.createElement(yi,{variant:"label",size:"small",color:"neutral700"},he.createElement(vn,{width:60,height:10,variant:"rounded"})))),he.createElement(el,null)),!o&&he.createElement(lf,null,he.createElement(Qw,{title:hi.t("Not found"),description:hi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Lf,"SwapDetailsPlaceholder");function Bf(){let{manager:t,state:e}=Vw(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=jw(),a=Ze(),{fetchStatus:s}=h();if(!r)return tl.createElement(Xw,{containerStyles:{margin:"20px"},type:"error",title:Hw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&Gw(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),m=p?.swap;return!m||l?tl.createElement(Lf,{requestId:r,showSkeleton:l}):tl.createElement(Js,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(Bf,"SwapDetailsPage");function Pf(){return Bp(),Ki(),Kw([{path:z.home,element:ze.createElement(Rm,null)},{path:z.routes,element:ze.createElement(rd,null)},{path:z.fromSwap,children:[{index:!0,element:ze.createElement(Ps,{type:"source"})},{path:z.blockchains,element:ze.createElement(ys,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:ze.createElement(Ps,{type:"destination"})},{path:z.blockchains,element:ze.createElement(ys,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:ze.createElement(Xd,null)},{path:z.languages,element:ze.createElement(td,null)},{path:z.exchanges,element:ze.createElement(fs,{sourceType:"Exchanges"})},{path:z.bridges,element:ze.createElement(fs,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:ze.createElement(Lm,null)},{path:z.swapDetails,element:ze.createElement(Bf,null)}]},{path:z.wallets,element:ze.createElement(Qc,null)},{path:z.confirmSwap,element:ze.createElement(Tm,null)}])}i(Pf,"AppRoutes");import{useQueueManager as iv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as av}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sv}from"rango-sdk";import{useContext as lv,useEffect as pv,useState as zf}from"react";import{globalCss as Yw}from"@rango-dev/ui";var _f=i(()=>Yw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function $f(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i($f,"useFetchApiConfig");import{useWallets as Zw}from"@rango-dev/wallets-react";import{useEffect as Jw,useRef as Rw}from"react";function Df(){let{connect:t,state:e}=Zw(),o=Rw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Jw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Df,"useForceAutoConnect");import{isApprovalTX as ev,MainEvents as Si,RouteEventType as Ff,StepEventType as Of,StepExecutionEventStatus as tv,useEvents as ov}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Uf}from"react";function ol(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=Ee.use.setNotification(),{findToken:n}=h(),r=ov();Uf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Of.TX_EXECUTION&&l.status===tv.TX_SENT&&!ev(p)||l.type===Of.SUCCEEDED){let m=t.find(f=>f.chain===p?.fromBlockchain),d=p?.fromBlockchain!==p?.toBlockchain&&t.find(f=>f.chain===p?.toBlockchain);m&&e([m],n),d&&e([d],n)}o(l,u)},"handleStepEvent");return r.on(Si.StepEvent,a),()=>r.off(Si.StepEvent,a)},[r,t.length]),Uf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Ff.FAILED||l.type===Ff.SUCCEEDED)&&o(l,p)},"handleRouteEvent");return r.on(Si.RouteEvent,a),()=>r.off(Si.RouteEvent,a)},[r,t.length])}i(ol,"useSubscribeToWidgetEvents");import{useManager as nv}from"@rango-dev/queue-manager-react";import{useEffect as rv}from"react";function nl(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=nv();rv(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Je(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(nl,"useSyncNotifications");function rl(){Df(),_f(),ol(),nl();let t=h().blockchains(),{canSwitchNetworkTo:e}=vr(),[o,n]=zf(""),[r,a]=zf(),s=lv(zn),l=t.filter(sv),{fetchApiConfig:p}=$f();iv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),pv(()=>(to.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===av(o)?.[0]&&n("")}),p().catch(console.log),to.destroy),[])}i(rl,"useBootstrap");import{styled as cv}from"@rango-dev/ui";var qf=cv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ci(){rl();let{config:t}=h(),{activeTheme:e}=pr(t?.theme||{}),{activeLanguage:o}=jt();return il.createElement(uv,{language:o},il.createElement(qf,{id:"swap-container",className:e()},il.createElement(Pf,null)))}i(Ci,"Main");import{setSolanaSignerConfig as Mv}from"@rango-dev/signer-solana";import sl,{useEffect as Xf,useMemo as Lv}from"react";import{useState as mv}from"react";var dv=i(()=>{let[t,e]=mv(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Cl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Qf=dv;import{checkWaitingForNetworkChange as fv,makeQueueDefinition as gv}from"@rango-dev/queue-manager-rango-preset";import{Provider as hv}from"@rango-dev/queue-manager-react";import{useWallets as yv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Sv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Cv}from"rango-types";import Tv,{useMemo as kv}from"react";function wv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=yv(),l=kv(()=>gv({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL")}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(Cv),S=i(k=>{let{supportedChains:v}=s(k);return Mn(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:Sv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=ie.use.isActiveTab();return Tv.createElement(hv,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{fv(k)},isPaused:!T},t.children)}i(wv,"QueueManager");var Hf=wv;import{useManager as Ev}from"@rango-dev/queue-manager-react";import Av,{createContext as Nv,useContext as Wv}from"react";import{cancelSwap as vv,getCurrentBlockchainOfOrNull as xv,getCurrentStep as bv,getRelatedWalletOrNull as Iv}from"@rango-dev/queue-manager-rango-preset";var Ti=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Zn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&vv(o)}getCurrentStepInfo(e){let o=bv(e);return{step:o,wallet:o?Iv(e,o):null,network:o?xv(e,o):null}}};var Gf=Nv(void 0);function al(t){let{manager:e}=Ev(),o=ie.use.isActiveTab(),n=K.use.retry(),{findToken:r}=h(),a=new Ti(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=El(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),d=h().swappers(),f=h().fetchStatus,g=jt().resetLanguage,S=Ee().getNotifications(),C={isActiveTab:o,setCurrentTabAsActive:to.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:y=>u(y,r)},meta:{blockchains:c,tokens:m,swappers:d,loadingStatus:f},resetLanguage:g,notifications:{list:S}};return Av.createElement(Gf.Provider,{value:C},t.children)}i(al,"WidgetInfo");function Vf(){let t=Wv(Gf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Vf,"useWidget");function ki(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Qf();return Xf(()=>{n&&r(n)},[n]),Lv(()=>{_l({API_KEY:o?.apiKey||xn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),Xf(()=>{t.config?.signers?.customSolanaRPC&&Mv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),sl.createElement(qn,{config:o,onUpdateState:e},sl.createElement(Hf,{apiKey:o.apiKey},sl.createElement(al,null,t.children)))}i(ki,"WidgetProvider");function jf(t){let e=t.config?.externalWallets;return wi.createElement(ip,null,e?wi.createElement(Ci,null):wi.createElement(ki,{config:t.config??_i},wi.createElement(Ci,null)))}i(jf,"Widget");export{JV as EventSeverity,RV as MainEvents,p2 as Networks,m2 as PendingSwapNetworkStatus,e2 as RouteEventType,vi as SUPPORTED_FONTS,t2 as StepEventType,o2 as StepExecutionBlockedEventStatus,n2 as StepExecutionEventStatus,Se as UI_ID,s2 as WalletEvents,c2 as WalletTypes,jf as Widget,ki as WidgetProvider,qn as WidgetWallets,ra as customizedThemeTokens,a2 as readAccountAddress,vr as useWallets,Vf as useWidget,r2 as useWidgetEvents};
1
+ var Uf=Object.defineProperty;var i=(t,e)=>Uf(t,"name",{value:e,configurable:!0});import{EventSeverity as KV,RouteEventType as jV,StepEventType as YV,StepExecutionBlockedEventStatus as ZV,StepExecutionEventStatus as JV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as e2,useWallets as Cr,Events as t2}from"@rango-dev/wallets-react";import{Networks as n2,WalletTypes as r2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as a2}from"rango-types";import{UI_ID as Qf}from"@rango-dev/ui";var kn="c6381a79-2817-4602-83bf-6a641a409e32",al="https://api.rango.exchange",sl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Qf};var ll="Roboto",Ci=[{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 _g}from"@rango-dev/wallets-react";import{isEvmBlockchain as $g}from"rango-sdk";import Fn,{createContext as Dg,useEffect as op,useMemo as Fg,useRef as np}from"react";import{useEffect as lg}from"react";import{create as ig}from"zustand";import{subscribeWithSelector as ag}from"zustand/middleware";import zf from"mitt";var Te=zf(),qf={on:Te.on,off:Te.off};import{RangoClient as ng}from"rango-sdk";import{BlockchainCategories as Yf,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Zf}from"@rango-dev/wallets-react";import{detectInstallLink as Jf,getCosmosExperimentalChainInfo as Rf,isEvmAddress as eg,KEPLR_COMPATIBLE_WALLETS as Gw,Networks as Tl}from"@rango-dev/wallets-shared";import Ei from"bignumber.js";import{isCosmosBlockchain as tg}from"rango-types";import Hf from"bignumber.js";var Le=new Hf(0);import{WalletTypes as Gf}from"@rango-dev/wallets-shared";var pl=[Gf.LEAP];import{BlockchainCategories as Ti,WalletState as jf}from"@rango-dev/ui";import{TransactionType as vn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function wi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wi,"areEqual");function gl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(gl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function ml(t,e){return t.toLowerCase()===e.toLowerCase()}i(ml,"exactText");function dl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(dl,"startWithText");var P=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),$o=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function fl(t,e,o){let n=!!e&&ml(e,t),r=!!o&&ml(o,t);return n!==r?n?-1:1:0}i(fl,"compareExactMatchText");function ki(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(ki,"compareContainsText");function vi(t,e,o){let n=!!e&&dl(e,t),r=!!o&&dl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(vi,"compareStartWithText");function hl(t,e,o){if(!o)return 0;let n=fl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=fl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=vi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ki(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=vi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ki(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=vi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ki(o,t.address,e.address);if(r!==0)return r}return 0}i(hl,"compareWithSearchFor");var wn=i((t,e)=>{switch(e){case Ti.ALL:return!0;case Ti.UTXO:return t===vn.TRANSFER;case Ti.OTHER:return t!==vn.TRANSFER&&t!==vn.COSMOS&&t!==vn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),yl=i(t=>Ci.find(o=>o.value===t)?.url,"getFontUrlByName");function xn(t,e){let o=!!t.find(n=>n.state===jf.CONNECTED);return e===!1&&o}i(xn,"isSingleWalletActive");function bn(t,e){return e.find(o=>o.name===t)?.displayName}i(bn,"getBlockchainDisplayNameFor");function Ve(t,e){return e.find(o=>o.name===t)?.shortName}i(Ve,"getBlockchainShortNameFor");function Sl(t,e){return e.find(o=>o.name===t)?.logo}i(Sl,"getBlockchainImage");function Do(t,e){return e.find(o=>o.id===t)?.title}i(Do,"getSwapperDisplayName");function xi(t,e){return e.find(o=>o.name===t)??null}i(xi,"findBlockchain");function bi(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(bi,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as Cl}from"bignumber.js";var Fo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Cl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Cl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var En=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"),Oo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Ii(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(Ii,"mapStatusToWalletState");function kl(t,e,o,n){return o.filter(r=>!pl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m}=e(r),f=ho(m.map(g=>g.type)),d=Ii(t(r));return{title:a,image:s,link:Jf(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:f}})}i(kl,"mapWalletTypesToWalletInfo");function Nn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Nn,"walletAndSupportedChainsNames");function vl(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}=Zf(p),m=l.length>0,f=l.includes(c),d=c===Tl.Unknown;if(m&&!f&&!d)return;let T=c===Tl.Unknown&&eg(u);if(d&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(c,u)}),a}i(vl,"prepareAccountsForWalletStore");function Zt(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(Zt,"getQuoteWallets");function Wn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Wn,"isAccountAndWalletMatched");function wl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ei(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(wl,"makeBalanceFor");function xl(t){return{...t,loading:!1,error:!0}}i(xl,"resetConnectedWalletState");var bl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ei(a?.amount||Le).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Le)||Le).toString();return og(r)},"calculateWalletUsdValue");function og(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(og,"numberWithThousandSeparator");var Mn=i((t,e)=>{let o=Rf(Object.entries(t).map(([,n])=>n).filter(tg));return o&&o[e]?.experimental},"isExperimentalChain");function Ln(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Ln,"formatBalance");function El(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(El,"compareTokenBalance");function Jt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Jt,"areTokensEqual");function Il(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(Il,"sortWalletsBasedOnConnectionState");function Bn(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Bn,"getConciseAddress");function Al({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Al,"getAddress");function Pn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ei(o?.usdPrice??Le).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(Pn,"makeTokensBalance");var Nl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Wl(t){return t.map(e=>e.state).join("-")}i(Wl,"hashWalletsState");function Ml(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(Ml,"filterBlockchainsByWalletTypes");function Ll(t,e){return e===Yf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(Ll,"filterWalletsByCategory");var Ai={API_KEY:kn};function bt(t){return Ai[t]||""}i(bt,"getConfig");function Bl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ai=e,Ai}i(Bl,"initConfig");var Pl=20,_l=25,Ni="theme-widget",Uo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Jt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Jt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Wi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),$l=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var _n,Ft=i(()=>_n||(_n=new ng(bt("API_KEY"),bt("BASE_URL")),_n),"httpService");import{WidgetEvents as Dl}from"@rango-dev/queue-manager-rango-preset";var Mi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Mi||{}),Li=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Li||{}),Qo=(r=>(r[r.RouteEvent=Dl.RouteEvent]="RouteEvent",r[r.StepEvent=Dl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Qo||{});var rg=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=rg;var te=Ot(ig()(ag((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{Te.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)&&Te.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:Pn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Wn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(T=>Wn(T,f)),g=p.find(T=>T.address===f.address&&T.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:wl(g,n),loading:!1}:f});return{loading:!1,balances:Pn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Wn(m,c))?xl(c):c);return{loading:!1,balances:Pn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as sg}from"@rango-dev/provider-all";function $n(t,e){let o=sg({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($n,"matchAndGenerateProviders");function Fl(t,e){return $n(t,e).map(r=>r.config.type)}i(Fl,"configWalletsToWalletName");function Ol(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Ol,"hashProviders");function Bi(t,e){let o=te.use.clearConnectedWallet(),n=$n(t,e);return lg(()=>{o(),n=$n(t,e)},[Ol(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Bi,"useWalletProviders");import Ag,{createContext as Ng,useContext as Wg,useEffect as Mg,useRef as Lg}from"react";import{create as Eg}from"zustand";import{persist as Ig}from"zustand/middleware";var Pi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},pg={clientUrl:void 0},cg={liquiditySources:void 0},Ul=i((t,e,o)=>({config:{...Pi,...t},iframe:pg,campaignMode:cg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Dn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return ho(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(Dn,"getUniqueSwappersGroups");function Ql(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ql,"sortLiquiditySourcesByGroupTitle");function Xe(t,e){return e?.[t]==="hidden"}i(Xe,"isFeatureHidden");function zl(t,e){return e?.[t]==="enabled"}i(zl,"isFeatureEnabled");var ql=i((t,e)=>({_blockchainsMapByName:new Map,_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&&Uo(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 f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let S=o.getBalanceFor(c),k=o.getBalanceFor(m),w=El(S,k);if(w!==0)return w}let g=a.get(c.blockchain),T=a.get(m.blockchain),C=bi(c,g),y=bi(m,T);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let S=hl(c,m,o.searchFor);if(S)return S}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&T?g.sort-T.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=>Jt(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,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Dt(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 ug,English as mg,Finland as dg,French as fg,German as gg,Greece as hg,Italian as yg,Japanese as Sg,Netherlands as Cg,Poland as Tg,Portuguese as kg,Russian as vg,Spanish as wg,Swedish as xg,Ukrainian as bg}from"@rango-dev/ui";var Hl=[{title:"English",label:"English",local:"en",SVGFlag:mg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:wg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:fg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Sg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:kg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:ug},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:vg},{title:"German",label:"Deutsch",local:"de",SVGFlag:gg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:bg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:xg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:dg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Cg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:hg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:yg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Tg}],yo="en";var Gl=[.5,1,3],Vl=1,Xl=5,Kl=100,jl=0;var Yl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Vl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=ho(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Xe("theme",n),s=Xe("language",n),l=Xe("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||yo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||yo}})}}),"createSettingsSlice");function Zl(t){return Eg()(Ig((...e)=>({...ql(...e),...Yl(...e),...Ul(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(Zl,"createAppStore");var Jl=Ng(null);function h(){let t=Wg(Jl);if(Mg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Rl(t){let e=Lg();return e.current||(e.current=Zl(t.config)),Ag.createElement(Jl.Provider,{value:e.current},t.children)}i(Rl,"AppStoreProvider");import{create as Pg}from"zustand";var ep="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(ep),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(Pg()((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})}}))),Rt=new zo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var On=Dg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Og(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}=Bi(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=np(),f=np();op(()=>{n().catch(console.log)},[]),op(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter($g).map(y=>y.name),g=i((y,S,k,w,A)=>{if(S===$i.ACCOUNTS)if(k){let L=Nn(A.supportedBlockchains),E=vl(y,k,d,L,A.isContractWallet);E.length&&u(E,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(S===$i.ACCOUNTS&&w.connected){let L=`${y}-${w.network}-${k}`;w.connected&&(m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(S===$i.NETWORK&&w.network){let L=`${y}-${w.network}`;m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,S,k,w,A)},"onUpdateState"),T=ie.use.isActiveTab(),C=Fg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Fn.createElement(On.Provider,{value:C},Fn.createElement(_g,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!T},t.children))}i(Og,"Main");function Un(t){let{config:e,...o}=t;return Fn.createElement(Rl,{config:e},Fn.createElement(Og,{...o,config:e}))}i(Un,"WidgetWallets");import Si from"react";import Ug,{Fragment as Qg}from"react";import{MemoryRouter as zg,useInRouterContext as qg}from"react-router";function rp({children:t}){let o=qg()?Qg:zg;return Ug.createElement(o,null,t)}i(rp,"AppRouter");import{I18nManager as Yv}from"@rango-dev/ui";import nl from"react";import Ue from"react";import{useRoutes as $v}from"react-router-dom";var z={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as To,useRef as Zn}from"react";import It from"bignumber.js";import{create as Vg}from"zustand";import{subscribeWithSelector as Xg}from"zustand/middleware";import{getLastSuccessfulStep as Gg}from"@rango-dev/queue-manager-rango-preset";import EE from"bignumber.js";function Di(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(Di,"getFeeLabel");var Fi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ip=30;import{i18n as rt}from"@lingui/core";import{RouteEventType as cE}from"@rango-dev/queue-manager-rango-preset";import Be from"bignumber.js";import{PendingSwapNetworkStatus as qn}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 We}from"@lingui/core";var oe=i(()=>({genericServerError:We.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:We.t("Please reset your liquidity sources."),description:We.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:We.t("No Routes Found."),description:We.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:We.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:We.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:We.t("High Price Impact"),title:We.t("Price impact is too high!"),description:We.t("The price impact is significantly higher than the allowed amount."),confirmMessage:We.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:We.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:We.t("USD Price Unknown"),title:We.t("USD Price Unknown, Cannot calculate Price Impact."),description:We.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:We.t("Confirm USD Price Unknown")}}),"errorMessages");function ap(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(ap,"getQuoteErrorMessage");import{i18n as zn}from"@lingui/core";var eo=i(()=>({connectWallet:zn.t("Connect Wallet"),swap:zn.t("Swap"),swapAnyway:zn.t("Swap anyway"),ethWarning:zn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function sp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Be(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Be(1e3)))??!1}i(sp,"hasHighValueLoss");function lp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Be(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Be(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(lp,"hasLimitError");function pp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Be(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Be(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 Be(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Be(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=rt.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=rt.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=rt.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=rt.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(pp,"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:eo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:eo().swap,action:"confirm-swap",disabled:!0}:s?{title:eo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:eo().ethWarning,action:"confirm-warning",disabled:!1}:{title:eo().swap,action:"confirm-swap",disabled:!1}:{title:eo().connectWallet,action:"connect-wallet",disabled:!1}}i(cp,"getSwapButtonState");function Oi(t,e,o){return!((!o||o.lte(Le))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Oi,"canComputePriceImpact");function Ui(t,e){let o=Le;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 Be(r.amount).multipliedBy(a||0))}return o}i(Ui,"getUsdFeeOfStep");function Hn(t,e){return t.reduce((o,n)=>o.plus(Ui(n,e)),Le)}i(Hn,"getTotalFeeInUsd");function Qi(t){let e=Le;return e=e.plus(new Be(t.amount).multipliedBy(t.price||0)),e}i(Qi,"getUsdFee");function up(t){return t.reduce((e,o)=>e.plus(Qi(o)),Le)}i(up,"getTotalFeesInUsd");function mp(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(mp,"getFeesGroup");function dp(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(dp,"checkSlippageErrors");function fp(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(fp,"checkSlippageWarnings");function Gn(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(Gn,"getMinRequiredSlippage");function gp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gp,"hasProperSlippage");function hp(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,T=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.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:T??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(hp,"createQuoteRequestBody");function yp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(yp,"getWalletsForNewSwap");function So(t){return t?.outputAmount||null}i(So,"getQuoteOutputAmount");function Sp(t,e){return new Be(e).div(new Be(t)).minus(1).multipliedBy(100).toNumber()}i(Sp,"getPercentageChange");function Cp(t,e){let o=So(t),n=So(e);if(!o||!n)return!1;let r=Ke(o,n);return r?r<=-1:!0}i(Cp,"isOutputAmountChangedALot");function Tp(t,e,o){let n=t.validationStatus,r=Zt({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=M(new Be(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Be(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=rt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=rt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=rt.t(" for input and network fee")),rt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Ve(s.asset.blockchain,o)}})})}i(Tp,"generateBalanceWarnings");function Vn(t,e){return(t?new Be(t):Le).multipliedBy(e||0)}i(Vn,"calcOutputUsdValue");function qo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==qn.NetworkChanged}i(qo,"isNetworkStatusInWarningState");function kp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),qo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case qn.WaitingForConnectingWallet:n=n||rt.t("Waiting for connecting wallet");break;case qn.WaitingForQueue:n=n||rt.t("Waiting for other running tasks to be finished");break;case qn.WaitingForNetworkChange:n=n||rt.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(kp,"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 wp(t){return t.status==="failed"}i(wp,"shouldRetrySwap");function xp(t,e,o,n,r,a){if(!n||t)return!0;let s=Zt({filter:"all",quote:n}),l=Zt({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?Qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(xp,"isConfirmSwapDisabled");function bp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(bp,"isTokensIdentical");function Kn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Kn,"getQuoteToTokenUsdPrice");function zi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(zi,"isNumberOfSwapsChanged");function qi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!wi(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!wi(o,n)}i(Hi,"isQuoteInternalCoinsUpdated");function Ap(t,e){return zi(t,e)||qi(t,e)||Hi(t,e)}i(Ap,"isQuoteChanged");function Ep(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ep,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function jn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Gg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=xi(a?a.toBlockchain:n.fromBlockchain,e),p=xi(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(jn,"createRetryQuote");function Co(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=to(o,t.requestAmount),l=to(n,t?.outputAmount??"");if(t&&s&&l){let c=Ke(s.toString(),l.toString());if(!!c&&sp(s,c)){let f=Hn(t?.swaps,r),d=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Gn(t.swaps),u=a>Xl;if(gp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:fp(t,a),minRequiredSlippage:p};return null}i(Co,"generateQuoteWarnings");function Ke(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Sp(t.toString(),e.toString());return n&&n<0?n:null}i(Ke,"getPriceImpact");var Np=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Yn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Wp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Mp=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 to=i((t,e)=>t?.usdPrice?new It(e||Le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(Vg()(Xg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Le;return Oo(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Vn(e?.outputAmount,Kn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new It(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:to(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new It(0),outputUsdValue:new It(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:to(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:to(n??null,s),outputUsdValue:new It(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?to(e.toToken,e.outputAmount?.toString()||""):new It(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Lp=j.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.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&&Te.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 Bp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:T,setAffiliatePercent:C,setAffiliateWallets:y}=h(),S=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,A=c?.to?.blockchains,L=Zn(void 0),E=Zn(void 0),v=Zn(void 0),b=Zn(void 0);To(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),To(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.from?.blockchain),B=c?.from?.token,U=B&&g(B);(x||!x&&v.current)&&n(x??null),U?a({token:U,meta:{blockchains:f,tokens:d}}):!U&&L.current&&a({token:null}),v.current=c?.from?.blockchain,L.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),To(()=>{Uo(s,S)&&a({token:null}),Wi(p,k)&&n(null)},[S,k]),To(()=>{Uo(l,w)&&a({token:null}),Wi(u,A)&&o(null)},[w,A]),To(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.to?.blockchain),B=c?.to?.token,U=B&&g(B);(x||!x&&b.current)&&o(x??null),U?e({token:U,meta:{blockchains:f,tokens:d}}):!U&&E.current&&e({token:null}),b.current=c?.to?.blockchain,E.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),To(()=>{T(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 Kg}from"react";import{useInRouterContext as jg,useLocation as Yg,useSearchParams as Zg}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 Ki(){let t=Yg(),[e,o]=Zg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=j(),d=h().fetchStatus,g=h().blockchains(),T=h().tokens(),C=jg(),{updateIframe:y,updateCampaignMode:S}=h(),k=h().isInCampaignMode(),w=Kg(),{findToken:A}=h(),L=i(()=>{let v={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(v[G]=ee);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),B=e.get("fromToken"),U=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:x,fromToken:B,toBlockchain:U,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:v}},"getUrlSearchParams"),E=i(v=>{for(let b in v)v[b]||delete v[b];o(v,{replace:!0})},"updateUrlSearchParams");Xi(()=>{let{autoConnect:v,clientUrl:b,utmQueryParams:x}=L();C&&d==="success"&&E({fromBlockchain:n?.name,fromToken:Vi(a),toBlockchain:r?.name,toToken:Vi(s),fromAmount:l,autoConnect:v??void 0,clientUrl:b??void 0,liquiditySources:k?w.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),Xi(()=>{if(!C)return;let v=L();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&f(v.fromAmount),d==="success"){let b=g.find(I=>I.name===v.fromBlockchain),x=v.fromToken&&b?A(Gi(v.fromToken,b)):void 0,B=g.find(I=>I.name===v.toBlockchain),U=v.toToken&&B?A(Gi(v.toToken,B)):void 0;b&&(p(b),x&&c({token:x,meta:{blockchains:g,tokens:T}})),B&&(u(B),U&&m({token:U,meta:{blockchains:g,tokens:T}}))}},[d]),Xi(()=>{let{clientUrl:v,liquiditySources:b}=L();y("clientUrl",v||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(Ki,"useSyncUrlAndStore");import{i18n as Ka}from"@lingui/core";import{useManager as gC}from"@rango-dev/queue-manager-react";import{Alert as am,Button as hC,css as Ya,Divider as ja,IconButton as sm,styled as yC,Typography as SC,WalletIcon as CC}from"@rango-dev/ui";import xe,{useEffect as Qr,useLayoutEffect as TC,useRef as kC,useState as rn}from"react";import{useNavigate as vC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Ia,BalanceErrors as Ry,Button as Fc,ChevronDownIcon as eS,ChevronLeftIcon as tS,CloseIcon as oS,Divider as Xo,IconButton as Oc,MessageBox as nS,PasteIcon as rS,Typography as Tr,WalletIcon as iS}from"@rango-dev/ui";import $,{useCallback as aS,useEffect as Uc,useMemo as sS,useRef as lS,useState as lo}from"react";import{useNavigate as pS}from"react-router-dom";import{i18n as Jn}from"@lingui/core";function Rn(t){switch(t.type){case 0:return Jn.t("Route has been updated.");case 3:return Jn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Jn.t("Route swappers has been updated.");case 2:return Jn.t("Route internal coins has been updated.");default:return""}}i(Rn,"getQuoteUpdateWarningMessage");import{Modal as Rg}from"@rango-dev/ui";import eh from"react";function ne(t){let{watermark:e}=ie();return eh.createElement(Rg,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import nr,{useRef as nh}from"react";import*as ko from"@radix-ui/react-collapsible";import{keyframes as _p,styled as er}from"@rango-dev/ui";var ji=300,th=_p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),oh=_p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),$p=er(ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Yi=er(ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),tr=er(ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${th} ${ji}ms ease-out`},false:{animation:`${oh} ${ji}ms ease-out`}}}}),or=er("div",{transition:`all ${ji}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function rr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=nh(null);return nr.createElement($p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&nr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s),nr.createElement(tr,{className:"collapsible_content",open:e},r),l==="bottom"&&nr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s))}i(rr,"CustomCollapsible");import{css as Dp,darkTheme as Ho,IconButton as rh,styled as je,TextField as ih}from"@rango-dev/ui";var Fp=je("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Op=je("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ah=je("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Up=je(ah,{alignSelf:"stretch",minHeight:"93px"}),Qp=je("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zp=je(rh,{position:"absolute",left:"$20"}),qp=je("div",{paddingTop:"$20"}),Hp=Dp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Gp=je("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=je("div",{display:"flex"}),Kp=je(ih,{backgroundColor:"$neutral100",padding:"$15"}),jp=je("div",{overflow:"visible",width:"100%"}),Yp=je("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Ho} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as at}from"@lingui/core";import{Button as jy,Divider as ba,Image as Yy,MessageBox as Sr,SelectableWallet as Zy,Typography as _c,WalletState as $c}from"@rango-dev/ui";import ce,{useEffect as Dc,useState as Eo}from"react";import{WalletState as Zi}from"@rango-dev/ui";import{useWallets as sh}from"@rango-dev/wallets-react";import{detectMobileScreens as lh,KEPLR_COMPATIBLE_WALLETS as ph,WalletTypes as vo}from"@rango-dev/wallets-shared";import{useCallback as ch,useEffect as uh,useState as mh}from"react";var dh=Object.values(vo);function oo(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=sh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Fl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||dh,d=kl(s,p,f,e);d=lh()?d.filter(E=>E.showOnMobile!==!1&&s(E.type).installed):d;let g=Il(d),[T,C]=mh(""),y=i(E=>!c.find(v=>v.walletType===E&&v.chain===e),"isExperimentalChainNotAdded"),S=i(async(E,v)=>{let b=s(E);try{if(T&&C(""),b.connected)await l(E);else{if(xn(d,a.multiWallets))return;o?.(E),await u(E,void 0,v),n?.(E)}}catch(x){r?.(x?.message),C("Error: "+x?.message)}},"handleClick"),k=ch(()=>{let E=d?.filter(v=>v.state===Zi.CONNECTING)||[];for(let v of E)l(v.type)},[Wl(d)]),w=i(async E=>{s(E).connected&&await l(E)},"disconnectWallet");uh(()=>()=>{k()},[]);let A=i(E=>{let v=E.find(x=>x.type===vo.DEFAULT);return!v||v.state===Zi.NOT_INSTALLED?!1:E.filter(x=>x.state!=Zi.NOT_INSTALLED&&![vo.DEFAULT,vo.WALLET_CONNECT_2,vo.LEDGER].includes(x.type)&&p(x.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),L=i((E,v,b)=>Mn(b,v)&&y(E)&&!ph.includes(E)||E==vo.DEFAULT&&!A(d),"shouldExcludeWallet");return{list:g.filter(E=>!L(E.type,e??"",m)),error:T,handleClick:S,disconnectConnectingWallets:k,disconnectWallet:w}}i(oo,"useWalletList");import{i18n as Ac}from"@lingui/core";import{Divider as Uy,getCategoriesCount as Qy,SelectableCategoryList as zy,styled as Wc,Typography as qy,Wallet as Hy,WalletState as Nc}from"@rango-dev/ui";import it,{useState as hr}from"react";import{useManager as Sy}from"@rango-dev/queue-manager-react";import{BottomLogo as Cy,Divider as kc,Header as Ty}from"@rango-dev/ui";import ye,{useEffect as Ca,useRef as vc,useState as ky}from"react";import{useRef as fh}from"react";function ir(){return window.self!==window.top}i(ir,"isAppLoadedIntoIframe");function Ji(){let t=fh(null),{iframe:e}=h(),o=ir()&&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 gh}from"react-router-dom";function Ye(){let t=gh();return()=>t(-1)}i(Ye,"useNavigateBack");import{createTheme as ia,darkTheme as Nh,lightTheme as Wh}from"@rango-dev/ui";import{useEffect as Mh,useState as Lh}from"react";import{theme as Ih,darkColors as Ah}from"@rango-dev/ui";import na from"react";function hh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(hh,"expandShortHexColor");function yh(t){return/[0-9]+$/.test(t)}i(yh,"isOverridingColor");function Sh(t,e){return t.padStart(e,"0")}i(Sh,"pad");function Ri(t){let e=Math.min(Math.max(Math.round(t),0),255);return Sh(e.toString(16),2)}i(Ri,"intToHex");function Ch(t){return`#${Ri(t.red)}${Ri(t.green)}${Ri(t.blue)}`}i(Ch,"rgbToHex");function Th(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(Th,"hexToRGB");function kh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(kh,"generateShade");function vh(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(vh,"generateTint");function wh(t){return Zp(t,kh)}i(wh,"calculateShades");function xh(t){return Zp(t,vh)}i(xh,"calculateTints");function Zp(t,e){let o=Th(t),n=[];for(let r=1;r<9;r++)n.push(Ch(e(o,r)));return n}i(Zp,"calculateColors");function ea(t,e,o){let a=xh(t).reverse().concat(t),s=wh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(ea,"createTintsAndShades");function ta(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!yh(r)){let p=hh(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"),Eh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),oa=i(t=>bh(Eh(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=Ih.colors,o={...e,...Ah},n,r;if(t?.light){let s={colors:ta(e,t.light)};n={id:`${Ni}-light-${oa(s)}`,tokens:s}}if(t?.dark){let s={colors:ta(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Ni}-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 ar(t){let{colors:e,fontFamily:o=ll,borderRadius:n=Pl,secondaryBorderRadius:r=_l}=t,[a,s]=Lh("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,Wh.className],f=[c.className,Nh.className];if(u){let g=ia(u.id,u.tokens);m.push(g.className)}if(p){let g=ia(p.id,p.tokens);f.push(g.className)}return Mh(()=>{let g=i(T=>{T.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(" "),T=f.join(" ");return l==="auto"?a==="dark"?T:g:l==="dark"?T:g},"getActiveTheme")}}i(ar,"useTheme");var Ze=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as ec}from"@lingui/core";import{Alert as Bh,Button as Ph}from"@rango-dev/ui";import tc from"react";function aa(t){return tc.createElement(Bh,{action:tc.createElement(Ph,{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 _h,Divider as $h,MessageBox as Dh}from"@rango-dev/ui";import sr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return sr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},sr.createElement(Dh,{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.")},sr.createElement($h,{size:20}),sr.createElement(_h,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as Uh}from"@rango-dev/ui";import lc from"react";import{css as Fh,darkTheme as oc,IconButton as Oh,styled as no}from"@rango-dev/ui";var yt=no(Oh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${oc} &`]:{backgroundColor:"$neutral"}}}),nc=no("div",{position:"absolute",background:"$secondary500",[`.${oc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),wo=no("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),rc=no("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),ic=no("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ac=no("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),sc=Fh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),lr=no("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(Uh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as Qh}from"@lingui/core";import{Button as zh,Typography as qh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(wo,null,ca.createElement(zh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(qh,{variant:"label",size:"medium",color:"error500"},Qh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as Hh}from"@lingui/core";import{Image as Gh,Tooltip as Vh,WalletIcon as Xh}from"@rango-dev/ui";import ro from"react";function ma(t){let{list:e}=oo({}),o=e.filter(r=>r.state==="connected"),n=o.length?ro.createElement("div",{className:sc()},o.map(r=>ro.createElement(lr,{key:r.title},ro.createElement(Gh,{src:r.image,size:14})))):Hh.t("Connect Wallet");return ro.createElement(Vh,{container:t.container,side:"bottom",content:n},ro.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ro.createElement(nc,null),ro.createElement(Xh,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as cr}from"@lingui/core";import{NotificationsIcon as py,Popover as cy,SettingsIcon as uy,Tooltip as ur,TransactionIcon as my}from"@rango-dev/ui";import Ie from"react";import{Notifications as Zh}from"@rango-dev/ui";import Jh from"react";import{useNavigate as Rh}from"react-router-dom";import{create as Kh}from"zustand";import{persist as jh,subscribeWithSelector as Yh}from"zustand/middleware";var ke=Ot(Kh()(jh(Yh((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 da(){let t=Rh(),{getNotifications:e,clearNotifications:o}=ke(),n=e(),r=h().blockchains(),{findToken:a}=h();return Jh.createElement(Zh,{list:n,getBlockchainImage:l=>Sl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${z.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(da,"NotificationContent");import{useManager as ey}from"@rango-dev/queue-manager-react";import{InProgressIcon as ty}from"@rango-dev/ui";import pc from"react";var oy=i(()=>{let{manager:t}=ey();return Ze(t).map(({swap:o})=>o).find(o=>o.status==="running")?pc.createElement(ac,null,pc.createElement(ty,{color:"info",size:6})):null},"InProgressTransactionBadge"),cc=oy;import{EventSeverity as ny}from"@rango-dev/queue-manager-rango-preset";import{Typography as ry}from"@rango-dev/ui";import uc from"react";function mc(){let{getNotifications:t}=ke(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ny.WARNING);return o?uc.createElement(rc,{isSever:n},uc.createElement(ry,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(mc,"NotificationsBadge");import{RefreshProgressButton as iy}from"@rango-dev/ui";import fa,{useEffect as ay,useState as dc}from"react";var sy=1e3,fc=60,ly=100;function pr({onClick:t}){let[e,o]=dc(0),[n,r]=dc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ay(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===fc&&l()},sy):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return fa.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},fa.createElement(ic,{onTransitionEnd:()=>r(!1),isRefetched:n},fa.createElement(iy,{size:22,color:t?"black":"gray",progress:e/fc*ly})))}i(pr,"RefreshButton");function io(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Xe("notification",s)||r.includes("notifications");return Ie.createElement(Ie.Fragment,null,!r.includes("refresh")&&Ie.createElement(ur,{container:a||P(),side:"top",content:cr.t("Refresh")},Ie.createElement(pr,{onClick:e})),!l&&Ie.createElement(cy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ie.createElement(da,null)},Ie.createElement("div",null,Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Notifications")},Ie.createElement(yt,{size:"small",variant:"ghost"},Ie.createElement(py,{size:18,color:"black"}),Ie.createElement(mc,null))))),!r.includes("settings")&&Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Settings")},Ie.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ie.createElement(uy,{size:18,color:"black"}))),!r.includes("history")&&Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Transactions History")},Ie.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ie.createElement(my,{size:18,color:"black"}),Ie.createElement(cc,null))))}i(io,"HeaderButtons");import{i18n as ga}from"@lingui/core";import{Divider as hc,MessageBox as gy,RefreshIcon as hy}from"@rango-dev/ui";import xo from"react";import{Button as dy,styled as fy}from"@rango-dev/ui";var gc=fy(dy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ha(t){let{open:e,onClose:o}=t;return xo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},xo.createElement(gy,{title:ga.t("Something went wrong"),type:"error",description:ga.t("Something went wrong. Please refresh the app.")},xo.createElement(hc,{size:30}),xo.createElement(gc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},xo.createElement(hy,{size:20,color:"primary"}),xo.createElement(hc,{size:4,direction:"horizontal"}),ga.t("Refresh"))))}i(ha,"RefreshModal");function ya(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(ya,"onScrollContentAttachStatusToContainer");import{css as yy,styled as Sa}from"@rango-dev/ui";var yc="700px",mr=yy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Sc=Sa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:yc},fixed:{height:yc}}}}),Cc=Sa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Tc=Sa("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ji(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=ky(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ie(),g=d==="FULL",{activeTheme:T}=ar(f||{}),C=Xe("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:S,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:A}=ie(),L=Ye(),{manager:E}=Sy(),b=Ze(E).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),x=i(()=>A(Rt.forceClaim,b),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),U=typeof r.hasBackButton>"u"||r.hasBackButton,I=vc(null),H=vc(null);return Ca(()=>(ir()&&H.current&&e(H.current),()=>{o()}),[]),Ca(()=>(I.current?.addEventListener("scroll",ya),()=>{I.current?.removeEventListener("scroll",ya)}),[]),Ca(()=>{u(l==="failed")},[l]),ye.createElement(Sc,{height:s,id:he.SWAP_BOX_ID,className:`${T()} ${mr()}`,ref:H},ye.createElement(Ty,{prefix:ye.createElement(ye.Fragment,null,U&&ye.createElement(pa,{onClick:()=>{L(),r.onBack&&r.onBack()}})),title:r.title,suffix:ye.createElement(ye.Fragment,null,r.suffix,r.onWallet&&!C&&ye.createElement(ma,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&ye.createElement(ua,{onClick:r.onCancel}))}),ye.createElement(Cc,{ref:I},n),ye.createElement(la,{open:k,onClose:()=>w(!1),onConfirm:x}),ye.createElement(Tc,null,ye.createElement("div",{className:"footer__content"},S&&!y&&ye.createElement("div",{className:"footer__alert"},ye.createElement(aa,{onActivateTab:x}),ye.createElement(kc,{size:10})),a),ye.createElement(kc,{size:12}),ye.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},ye.createElement(Cy,null))),ye.createElement(ha,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as vy}from"@rango-dev/ui";var wc="$20 $20 $10 $20",Go=vy("div",{padding:wc,overflowY:"auto",flexGrow:1});import{styled as wy}from"@rango-dev/ui";var ue=wy("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 Ay}from"@rango-dev/ui";import ka from"react";import{i18n as bo}from"@lingui/core";import{Image as Ey,MessageBox as Ta,WalletState as Iy}from"@rango-dev/ui";import ao from"react";import{keyframes as xy,styled as dr}from"@rango-dev/ui";var ZN=dr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),fr=dr("div",{position:"relative"}),by=xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),gr=dr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${by} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xc=dr("div",{"& img":{borderRadius:"50%"}});function bc(t){let{state:e,image:o,error:n}=t;return e===Iy.CONNECTED?ao.createElement(Ta,{type:"success",title:bo.t("Wallet Connected"),description:bo.t("Your wallet is connected, you can use it to swap.")}):n?ao.createElement(Ta,{type:"error",title:bo.t("Failed to Connect"),description:n||bo.t("Your wallet is not connected. Please try again.")}):ao.createElement(Ta,{type:"loading",title:bo.t("Connecting to your wallet"),description:bo.t("Click connect in your wallet popup."),icon:ao.createElement(fr,null,ao.createElement(xc,null,ao.createElement(Ey,{src:o,size:45})),ao.createElement(gr,null))})}i(bc,"ModalContent");function Vo(t){let{open:e,onClose:o,...n}=t;return ka.createElement(ne,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},ka.createElement(bc,{...n}),ka.createElement(Ay,{direction:"vertical",size:32}))}i(Vo,"WalletModal");import{i18n as va}from"@lingui/core";import{Button as Wy,Checkbox as My,Image as Ic,ListItemButton as Ly,MessageBox as By,Radio as Py,RadioRoot as _y}from"@rango-dev/ui";import{namespaceMainBlockchain as $y}from"@rango-dev/wallets-shared";import Ne,{useMemo as Dy,useState as Fy}from"react";import{styled as Ny}from"@rango-dev/ui";var Ec=Ny("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Oy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function so(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Fy([]),a=h().blockchains(),s=Dy(()=>o?.map(u=>({name:u,logo:Oy(a,$y[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?Ne.createElement(_y,{value:n?.[0]},u):Ne.createElement(Ne.Fragment,null,u),"wrapRadioRoot");return Ne.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ne.createElement(By,{type:"info",title:va.t("Select chain types"),description:va.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ne.createElement(fr,null,Ne.createElement(lr,null,Ne.createElement(Ic,{src:t.image,size:45})),Ne.createElement(gr,null))}),Ne.createElement(Ec,null,p(Ne.createElement(Ne.Fragment,null,s?.map(u=>Ne.createElement(Ly,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ne.createElement(Ic,{src:u.logo,size:22}),end:e?Ne.createElement(Py,{value:u.name}):Ne.createElement(My,{checked:n.includes(u.name)})}))))),Ne.createElement(Wy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},va.t("Confirm")))}i(so,"WalletNamespacesModal");var Gy=Wc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Vy=Wc(ue,{textAlign:"center"}),yr=3e3,wa=300;function Mc(){let{fetchStatus:t}=h(),[e,o]=hr("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=hr(!1),[l,p]=hr(null),[u,c]=hr(""),m=null,f=ie.use.isActiveTab(),{list:d,handleClick:g,error:T,disconnectConnectingWallets:C}=oo({onBeforeConnect:x=>{m=setTimeout(()=>{s(!0),c(x)},wa)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},yr)}}),y=i(()=>{C(),s(!1)},"handleCloseWalletModal"),S=d.find(x=>x.type===u),k=S?.image||"",w=S?.state||Nc.NOT_INSTALLED,A=Ml(d,n),E=Qy(A)!==1,v=Ll(d,e),b=i((x,B)=>{if(B.namespaces&&B.state===Nc.DISCONNECTED){if(xn(d,r.multiWallets))return;p({providerType:x,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace})}else g(x)},"handleWalletClick");return it.createElement(le,{header:{title:Ac.t("Connect Wallets")}},it.createElement(Vy,null,E&&it.createElement(it.Fragment,null,it.createElement(zy,{setCategory:o,category:e,blockchains:A,isLoading:t==="loading"}),it.createElement(Uy,{size:24})),it.createElement(qy,{variant:"title",size:"xmedium",align:"center"},Ac.t("Choose a wallet to connect.")),it.createElement(Gy,null,v.map((x,B)=>{let U=`wallet-${B}-${x.type}`;return it.createElement(Hy,{key:U,...x,container:P(),onClick:I=>b(I,x),isLoading:t==="loading",disabled:!f})}),it.createElement(Vo,{open:!!a,onClose:y,image:k,state:w,error:T}),it.createElement(so,{open:!!l,onClose:()=>p(null),onConfirm:x=>{g(l?.providerType,x),p(null)},image:l?.providerImage,namespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}))))}i(Mc,"WalletsPage");import{keyframes as Xy,styled as xa}from"@rango-dev/ui";var Lc=xa("div",{position:"relative"}),Ky=Xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Bc=xa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ky} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Pc=xa("div",{"& img":{borderRadius:"50%"}});var Jy=7;function Ea(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]=Eo(""),[f,d]=Eo(null),[g,T]=Eo(!1),[C,y]=Eo(null),[S,k]=Eo(null),{suggestAndConnect:w}=Cr(),A=null,{list:L,error:E,handleClick:v,disconnectWallet:b,disconnectConnectingWallets:x}=oo({chain:e,onBeforeConnect:N=>{A=setTimeout(()=>{m(N)},wa)},onConnect:N=>{s?.(N),A&&clearTimeout(A),setTimeout(()=>{m("")},yr)}}),[B,U]=Eo(L),I=L.length,H=r&&I-r>0,Y=i(async N=>{T(!1),y("in-progress");try{await w(N.walletType,N.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(N=>{k({providerType:N.type,providerImage:N.image,availableNamespaces:N.namespaces,singleNamespace:N.singleNamespace})},"handleOpenNamespacesModal");Dc(()=>{U(N=>{let Q=L.findIndex(Z=>o(Z.type,e));return H&&Q>1?[L[Q]].concat(L.filter((Z,re)=>re!==Q)):N.map(Z=>L.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(L)]);let G=document.getElementById(he.SWAP_BOX_ID);Dc(()=>{let N=null;return(C==="completed"||C==="rejected")&&(N=setTimeout(()=>y(null),yr)),()=>{N&&clearTimeout(N)}},[C]);let ee=i(()=>{x(),m("")},"handleCloseWalletModal");return ce.createElement(ce.Fragment,null,B.slice(0,r).map(N=>{let Q=Al({connectedWallets:p,walletType:N.type,chain:e}),Z=Q?Bn(Q,Jy):"",re=Mn(u(),e),Ce=!p.find(Fe=>Fe.walletType===N.type&&Fe.chain===e),_=re&&Ce&&N.state===$c.CONNECTED,De=_?at.t({id:"Add {chain} chain",values:{chain:e}}):Z,tt=i(async()=>{N.state===$c.DISCONNECTED?N.namespaces?pe(N):v(N.type):N.namespaces&&!Z?(await b(N.type),pe(N)):_?(d({walletType:N.type,chain:e,address:Q??""}),T(!0)):n({walletType:N.type,chain:e,address:Q??""})},"onClick"),me=f?.chain?bn(f.chain,u()):void 0;return ce.createElement(ce.Fragment,{key:`${N.title}_${me}`},ce.createElement(Vo,{open:c===N.type,onClose:ee,image:N.image,state:N.state,error:E}),ce.createElement(so,{open:!!S,onClose:()=>k(null),onConfirm:Fe=>{v(S?.providerType,Fe),k(null)},image:S?.providerImage,namespaces:S?.availableNamespaces,singleNamespace:S?.singleNamespace}),!!f&&ce.createElement(ne,{open:!!f&&g,container:G,onClose:()=>{d(null)}},ce.createElement(Sr,{title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:me}}),type:"warning",description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:me}})},ce.createElement(ba,{size:18}),ce.createElement(ba,{size:32}),ce.createElement(jy,{onClick:Y.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},at.t("Confirm")))),C&&ce.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ce.createElement(Sr,{type:"loading",title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:me}}),description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:me}}),icon:ce.createElement(Lc,null,ce.createElement(Pc,null,ce.createElement(Yy,{src:N.image,size:45})),ce.createElement(Bc,null))}),C==="completed"&&ce.createElement(Sr,{type:"success",title:at.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:me}}),description:at.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:me}})}),C==="rejected"&&ce.createElement(Sr,{type:"error",title:at.t("Request Rejected"),description:at.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:me}})}),ce.createElement(ba,{direction:"vertical",size:32})),ce.createElement(Zy,{key:N.type,description:De,onClick:tt,selected:o(N.type,e),disabled:!l,...N}))}),H&&ce.createElement(Up,{selected:!1,onClick:a},ce.createElement(_c,{variant:"label",size:"medium"},at.t("Show more wallets"),ce.createElement(_c,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Ea,"WalletList");var cS=2;function Qc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=pS(),l=h().config,p=lS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:T}=j(),{connectedWallets:C,selectWallets:y}=te(),[S,k]=lo(""),[w,A]=lo([]),[L,E]=lo(""),[v,b]=lo(null),[x,B]=lo(!!g),U=navigator?.userAgent.includes("Firefox"),I=sS(()=>Zt({filter:"all",quote:c}),[c]),H=Zt({filter:"required",quote:c}),Y=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(W=>H.includes(W),"isWalletRequiredFor"),G=aS(()=>C.filter(W=>W.selected&&I.includes(W.chain)),[C,I]),[ee,N]=lo(G()),[Q,Z]=lo([]),re=i((W,V)=>Z(X=>X.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=w.length>0,_=i((W,V)=>!!ee.find(X=>X.walletType===W&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),De=!!g&&x&&Y&&!Qn(Y,g),tt=i(()=>{B(!1),T(null),N(W=>{let V=!1;return W.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),me=i(()=>T(""),"handleClearCustomDestination"),Fe=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();T(V),p?.current?.focus()}},"handlePasteCustomDestination"),wt=i(W=>{W?pe(Y?.name??"")||N(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):tt()},"handleCustomDestinationCollapsibleOpenChange"),Ge=i(W=>{if(S&&k(""),_(W.walletType,W.chain))return;let X=C.find(Qe=>Qe.walletType===W.walletType&&Qe.chain===W.chain);X&&(n(),W.chain===Y?.name&&x&&!pe(Y.name)&&(B(!1),T(null)),N(Qe=>Qe.filter(ft=>ft.chain!==W.chain).concat({...X,selected:!0})))},"onChange"),ot=i(()=>{let W=ee.filter(V=>V.selected);y(W),m(W),d(!0),o()},"onConfirmBalance"),nt=i(async()=>{A([]),E(""),b(null);let W=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=W.warnings;V?.balance?.messages&&A(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),W.error&&E(ap(W.error)),!W.error&&!V?.balance?.messages.length?ot():A(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Oc,{onClick:me,variant:"ghost"},$.createElement(oS,{size:12,color:"gray"})):U?null:$.createElement(Oc,{onClick:Fe,variant:"ghost"},$.createElement(rS,{size:16})),"renderCustomDestinationSuffix");Uc(()=>{N(W=>{let V=[];return W.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C,I]),Uc(()=>{let W=[];Q.length>0&&(Q.forEach(V=>{let X=C.find(Qe=>Qe.chain===V.blockchain&&Qe.walletType===V.walletType);X?Ge(X):W.push(V)}),Z(W))},[C,Q]);let ge=document.getElementById(he.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!S,container:ge,...!S&&{footer:$.createElement(Xp,null,$.createElement(Fc,{loading:a,disabled:xp(a,x,g,c,ee,Y),onClick:nt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...S&&{styles:{container:{padding:"$0"}},header:$.createElement(Qp,null,$.createElement(zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(tS,{size:16})),$.createElement(Tr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ve(S,u)}})))},anchor:"center"},$.createElement(ne,{open:Ce,onClose:A.bind(null,[]),container:ge},$.createElement(nS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(Ry,{messages:w??[]})},$.createElement(Fc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ot},St.t("Proceed anyway")))),S&&$.createElement(qp,null,$.createElement("div",{className:Hp()},$.createElement(Ea,{chain:S,isSelected:_,selectWallet:Ge,onShowMore:()=>k(S),onConnect:W=>{re(S,W)}}))),!S&&$.createElement($.Fragment,null,L&&$.createElement($.Fragment,null,$.createElement(Ia,{variant:"alarm",type:"error",title:St.t(L)}),$.createElement(Xo,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Ia,{variant:"alarm",type:"warning",title:Rn(v)}),$.createElement(Xo,{size:12})),$.createElement(jp,null,I.map((W,V)=>{let X=u.find(Yt=>Yt.name===W),Qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:Qe},$.createElement(Fp,null,$.createElement(Tr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(Tr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Xo,{size:24}),$.createElement(Op,null,$.createElement(Ea,{chain:W,isSelected:_,selectWallet:Ge,limit:cS,onShowMore:()=>k(X?.name??""),onConnect:Yt=>{re(W,Yt)}})),!ft&&$.createElement(Xo,{size:32}),ft&&l?.customDestination!==!1&&$.createElement(Gp,null,$.createElement(rr,{onOpenChange:wt,hasSelected:!0,open:x,triggerAnchor:"top",trigger:$.createElement(Yp,null,$.createElement("div",{className:"button__content"},$.createElement(iS,{size:18,color:"info"}),$.createElement(Xo,{size:4,direction:"horizontal"}),$.createElement(Tr,{variant:"label",size:"medium",color:x?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(or,{orientation:x?"up":"down"},$.createElement(eS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Yt=>!Yt)},$.createElement(Kp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:bn(W,u)}),value:g||"",suffix:dt(),onChange:Yt=>{let Of=Yt.target.value;T(Of)},...!g&&{autoFocus:!0}})),De&&$.createElement("div",{className:Vp()},$.createElement(Ia,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Qc,"ConfirmWalletsModal");import{i18n as NS}from"@lingui/core";import{Alert as WS,Button as MS,InfoIcon as LS}from"@rango-dev/ui";import qe from"react";import{Alert as dS,Button as fS,Divider as Wa,NoRouteIcon as gS,RefreshIcon as hS,Typography as Kc}from"@rango-dev/ui";import ze from"react";import{i18n as zc}from"@lingui/core";var uS=24,mS=60;function qc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:zc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:zc.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(qc,"makeInfo");var Aa=(o=>(o[o.small=uS]="small",o[o.large=mS]="large",o))(Aa||{}),Na=(o=>(o.small="small",o.large="medium",o))(Na||{});import{styled as kr}from"@rango-dev/ui";var Hc=kr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Gc=kr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Vc=kr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Xc=kr("div",{padding:"$6 $0"});function Ko(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=qc(o,r,()=>a(s,!0),e);return ze.createElement(Hc,null,ze.createElement(gS,{size:Aa[n],color:"gray"}),ze.createElement(Wa,{size:4}),ze.createElement(Kc,{variant:"title",size:Na[n]},oe().noResultError.title),n==="large"&&ze.createElement(Wa,{size:4}),!!l.description&&ze.createElement(Gc,{size:n},ze.createElement(Kc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ze.createElement(Wa,{size:n==="large"?"24":"4"}),!!l.alert&&ze.createElement(Vc,{size:n},ze.createElement(dS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ze.createElement(fS,{size:"xsmall",type:l.alert.type,prefix:ze.createElement(Xc,null,ze.createElement(hS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Ko,"NoResult");import{i18n as jo}from"@lingui/core";import{Button as SS,Divider as CS,MessageBox as TS,Typography as kS,WarningIcon as vS}from"@rango-dev/ui";import At from"react";import{Typography as Jc}from"@rango-dev/ui";import La from"react";import{darkTheme as yS,styled as vr}from"@rango-dev/ui";var jc=vr("div",{width:"100%"}),Ma=vr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Yc=vr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${yS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zc=vr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Rc(t){let{title:e,value:o,valueColor:n}=t;return La.createElement(Yc,null,La.createElement(Jc,{size:"medium",variant:"label",className:"_title"},e),La.createElement(Jc,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Rc,"QuoteErrorsModalItem");function eu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:jo.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:jo.t("Gas cost"),value:M(r.totalFee,2,2)},{title:jo.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:jo.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(SS,{type:"primary",size:"large",prefix:At.createElement(vS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},At.createElement(TS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(Ma,null,At.createElement(CS,{size:"4"}),At.createElement(kS,{size:"small",variant:"title"},jo.t("Details")),At.createElement(Ma,null,l.map((p,u)=>At.createElement(Rc,{key:u,...p})))))}i(eu,"HighValueLossWarningModal");import{i18n as Ba}from"@lingui/core";function tu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Ba.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Et(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=Ba.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Ba.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(tu,"makeAlerts");import{i18n as Io}from"@lingui/core";import{Button as ou,Divider as nu,MessageBox as wS,Typography as xS}from"@rango-dev/ui";import po from"react";import{useNavigate as bS}from"react-router-dom";function ru(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=bS(),u=e??o;return po.createElement(ne,{anchor:"bottom",open:n,prefix:po.createElement(ou,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},po.createElement(xS,{variant:"label",size:"medium",color:"$neutral900"},Io.t("Change settings"))),container:P(),onClose:r},po.createElement(wS,{type:"warning",title:s.type===3?Io.t("High slippage"):Io.t("Low slippage"),description:s.type===3?Io.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Io.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},po.createElement(nu,{size:18}),po.createElement(nu,{size:32}),po.createElement(ou,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Io.t("Confirm anyway"))))}i(ru,"SlippageWarningModal");import{Button as ES,MessageBox as IS,WarningIcon as AS}from"@rango-dev/ui";import wr from"react";function iu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(ne,{footer:wr.createElement(ES,{type:"primary",size:"large",prefix:wr.createElement(AS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},wr.createElement(IS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(iu,"UnknownPriceWarningModal");function Yo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=tu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),qe.createElement(qe.Fragment,null,f&&qe.createElement(Ko,{error:o,fetch:s}),!!d&&qe.createElement(jc,null,qe.createElement(WS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:qe.createElement(Zc,{onClick:l},qe.createElement(LS,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:qe.createElement(MS,{size:"xxsmall",type:d.alertType,onClick:c},NS.t("Change"))}})),e&&qe.createElement(qe.Fragment,null,e.type===0&&qe.createElement(eu,{...m,warning:e}),(e.type===3||e.type===2)&&qe.createElement(ru,{...m,warning:e}),e.type===1&&qe.createElement(iu,{...m,warning:e})))}i(Yo,"QuoteWarningsAndErrors");import pC from"bignumber.js";import Dr from"react";import{i18n as co}from"@lingui/core";import{Alert as YS,Divider as No,FullExpandedQuote as ZS,InfoIcon as JS,NumericTooltip as Fu,QuoteTag as RS,StepDetails as eC,TokenAmount as tC,Typography as Wo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as oC,useState as nC}from"react";import{styled as Pa}from"@rango-dev/ui";var _a=Pa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),au=Pa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),su=Pa("div",{width:"100%",display:"flex"});import*as xr from"@radix-ui/react-collapsible";import{Button as BS,css as Zo,darkTheme as ve,Image as lu,styled as Pe,Typography as PS}from"@rango-dev/ui";var _S=300,pu=Pe(xr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${ve} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),cu=Zo({padding:"$10 $15"}),uu=Pe(BS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${ve} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${ve} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${ve} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),mu=Pe("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",[`.${ve} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${ve} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${ve} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${ve} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${ve} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${ve} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${ve} &`]:{backgroundColor:"$neutral400"}}}}]}),du=Zo({width:"100%",padding:"$15 $15 $10 $15"}),fu=Zo({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Ao=Zo({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),gu=Zo({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${ve} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hu=Pe(xr.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:{[`& ${lu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${lu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${ve} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),yu=Pe("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"}}}}),Su=Pe(tr,{width:"100%",background:"inherit"}),$a=Pe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${_S}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),tB=Pe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Cu=Pe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${ve} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Tu=Pe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Da=Pe(PS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ku=Pe("div",{display:"flex",flexWrap:"wrap"}),Fa=Pe("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"}}}}),vu=Pe("div",{display:"flex"}),br=Pe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${ve} &`]:{borderTopColor:"$neutral800"}});import{i18n as Ct}from"@lingui/core";import{ChevronDownIcon as DS,CloseIcon as FS,Divider as Ar,IconButton as OS,NumericTooltip as US,QuoteCost as QS,Typography as st}from"@rango-dev/ui";import J,{useState as Eu}from"react";import{css as $S,styled as Er}from"@rango-dev/ui";var Ir=Er("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Oa=Er("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),wu=Er("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),xu=Er("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),bu=$S({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zS=i(t=>t.fee.isZero()?null:J.createElement(Ir,null,J.createElement(st,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(st,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Iu(t){let[e,o]=Eu(!1),[n,r]=Eu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=mp(m);return J.createElement(J.Fragment,null,J.createElement(QS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Ct.t("View more info"):void 0,tooltipContainer:f}),J.createElement(ne,{container:f,open:e,header:J.createElement(xu,null,J.createElement(st,{variant:"title",size:"medium"},Ct.t("Gas & Fee Explanation")),J.createElement(OS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(FS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(wu,null,J.createElement(st,{variant:"title",size:"small"},Ct.t("Details")),J.createElement(Ar,{size:10}),Object.entries(d.payable).flatMap(([g,T])=>T.map((C,y)=>{let S=`payable-fee-${y}`,k=Qi(C);return J.createElement(Ir,{key:S},J.createElement(st,{variant:"label",size:"medium",color:"neutral600"},Di(g,Ct.t)),J.createElement(US,{content:C.amount,container:f},J.createElement(st,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),J.createElement(Ir,{className:"total_payable_fee"},J.createElement(st,{variant:"label",size:"medium"},Ct.t("Total Payable Fee")),J.createElement(st,{variant:"label",size:"medium"},"$",M(l,4,4))),J.createElement(Oa,null),Object.keys(d.nonePayable).length&&J.createElement(rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:bu()},J.createElement(st,{size:"small",variant:"body",color:"neutral700"},n?Ct.t("Hide non-payable fees"):Ct.t("Show non-payable fees")),J.createElement(Ar,{size:4,direction:"horizontal"}),J.createElement(or,{orientation:n?"up":"down"},J.createElement(DS,{size:12,color:"gray"}))),open:n},J.createElement(st,{size:"small",variant:"title"},Ct.t("Description")),J.createElement(Ar,{size:4}),J.createElement(st,{size:"small",variant:"body",color:"neutral700"},Ct.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),J.createElement(Ar,{size:10}),Object.entries(d.nonePayable).map(([g,T],C)=>{let y=up(T),S=Di(g,Ct.t),k=`non-payable-fee-${C}`;return J.createElement(zS,{key:k,fee:y,label:S})}),J.createElement(Oa,null)))))}i(Iu,"QuoteCostDetails");import{i18n as Wu}from"@lingui/core";import{TokenAmount as Mu}from"@rango-dev/ui";import Nr from"react";import{css as qS,styled as HS}from"@rango-dev/ui";var Au=HS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Nu=qS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Jo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Nr.createElement(Au,null,Nr.createElement(Mu,{direction:"horizontal",label:Wu.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}}),Nr.createElement("div",{className:Nu()}),Nr.createElement(Mu,{direction:"horizontal",tooltipContainer:P(),label:Wu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(Jo,"QuoteSummary");import{i18n as $u}from"@lingui/core";import{ChevronDownIcon as XS,ChevronRightIcon as KS,Divider as Ua,Image as jS,Tooltip as Pr,Typography as Mr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as GS,useState as Ro}from"react";var Lu=480,Bu=768,Pu=1024,_u=1200,VS=i(()=>{let[t,e]=Ro(!1),[o,n]=Ro(!1),[r,a]=Ro(!1),[s,l]=Ro(!1),[p,u]=Ro(!1),c=i(()=>{e(window.innerWidth<=Lu),n(window.innerWidth>Lu&&window.innerWidth<=Bu),a(window.innerWidth>Bu&&window.innerWidth<=Pu),l(window.innerWidth>Pu&&window.innerWidth<=_u),u(window.innerWidth>_u)},"handleResize");return GS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Wr=VS;var Lr=4,Br=6,en=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement(Pr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(yu,{className:n,state:a},F.createElement(jS,{src:o,size:16})))},"ImageComponent");function Du(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Np(r),{isTablet:m,isMobile:f}=Wr();return F.createElement(hu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:Ao()},F.createElement(Mr,{variant:"body",size:"xsmall"},$u.t("Via:")),F.createElement(Ua,{direction:"horizontal",size:4}),r.map((d,g)=>{let T=`item-${g}`,C=F.createElement($a,null,F.createElement(KS,{size:12,color:"black"}));return f||m?F.createElement(F.Fragment,{key:T},F.createElement(en,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:T},u<=Lr||u>Lr&&g<Lr-1?F.createElement(F.Fragment,null,F.createElement(en,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===Lr-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Ao()},C,r.map((y,S)=>{let k=`image-${S}`;return S>=g&&F.createElement(F.Fragment,{key:k},F.createElement(en,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),S!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Fa,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:Ao()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Ao()},F.createElement(Mr,{variant:"body",size:"xsmall"},$u.t("Chains:")),F.createElement(Ua,{direction:"horizontal",size:4}),c.map((d,g)=>F.createElement(F.Fragment,{key:d.displayName},c.length<=Br||c.length>Br&&g<Br-1?F.createElement(Pr,{container:p,side:"bottom",content:d.displayName,sideOffset:4},F.createElement(en,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===Br-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Ao()},c.map((T,C)=>C>=g&&F.createElement(en,{key:T.displayName,content:"",src:T.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Fa,{className:"blockchainImage"},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(Ua,{direction:"horizontal",size:32}))),F.createElement($a,{orientation:a?"up":"down"},F.createElement(XS,{size:12,color:"black"}))))}i(Du,"QuoteTrigger");function za(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(),T=h().swappers(),{customSlippage:C,slippage:y}=h(),S=C||y,[k,w]=nC(t.expanded),A=oC(null),L=M(o.value,6,6),E=M(n.value,6,6),v=n.usdValue?M(n.usdValue,4,4):"",b=Ke(o.usdValue,n.usdValue??null),x=M(b,2,2),B=Et(b??0),U=i((re,Ce)=>re.map((_,De)=>{let tt,me=r?.type===3&&r.swap.swapperId===_.swapperId,Fe=r?.type===4&&r.recommendedSlippages?.has(De),wt=a?.type===2&&a.recommendedSlippages?.has(De),Ge=me||Fe,ot=wt;Ge?tt="error":ot&&(tt="warning");let nt=Ge?co.t("Slippage Error"):co.t("Slippage Warning");return me&&(nt=co.t("Bridge Limit Error")),{swapper:{displayName:Do(_.swapperId,T),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ve(_.from.blockchain,d),image:_.from.blockchainLogo},price:{value:De===0&&!Ce?M(o.value,6,6):M(_.fromAmount,6,6),usdValue:M((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:De===0?o.value:_.fromAmount,realUsdValue:new Qa(_.from.usdPrice??0).multipliedBy(_.fromAmount).toString()}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Ve(_.to.blockchain,d),image:_.to.blockchainLogo},price:{value:M(_.toAmount,6,6),usdValue:M((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:_.toAmount,realUsdValue:new Qa(_.to.usdPrice??0).multipliedBy(_.toAmount).toString()}},state:tt,alerts:Ge||ot?D.createElement(au,{dense:m},D.createElement(YS,{variant:"alarm",type:Ge?"error":"warning",title:nt,footer:D.createElement(su,null,me&&D.createElement("div",null,D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(No,{direction:"vertical",size:2}),D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {amount} {symbol}",values:{amount:M(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Fe||wt)&&!me&&D.createElement("div",null,D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(De)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(De)}}})),D.createElement(No,{direction:"vertical",size:2}),D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Fo(_.estimatedTimeInSeconds),fee:M(Ui(_,g),2,2),internalSwaps:_.internalSwaps?U(_.internalSwaps):void 0}}),"getQuoteSteps"),I=U(e?.swaps??[]),H=I.length,Y=f||P(),pe=Mp(t.quote.tags||[]),G=!!c,ee=Fo(En(e?.swaps)),N=Hn(e?.swaps??[],g),Q=M(N,2,2),Z=N.gte(new Qa(ip));return m?D.createElement(ZS,{selected:l,fee:Q,time:ee,tooltipContainer:$o(),steps:I,tags:pe,feeWarning:Z,percentageChange:x,warningLevel:B,outputPrice:{value:E,usdValue:v,realValue:n.value,realUsdValue:n.usdValue}}):D.createElement(mu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:du()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(vu,null,pe.map((re,Ce)=>{let _=`${re.value}_${Ce}`;return D.createElement(D.Fragment,{key:_},D.createElement(RS,{label:re.label,value:re.value}),D.createElement(No,{size:4,direction:"horizontal"}))})),D.createElement(br,null),!G&&D.createElement(No,{size:4})):null,D.createElement("div",{id:"portal-root",className:fu()},D.createElement(Iu,{quote:e,time:ee,fee:Q,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(uu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Wo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},co.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:gu()},D.createElement(Tu,null,D.createElement(JS,{size:12,color:"gray"})),D.createElement(ku,null,D.createElement(Da,{size:"small",variant:"body"},`${L} ${I[0].from.token.displayName} = `),D.createElement(Fu,{content:n.value,container:Y,open:n.value?void 0:!1},D.createElement(Da,{size:"small",variant:"body"},"\xA0",`${E} ${I[I.length-1].to.token.displayName}`))),D.createElement(Fu,{content:n.usdValue,container:Y},D.createElement(No,{size:2,direction:"horizontal"}),D.createElement(Wo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&D.createElement(tC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:E,usdValue:v,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:x,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(Jo,{from:I[0].from,to:I[H-1].to,percentageChange:x,warningLevel:B}),D.createElement(No,{size:4}))),D.createElement(pu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},D.createElement(Du,{type:s,quoteRef:A,selected:l,setExpanded:w,container:Y,expanded:k,steps:I}),D.createElement(Su,{open:k},D.createElement(Cu,null),D.createElement("div",{className:cu()},I.map((re,Ce)=>{let _=`item-${Ce}`;return D.createElement(eC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:Ce!==I.length-1,state:re.state})})))))}i(za,"Quote");import{Divider as sC,Skeleton as lC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as rC,styled as _r}from"@rango-dev/ui";var Ou=_r("div",{$$color:"$colors$neutral100",[`.${rC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Uu=_r("div",{paddingTop:"$2"}),Qu=_r("div",{paddingLeft:"$8"}),zu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ju,Divider as lt,Skeleton as He}from"@rango-dev/ui";import q from"react";import{css as iC,styled as Nt}from"@rango-dev/ui";var qa=Nt("div",{display:"flex"}),qu=Nt("div",{padding:"$10 $0 $20"}),Hu=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Gu=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Vu=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Xu=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Ku=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),ju=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Yu=Nt("div",{padding:"$15 $0 $15 $0"}),Zu=iC({display:"flex",justifyContent:"space-between",alignItems:"center"});function tn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(Vu,null,q.createElement(Ku,null,q.createElement(Ju,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(lt,{size:8,direction:"horizontal"}),q.createElement(ju,null,q.createElement(He,{height:10,width:60,variant:"rounded"}),q.createElement(lt,{size:4}),q.createElement(He,{height:15,variant:"rounded"}))),q.createElement(He,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(qa,null,q.createElement(He,{width:65,height:20,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:65,height:20,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:65,height:20,variant:"rounded"})),q.createElement(br,null),!r&&q.createElement(lt,{size:4})),q.createElement("div",{className:Zu()},q.createElement(qa,null,q.createElement(He,{width:60,height:10,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:60,height:10,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:60,height:10,variant:"rounded"})),r&&q.createElement(He,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(qu,null,q.createElement(He,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(Hu,null,q.createElement(Gu,null,q.createElement(Ju,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(lt,{direction:"horizontal",size:4}),q.createElement(He,{height:15,width:150,variant:"rounded"})),q.createElement(lt,{size:10}),q.createElement(He,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(lt,{size:4}),q.createElement(Yu,null,n,q.createElement(Xu,null),n),q.createElement(lt,{size:12})))}i(tn,"QuoteSummarySkeleton");import{ChainToken as nm,Divider as Ga,NextIcon as aC,Skeleton as $r}from"@rango-dev/ui";import we from"react";import{styled as on}from"@rango-dev/ui";var Ru=on("div",{display:"flex",alignItems:"start"}),em=on("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ha=on("div",{display:"flex",alignItems:"center",flexGrow:1}),tm=on("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),om=on("div",{display:"flex",alignItems:"center"});function Tt(t){let{separator:e=!0}=t;return we.createElement(we.Fragment,null,we.createElement(om,null,we.createElement($r,{height:22,width:22,variant:"circular"}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:15,width:148,variant:"rounded"})),we.createElement(Ru,null,we.createElement(zu,{hideSeparator:!e}),we.createElement(em,{extraSpace:e},we.createElement(Ha,null,we.createElement(nm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:12,variant:"rounded"})),we.createElement(tm,null,we.createElement(aC,{color:"gray",size:16})),we.createElement(Ha,null,we.createElement(nm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:12,variant:"rounded"})))))}i(Tt,"StepSkeleton");function nn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Ou,{expanded:o,rounded:e!=="basic"},Wt.createElement(tn,{type:e,tagHidden:n}),Wt.createElement(Uu,null,Wt.createElement(lC,{height:15,variant:"rounded"})),o&&Wt.createElement(Qu,null,Wt.createElement(sC,{size:24}),Wt.createElement(Tt,null),Wt.createElement(Tt,null),Wt.createElement(Tt,{separator:!1})))}i(nn,"QuoteSkeleton");function uo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:T,toToken:C}=j(),y=e?.outputAmount?new pC(e?.outputAmount):null,S=e?.outputAmount?Vn(e?.outputAmount,Kn(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Dr.createElement(_a,null,Dr.createElement(nn,{tagHidden:l,type:o,expanded:s})):w?Dr.createElement(_a,{onClick:()=>p?.(e)},Dr.createElement(za,{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:T?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(uo,"QuoteInfo");import{calculatePendingSwap as dC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as fC}from"react";import{useRef as cC,useState as uC}from"react";var mC=2e3;function Fr({request:t}){let[e,o]=uC(!1),n=cC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,mC)),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(Fr,"useFetch");function rm(){let{fetch:t,loading:e,cancelFetch:o}=Fr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(rm,"useFetchConfirmQuote");function Or(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Va(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Or,"throwErrorIfResponseIsNotValid");function Va(t){if(lp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=pp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=dp(t);if(o){let n=Gn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Va,"getQuoteError");function im(t,e,o){let n=!1;t&&(n=Ap(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Co(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Cp(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(So(e)),percentageChange:M(Ke(So(t)??"",So(e)??""),null,2)}:zi(t,e)?r.quoteUpdate={type:0}:qi(t,e)?r.quoteUpdate={type:1}:Hi(t,e)&&(r.quoteUpdate={type:2}));let s=Tp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(im,"generateWarnings");function Ur(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(Ur,"handleQuoteErrors");function Xa(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:T,cancelFetch:C,loading:y}=rm();return fC(()=>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 L=w.reduce((v,b)=>(v[b.chain]=b.address,v),{}),E={requestId:r?.requestId||"",selectedWallets:L,destination:A||void 0};try{return await T(E,!0).then(v=>{let{result:b}=v;Or({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let x={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(x);let B={slippage:g.toString(),disabledSwappersGroups:c},U=im(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:w,userSlippage:g});U.quoteUpdate&&s(!1),l();let I=!!U.balance,H=dC(o.toString(),b,yp(w),B,!I,{blockchains:m,tokens:f});return{quote:x,swap:H,error:null,warnings:U}})}catch(v){return Ur(v)}},"fetch"),cancelFetch:C}}i(Xa,"useConfirmSwap");var wC=yC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${sm}`]:{width:"$48",height:"$48"}}),xC=Ya({flexGrow:1,paddingRight:"$10"}),bC=Ya({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),EC=Ya({display:"flex",justifyContent:"space-between",alignItems:"center"});function lm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=vC(),[l,p]=rn(""),u=!n,[c,m]=rn(!1),[f,d]=rn(!1),{isActiveTab:g}=ie(),T=h().getDisabledLiquiditySources(),C=kC(T),{manager:y}=gC(),{fetch:S,loading:k,cancelFetch:w}=Xa(),[A,L]=rn({swap:null,error:null,warnings:null}),[E,v]=rn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let N=await S?.({selectedWallets:G,customDestination:ee});return L(N),N},"onConfirmSwap"),x=i(async()=>{if(A.swap&&n)try{await y?.create("swap",{swapDetails:A.swap},{id:A.swap.requestId});let G=`../${z.swaps}/${A.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),B=i(async()=>{d(!0),await x(),d(!1)},"onConfirm"),U=i(async()=>{A?.warnings?.quote&&!a?v(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{L({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(G=>{L(G)}).catch(G=>console.error(G))},"onRefresh");Qr(()=>{!!C.current.length&&!T.length&&I(),C.current=T},[T.length]),Qr(()=>{u&&w()},[u]),Qr(()=>{u&&m(u)},[u]),Qr(()=>{u||S({selectedWallets:o,customDestination:r}).then(G=>L(G)).catch(G=>console.error(G))},[]),TC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=A.warnings?.quote??null,Y=A.error,pe=[];if(l&&pe.push(xe.createElement(am,{type:"error",variant:"alarm",title:l})),A.warnings?.quoteUpdate&&pe.push(xe.createElement(am,{variant:"alarm",type:"warning",title:A.warnings.quoteUpdate&&Rn(A.warnings.quoteUpdate)})),H||Y){let G=`../${z.settings}`;pe.push(xe.createElement(Yo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:E,confirmationDisabled:!g,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await x()},onChangeSettings:()=>s(G)}))}return xe.createElement(le,{header:{title:Ka.t("Confirm Swap"),onWallet:()=>{let G=`../${z.wallets}`;s(G)}},footer:xe.createElement(wC,null,xe.createElement("div",{className:xC()},xe.createElement(hC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!A.error||!g,onClick:U},Ka.t("Start Swap"))),xe.createElement(sm,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},xe.createElement(CC,{size:24})))},c&&xe.createElement(Qc,{open:c,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),xe.createElement(ue,null,xe.createElement("div",{className:EC()},xe.createElement(SC,{variant:"title",size:"small"},Ka.t("You get")),xe.createElement("div",{className:bC()},xe.createElement(pr,{onClick:!k&&!c&&!E?I:void 0}))),xe.createElement(ja,{size:"12"}),Rp(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),xe.createElement(ja,{size:10})),pe.length>0?xe.createElement(ja,{size:10}):null,xe.createElement(uo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:A.error,loading:k,warning:A.warnings?.quote??null})))}i(lm,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as zC}from"@rango-dev/queue-manager-react";import{Divider as Cm,NotFound as qC,styled as HC}from"@rango-dev/ui";import Lt,{useState as GC}from"react";import{useNavigate as VC}from"react-router-dom";import{i18n as NC}from"@lingui/core";import{Divider as dm,GroupedVirtualizedList as WC,Skeleton as MC,SwapListItem as fm,Typography as LC}from"@rango-dev/ui";import _e,{useCallback as gm,useEffect as BC,useRef as PC,useState as _C}from"react";function pm(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(pm,"calculateGroupsSoFar");import{css as IC,darkTheme as AC,styled as an}from"@rango-dev/ui";var Za=IC(),cm=an("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ja=an("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Za}`]:{$$color:"$colors$neutral600",[`.${AC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ra=an("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),um=an("div",{gap:"$10",display:"flex",flexDirection:"column"}),mm=an("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var $C=10;function es(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=_C([]),l=PC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=gm(pm,[]),f=gm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,$C),s(m(u,l.current)))},[e.length]);if(BC(()=>{r||f()},[r,f]),r){let d=[1,2];return _e.createElement(_e.Fragment,null,[d,d].map((T,C)=>_e.createElement(Ja,{key:C},_e.createElement(Ra,null,_e.createElement(MC,{variant:"text",width:60,size:"small"}),_e.createElement(dm,{size:16})),_e.createElement(dm,{size:4}),_e.createElement(um,null,T.map((S,k)=>_e.createElement(fm,{isLoading:!0,key:k}))))))}return _e.createElement(WC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>_e.createElement(Ja,null,_e.createElement(Ra,null,_e.createElement(LC,{variant:"label",size:"medium",className:Za()},c[d]))),itemContent:(d,g)=>{let T=p[d];if(!T)return null;let C=T.steps[0],y=T.steps[T.steps.length-1];return _e.createElement(cm,{key:T.requestId},_e.createElement(fm,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===NC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(T.inputAmount,6,6),realAmount:T.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(es,"HistoryGroupedList");import{CloseIcon as FC,IconButton as OC,SearchIcon as UC,TextField as QC}from"@rango-dev/ui";import sn from"react";import{styled as DC}from"@rango-dev/ui";var hm=DC("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 sn.createElement(QC,{prefix:sn.createElement(hm,null,sn.createElement(UC,{color:"black"})),suffix:!!s.length&&sn.createElement(OC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},sn.createElement(FC,{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 zr}from"@lingui/core";import ym from"dayjs";var Sm=i(t=>{let e=new Map([["today",{title:zr.t("Today"),swaps:[]}],["week",{title:zr.t("This week"),swaps:[]}],["month",{title:zr.t("This month"),swaps:[]}],["year",{title:zr.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=ym();t.forEach(p=>{let u=Number(p.creationTime),c=ym(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 XC=HC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),KC=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 Tm(){let t=VC(),{manager:e,state:o}=zC(),n=Ze(e).map(({swap:c})=>c),[r,a]=GC(""),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)||KC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:qr.t("History")}},Lt.createElement(ue,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Cm,{size:"16"}),Lt.createElement(XC,null,u&&Lt.createElement(mm,null,Lt.createElement(Cm,{size:32}),Lt.createElement(qC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&Lt.createElement(es,{list:p,onSwapClick:t,groupBy:Sm,isLoading:s}))))}i(Tm,"HistoryPage");import{i18n as dT}from"@lingui/core";import{Button as fT,Divider as Fm,styled as gT,WarningIcon as hT}from"@rango-dev/ui";import yT from"bignumber.js";import Oe,{useEffect as Om,useState as Um}from"react";import{useNavigate as ST}from"react-router-dom";import{i18n as eT}from"@lingui/core";import{Header as tT}from"@rango-dev/ui";import Gt,{useEffect as oT,useState as nT}from"react";import{i18n as YC}from"@lingui/core";import{Divider as os,FullExpandedQuote as ZC,Typography as JC}from"@rango-dev/ui";import de from"react";import{styled as ts}from"@rango-dev/ui";var km=ts("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),vm=ts("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),wm=ts("div",{width:"146px"});import{i18n as ln}from"@lingui/core";import{Select as jC}from"@rango-dev/ui";import xm from"react";function Hr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:ln.t("Smart Routing")},{value:"FEE",label:ln.t("Lowest Fee")},{value:"SPEED",label:ln.t("Fastest Transfer")},{value:"NET_OUTPUT",label:ln.t("Maximum Return")},{value:"PRICE",label:ln.t("Maximum Output")}];return xm.createElement(wm,null,xm.createElement(jC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Hr,"SelectStrategy");var bm=3;function pn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=j(),{slippage:T,customSlippage:C}=h(),{findToken:y}=h(),S=l||P(),k=!!u&&u.results.length,w=C??T,A=i(v=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...v};return Co(b,{fromToken:m,toToken:f,userSlippage:w,findToken:y})},"getQuoteWarning"),L=g?.type===0||g?.type===1,E=u?.results?Yn(d,u?.results):[];return de.createElement(de.Fragment,null,a&&de.createElement(de.Fragment,null,de.createElement(vm,null,de.createElement(JC,{size:"xmedium",variant:"title"},YC.t("Sort by")),de.createElement(Hr,{container:S})),de.createElement(os,{size:"10"})),e&&Array.from({length:bm},(v,b)=>de.createElement(de.Fragment,{key:b},s?de.createElement(ZC,{loading:!0}):de.createElement(nn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==bm-1&&de.createElement(os,{size:16}))),!e&&de.createElement(de.Fragment,null,k?E.map((v,b)=>{let x=A(v),B=Va(v.swaps),U=E.length-1===b;return de.createElement(de.Fragment,{key:v.requestId},de.createElement(uo,{showModalFee:r,container:S,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:x,fullExpandedMode:s,onClick:I=>{B||c("warning",x),c("error",B?.options||null),o(I)},type:"list-item"}),!U&&de.createElement(os,{size:16}))}):L&&de.createElement(km,null,de.createElement(Ko,{size:s?"large":"small",error:g,fetch:n}))))}i(pn,"Quotes");import{darkTheme as RC,styled as Em}from"@rango-dev/ui";var Im=Em("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${RC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Am=Em("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var rT=100;function ns(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=nT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=$o();return oT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},rT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Gt.createElement(Im,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${mr()}`,id:he.EXPANDED_BOX_ID},Gt.createElement(tT,{title:eT.t("Routes"),suffix:Gt.createElement(Gt.Fragment,null,Gt.createElement(Hr,{container:m}),Gt.createElement(io,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Gt.createElement(Am,null,Gt.createElement(pn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:$o(),onClickOnQuote:n,fullExpandedMode:c})))}i(ns,"ExpandedQuotes");import{i18n as _m}from"@lingui/core";import{SwapInput as $m}from"@rango-dev/ui";import cn from"react";import{ReverseIcon as sT}from"@rango-dev/ui";import is from"react";import{keyframes as iT,styled as Nm}from"@rango-dev/ui";var rs=450,aT=iT({"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)"}}),Wm=Nm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Mm=Nm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${aT} ${rs}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function as(){let t=j.use.switchFromAndTo();return is.createElement(Wm,null,is.createElement(Mm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},rs),t()}},is.createElement(sT,{size:12})))}i(as,"SwitchFromAndToButton");import{styled as Lm}from"@rango-dev/ui";var Bm=Lm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Pm=Lm("div",{position:"relative"});function ss(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=j(),{connectedWallets:T,getBalanceFor:C}=te(),y=a?C(a):null,S=Ln(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",w=!!s&&Nl(T,s.name),A=!Oi(g,c,m),L=!Oi(g,c,d),E=!m||!d||!d.gt(0)?null:Ke(m.toString(),d.toString());return cn.createElement(Bm,null,cn.createElement(Pm,null,cn.createElement($m,{label:_m.t("From"),mode:"From",onInputChange:u,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:A?void 0:M(m,4,4),realUsdValue:A?void 0:m?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),cn.createElement(as,null)),cn.createElement($m,{sharpBottomStyle:!r&&(!!g||e),label:_m.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(Ke(m,d),2,2),warningLevel:Et(E??0),price:{value:M(f,6,6),usdValue:L?void 0:M(d,4,4),realValue:f?.toString(),realUsdValue:L?void 0:d?.toString(),error:L?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ss,"Inputs");import{useCallback as lT,useEffect as pT,useRef as cT,useState as uT}from"react";function Dm(){let{fetch:t,loading:e,cancelFetch:o}=Fr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Dm,"useFetchAllQuotes");var mT=600;function Gr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Dm(),{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:T,setSelectedQuote:C,updateQuotePartialState:y}=j(),{slippage:S,customSlippage:k,affiliatePercent:w,affiliateRef:A,affiliateWallets:L,fetchStatus:E}=h(),v=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),x=h().excludeLiquiditySources(),{findToken:B}=h(),[U,I]=uT(!0),H=cT(u),Y=k??S,G=!l||!p||Jt(l,p)||!Oo(u),ee=i(Z=>{I(Z)},"resetState"),N=i(Z=>{let{fromToken:re,toToken:Ce,inputAmount:_,liquiditySources:De,excludeLiquiditySources:tt,disabledLiquiditySources:me,slippage:Fe,affiliateRef:wt,affiliatePercent:Ge,affiliateWallets:ot}=Z;if(U||ee(!0),!G&&re&&Ce){d();let nt=hp({fromToken:re,toToken:Ce,inputAmount:_,liquiditySources:De,excludeLiquiditySources:tt,disabledLiquiditySources:me,wallets:s,slippage:Fe,affiliateRef:wt,affiliatePercent:Ge,affiliateWallets:ot,enableCentralizedSwappers:a});zl("experimentalRoute",r)&&(nt.experimental=!0),e(nt).then(dt=>{let ge=Yn(f,dt.results),W=Wp(m,ge,dt.requestAmount);I(!1),y("quotes",dt),C(W),Or({diagnosisMessages:dt.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&Co(W,{fromToken:re,toToken:Ce,userSlippage:Y,findToken:B});y("warning",V)}).catch(dt=>{let{error:ge}=Ur(dt);(ge?.type===0||ge?.type===1)&&d(),ge?.type!==2&&(y("error",ge),I(!1))})}},"fetch"),Q=lT(gl(Z=>{N(Z)},mT),[G]);return pT(()=>{if(!t){I(!1);return}if(E!=="success")return;if(G){I(!1),(m||g||T)&&d();return}if(!Oo(u)||c?.eq(0)){ee(!1),o();return}d(),ee(!0);let Z=N;return H.current&&H.current!=u&&(Z=Q),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,v?.length,n,b.length,Y,A,w,JSON.stringify(L)]),{fetch:()=>N({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),loading:U}}i(Gr,"useSwapInput");var CT=gT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),TT=300;function Qm(){let t=ST(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=j(),[d,g]=Um(!1),{isLargeScreen:T,isExtraLargeScreen:C}=Wr(),{fetch:y,loading:S}=Gr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:A}=te(),{isActiveTab:L}=ie(),[E,v]=Um(!1),x=cp({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:A.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=$l(T,C,k?.variant),U=!!n&&!!e&&!!o&&new yT(n).gt(0)&&!bp(e,o),I=U&&w==="success"&&S,pe=(!B||B&&p?.results.length)&&(l||s);Om(()=>{c(),f("refetchQuote",!0)},[]),Om(()=>{g(U)},[U]);let G=(r||s)&&!E?y:void 0,ee=i(Q=>{B&&d?(g(!1),setTimeout(()=>{t(Q)},TT)):t(Q)},"onHandleNavigation"),N=i(Q=>{r?.requestId!==Q.requestId&&(v(!1),u(Q))},"onClickOnQuote");return Oe.createElement(CT,null,Oe.createElement(le,{height:"auto",footer:Oe.createElement(fT,{type:"primary",size:"large",disabled:x.disabled||!L,prefix:x.action==="confirm-warning"&&Oe.createElement(hT,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?ee(z.wallets):x.action==="confirm-warning"?v(!0):ee(z.confirmSwap)}},x.title),header:{onWallet:()=>{ee(z.wallets)},hasBackButton:!1,title:k.title||dT.t("Swap"),suffix:Oe.createElement(io,{hidden:B?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(z.swaps),onClickSettings:()=>{ee(z.settings)}})}},Oe.createElement(ue,null,Oe.createElement(ss,{fetchingQuote:I,fetchMetaStatus:w,isExpandable:B,onClickToken:Q=>{ee(Q==="from"?z.fromSwap:z.toSwap)}}),Oe.createElement(Fm,{size:"2"}),B?null:Oe.createElement(uo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),ee(z.routes)}:void 0}),pe?Oe.createElement(Oe.Fragment,null,Oe.createElement(Fm,{size:"10"}),Oe.createElement(Yo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:E,confirmationDisabled:!L,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),m(!0),ee(z.confirmSwap)},onChangeSettings:()=>ee(z.settings)})):null)),B?Oe.createElement(ns,{loading:I,onClickOnQuote:N,fetch:y,onClickRefresh:G,isVisible:d}):null)}i(Qm,"Home");import{i18n as zm}from"@lingui/core";import{Alert as kT,Divider as vT,List as wT,ListItemButton as xT,Radio as bT,RadioRoot as ET,Typography as IT}from"@rango-dev/ui";import kt from"react";function Vt(){let{setLanguage:t,language:e,config:o}=h(),n=Hl,r=o?.language||yo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||yo),resetLanguage:()=>t(null)}}i(Vt,"useLanguage");function qm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Vt(),n=Ye(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:kt.createElement(IT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:kt.createElement(bT,{value:s}),start:kt.createElement(p,null)}});return kt.createElement(le,{header:{title:zm.t("Language")}},kt.createElement(ue,null,kt.createElement(kT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),kt.createElement(vT,{size:"8"}),kt.createElement(ET,{value:t},kt.createElement(wT,{type:kt.createElement(xT,{title:zm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(qm,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as LT,Checkbox as BT,Image as PT,ListItemButton as _T,NotFound as $T,Typography as DT}from"@rango-dev/ui";import $e,{useState as FT}from"react";import{Checkbox as WT,Skeleton as Gm}from"@rango-dev/ui";import mn from"react";import{styled as ls}from"@rango-dev/ui";var un=ls("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ps=ls("div",{width:80,display:"flex",justifyContent:"flex-end"}),cs=ls("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as AT,styled as NT}from"@rango-dev/ui";var Hm=NT(AT,{height:61});var MT=30;function us(){return mn.createElement(un,null,Array.from(Array(MT),(t,e)=>mn.createElement(Hm,{hasDivider:!0,key:e,start:mn.createElement(Gm,{variant:"circular",width:35,height:35}),title:mn.createElement(Gm,{variant:"text",size:"large",width:90}),end:mn.createElement(WT,{checked:!1})})))}i(us,"LoadingLiquiditySourceList");function ms({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=FT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Dn(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)),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:S,groupTitle:k,logo:w}=y;return{start:$e.createElement(PT,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:$e.createElement(BT,{checked:S,disabled:l}),title:$e.createElement(DT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),T=i(y=>{let S=y.target.value;a(S)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),$e.createElement(le,{header:{title:Bt.t(t),suffix:$e.createElement(ps,null,$e.createElement(LT,{variant:"ghost",size:"xsmall",onClick:d},f?Bt.t("Deselect all"):Bt.t("Select all")))}},$e.createElement(ue,{view:!0},$e.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&$e.createElement(us,null),!C.length&&r?$e.createElement(cs,null,$e.createElement($T,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&$e.createElement(un,{disabled:l},C.map(y=>{let{groupTitle:S,...k}=y;return $e.createElement($e.Fragment,{key:y.id},$e.createElement(_T,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ms,"LiquiditySourcePage");import{i18n as OT}from"@lingui/core";import Vr from"react";import{useNavigate as UT}from"react-router-dom";function Vm(){let t=UT(),e=Ye(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Gr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return Vr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:OT.t("Routes"),suffix:Vr.createElement(io,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Vr.createElement(ue,null,Vr.createElement(pn,{fetch:l,loading:p,onClickOnQuote:u})))}i(Vm,"RoutesPage");import{i18n as ed}from"@lingui/core";import{Divider as td,getCategoriesCount as jT,SelectableCategoryList as YT}from"@rango-dev/ui";import Pt,{useState as od}from"react";import{i18n as ds}from"@lingui/core";import{Divider as Jm,Image as HT,ListItemButton as GT,NotFound as VT,Typography as Rm}from"@rango-dev/ui";import Je,{useEffect as XT,useState as KT}from"react";var Xm=i((t,e,o)=>t.filter(n=>wn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as QT,styled as Km}from"@rango-dev/ui";var jm=Km("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Xr=Km(Go,{padding:0,margin:0,listStyle:"none",[`& ${QT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as zT,Skeleton as Ym}from"@rango-dev/ui";import Kr from"react";var qT=20;function Zm(){return Kr.createElement(Xr,null,Array.from(Array(qT),t=>Kr.createElement(zT,{key:t,hasDivider:!0,start:Kr.createElement(Ym,{variant:"circular",width:35,height:35}),title:Kr.createElement(Ym,{variant:"text",size:"large",width:90})})))}i(Zm,"LoadingBlockchainList");function fs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=KT(e),{fetchStatus:l}=h();XT(()=>{s([...Xm(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Je.createElement(Je.Fragment,null,Je.createElement(Jm,{size:32}),Je.createElement(VT,{title:ds.t("No results found"),description:ds.t("Try using different keywords")})):Je.createElement(Xr,{as:"ul",key:`${r}-${o}`},a.map(u=>Je.createElement(GT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Je.createElement(HT,{src:u.logo,size:30}),title:Je.createElement(Rm,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Je.createElement(jm,null,Je.createElement(Rm,{variant:"label",size:"large"},ds.t("Select Blockchain")),Je.createElement(Jm,{size:4}),l==="loading"&&Je.createElement(Zm,null),l==="success"&&p())}i(fs,"BlockchainList");function gs(t){let{type:e}=t,o=Ye(),[n,r]=od(""),[a,s]=od("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=jT(c)!==1;return Pt.createElement(le,{header:{title:ed.t("Select Blockchain")}},Pt.createElement(ue,{view:!0},f&&Pt.createElement(Pt.Fragment,null,Pt.createElement(YT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(td,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:ed.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Pt.createElement(td,{size:16}),Pt.createElement(fs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(gs,"SelectBlockchainPage");import{i18n as Rr}from"@lingui/core";import{Divider as wd}from"@rango-dev/ui";import mo,{useState as dk}from"react";import{useNavigate as fk}from"react-router-dom";import{i18n as Ss}from"@lingui/core";import{BlockchainsChip as jr,Divider as ad,Image as sd,Skeleton as tk,Tooltip as ok,Typography as Cs}from"@rango-dev/ui";import Ae from"react";import{useEffect as RT}from"react";var nd=["ETH","COSMOS","OSMOSIS"];function hs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ZT),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(JT(s)),r=n.splice(a)}return{list:n,more:r}}i(hs,"prepare");function ZT(t,e){let o=nd,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(ZT,"sortByMostUsedBlockchains");function JT(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(JT,"generateSortByPreferredBlockchainsFor");function rd(t,e){return!!e.list.find(o=>o.name===t)}i(rd,"isInVisibleList");function ys(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();RT(()=>{if(e?.selected){let a=hs(t,o,e);rd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=hs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ys,"usePrepareBlockchainList");import{styled as ek}from"@rango-dev/ui";var id=ek("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var nk=12;function Ts(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ys(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Ae.createElement(Ae.Fragment,null,Ae.createElement(ad,{size:12}),Ae.createElement(Cs,{variant:"label",size:"large"},Ss.t("Select Blockchain")),Ae.createElement(ad,{size:12}),Ae.createElement(id,null,l==="loading"&&Array.from(Array(nk),d=>Ae.createElement(tk,{key:d,variant:"rounded",height:50})),l==="success"&&Ae.createElement(Ae.Fragment,null,Ae.createElement(jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ae.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss.t("All"))),s.list.map(d=>Ae.createElement(ok,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Ae.createElement(jr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Ae.createElement(sd,{src:d.logo,size:30})))),m?Ae.createElement(jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ae.createElement(sd,{src:s.more[0].logo,size:30})):null,f?Ae.createElement(jr,{onClick:a,key:"more-blockchains"},Ae.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss._("More +{count}",{count:s.more.length}))):null)))}i(Ts,"BlockchainsSection");import{i18n as Ws}from"@lingui/core";import{darkTheme as Sd,Divider as Lo,ExternalLinkIcon as ak,Image as sk,ListItemButton as lk,NotFound as pk,PinIcon as ck,Skeleton as Cd,Typography as Jr,VirtualizedList as uk}from"@rango-dev/ui";import K,{useEffect as Td,useState as kd}from"react";import{Divider as hd,ListItem as ik,Skeleton as dn}from"@rango-dev/ui";import pt from"react";import{css as Mo,darkTheme as ld,ImageContainer as rk,styled as Re,Typography as pd}from"@rango-dev/ui";var ks=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),vs=Mo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ws=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),xs=Mo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ld} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),bs=Mo({}),Es=Mo(),cd=Re("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Is=Re("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Yr=Re("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${vs}`]:{[`& .${xs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${bs}`]:{bottom:"-15px"},[`& .${ks}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ws}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),As=Re("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ns=Re(pd,{}),ud=Re("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Es}`]:{$$color:"$colors$neutral600",[`.${ld} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zr=Re("div",{display:"flex",alignItems:"end",flexDirection:"column"}),OO=Re("div",{display:"flex",alignItems:"center"}),md=Re("div",{position:"relative",[`& ${rk}`]:{borderRadius:"$xm",overflow:"hidden"}}),dd=Re("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),fd=Re(pd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),gd=Re("a",{"& svg:hover":{color:"$colors$info"}});function yd(t){return pt.createElement(Yr,null,Array.from(Array(t.size),e=>pt.createElement(ik,{key:e,hasDivider:!0,start:pt.createElement(dn,{variant:"circular",width:35,height:35}),end:pt.createElement(Zr,null,pt.createElement(dn,{variant:"text",size:"large",width:70}),pt.createElement(hd,{size:4}),pt.createElement(dn,{variant:"text",size:"medium",width:50})),title:pt.createElement("div",null,pt.createElement(dn,{variant:"text",size:"large",width:90}),pt.createElement(hd,{size:4}),pt.createElement(dn,{variant:"text",size:"medium",width:90}))})))}i(yd,"LoadingTokenList");var Ms=20,mk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:vs()},o?K.createElement("div",{className:ks()},o):K.createElement(Is,{className:ws()},K.createElement(Jr,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Lo,{direction:"horizontal",size:4}),K.createElement(As,{css:a},K.createElement(Ns,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${xs()} ${!o&&bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Lo,{size:4,direction:"horizontal"}),K.createElement(gd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(ak,{size:12}))))},"renderDesc");function vd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=kd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=kd(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Ms))},"loadNextPage");Td(()=>{c(e.length>a.length)},[a.length]),Td(()=>{s(e.slice(0,Ms))},[e.length,r]);let T=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Lo,{size:32}),K.createElement(pk,{title:Ws.t("No results found"),description:Ws.t("Try using different keywords")})):K.createElement(uk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],S=Ln(m(y)),k=y.address||"",w=p.find(v=>v.name===y.blockchain),A=ea(w.color,"main"),L={$$color:A.main150,[`.${Sd} &`]:{$$color:A.main750},backgroundColor:"$$color"},E={$$color:A.main750,[`.${Sd} &`]:{$$color:A.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(lk,{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(md,null,K.createElement(sk,{src:y.image,size:30}),d(y,t.type)&&K.createElement(dd,null,K.createElement(ck,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(Is,null,K.createElement(Jr,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Lo,{direction:"horizontal",size:4}),K.createElement(As,{css:L},K.createElement(Ns,{variant:"body",size:"xsmall",css:E},y.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?mk({address:k,token:a[C],customCssForTag:L,customCssForTagTitle:E,name:y.name,url:w.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(Zr,null,K.createElement(Cd,{variant:"text",size:"large",width:70}),K.createElement(Lo,{size:4}),K.createElement(Cd,{variant:"text",size:"medium",width:50})):S&&K.createElement(ud,null,K.createElement(fd,{variant:"title",size:"small"},S.amount),K.createElement("div",null),S.usdValue&&K.createElement(Jr,{variant:"body",className:Es(),size:"xsmall"},`$${S.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(cd,null,K.createElement(Jr,{variant:"label",size:"large"},Ws.t("Select Token")),K.createElement(Lo,{size:4}),l==="loading"&&K.createElement(yd,{size:Ms}),l==="success"&&K.createElement(Yr,{as:"ul"},T()))}i(vd,"TokenList");function Ls(t){let{type:e}=t,o=fk(),n=Ye(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=te.use.getBalanceFor(),[m,f]=dk(""),g=(e==="source"?r:a)?.name??"",T=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"),S=i(w=>{e==="source"?s({token:w,meta:{blockchains:T,tokens:C}}):l({token:w,meta:{blockchains:T,tokens:C}})},"updateToken"),k={source:Rr.t("Source"),destination:Rr.t("Destination")};return mo.createElement(le,{header:{title:Rr.t("Swap {type}",{type:k[e]})}},mo.createElement(ue,null,mo.createElement(Ts,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:w=>{y(w)}}),mo.createElement(wd,{size:24}),mo.createElement(Mt,{value:m,autoFocus:!0,placeholder:Rr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:w=>f(w.target.value)}),mo.createElement(wd,{size:16}),mo.createElement(vd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:w=>{S(w);let A=T.find(L=>w.blockchain===L.name);A&&y(A),n()}})))}i(Ls,"SelectSwapItemsPage");import{i18n as $s}from"@lingui/core";import{Alert as Ok,Button as Uk,styled as Qk}from"@rango-dev/ui";import fo from"react";import{useInRouterContext as zk,useSearchParams as qk}from"react-router-dom";import{i18n as Nd}from"@lingui/core";import{Divider as Sk,InfoIcon as Ck,TextField as Tk,Tooltip as kk,Typography as Wd}from"@rango-dev/ui";import ct from"react";import{Chip as gk,styled as fn,TextField as hk}from"@rango-dev/ui";var xd=fn("div",{paddingTop:"$5",padding:"$10 $5"}),bd=fn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${hk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ed=fn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ei=fn("div",{maxWidth:"280px",padding:"$10"}),Id=fn(gk,{width:"61px",flexShrink:0});import{i18n as Bs}from"@lingui/core";import{Typography as yk}from"@rango-dev/ui";import gn from"react";function Ad(){return gn.createElement(ei,null,gn.createElement(yk,{variant:"label",size:"medium",color:"neutral700"},Bs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),gn.createElement("br",null),gn.createElement("br",null),gn.createElement("b",null,Bs.t("Warning")),":",Bs.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Ad,"SlippageTooltipContent");function Ps(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ct.createElement(xd,null,ct.createElement(Ed,null,ct.createElement(Wd,{variant:"title",size:"xmedium"},Nd.t("Slippage tolerance per swap")),ct.createElement(Sk,{direction:"horizontal",size:4}),ct.createElement(kk,{container:P(),side:"top",sideOffset:4,content:ct.createElement(Ad,null)},ct.createElement(Ck,{color:"gray"}))),ct.createElement(bd,null,Gl.map((r,a)=>{let s=`slippage-${a}`;return ct.createElement(Id,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ct.createElement(Tk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=jl&&s<=Kl?n(s):n(null)},suffix:o&&ct.createElement(Wd,{variant:"body",size:"small"},"%"),placeholder:Nd.t("Custom")})))}i(Ps,"Slippage");import{i18n as vt}from"@lingui/core";import{AutoThemeIcon as Md,BridgesIcon as vk,ChevronRightIcon as _s,DarkModeIcon as Ld,Divider as ti,ExchangeIcon as wk,InfinityIcon as xk,InfoIcon as bk,LanguageIcon as Ek,LightModeIcon as Bd,List as Ik,ListItem as Ak,ListItemButton as Nk,Skeleton as Wk,styled as Mk,Switch as Lk,Tabs as Bk,Tooltip as Pk,Typography as et}from"@rango-dev/ui";import O from"react";import{useNavigate as _k}from"react-router-dom";var $k=Mk("div",{width:"202px",height:"$40"}),Dk=[{id:"light",icon:O.createElement(Bd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Light"))},{id:"dark",icon:O.createElement(Ld,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Dark"))},{id:"auto",icon:O.createElement(Md,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Auto"))}],Fk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Md,{...e});case"dark":return O.createElement(Ld,{...e});default:return O.createElement(Bd,{...e})}},"getThemeIcon");function Pd(){let t=_k(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Vt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Xe("theme",c),f=Xe("liquiditySource",c),d=Xe("language",c),g=h().infiniteApprove,T=h().toggleInfiniteApprove,C=Dn(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),S=y.length,k=y.filter(H=>H.selected).length,w=C.filter(H=>H.type==="DEX"),A=w.length,L=w.filter(H=>H.selected).length,E=i((H,Y)=>{switch(l){case"loading":return O.createElement(Wk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(et,{variant:"body",size:"medium",color:"$error500"},vt.t("Loading failed"));default:return O.createElement(et,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Bridges")),end:O.createElement(O.Fragment,null,E(k,S),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(vk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Exchanges")),end:O.createElement(O.Fragment,null,E(L,A),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),start:O.createElement(wk,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},x={id:"language-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Language")),start:O.createElement(Ek,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(et,{variant:"body",size:"medium"},s),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),onClick:()=>t(z.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Infinite approval")),O.createElement(ti,{direction:"horizontal",size:4}),O.createElement(Pk,{side:"top",sideOffset:4,container:P(),content:O.createElement(ei,null,O.createElement(et,{variant:"label",size:"medium",color:"neutral700"},vt.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(bk,{color:"gray"}))),start:O.createElement(xk,{color:"gray",size:16}),end:O.createElement(Lk,{checked:g}),onClick:T},U={id:"theme-item",type:O.createElement(Ak,null),title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Theme")),end:O.createElement($k,null,O.createElement(Bk,{container:P(),items:Dk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Fk(n)},I=f?[]:[v,b];return d||I.push(x),I.push(B),!e?.singleTheme&&!m&&I.push(U),O.createElement(Ik,{type:O.createElement(Nk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Pd,"SettingsLists");var Hk=Qk("div",{paddingLeft:"$8"});function _d(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=qk(),r=zk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return fo.createElement(le,{header:{title:$s.t("Settings")}},fo.createElement(ue,null,o&&fo.createElement(Ok,{type:"info",variant:"alarm",title:$s.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:fo.createElement(Hk,null,fo.createElement(Uk,{type:"secondary",size:"small",onClick:a},$s.t("Reset")))}),fo.createElement(Ps,null),fo.createElement(Pd,null)))}i(_d,"SettingsPage");import{i18n as Mv}from"@lingui/core";import{cancelSwap as Lv}from"@rango-dev/queue-manager-rango-preset";import{useManager as Bv}from"@rango-dev/queue-manager-react";import{Alert as Pv}from"@rango-dev/ui";import Rs from"react";import{useParams as _v}from"react-router-dom";import{i18n as ut}from"@lingui/core";import{getCurrentBlockchainOfOrNull as mv,getCurrentStep as dv,getRelatedWalletOrNull as fv}from"@rango-dev/queue-manager-rango-preset";import{Button as df,CopyIcon as gv,Divider as hv,IconButton as yv,QuoteCost as Sv,RangoExplorerIcon as Cv,StepDetails as Tv,Tooltip as kv,Typography as go,useCopyToClipboard as vv}from"@rango-dev/ui";import{useWallets as wv}from"@rango-dev/wallets-react";import ff from"bignumber.js";import{PendingSwapNetworkStatus as ci}from"rango-types";import R,{useEffect as gf,useRef as xv,useState as hf}from"react";import{useNavigate as bv}from"react-router-dom";import{i18n as Xt}from"@lingui/core";var Gk=[Xt.t("Sunday"),Xt.t("Monday"),Xt.t("Tuesday"),Xt.t("Wednesday"),Xt.t("Thursday"),Xt.t("Friday"),Xt.t("Saturday")];function $d(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Xt.t("Today"):`${Gk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i($d,"timeSince");function Dd(t){return t.finishTime?$d(parseInt(t.finishTime)):$d(parseInt(t.creationTime))}i(Dd,"getSwapDate");import{PendingSwapNetworkStatus as ri}from"rango-types";import ii from"react";import{i18n as oi}from"@lingui/core";import{Button as Fd,Divider as Ds,MessageBox as Vk}from"@rango-dev/ui";import Kt from"react";var Od=i(({onCancel:t,onClose:e})=>Kt.createElement(Kt.Fragment,null,Kt.createElement(Ds,{size:20}),Kt.createElement(Vk,{type:"error",title:oi.t("Cancel Swap"),description:oi.t("Are you sure you want to cancel this swap?")}),Kt.createElement(Ds,{size:32}),Kt.createElement(Fd,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Cancel it")),Kt.createElement(Ds,{size:12}),Kt.createElement(Fd,{variant:"outlined",type:"primary",size:"large",onClick:e},oi.t("No, Continue"))),"CancelContent");import{i18n as ni}from"@lingui/core";import{Button as Ud,Divider as Fs,MessageBox as Xk,Typography as Kk}from"@rango-dev/ui";import _t from"react";var Qd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Fs,{size:20}),_t.createElement(Xk,{type:"error",title:ni.t("Delete Transaction"),description:ni.t("Are you sure you want to delete this swap?")}),_t.createElement(Fs,{size:32}),_t.createElement(Ud,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Delete it")),_t.createElement(Fs,{size:12}),_t.createElement(Ud,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(Kk,{variant:"title",size:"medium",color:"primary"},ni.t("No, Cancel")))),"DeleteContent");import{i18n as Os}from"@lingui/core";import{PendingSwapNetworkStatus as Us}from"rango-types";var Qs={[Us.WaitingForNetworkChange]:{type:"loading",title:Os.t("Change Network")},[Us.WaitingForConnectingWallet]:{type:"warning",title:Os.t("Connect Wallet")},[Us.NetworkChanged]:{type:"success",title:Os.t("Network Changed")}};import{debug as Hd}from"@rango-dev/logging-core";import{MessageBox as jk,Wallet as Yk}from"@rango-dev/ui";import{useWallets as Zk}from"@rango-dev/wallets-react";import Bo,{useState as Jk}from"react";import{styled as zd}from"@rango-dev/ui";var qd=zd("div",{display:"flex",justifyContent:"center"}),IQ=zd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Gd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Zk(),[c,m]=Jk(null),f=n?.walletType,d=f?Ii(u(f)):null,g=f?p(f):null;return Bo.createElement(Bo.Fragment,null,Bo.createElement(jk,{type:e,title:o,description:r}),a&&!!f&&!!d&&!!g&&Bo.createElement(qd,null,Bo.createElement(Yk,{container:P(),title:g.name,image:g.img,type:f,state:d,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:f,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(f).catch(C=>Hd(C))}})),Bo.createElement(so,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Hd(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function zs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ri.WaitingForNetworkChange||e===ri.WaitingForConnectingWallet||e===ri.NetworkChanged;return ii.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ii.createElement(Gd,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ri.WaitingForNetworkChange}),e==="delete"&&ii.createElement(Qd,{onClose:o,onDelete:n}),e==="cancel"&&ii.createElement(Od,{onClose:o,onCancel:r}))}i(zs,"SwapDetailsModal");import{i18n as hn}from"@lingui/core";import{Button as qs,Divider as ai,MessageBox as Vd,TokenAmount as Rk,Typography as Hs}from"@rango-dev/ui";import Me from"react";import{useNavigate as ev}from"react-router-dom";function Gs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=ev();return Me.createElement(ne,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(Vd,{type:"success",title:hn.t("Swap Successful")},Me.createElement(Rk,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(ai,{size:12}),Me.createElement(Hs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Me.createElement(Vd,{type:"error",title:hn.t("Transaction Failed"),description:m}),Me.createElement(ai,{size:32}),n==="success"&&Me.createElement(qs,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Me.createElement(Hs,{variant:"title",size:"medium",color:"neutral100"},hn.t("Done"))),Me.createElement(ai,{size:12}),f&&Me.createElement(Me.Fragment,null,Me.createElement(qs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},hn.t("Diagnosis")),Me.createElement(ai,{size:12})),Me.createElement(qs,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Hs,{variant:"title",size:"medium",color:"primary"},hn.t("See Details"))))}i(Gs,"SwapDetailsCompleteModal");import uv from"react";import{i18n as sv}from"@lingui/core";import{Alert as pf,IconButton as lv,LinkIcon as pv}from"@rango-dev/ui";import jt,{Fragment as cv}from"react";import{Alert as nv,ChevronDownIcon as rv,IconButton as iv}from"@rango-dev/ui";import _o,{useState as av}from"react";import{css as yn,darkTheme as tv,styled as $t,Typography as ov}from"@rango-dev/ui";var Xd=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),si=$t("div",{width:"100%"}),Kd=$t(Go,{padding:"$0 $20 $20 $20"}),pz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),jd=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),cz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Po=yn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${tv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Yd=yn({padding:"$5 0"}),li=yn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Zd=yn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Jd=yn({width:"100%",padding:"0 $20 $10"}),Rd=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),ef=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),pi=$t(ov,{wordBreak:"break-word"});import{styled as Vs}from"@rango-dev/ui";var tf=Vs("div",{display:"flex",flexDirection:"column",gap:"$10"}),of=Vs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),nf=Vs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function rf(t){let{message:e}=t,[o,n]=av(!1);return _o.createElement(nv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&_o.createElement(iv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},_o.createElement(of,{rotated:o},_o.createElement(rv,{size:12,color:"gray"}))),footer:_o.createElement(nf,{open:o},_o.createElement(pi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(rf,"FailedAlert");import{i18n as af}from"@lingui/core";import{Alert as Xs,Button as sf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ks}from"rango-types";import Sn from"react";function lf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},af.t("Change"))}):r===Ks.WaitingForConnectingWallet?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForConnectingWallet)}},af.t("Connect"))}):Sn.createElement(Xs,{type:"warning",title:n.shortMessage})}i(lf,"WarningAlert");function js(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=qo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return jt.createElement(tf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,T=f===d.length-1,C=(T&&u||p)&&!c,y=T&&a.status==="failed";return jt.createElement(cv,{key:g},jt.createElement(pf,{type:T&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:sv.t("View transaction"),action:m.url&&jt.createElement(lv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},jt.createElement(pv,{size:12}))}))}),c&&jt.createElement(pf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&jt.createElement(lf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&jt.createElement(rf,{message:r}))}i(js,"SwapDetailsAlerts");var cf=2e3;var uf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Ve(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ve(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Do(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ve(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ve(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Do(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:uv.createElement(js,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function mf(t){if(qo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(mf,"getStepState");function Ys(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=wv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=j.use.retry(),f=ie.use.isActiveTab(),d=bv(),[g,T]=vv(cf),C=xv(null),[y,S]=hf(null),[k,w]=hf(null),A=i(()=>{r(),S(null)},"onCancel"),L=ke.use.getNotifications(),E=ke.use.removeNotification(),v=L(),b=dv(e),x=b?.networkStatus;gf(()=>{v.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId)):k&&w(null))},[e.status,e.requestId]),gf(()=>{G?S(ci.WaitingForNetworkChange):x===ci.WaitingForConnectingWallet||x===ci.NetworkChanged?S(x):S(null)},[x]);let B=vp(e),U=b?mv(e,b):null,I=b?fv(e,b):null,H=Dd(e),Y=wp(e),pe=i(ge=>!!l(ge)?.mobileWallet,"isMobileWallet"),G=x===ci.WaitingForNetworkChange&&!!U&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,U)),ee=G?s.bind(null,I.walletType,U):void 0,N=kp(e,b),Q=uf({swap:e,switchNetwork:ee,showNetworkModal:x,setNetworkModal:S,message:N,blockchains:p,swappers:u}),Z=Q.length,[re,Ce]=[e.steps[0],e.steps[Z-1]],_=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,De=e.steps.reduce((ge,W)=>ge+parseFloat(W.feeInUsd||""),0),tt=e.steps.find(ge=>ge.diagnosisUrl)?.diagnosisUrl,me=M(parseFloat(M(_,6,6))*(Ce.toUsdPrice||0),4,4),Fe=M(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),wt=_?new ff(_).multipliedBy(Ce.toUsdPrice||0).toString():"",Ge=new ff(e.inputAmount).multipliedBy(re.fromUsdPrice||0).toString(),ot=Ke(Fe,me),nt=N.detailedMessage.content||N.shortMessage,dt=e.status==="success"?ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(_,6,6),token:Q[Z-1].to.token.displayName,conciseAddress:Bn(e.wallets[Q[Z-1].to.chain.displayName]?.address||""),chain:Q[Z-1].to.chain.displayName}}):R.createElement(ef,null,R.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},nt?"":ut.t("Transaction was not sent."),B?`${ut.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),nt&&R.createElement(pi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",nt));return R.createElement(le,{header:{title:ut.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(wo,null,R.createElement(df,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},R.createElement(go,{size:"medium",variant:"label",color:"error"},ut.t("Delete"))))},footer:Y&&!k&&R.createElement(df,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let ge=jn(e,p,c);m(ge),setTimeout(()=>{d("../../")},0)}},ut.t("Try again"))},R.createElement(ue,{compact:!0,view:!0},R.createElement(si,null,R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Request ID")}:`),R.createElement("div",{className:li()},R.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(yv,{variant:"ghost",onClick:T.bind(null,o||"")},R.createElement(gv,{size:16,color:"gray"})),R.createElement(Rd,{target:"_blank",href:`${sl}/swap/${o}`},R.createElement(kv,{container:P(),content:ut.t("View on Rango Explorer"),side:"bottom"},R.createElement(Cv,{size:20}))))),R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},e.finishTime?ut.t("Finished at"):ut.t("Created at")),R.createElement(go,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:Zd()},R.createElement(Sv,{fee:M(String(De),2,2),time:Fo(En(e.steps)),steps:Z}),R.createElement(Jo,{from:{price:{value:M(e.inputAmount,6,6),usdValue:Fe,realUsdValue:Ge,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:M(_,6,6),usdValue:me,realUsdValue:wt,realValue:_},token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image,displayName:Q[Z-1].to.chain.displayName}},percentageChange:M(ot,2,2),warningLevel:Et(ot??0)})),R.createElement("div",{className:Jd()},R.createElement(go,{variant:"title",size:"small"},ut.t("Swaps steps"))),R.createElement(hv,{size:8}),R.createElement(Kd,{ref:C},Q.map((ge,W)=>{let V=W,X=mf(e.steps[W]),Qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&W===Q.length-1;return R.createElement(Tv,{key:V,step:ge,type:"swap-progress",ref:C,state:X,hasSeparator:W!==0,tabIndex:V,isFocused:Qe,tooltipContainer:P()})}))),R.createElement(zs,{state:y,onClose:()=>S(null),onCancel:A,onDelete:n,message:N.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!f}),R.createElement(Gs,{open:!!k,diagnosisUrl:tt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(_,6,6),usdValue:me,realUsdValue:wt,realValue:_||"",percentageChange:M(ot,2,2),token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image},description:dt}))}i(Ys,"SwapDetails");import{i18n as mi}from"@lingui/core";import{Divider as Cf,NotFound as Wv,Skeleton as Tn,Typography as di}from"@rango-dev/ui";import fe from"react";import{i18n as Ev}from"@lingui/core";import{Divider as Iv,Skeleton as Av,Typography as Nv}from"@rango-dev/ui";import Se from"react";import{css as mt,styled as Zs}from"@rango-dev/ui";var yf=Zs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Cn=Zs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ui=Zs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),vq=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),wq=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),xq=mt({paddingTop:"$15",display:"flex"}),bq=mt({padding:"$15 $0"}),Eq=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Iq=mt({paddingBottom:"$10"}),Aq=mt({display:"flex",justifyContent:"start",alignItems:"center"}),Nq=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),Wq=mt({display:"flex",alignItems:"center"}),Mq=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Sf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Js(){return Se.createElement(yf,null,Se.createElement(tn,{type:"swap-preview"}),Se.createElement("div",{className:"swaps-steps"},Se.createElement(Nv,{variant:"title",size:"small"},Ev.t("Swaps steps"))),Se.createElement(Se.Fragment,null,Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1}),Se.createElement("div",{className:Sf()},Se.createElement(Iv,{direction:"horizontal",size:20}),Se.createElement(Av,{height:22,variant:"rectangular"}))),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1})),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1})),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1}))))}i(Js,"LoadingSwapDetails");function Tf(t){let{requestId:e,showSkeleton:o}=t;return fe.createElement(le,{header:{title:mi.t("Swap Details"),suffix:fe.createElement(wo,null)}},o&&fe.createElement(Xd,null,fe.createElement(si,null,fe.createElement("div",{className:Po()},fe.createElement(di,{variant:"label",size:"large",color:"neutral700"},`${mi.t("Request ID")}:`),fe.createElement("div",{className:li()},fe.createElement(di,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})),fe.createElement(Cf,{direction:"horizontal",size:4}),fe.createElement(Tn,{width:16,height:16,variant:"rectangular"}),fe.createElement(Cf,{direction:"horizontal",size:4}),fe.createElement(Tn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:Po()},fe.createElement(di,{className:Yd(),variant:"label",size:"large",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})),fe.createElement(di,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})))),fe.createElement(Js,null)),!o&&fe.createElement(jd,null,fe.createElement(Wv,{title:mi.t("Not found"),description:mi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Tf,"SwapDetailsPlaceholder");function kf(){let{manager:t,state:e}=Bv(),o=!e.loadedFromPersistor,n=Ze(t),{requestId:r}=_v(),a=Ye(),{fetchStatus:s}=h();if(!r)return Rs.createElement(Pv,{containerStyles:{margin:"20px"},type:"error",title:Mv.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&&Lv(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?Rs.createElement(Tf,{requestId:r,showSkeleton:l}):Rs.createElement(Ys,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(kf,"SwapDetailsPage");function vf(){return Bp(),Ki(),$v([{path:z.home,element:Ue.createElement(Qm,null)},{path:z.routes,element:Ue.createElement(Vm,null)},{path:z.fromSwap,children:[{index:!0,element:Ue.createElement(Ls,{type:"source"})},{path:z.blockchains,element:Ue.createElement(gs,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:Ue.createElement(Ls,{type:"destination"})},{path:z.blockchains,element:Ue.createElement(gs,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:Ue.createElement(_d,null)},{path:z.languages,element:Ue.createElement(qm,null)},{path:z.exchanges,element:Ue.createElement(ms,{sourceType:"Exchanges"})},{path:z.bridges,element:Ue.createElement(ms,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:Ue.createElement(Tm,null)},{path:z.swapDetails,element:Ue.createElement(kf,null)}]},{path:z.wallets,element:Ue.createElement(Mc,null)},{path:z.confirmSwap,element:Ue.createElement(lm,null)}])}i(vf,"AppRoutes");import{useQueueManager as Gv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Vv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Xv}from"rango-sdk";import{useContext as Kv,useEffect as Nf,useState as Wf}from"react";import{globalCss as Dv}from"@rango-dev/ui";var wf=i(()=>Dv({"@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 xf(){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(xf,"useFetchApiConfig");import{useWallets as Fv}from"@rango-dev/wallets-react";import{useEffect as Ov,useRef as Uv}from"react";function bf(){let{connect:t,state:e}=Fv(),o=Uv({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Ov(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(bf,"useForceAutoConnect");import{isApprovalTX as Qv,RouteEventType as Ef,StepEventType as If,StepExecutionEventStatus as zv,WidgetEvents as fi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Af}from"react";function el(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=ke.use.setNotification(),{findToken:n}=h();Af(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===If.TX_EXECUTION&&s.status===zv.TX_SENT&&!Qv(l)||s.type===If.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 Te.on(fi.StepEvent,r),()=>Te.off(fi.StepEvent,r)},[Te,t]),Af(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Ef.FAILED||s.type===Ef.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return Te.on(fi.RouteEvent,r),()=>Te.off(fi.RouteEvent,r)},[Te])}i(el,"useSubscribeToWidgetEvents");import{useManager as qv}from"@rango-dev/queue-manager-react";import{useEffect as Hv}from"react";function tl(){let{isSynced:t,syncNotifications:e}=ke(),{manager:o,state:n}=qv();Hv(()=>{ke.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ze(o))},[ke.persist.hasHydrated(),n.loadedFromPersistor,t])}i(tl,"useSyncNotifications");function ol(){bf(),wf(),el(),tl();let t=h().blockchains(),{canSwitchNetworkTo:e}=Cr(),[o,n]=Wf(""),[r,a]=Wf(),s=Kv(On),l=t.filter(Xv),{fetchApiConfig:p}=xf();Nf(()=>()=>Lp(),[]),Gv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Nf(()=>(Rt.init(),ke.persist.hasHydrated()||ke.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Vv(o)?.[0]&&n("")}),p().catch(console.log),Rt.destroy),[])}i(ol,"useBootstrap");import{styled as jv}from"@rango-dev/ui";var Mf=jv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function gi(){ol();let{config:t}=h(),{activeTheme:e}=ar(t?.theme||{}),{activeLanguage:o}=Vt();return nl.createElement(Yv,{language:o},nl.createElement(Mf,{id:"swap-container",className:e()},nl.createElement(vf,null)))}i(gi,"Main");import{setSolanaSignerConfig as hw}from"@rango-dev/signer-solana";import il,{useEffect as $f,useMemo as yw}from"react";import{useState as Zv}from"react";var Jv=i(()=>{let[t,e]=Zv(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=yl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Lf=Jv;import{checkWaitingForNetworkChange as Rv,makeQueueDefinition as ew}from"@rango-dev/queue-manager-rango-preset";import{Provider as tw}from"@rango-dev/queue-manager-react";import{useWallets as ow}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as nw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as rw}from"rango-types";import iw,{useMemo as aw}from"react";function sw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=ow(),l=aw(()=>ew({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL"),emitter:{emit:Te.emit}}),[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"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=p.filter(rw),T=i(k=>{let{supportedChains:w}=s(k);return Nn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:nw(g),getSupportedChainNames:T},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},S=ie.use.isActiveTab();return iw.createElement(tw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Rv(k)},isPaused:!S},t.children)}i(sw,"QueueManager");var Bf=sw;import{useManager as mw}from"@rango-dev/queue-manager-react";import dw,{createContext as fw,useContext as gw}from"react";import{cancelSwap as lw,getCurrentBlockchainOfOrNull as pw,getCurrentStep as cw,getRelatedWalletOrNull as uw}from"@rango-dev/queue-manager-rango-preset";var hi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ze(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=jn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&lw(o)}getCurrentStepInfo(e){let o=cw(e);return{step:o,wallet:o?uw(e,o):null,network:o?pw(e,o):null}}};var Pf=fw(void 0);function rl(t){let{manager:e}=mw(),o=ie.use.isActiveTab(),n=j.use.retry(),{findToken:r}=h(),a=new hi(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=bl(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Vt().resetLanguage,T=ke().getNotifications(),C=ke().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:Rt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:S=>u(S,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:T,clearAll:C}};return dw.createElement(Pf.Provider,{value:y},t.children)}i(rl,"WidgetInfo");function _f(){let t=gw(Pf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(_f,"useWidget");function yi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Lf();return $f(()=>{n&&r(n)},[n]),yw(()=>{Bl({API_KEY:o?.apiKey||kn,BASE_URL:o?.apiUrl||al})},[o.apiKey,o.apiUrl]),$f(()=>{t.config?.signers?.customSolanaRPC&&hw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),il.createElement(Un,{config:o,onUpdateState:e},il.createElement(Bf,{apiKey:o.apiKey},il.createElement(rl,null,t.children)))}i(yi,"WidgetProvider");function Df(t){let e=t.config?.externalWallets;return Si.createElement(rp,null,e?Si.createElement(gi,null):Si.createElement(yi,{config:t.config??Pi},Si.createElement(gi,null)))}i(Df,"Widget");function Ff(){let{on:t,off:e}=Te;return{on:t,off:e}}i(Ff,"useWidgetEvents");export{KV as EventSeverity,Qo as MainEvents,n2 as Networks,a2 as PendingSwapNetworkStatus,Mi as QuoteEventTypes,jV as RouteEventType,Ci as SUPPORTED_FONTS,YV as StepEventType,ZV as StepExecutionBlockedEventStatus,JV as StepExecutionEventStatus,he as UI_ID,Li as WalletEventTypes,t2 as WalletEvents,r2 as WalletTypes,Df as Widget,Qo as WidgetEvents,yi as WidgetProvider,Un as WidgetWallets,ra as customizedThemeTokens,e2 as readAccountAddress,oo as useWalletList,Cr as useWallets,_f as useWidget,Ff as useWidgetEvents,qf as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map