@rango-dev/widget-embedded 0.37.0 → 0.37.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/QueueManager.d.ts.map +1 -1
  3. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  4. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  5. package/dist/components/Layout/Layout.d.ts.map +1 -1
  6. package/dist/components/Quote/Quote.d.ts.map +1 -1
  7. package/dist/components/Quote/Quote.styles.d.ts +1 -1
  8. package/dist/components/Quote/Quote.types.d.ts +2 -0
  9. package/dist/components/Quote/Quote.types.d.ts.map +1 -1
  10. package/dist/components/Quote/QuoteCostDetails.d.ts.map +1 -1
  11. package/dist/components/Quote/QuoteCostDetails.styles.d.ts.map +1 -1
  12. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -1
  13. package/dist/components/Quotes/Quotes.d.ts.map +1 -1
  14. package/dist/components/RefreshModal/RefreshModal.styles.d.ts +1 -1
  15. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  16. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.types.d.ts +1 -1
  17. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.types.d.ts.map +1 -1
  18. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  19. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  20. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts +2 -1
  21. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts.map +1 -1
  22. package/dist/components/WalletStatefulConnect/Namespaces.d.ts.map +1 -1
  23. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +1 -1
  24. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -1
  25. package/dist/constants/quote.d.ts +10 -0
  26. package/dist/constants/quote.d.ts.map +1 -1
  27. package/dist/containers/ExpandedQuotes/ExpandedQuotes.styles.d.ts.map +1 -1
  28. package/dist/containers/Inputs/Inputs.d.ts.map +1 -1
  29. package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -1
  30. package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
  31. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -1
  32. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts +1 -1
  33. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +2 -2
  34. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -1
  35. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -1
  36. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +6 -4
  37. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -1
  38. package/dist/hooks/useFetchApiConfig.d.ts.map +1 -1
  39. package/dist/hooks/useFetchCustomToken.d.ts.map +1 -1
  40. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts +2 -1
  41. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -1
  42. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts +3 -5
  43. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts.map +1 -1
  44. package/dist/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.d.ts.map +1 -1
  45. package/dist/hooks/useSwapInput.d.ts.map +1 -1
  46. package/dist/hooks/useWalletList.d.ts.map +1 -1
  47. package/dist/hooks/useWalletProviders/useWalletProviders.d.ts +2 -3
  48. package/dist/hooks/useWalletProviders/useWalletProviders.d.ts.map +1 -1
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +2 -2
  52. package/dist/index.js.map +4 -4
  53. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  54. package/dist/pages/Home.d.ts.map +1 -1
  55. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  56. package/dist/store/app.d.ts +2 -4
  57. package/dist/store/app.d.ts.map +1 -1
  58. package/dist/store/quote.d.ts.map +1 -1
  59. package/dist/store/slices/config.d.ts +4 -0
  60. package/dist/store/slices/config.d.ts.map +1 -1
  61. package/dist/store/slices/data.d.ts.map +1 -1
  62. package/dist/store/slices/types.d.ts +6 -0
  63. package/dist/store/slices/types.d.ts.map +1 -0
  64. package/dist/store/slices/wallets.d.ts +60 -0
  65. package/dist/store/slices/wallets.d.ts.map +1 -0
  66. package/dist/store/ui.d.ts +4 -0
  67. package/dist/store/ui.d.ts.map +1 -1
  68. package/dist/store/utils/wallets.d.ts +17 -0
  69. package/dist/store/utils/wallets.d.ts.map +1 -0
  70. package/dist/types/config.d.ts +6 -3
  71. package/dist/types/config.d.ts.map +1 -1
  72. package/dist/types/quote.d.ts +8 -17
  73. package/dist/types/quote.d.ts.map +1 -1
  74. package/dist/types/wallets.d.ts +3 -7
  75. package/dist/types/wallets.d.ts.map +1 -1
  76. package/dist/utils/providers.d.ts +8 -9
  77. package/dist/utils/providers.d.ts.map +1 -1
  78. package/dist/utils/quote.d.ts +5 -6
  79. package/dist/utils/quote.d.ts.map +1 -1
  80. package/dist/utils/settings.d.ts +1 -0
  81. package/dist/utils/settings.d.ts.map +1 -1
  82. package/dist/utils/swap.d.ts +5 -5
  83. package/dist/utils/swap.d.ts.map +1 -1
  84. package/dist/utils/wallets.d.ts +12 -14
  85. package/dist/utils/wallets.d.ts.map +1 -1
  86. package/dist/widget-embedded.build.json +1 -1
  87. package/package.json +8 -8
  88. package/src/QueueManager.tsx +17 -11
  89. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +5 -24
  90. package/src/components/ConfirmWalletsModal/WalletList.tsx +10 -7
  91. package/src/components/Layout/Layout.tsx +1 -3
  92. package/src/components/Quote/Quote.tsx +22 -3
  93. package/src/components/Quote/Quote.types.ts +2 -0
  94. package/src/components/Quote/QuoteCostDetails.styles.ts +0 -1
  95. package/src/components/Quote/QuoteCostDetails.tsx +23 -4
  96. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +42 -22
  97. package/src/components/Quotes/Quotes.tsx +2 -3
  98. package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +1 -1
  99. package/src/components/SwapDetails/SwapDetails.tsx +14 -6
  100. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.types.ts +1 -1
  101. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +26 -13
  102. package/src/components/TokenList/TokenList.tsx +4 -27
  103. package/src/components/WalletStatefulConnect/DerivationPath.helpers.ts +2 -1
  104. package/src/components/WalletStatefulConnect/Namespaces.tsx +31 -38
  105. package/src/components/WalletStatefulConnect/Namespaces.types.tsx +1 -1
  106. package/src/constants/quote.ts +25 -0
  107. package/src/containers/ExpandedQuotes/ExpandedQuotes.styles.ts +1 -0
  108. package/src/containers/ExpandedQuotes/ExpandedQuotes.tsx +1 -1
  109. package/src/containers/Inputs/Inputs.tsx +20 -7
  110. package/src/containers/QuoteInfo/QuoteInfo.tsx +3 -9
  111. package/src/containers/Wallets/Wallets.tsx +82 -16
  112. package/src/containers/WidgetInfo/WidgetInfo.helpers.ts +2 -2
  113. package/src/containers/WidgetInfo/WidgetInfo.tsx +10 -8
  114. package/src/containers/WidgetInfo/WidgetInfo.types.ts +2 -2
  115. package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +29 -66
  116. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +10 -15
  117. package/src/hooks/useFetchApiConfig.ts +5 -1
  118. package/src/hooks/useFetchCustomToken.ts +5 -0
  119. package/src/hooks/useStatefulConnect/useStatefulConnect.ts +50 -17
  120. package/src/hooks/useStatefulConnect/useStatefulConnect.types.ts +3 -5
  121. package/src/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.ts +7 -6
  122. package/src/hooks/useSwapInput.ts +3 -11
  123. package/src/hooks/useWalletList.ts +6 -8
  124. package/src/hooks/useWalletProviders/useWalletProviders.ts +8 -12
  125. package/src/index.ts +1 -1
  126. package/src/pages/ConfirmSwapPage.tsx +7 -15
  127. package/src/pages/Home.tsx +5 -3
  128. package/src/pages/SelectSwapItemsPage.tsx +1 -2
  129. package/src/store/app.ts +4 -4
  130. package/src/store/quote.ts +3 -13
  131. package/src/store/slices/config.ts +76 -0
  132. package/src/store/slices/data.test.ts +23 -1
  133. package/src/store/slices/data.ts +3 -2
  134. package/src/store/slices/types.ts +9 -0
  135. package/src/store/slices/wallets.ts +488 -0
  136. package/src/store/ui.ts +6 -0
  137. package/src/store/utils/wallets.ts +108 -0
  138. package/src/types/config.ts +7 -3
  139. package/src/types/quote.ts +10 -24
  140. package/src/types/wallets.ts +3 -7
  141. package/src/utils/providers.ts +88 -36
  142. package/src/utils/quote.ts +57 -45
  143. package/src/utils/settings.ts +4 -0
  144. package/src/utils/swap.ts +56 -37
  145. package/src/utils/wallets.ts +76 -141
  146. package/dist/constants/warnings.d.ts +0 -3
  147. package/dist/constants/warnings.d.ts.map +0 -1
  148. package/dist/hooks/useObserveBalanceChanges/index.d.ts +0 -2
  149. package/dist/hooks/useObserveBalanceChanges/index.d.ts.map +0 -1
  150. package/dist/hooks/useObserveBalanceChanges/useObserveBalanceChanges.d.ts +0 -4
  151. package/dist/hooks/useObserveBalanceChanges/useObserveBalanceChanges.d.ts.map +0 -1
  152. package/dist/store/wallets.d.ts +0 -66
  153. package/dist/store/wallets.d.ts.map +0 -1
  154. package/src/constants/warnings.ts +0 -26
  155. package/src/hooks/useObserveBalanceChanges/index.ts +0 -1
  156. package/src/hooks/useObserveBalanceChanges/useObserveBalanceChanges.ts +0 -68
  157. package/src/store/wallets.ts +0 -268
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var $h=Object.defineProperty;var i=(t,e)=>$h(t,"name",{value:e,configurable:!0});import{EventSeverity as uj,RouteEventType as mj,StepEventType as dj,StepExecutionBlockedEventStatus as fj,StepExecutionEventStatus as gj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as yj}from"@rango-dev/wallets-core/legacy";import{useWallets as Rr,Events as Cj}from"@rango-dev/wallets-react";import{Networks as Tj,WalletTypes as vj}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as bj}from"rango-types";import{Divider as LS}from"@rango-dev/ui";import uo,{useEffect as BS,useRef as PS,useState as Nc}from"react";import{WalletState as Fh}from"@rango-dev/ui";import{useWallets as Oh}from"@rango-dev/wallets-react";import{useReducer as Uh}from"react";function cp(t){return!!t.derivationPath}i(cp,"isStateOnDerivationPathStep");function up(t){return!!t.namespace}i(up,"isStateOnNamespace");var or={status:"init",namespace:null,derivationPath:null};function mp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"reset":return or;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:or;default:throw new Error("Action hasn't been defined.")}}i(mp,"reducer");function Gt(){let{state:t,disconnect:e,connect:o}=Oh(),[n,r]=Uh(mp,or),a=i(async(c,m,g)=>{r({type:"reset"});try{return await o(c,void 0,m),{status:"connected"}}catch(f){let d=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:f})}},"runConnect"),s=i(async(c,m)=>{if(c.state===Fh.DISCONNECTED){if(!c.namespaces)return await a(c.type,void 0,m);let f=c.namespaces.length>1,d=c.needsDerivationPath;return f?(r({type:"needsNamespace",payload:{providerType:c.type,providerImage:c.image,availableNamespaces:c.namespaces,singleNamespace:c.singleNamespace}}),{status:"namespace"}):d?(r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:c.namespaces[0]}}),{status:"derivation-path"}):await a(c.type,c.namespaces.map(h=>({namespace:h})),m)}return m?.disconnectIfConnected?(await u(c.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(c,m)=>{let g=c.singleNamespace,f=c.needsDerivationPath,d=m[0];if(!d)throw new Error("To confirm a namespace, you should select at least one namespace.");if(g&&f)return r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:d}}),{status:"derivation-path"};if(!up(n))throw new Error("Something went wrong on handling namespace. Please retry.");let h=n.namespace.providerType,C=m.map(S=>({namespace:S}));return await a(h,C)},"handleNamespace"),p=i(async c=>{if(!c)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!cp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:c}];return await a(m,f)},"handleDerivationPath"),u=i(async c=>{let m=t(c);return m.connected||m.connecting?(await e(c),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:p,getState:()=>n,resetState:c=>{r(c==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Gt,"useStatefulConnect");import{WalletState as Ca}from"@rango-dev/ui";import{useWallets as Xy}from"@rango-dev/wallets-react";import{detectMobileScreens as Yy,KEPLR_COMPATIBLE_WALLETS as Zy,WalletTypes as Po}from"@rango-dev/wallets-shared";import{useCallback as Jy,useEffect as Ry}from"react";import Oy,{createContext as Uy,useContext as zy,useEffect as Qy,useRef as qy}from"react";import{create as $y}from"zustand";import{persist as Fy}from"zustand/middleware";var na=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},No=new na;function nr(t,e){return e.find(o=>o.name===t)?.displayName}i(nr,"getBlockchainDisplayNameFor");function pt(t,e){return e.find(o=>o.name===t)?.shortName}i(pt,"getBlockchainShortNameFor");function dp(t,e){return e.find(o=>o.name===t)?.logo}i(dp,"getBlockchainImage");function rn(t,e){return e.find(o=>o.id===t)?.title}i(rn,"getSwapperDisplayName");function an(t,e){return e.find(o=>o.name===t)??null}i(an,"findBlockchain");function ra(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(ra,"isTokenNative");function De(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(De,"createTokenHash");function Wo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Wo,"isValidTokenAddress");function sn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=De(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=De(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(sn,"matchTokensFromConfigWithMeta");function rr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(rr,"getSupportedBlockchainsFromConfig");var ia={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},zh={clientUrl:void 0},Qh={liquiditySources:void 0},fp=i((t,e,o)=>({config:{...ia,...t},iframe:zh,campaignMode:Qh,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,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=sn({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=sn({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});No.set("supportedSourceTokens",l),No.set("supportedDestinationTokens",p),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");import{TransactionType as gp}from"rango-types";var hp=[gp.EVM,gp.SOLANA];import{RangoClient as ny}from"rango-sdk";import{UI_ID as qh}from"@rango-dev/ui";var ir="c6381a79-2817-4602-83bf-6a641a409e32",yp="https://api.rango.exchange",Sp="https://explorer.rango.exchange",_e={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...qh};import{BlockchainCategories as Yh,WalletState as xt}from"@rango-dev/ui";import{legacyReadAccountAddress as Zh}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as Jh,getCosmosExperimentalChainInfo as Rh,isEvmAddress as ey,KEPLR_COMPATIBLE_WALLETS as YI,Networks as Mp}from"@rango-dev/wallets-shared";import ua from"bignumber.js";import{isCosmosBlockchain as ty}from"rango-types";import Hh from"bignumber.js";var Ue=new Hh(0);import{WalletTypes as Gh}from"@rango-dev/wallets-shared";var Cp=[Gh.LEAP];import{BlockchainCategories as sa,WalletState as Xh}from"@rango-dev/ui";import{TransactionType as ar}from"rango-sdk";var kp="Roboto",aa=[{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"}];function Mo(t){return Array.from(new Set(t))}i(Mo,"removeDuplicateFrom");function ca(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(ca,"areEqual");function Ep(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ep,"debounce");function et(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(et,"containsText");function wp(t,e){return t.toLowerCase()===e.toLowerCase()}i(wp,"exactText");function bp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(bp,"startWithText");var N=i(()=>document.getElementById(_e.SWAP_BOX_ID),"getContainer"),ln=i(()=>document.getElementById(_e.EXPANDED_BOX_ID),"getExpanded");function xp(t,e,o){let n=!!e&&wp(e,t),r=!!o&&wp(o,t);return n!==r?n?-1:1:0}i(xp,"compareExactMatchText");function la(t,e,o){let n=!!e&&et(e,t),r=!!o&&et(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(la,"compareContainsText");function pa(t,e,o){let n=!!e&&bp(e,t),r=!!o&&bp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(pa,"compareStartWithText");function Ip(t,e,o){if(!o)return 0;let n=xp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=xp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=pa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=la(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=pa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=la(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=pa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=la(o,t.address,e.address);if(r!==0)return r}return 0}i(Ip,"compareWithSearchFor");var sr=i((t,e)=>{switch(e){case sa.ALL:return!0;case sa.UTXO:return t===ar.TRANSFER;case sa.OTHER:return t!==ar.TRANSFER&&t!==ar.COSMOS&&t!==ar.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Ap=i(t=>aa.find(o=>o.value===t)?.url,"getFontUrlByName");function Np(t,e){let o=!!t.find(n=>n.state===Xh.CONNECTED);return e===!1&&o}i(Np,"isSingleWalletActive");import{BigNumber as Wp}from"bignumber.js";var pn=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"),L=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Wp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Wp(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 lr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var bt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),cn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function un(t){switch(!0){case t.connected:return xt.CONNECTED;case t.connecting:return xt.CONNECTING;case!t.installed:return xt.NOT_INSTALLED;default:return xt.DISCONNECTED}}i(un,"mapStatusToWalletState");function Lp(t,e,o,n){return o.filter(r=>!Cp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m,needsDerivationPath:g}=e(r),f=Mo(m.map(h=>h.type)),d=un(t(r));return{title:a,image:s,link:Jh(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:f,needsDerivationPath:g}})}i(Lp,"mapWalletTypesToWalletInfo");function ur(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(ur,"walletAndSupportedChainsNames");function Bp(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}=Zh(p),m=l.length>0,g=l.includes(c),f=c===Mp.Unknown;if(m&&!g&&!f)return;let h=c===Mp.Unknown&&ey(u);if(f&&!h)return;o.includes(c)||h?r?s(c,u.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{s(k,u.toLowerCase())}):s(c,u)}),a}i(Bp,"prepareAccountsForWalletStore");function ao(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,g=u.to.blockchain,f=a===o.swaps.length-1,d=c===p.length-1;(!f&&!d||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(g)})}e==="all"&&n.add(l)}),Array.from(n)}i(ao,"getQuoteWallets");function mr(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(mr,"isAccountAndWalletMatched");function Pp(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 ua(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Pp,"makeBalanceFor");function Dp(t){return{...t,loading:!1,error:!0}}i(Dp,"resetConnectedWalletState");var _p=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=L(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new ua(a?.amount||Ue).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Ue)||Ue).toString();return oy(r)},"calculateWalletUsdValue");function oy(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(oy,"numberWithThousandSeparator");var dr=i((t,e)=>{let o=Rh(Object.entries(t).map(([,n])=>n).filter(ty));return o&&o[e]?.experimental},"isExperimentalChain");function fr(t){return t?{...t,amount:L(t.amount,8,8),usdValue:L(t.usdValue,4,4)}:null}i(fr,"formatBalance");function $p(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($p,"compareTokenBalance");function Bt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Bt,"areTokensEqual");function Fp(t){return t.sort((e,o)=>+(o.state===xt.CONNECTED)-+(e.state===xt.CONNECTED)||+(o.state===xt.DISCONNECTED||o.state===xt.CONNECTING)-+(e.state===xt.DISCONNECTED||e.state===xt.CONNECTING))}i(Fp,"sortWalletsBasedOnConnectionState");function gr(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(gr,"getConciseAddress");function Op({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Op,"getAddress");function hr(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new ua(o?.usdPrice??Ue).multipliedBy(o?.amount).toString():""},r=o?De({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(hr,"makeTokensBalance");var Up=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function zp(t){return t.map(e=>e.state).join("-")}i(zp,"hashWalletsState");function Qp(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(Qp,"filterBlockchainsByWalletTypes");function qp(t,e){return e===Yh.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(sr(n,e))return!0;return!1})}i(qp,"filterWalletsByCategory");var ma={API_KEY:ir};function Pt(t){return ma[t]||""}i(Pt,"getConfig");function Hp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ma=e,ma}i(Hp,"initConfig");var Gp=20,Vp=25,da="theme-widget",fa=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Bt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Bt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),ga=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Kp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var yr,Et=i(()=>yr||(yr=new ny(Pt("API_KEY"),Pt("BASE_URL")),yr),"httpService");function Sr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Mo(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(Sr,"getUniqueSwappersGroups");function jp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(jp,"sortLiquiditySourcesByGroupTitle");function Xe(t,e){return e?.[t]==="hidden"}i(Xe,"isFeatureHidden");function Lo(t,e){return e?.[t]==="enabled"}i(Lo,"isRoutingEnabled");var Xp=i((t,e,o)=>Xe("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Yp=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_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;if(o.type==="custom-token"){let p=rr({config:a}),u=r;return p.length>0&&(u=u.filter(c=>p.includes(c.name))),u.filter(c=>hp.includes(c.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),p=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",c=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=No.get(c);m?.length||(m=sn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),No.set(c,m)),m=Xp(m,s,a.features);let g=e().blockchains({type:o.type});return m.filter(d=>o.blockchain&&d.blockchain!==o.blockchain||!g.some(h=>h.name===d.blockchain)?!1:o.searchFor?!!(et(d.symbol,o.searchFor)||et(d.address||"",o.searchFor)||et(d.name||"",o.searchFor)):!0).sort((d,h)=>{let C=e().isTokenPinned(d,o.type),S=e().isTokenPinned(h,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(d),M=o.getBalanceFor(h),b=$p(I,M);if(b!==0)return b}let k=p.get(d.blockchain),T=p.get(h.blockchain),v=ra(d,k),w=ra(h,T);if(v!==w)return v?-1:1;if(d.isPopular!==h.isPopular)return d.isPopular?-1:1;if(o.searchFor){let I=Ip(d,h,o.searchFor);if(I)return I}return d.isSecondaryCoin!==h.isSecondaryCoin?d.isSecondaryCoin?1:-1:k&&T?k.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=De(o),s=n.get(a);return s||(s=r.find(l=>De(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Bt(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(jp)},fetch:async()=>{try{let{routing:o}=e().config,n=Lo("enableCentralizedSwappers",o),r=await Et().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},p=[],u=r.popularTokens,c=r.swappers,m=new Set;r.tokens.forEach(f=>{m.add(f.blockchain),p.push(f)}),r.blockchains.sort((f,d)=>f.sort-d.sort).forEach(f=>{f.enabled&&m.has(f.name)&&a.set(f.name,f)}),p.forEach(f=>{let d=De(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(d,f),l[f.blockchain].push(d)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:c})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as ry,Catalonia as iy,Chinese as Zp,Denmark as ay,English as sy,Finland as ly,French as py,German as cy,Greece as uy,Hungary as my,India as dy,Indonesian as fy,Italian as gy,Japanese as hy,Korea as yy,Lithuania as Sy,Malay as Cy,Netherlands as ky,Pakistan as Ty,Philippines as vy,Poland as wy,Portuguese as by,Russian as xy,SaudiArabia as Ey,Serbia as Iy,Slovakia as Ay,SouthAfrica as Ny,Spanish as Wy,Swahili as My,Swedish as Ly,Thai as By,Turkish as Py,Ukrainian as Dy,Vietnamese as _y}from"@rango-dev/ui";var Jp=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:Ny},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Ey},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:ry},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:iy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Zp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Zp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:ay},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:ky},{title:"English",label:"English",local:"en",SVGFlag:sy},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:vy},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:ly},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:py},{title:"German",label:"Deutsch",local:"de",SVGFlag:cy},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:uy},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:dy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:my},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:fy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:gy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:hy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:yy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:Sy},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Cy},{title:"Polish",label:"Polski",local:"pl",SVGFlag:wy},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:by},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:xy},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Iy},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:Ay},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Wy},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:My},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Ly},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:By},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Py},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Dy},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:Ty},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:_y}],Bo="en";var Rp=[.5,1,3],ec=1,tc=5,oc=100,nc=0;var rc=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ec,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],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=Mo(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||Bo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Bo}})},setCustomToken:o=>t(n=>({_customTokens:[o,...n._customTokens]})),deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=rr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");function ic(t){return $y()(Fy((...e)=>({...Yp(...e),...rc(...e),...fp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,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(ic,"createAppStore");var ac=Uy(null);function y(){let t=zy(ac);if(Qy(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function sc(t){let e=qy();return e.current||(e.current=ic(t.config)),Oy.createElement(ac.Provider,{value:e.current},t.children)}i(sc,"AppStoreProvider");import{create as Vy}from"zustand";import{subscribeWithSelector as Ky}from"zustand/middleware";import Hy from"mitt";var he=Hy(),Cr={on:he.on,off:he.off};import{WidgetEvents as lc}from"@rango-dev/queue-manager-rango-preset";var ya=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ya||{}),kr=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(kr||{}),Sa=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Sa||{}),so=(a=>(a[a.RouteEvent=lc.RouteEvent]="RouteEvent",a[a.StepEvent=lc.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(so||{});var Gy=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"),Vt=Gy;var R=Vt(Vy()(Ky((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{he.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)&&he.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:hr(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=>mr(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Et().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(g=>{let f=o.find(h=>mr(h,g)),d=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return d?.failed&&f&&r&&a([f],n,!1),f&&d?{...g,explorerUrl:d.explorerUrl,balances:Pp(d,n),loading:!1,error:!1}:g});return{loading:!1,balances:hr(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>mr(m,c))?Dp(c):c);return{loading:!1,balances:hr(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=De(o);return n[r]??null}}))));import{allProviders as jy}from"@rango-dev/provider-all";function Tr(t,e){let o=jy({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}: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(Tr,"matchAndGenerateProviders");function pc(t,e){return Tr(t,e).map(r=>r.config.type)}i(pc,"configWalletsToWalletName");var eS=Object.values(Po);function ft(t){let{chain:e}=t||{},{config:o}=y(),{state:n,getWalletInfo:r}=Xy(),{connectedWallets:a}=R(),s=y().blockchains(),{handleDisconnect:l}=Gt(),p=pc(o?.wallets,{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,tonConnect:o.tonConnect})||eS,u=Lp(n,r,p,e);u=Yy()?u.filter(h=>h.showOnMobile!==!1&&n(h.type).installed):u;let c=Fp(u),m=i(h=>!a.find(C=>C.walletType===h&&C.chain===e),"isExperimentalChainNotAdded"),g=Jy(()=>{let h=u?.filter(C=>C.state===Ca.CONNECTING)||[];for(let C of h)l(C.type)},[zp(u)]);Ry(()=>()=>{g()},[]);let f=i(h=>{let C=h.find(k=>k.type===Po.DEFAULT);return!C||C.state===Ca.NOT_INSTALLED?!1:h.filter(k=>k.state!=Ca.NOT_INSTALLED&&![Po.DEFAULT,Po.WALLET_CONNECT_2,Po.LEDGER].includes(k.type)&&r(k.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i((h,C,S)=>dr(S,C)&&m(h)&&!Zy.includes(h)||h==Po.DEFAULT&&!f(u),"shouldExcludeWallet");return{list:c.filter(h=>!d(h.type,e??"",s)),terminateConnectingWallets:g}}i(ft,"useWalletList");import{Modal as nS}from"@rango-dev/ui";import rS from"react";import{create as oS}from"zustand";var cc="rango-widget";var mn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.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.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(cc),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}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}}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 se=Vt(oS()((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})}}))),lo=new mn({onInit:()=>se.setState({tabManagerInitiated:!0}),onClaim:()=>se.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>se.setState({isActiveTab:!1})});function ee(t){let{watermark:e}=se();return rS.createElement(nS,{hasWatermark:e==="FULL",...t},t.children)}i(ee,"WatermarkedModal");import{i18n as ka}from"@lingui/core";import{Button as cS,Checkbox as uS,Divider as mS,Image as kc,ListItemButton as dS,MessageBox as fS,Radio as gS,RadioRoot as hS}from"@rango-dev/ui";import{namespaces as Tc}from"@rango-dev/wallets-shared";import Te,{useMemo as yS,useState as SS}from"react";import{css as iS,darkTheme as mc,IconButton as aS,styled as po}from"@rango-dev/ui";var It=po(aS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${mc} &`]:{backgroundColor:"$neutral"}}}),dc=po("div",{position:"absolute",background:"$secondary500",[`.${mc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Kt=po("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),fc=po("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"}}}}),gc=po("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),hc=po("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),yc=iS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),vr=po("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as sS,styled as wr}from"@rango-dev/ui";var RA=wr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Do=wr("div",{position:"relative"}),lS=sS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),_o=wr("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}),br=wr("div",{"& img":{borderRadius:"50%"}});function Sc(t,e){return t.find(o=>o.name===e)?.logo}i(Sc,"getBlockchainLogo");import{styled as pS}from"@rango-dev/ui";var Cc=pS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function dn(t){let{singleNamespace:e,availableNamespaces:o,providerImage:n}=t.value,[r,a]=SS([]),s=y().blockchains(),l=yS(()=>o?.map(c=>({name:c,logo:Sc(s,Tc[c].mainBlockchain),title:Tc[c].title})),[o]),p=i(c=>{a(e?[c]:m=>m.includes(c)?m.filter(g=>g!==c):m.concat(c))},"onSelect"),u=i(c=>e?Te.createElement(hS,{value:r?.[0]},c):Te.createElement(Te.Fragment,null,c),"wrapRadioRoot");return Te.createElement(Te.Fragment,null,Te.createElement(mS,{size:20}),Te.createElement(fS,{type:"info",title:ka.t("Select chain types"),description:ka.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Te.createElement(Do,null,Te.createElement(vr,null,Te.createElement(kc,{src:n,size:45})),Te.createElement(_o,null))}),Te.createElement(Cc,null,u(Te.createElement(Te.Fragment,null,l?.map(c=>Te.createElement(dS,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>p(c.name),start:Te.createElement(kc,{src:c.logo,size:22}),end:e?Te.createElement(gS,{value:c.name}):Te.createElement(uS,{checked:r.includes(c.name)})}))))),Te.createElement(cS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},ka.t("Confirm")))}i(dn,"Namespaces");import{i18n as $o}from"@lingui/core";import{Button as TS,Divider as bc,Image as vS,MessageBox as wS,Select as bS,TextField as xS}from"@rango-dev/ui";import ze,{useEffect as ES,useState as xc}from"react";import{namespaces as CS}from"@rango-dev/wallets-shared";var xr={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ta(t){let e=t?CS[t].derivationPaths:null;return e?[...e,xr]:[]}i(Ta,"getDerivationPaths");import{styled as vc,Typography as kS}from"@rango-dev/ui";var wc=vc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),va=vc(kS,{paddingLeft:"$10"}),wa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Ec="0";function fn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=xc(null),[l,p]=xc(Ec),u=a===xr.id,c=Ta(o),m=i(({value:f})=>{let d=c?.find(h=>h.id===f);d&&(a===xr.id&&Number.isNaN(Number(l))&&p(Ec),s(d.id))},"handleDerivationPathItemClick"),g=i(()=>{let f=c.find(d=>d.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return ES(()=>{s(Ta(o)[0]?.id||null)},[o]),ze.createElement(ze.Fragment,null,ze.createElement(bc,{size:20}),ze.createElement(wS,{type:"info",title:$o.t("Select Derivation Path"),description:$o.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ze.createElement(Do,null,ze.createElement(br,null,ze.createElement(vS,{src:n,size:45})),ze.createElement(_o,null))}),ze.createElement(wc,null,ze.createElement(va,{variant:"body",size:"xsmall",color:"$neutral600"},$o.t("Choose Derivation Path Template")),ze.createElement(bS,{value:a||"",options:c.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:m,styles:{trigger:wa}}),ze.createElement(bc,{size:20}),ze.createElement(va,{variant:"body",size:"xsmall",color:"$neutral600"},u?$o.t("Enter Path"):$o.t("Enter Index")),ze.createElement(xS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>p(f.target.value),style:wa})),ze.createElement(TS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:g,disabled:!c||!a||!l},$o.t("Confirm")))}i(fn,"DerivationPath");import{i18n as Fo}from"@lingui/core";import{Image as IS,MessageBox as ba,WalletState as AS}from"@rango-dev/ui";import{useWallets as NS}from"@rango-dev/wallets-react";import co from"react";function xa(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=NS();return un(a(n))===AS.CONNECTED?co.createElement(ba,{type:"success",title:Fo.t("Wallet Connected"),description:Fo.t("Your wallet is connected, you can use it to swap.")}):o?co.createElement(ba,{type:"error",title:Fo.t("Failed to Connect"),description:o||Fo.t("Your wallet is not connected. Please try again.")}):co.createElement(ba,{type:"loading",title:Fo.t("Connecting to your wallet"),description:Fo.t("Click connect in your wallet popup."),icon:co.createElement(Do,null,co.createElement(br,null,co.createElement(IS,{src:r,size:45})),co.createElement(_o,null))})}i(xa,"ConnectStatus");import{i18n as Ea}from"@lingui/core";import{Button as WS,Divider as Ic,MessageBox as MS}from"@rango-dev/ui";import Er from"react";function Ia(t){let{displayName:e,onConfirm:o}=t;return Er.createElement(MS,{title:Ea.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ea.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Er.createElement(Ic,{size:18}),Er.createElement(Ic,{size:32}),Er.createElement(WS,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ea.t("Confirm")))}i(Ia,"ExperimentalChain");function Ac(t,e){return t().status==="init"&&!!e}i(Ac,"isOnStatus");function gn(t){return t().status==="namespace"}i(gn,"isOnNamespace");function hn(t){return t().status==="derivationPath"}i(hn,"isOnDerivationPath");var DS=3e3,_S=300;function mo(t){let e=PS(),[o,n]=Nc(!1),[r,a]=Nc(),s=i(S=>{a(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=ft(),{handleConnect:p,handleDerivationPath:u,handleNamespace:c,getState:m,resetState:g}=Gt(),f=i(S=>{c(t.wallet,S).catch(s)},"handleConfirmNamespaces"),d=i(S=>{if(!S)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(S).catch(s)},"handleDerivationPathConfirm"),h=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),g(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState");return BS(()=>{if(t.wallet){C();let S=!1,k=!0,T=i(()=>{setTimeout(()=>{k=!1,S||n(!0)},_S)},"beforeConnecting"),v=i(w=>{let I=w.status==="connected",M=["disconnected","disconnected-unhandled"].includes(w.status);["namespace","derivation-path"].includes(w.status)||(S=!0),I&&!k?e.current=setTimeout(h,DS):M&&h(),t.onConnect&&t.onConnect(w)},"afterConnected");T(),p(t.wallet,{disconnectIfConnected:!0}).then(v).catch(s)}},[t.wallet]),uo.createElement(ee,{open:o,onClose:h,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:N()},Ac(m,t.wallet)&&uo.createElement(uo.Fragment,null,uo.createElement(xa,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),uo.createElement(LS,{direction:"vertical",size:32})),gn(m)&&uo.createElement(dn,{onConfirm:f,value:m().namespace}),hn(m)&&uo.createElement(fn,{onConfirm:d,value:m().derivationPath}))}i(mo,"StatefulConnectModal");import{Events as Na,Provider as FS}from"@rango-dev/wallets-react";import{isEvmBlockchain as OS}from"rango-sdk";import Ir,{createContext as US,useEffect as Mc,useMemo as zS,useRef as Lc}from"react";import{useEffect as $S}from"react";function Wc(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Wc,"hashProviders");function Aa(t,e){let o=R.use.clearConnectedWallet(),n=Tr(t,e);return $S(()=>{o(),n=Tr(t,e)},[Wc(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Aa,"useWalletProviders");var Ar=US({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function QS(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=y(),a=y().blockchains(),{findToken:s}=y(),l=y().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,tonConnect:l.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:u}=Aa(l.wallets,p),{connectWallet:c,disconnectWallet:m}=R(),g=Lc(),f=Lc();Mc(()=>{n().catch(console.log)},[]),Mc(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let d=a.filter(OS).map(k=>k.name),h=i((k,T,v,w,I)=>{if(T===Na.ACCOUNTS)if(v){let M=ur(I.supportedBlockchains),b=Bp(k,v,d,M,I.isContractWallet);b.length&&c(b,s)}else m(k),f.current?f.current(k):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Na.ACCOUNTS&&w.connected){let M=`${k}-${w.network}-${v}`;w.connected&&(g.current?g.current(M):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===Na.NETWORK&&w.network){let M=`${k}-${w.network}`;g.current?g.current(M):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(k,T,v,w,I)},"onUpdateState"),C=se.use.isActiveTab(),S=zS(()=>({onConnectWallet:k=>{g.current=k},onDisconnectWallet:k=>{f.current=k}}),[]);return Ir.createElement(Ar.Provider,{value:S},Ir.createElement(FS,{allBlockChains:a,providers:u,onUpdateState:h,autoConnect:!!C},t.children))}i(QS,"Main");function Nr(t){let{config:e,...o}=t;return Ir.createElement(sc,{config:e},Ir.createElement(QS,{...o,config:e}))}i(Nr,"WidgetWallets");import ta from"react";import qS,{Fragment as HS}from"react";import{MemoryRouter as GS,useInRouterContext as VS}from"react-router";function Bc({children:t}){let o=VS()?HS:GS;return qS.createElement(o,null,t)}i(Bc,"AppRouter");import{I18nManager as AE}from"@rango-dev/ui";import sp from"react";import Be from"react";import{useRoutes as fE}from"react-router-dom";var _={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as zo,useRef as Fr}from"react";import Ye from"bignumber.js";import{create as XS}from"zustand";import{subscribeWithSelector as YS}from"zustand/middleware";import{getLastSuccessfulStep as jS}from"@rango-dev/queue-manager-rango-preset";import sM from"bignumber.js";function Wa(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(Wa,"getFeeLabel");var Ma=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Pc=30;import{i18n as gt}from"@lingui/core";import{RouteEventType as VW}from"@rango-dev/queue-manager-rango-preset";import Qe from"bignumber.js";import{PendingSwapNetworkStatus as Mr}from"rango-types";import{i18n as $e}from"@lingui/core";var te=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.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:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function Dc(t){switch(t.type){case 0:return t.diagnosisMessage??te().noResultError.title;case 1:return te().genericServerError;default:return""}}i(Dc,"getQuoteErrorMessage");import{i18n as Wr}from"@lingui/core";var fo=i(()=>({connectWallet:Wr.t("Connect Wallet"),swap:Wr.t("Swap"),swapAnyway:Wr.t("Swap anyway"),ethWarning:Wr.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function _c(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Qe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Qe(1e3)))??!1}i(_c,"hasHighValueLoss");function $c(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(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($c,"hasLimitError");function Fc(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Qe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Qe(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 Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=gt.t({id:"Required: >= {min} {symbol}",values:{min:L(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=gt.t({id:"Required: > {min} {symbol}",values:{min:L(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=gt.t({id:"Required: <= {max} {symbol}",values:{max:L(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=gt.t({id:"Required: < {max} {symbol}",values:{max:L(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Fc,"getLimitErrorMessage");function Oc(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:fo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:fo().swap,action:"confirm-swap",disabled:!0}:s?{title:fo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:fo().ethWarning,action:"confirm-warning",disabled:!1}:{title:fo().swap,action:"confirm-swap",disabled:!1}:{title:fo().connectWallet,action:"connect-wallet",disabled:!1}}i(Oc,"getSwapButtonState");function La(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(Ue))&&e&&e!=="0"&&n!==0)}i(La,"canComputePriceImpact");function Ba(t,e){let o=Ue;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 Qe(r.amount).multipliedBy(a||0))}return o}i(Ba,"getUsdFeeOfStep");function Lr(t,e){return t.reduce((o,n)=>o.plus(Ba(n,e)),Ue)}i(Lr,"getTotalFeeInUsd");function Pa(t){let e=Ue;return e=e.plus(new Qe(t.amount).multipliedBy(t.price||0)),e}i(Pa,"getUsdFee");function Uc(t){return t.reduce((e,o)=>e.plus(Pa(o)),Ue)}i(Uc,"getTotalFeesInUsd");function zc(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(zc,"getFeesGroup");function Qc(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(Qc,"checkSlippageErrors");function qc(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(qc,"checkSlippageWarnings");function Br(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(Br,"getMinRequiredSlippage");function Hc(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Hc,"hasProperSlippage");function Gc(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:g,destination:f}=t,d=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),h=[];return r?.forEach(S=>{h.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:g??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:h,selectedWallets:d??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Gc,"createQuoteRequestBody");function Vc(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Vc,"getWalletsForNewSwap");function Oo(t){return t?.outputAmount||null}i(Oo,"getQuoteOutputAmount");function Kc(t,e){return new Qe(e).div(new Qe(t)).minus(1).multipliedBy(100).toNumber()}i(Kc,"getPercentageChange");function jc(t,e){let o=Oo(t),n=Oo(e);if(!o||!n)return!1;let r=ct(o,n);return r?r<=-1:!0}i(jc,"isOutputAmountChangedALot");function Xc(t,e,o){let n=t.validationStatus,r=ao({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>tu(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=L(new Qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=L(new Qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=gt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=gt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=gt.t(" for input and network fee")),gt.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:pt(s.asset.blockchain,o)}})})}i(Xc,"generateBalanceWarnings");function Xt(t,e){return(t?new Qe(t):Ue).multipliedBy(e||0)}i(Xt,"calcOutputUsdValue");function yn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Mr.NetworkChanged}i(yn,"isNetworkStatusInWarningState");function Yc(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),yn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Mr.WaitingForConnectingWallet:n=n||gt.t("Waiting for connecting wallet");break;case Mr.WaitingForQueue:n=n||gt.t("Waiting for other running tasks to be finished");break;case Mr.WaitingForNetworkChange:n=n||gt.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(Yc,"getSwapMessages");function Zc(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(Zc,"getLastConvertedTokenInFailedSwap");function Jc(t){return t.status==="failed"}i(Jc,"shouldRetrySwap");function Rc(t,e,o,n,r,a){if(!n||t)return!0;let s=ao({filter:"all",quote:n}),l=ao({filter:"required",quote:n}),p=s.every(m=>r.some(g=>g.chain===m)),u=l.every(m=>r.some(g=>g.chain===m)),c=o&&a?Wo(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Rc,"isConfirmSwapDisabled");function eu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(eu,"isTokensIdentical");function go(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(go,"getQuoteToTokenUsdPrice");function Sn(t){return(t?.swaps||[])[0].from.usdPrice}i(Sn,"getQuoteFromTokenUsdPrice");function Da(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Da,"isNumberOfSwapsChanged");function _a(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!ca(o,n)}i(_a,"isQuoteSwappersUpdated");function $a(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!ca(o,n)}i($a,"isQuoteInternalCoinsUpdated");function nu(t,e){return Da(t,e)||_a(t,e)||$a(t,e)}i(nu,"isQuoteChanged");function tu(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(tu,"getRequiredBalanceOfWallet");function Dt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Dt,"getPriceImpactLevel");function Dr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=jS(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=an(a?a.toBlockchain:n.fromBlockchain,e),p=an(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(Dr,"createRetryQuote");function Uo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Xt(t.requestAmount,Sn(t)||o?.usdPrice),l=Xt(t.outputAmount,go(t)||n?.usdPrice);if(t&&s&&l){let c=ct(s.toString(),l.toString());if(!!c&&_c(s,c)){let g=Lr(t?.swaps,r),f=Dt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:g,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Br(t.swaps),u=a>tc;if(Hc(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:qc(t,a),minRequiredSlippage:p};return null}i(Uo,"generateQuoteWarnings");function ct(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Kc(t.toString(),e.toString());return n&&n<0?n:null}i(ct,"getPriceImpact");var ru=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"),_r=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"),iu=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...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,validationStatus:null,...r||e[0]}},"getDefaultQuote"),au=i(t=>{let e=i((o,n)=>{let r=Ma.indexOf(o.value),a=Ma.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var $r=i((t,e)=>t?.usdPrice?new Ye(e||Ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),F=Vt(XS()(YS(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ye(0),outputUsdValue:new Ye(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=Ue,a=o.inputUsdValue;return cn(o.inputAmount)?(e&&(n=e?.outputAmount?new Ye(e?.outputAmount):null,a=Xt(o.inputAmount,Sn(e)||o.fromToken?.usdPrice),r=Xt(e.outputAmount,go(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ye(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ye(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ye(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:$r(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Ye(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new Ye(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:$r(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:$r(n??null,s),outputUsdValue:new Ye(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?$r(e.toToken,e.outputAmount?.toString()||""):new Ye(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ye(0),inputUsdValue:new Ye(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ye(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),su=F.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&he.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&&he.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 lu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=F(),c=y().config,m=y().fetchStatus,g=y().blockchains(),f=y().tokens(),{findToken:d}=y(),{setAffiliateRef:h,setAffiliatePercent:C,setAffiliateWallets:S}=y(),k=c?.from?.tokens,T=c?.from?.blockchains,v=c?.to?.tokens,w=c?.to?.blockchains,I=Fr(void 0),M=Fr(void 0),b=Fr(void 0),E=Fr(void 0);zo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),zo(()=>{if(m==="success"){r();let x=g.find(A=>A.name===c?.from?.blockchain),W=c?.from?.token,D=W&&d(W);(x||!x&&b.current)&&n(x??null),D?a({token:D,meta:{blockchains:g,tokens:f}}):!D&&I.current&&a({token:null}),b.current=c?.from?.blockchain,I.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),zo(()=>{fa(s,k)&&a({token:null}),ga(p,T)&&n(null)},[k,T]),zo(()=>{fa(l,v)&&a({token:null}),ga(u,w)&&o(null)},[v,w]),zo(()=>{if(m==="success"){r();let x=g.find(A=>A.name===c?.to?.blockchain),W=c?.to?.token,D=W&&d(W);(x||!x&&E.current)&&o(x??null),D?e({token:D,meta:{blockchains:g,tokens:f}}):!D&&M.current&&e({token:null}),E.current=c?.to?.blockchain,M.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),zo(()=>{h(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),S(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(lu,"useSyncStoresWithConfig");import{useEffect as Ua,useRef as ZS}from"react";import{useInRouterContext as JS,useLocation as RS,useSearchParams as eC}from"react-router-dom";function Fa(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Fa,"convertTokenSearchParamToAsset");function Oa(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Oa,"tokenToSearchParam");function Qa(){let t=RS(),[e,o]=eC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:g}=F(),f=y().fetchStatus,d=y().blockchains(),h=y().tokens(),C=JS(),{updateIframe:S,updateCampaignMode:k}=y(),T=y().isInCampaignMode(),v=ZS(),{findToken:w}=y(),I=i(()=>{let b={};for(let[K,me]of e.entries())K.startsWith("utm_")&&(b[K]=me);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),W=e.get("fromToken"),D=e.get("toBlockchain"),A=e.get("toToken"),Z=e.get("autoConnect"),ae=e.get("clientUrl"),J=e.get("liquiditySources"),B=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:W,toBlockchain:D,toToken:A,autoConnect:Z,clientUrl:ae,liquiditySources:J,utmQueryParams:b,blockchain:B}},"getUrlSearchParams"),M=i(b=>{for(let E in b)b[E]||delete b[E];o(b,{replace:!0})},"updateUrlSearchParams");Ua(()=>{let{autoConnect:b,clientUrl:E,utmQueryParams:x,blockchain:W}=I();C&&f==="success"&&M({fromBlockchain:n?.name,fromToken:Oa(a),toBlockchain:r?.name,toToken:Oa(s),fromAmount:l,autoConnect:b??void 0,clientUrl:E??void 0,blockchain:W??void 0,liquiditySources:T?v.current:void 0,...x})},[t.pathname,l,n,a,r,s,T]),Ua(()=>{if(!C)return;let b=I();if(!v.current&&b.liquiditySources&&(v.current=b.liquiditySources),b.fromAmount&&g(b.fromAmount),f==="success"){let E=d.find(A=>A.name===b.fromBlockchain),x=b.fromToken&&E?w(Fa(b.fromToken,E)):void 0,W=d.find(A=>A.name===b.toBlockchain),D=b.toToken&&W?w(Fa(b.toToken,W)):void 0;E&&(p(E),x&&c({token:x,meta:{blockchains:d,tokens:h}})),W&&(u(W),D&&m({token:D,meta:{blockchains:d,tokens:h}}))}},[f]),Ua(()=>{let{clientUrl:b,liquiditySources:E}=I();S("clientUrl",b||void 0),k("liquiditySources",E?.split(",")??void 0)},[])}i(Qa,"useSyncUrlAndStore");import{i18n as At}from"@lingui/core";import{Alert as fk,Button as Qu,darkTheme as gk,Divider as Tn,DoneIcon as hk,MessageBox as yk,styled as Sk,TextField as Ck,Typography as kk}from"@rango-dev/ui";import ye,{useEffect as Tk,useState as Gr}from"react";import{useNavigate as vk,useSearchParams as wk}from"react-router-dom";import{ChevronRightIcon as tC,Divider as du,Image as oC,Typography as fu}from"@rango-dev/ui";import ht from"react";import{darkTheme as pu,styled as qa}from"@rango-dev/ui";var cu=qa("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${pu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${pu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),uu=qa("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),mu=qa("div",{display:"flex"});function Ha(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return ht.createElement(uu,null,ht.createElement(fu,{size:"large",variant:"label"},n),ht.createElement(du,{size:10}),ht.createElement(cu,{onClick:s?void 0:e,disabled:s},ht.createElement(mu,null,r&&ht.createElement(ht.Fragment,null,ht.createElement(oC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),ht.createElement(du,{size:4,direction:"horizontal"})),ht.createElement(fu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),ht.createElement(tC,{size:12,color:"black"})))}i(Ha,"BlockchainSelectorButton");import{i18n as Va}from"@lingui/core";import{Button as nC,Divider as Cn,ExternalLinkIcon as rC,Image as iC,Typography as qo}from"@rango-dev/ui";import Ae from"react";function gu(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(gu,"generateExplorerLink");import{darkTheme as Qo,styled as hu}from"@rango-dev/ui";var Ga=hu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Qo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Qo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),yu=hu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Qo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"}}});function Ka(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=gu(n.address,a);return Ae.createElement(ee,{open:e,dismissible:!0,onClose:o,container:N()},Ae.createElement(yu,null,Ae.createElement(iC,{src:n.image,size:45,type:"circular"}),Ae.createElement(qo,{variant:"title",size:"medium"},n.name),Ae.createElement(qo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ae.createElement(Cn,{size:4}),Ae.createElement(qo,{variant:"body",size:"medium"},s?Ae.createElement(Ga,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ae.createElement(rC,{size:12,color:"gray"})):Ae.createElement(Ga,null,n.address)),Ae.createElement(Cn,{size:4}),n.coinSource&&Ae.createElement(qo,{className:"_coin-source",variant:"body",size:"xsmall"},Va.t("via")," ",Ae.createElement(qo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ae.createElement(Cn,{size:"32"}),Ae.createElement(qo,{size:"medium",variant:"body",className:"_custom-token-description"},Va.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Ae.createElement(Cn,{size:40}),Ae.createElement(Cn,{size:10}),Ae.createElement(nC,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},Va.t("Import")))}i(Ka,"CustomTokenModal");import{useManager as lk}from"@rango-dev/queue-manager-react";import{BottomLogo as pk,Divider as $u,Header as ck}from"@rango-dev/ui";import We,{useEffect as gs,useRef as Fu,useState as uk}from"react";import{useRef as aC}from"react";function Or(){return window.self!==window.top}i(Or,"isAppLoadedIntoIframe");function ja(){let t=aC(null),{iframe:e}=y(),o=Or()&&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(ja,"useIframe");import{useNavigate as sC}from"react-router-dom";function Ze(){let t=sC();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as ts,darkTheme as TC,lightTheme as vC}from"@rango-dev/ui";import{useEffect as wC,useState as bC}from"react";import{theme as CC,darkColors as kC}from"@rango-dev/ui";import Ra from"react";function lC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(lC,"expandShortHexColor");function pC(t){return/[0-9]+$/.test(t)}i(pC,"isOverridingColor");function cC(t,e){return t.padStart(e,"0")}i(cC,"pad");function Xa(t){let e=Math.min(Math.max(Math.round(t),0),255);return cC(e.toString(16),2)}i(Xa,"intToHex");function uC(t){return`#${Xa(t.red)}${Xa(t.green)}${Xa(t.blue)}`}i(uC,"rgbToHex");function mC(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(mC,"hexToRGB");function dC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(dC,"generateShade");function fC(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(fC,"generateTint");function gC(t){return Su(t,dC)}i(gC,"calculateShades");function hC(t){return Su(t,fC)}i(hC,"calculateTints");function Su(t,e){let o=mC(t),n=[];for(let r=1;r<9;r++)n.push(uC(e(o,r)));return n}i(Su,"calculateColors");function Ya(t,e,o){let a=hC(t).reverse().concat(t),s=gC(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(Ya,"createTintsAndShades");function Za(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)&&!pC(r)){let p=lC(a);Object.assign(n,Ya(p,r,s))}}return{...n,...e}}i(Za,"expandToGenerateThemeColors");var Cu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Cu(o%52)+e;return Cu(o%52)+e},"toAlphabeticName"),SC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ja=i(t=>yC(SC(5381,JSON.stringify(t))>>>0),"toHash");function es(t){let e=CC.colors,o={...e,...kC},n,r;if(t?.light){let s={colors:Za(e,t.light)};n={id:`${da}-light-${Ja(s)}`,tokens:s}}if(t?.dark){let s={colors:Za(o,t.dark,{reverseNeutralRange:!0})};r={id:`${da}-dark-${Ja(s)}`,tokens:s}}return{light:n,dark:r}}i(es,"customizedThemeTokens");function ku(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ra.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ra.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ra.cloneElement(e,{key:l}))}}),o}i(ku,"joinList");function Tu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Tu,"doesWindowPreferDarkColorScheme");function Ho(t){let{colors:e,fontFamily:o=kp,borderRadius:n=Gp,secondaryBorderRadius:r=Vp}=t,[a,s]=bC(Tu()?"dark":"light"),{theme:l}=y(),{dark:p,light:u}=es(e),c=ts({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,vC.className],g=[c.className,TC.className];if(u){let d=ts(u.id,u.tokens);m.push(d.className)}if(p){let d=ts(p.id,p.tokens);g.push(d.className)}return wC(()=>{let d=i(h=>{h.matches?s("dark"):s("light")},"switchThemeListener");return Tu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",d),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",d)}},[]),{activeTheme:i(()=>{let d=m.join(" "),h=g.join(" ");return l==="auto"?a==="dark"?h:d:l==="dark"?h:d},"getActiveTheme"),mode:l==="auto"?a:l}}i(Ho,"useTheme");var ut=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 vu}from"@lingui/core";import{Alert as xC,Button as EC}from"@rango-dev/ui";import wu from"react";function os(t){return wu.createElement(xC,{action:wu.createElement(EC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},vu.t("Activate this tab")),type:"warning",variant:"alarm",title:vu.t("Another tab is open and handles transactions.")})}i(os,"ActivateTabAlert");import{i18n as ns}from"@lingui/core";import{Button as IC,Divider as AC,MessageBox as NC}from"@rango-dev/ui";import Ur from"react";function rs(t){let{open:e,onClose:o,onConfirm:n}=t;return Ur.createElement(ee,{open:e,dismissible:!0,onClose:o,container:N()},Ur.createElement(NC,{title:ns.t("Activate current tab"),type:"warning",description:ns.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.")},Ur.createElement(AC,{size:20}),Ur.createElement(IC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ns.t("Confirm"))))}i(rs,"ActivateTabModal");import{ChevronLeftIcon as WC}from"@rango-dev/ui";import bu from"react";function is(t){return bu.createElement(It,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},bu.createElement(WC,{color:"black",size:16}))}i(is,"BackButton");import{i18n as MC}from"@lingui/core";import{Button as LC,Typography as BC}from"@rango-dev/ui";import as from"react";function ss(t){return as.createElement(Kt,null,as.createElement(LC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},as.createElement(BC,{variant:"label",size:"medium",color:"error500"},MC.t("Cancel"))))}i(ss,"CancelButton");import{i18n as PC}from"@lingui/core";import{Image as DC,Tooltip as _C,WalletIcon as $C}from"@rango-dev/ui";import ho from"react";function ls(t){let{list:e}=ft(),o=e.filter(r=>r.state==="connected"),n=o.length?ho.createElement("div",{className:yc()},o.map(r=>ho.createElement(vr,{key:r.title},ho.createElement(DC,{src:r.image,size:14})))):PC.t("Connect Wallet");return ho.createElement(_C,{container:t.container,side:"bottom",content:n},ho.createElement(It,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ho.createElement(dc,null),ho.createElement($C,{size:18,color:"black"})))}i(ls,"WalletButton");import{i18n as Qr}from"@lingui/core";import{NotificationsIcon as RC,Popover as ek,SettingsIcon as tk,Tooltip as qr,TransactionIcon as ok}from"@rango-dev/ui";import Ne from"react";import{Notifications as zC}from"@rango-dev/ui";import QC from"react";import{useNavigate as qC}from"react-router-dom";import{create as FC}from"zustand";import{persist as OC,subscribeWithSelector as UC}from"zustand/middleware";var ve=Vt(FC()(OC(UC((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:{creationTime:parseInt(n.creationTime),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)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.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 ps(){let t=qC(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=y().blockchains(),{findToken:a}=y();return QC.createElement(zC,{list:n,getBlockchainImage:l=>dp(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${_.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ps,"NotificationContent");import{useManager as HC}from"@rango-dev/queue-manager-react";import{InProgressIcon as GC}from"@rango-dev/ui";import xu from"react";var VC=i(()=>{let{manager:t}=HC();return ut(t).map(({swap:o})=>o).find(o=>o.status==="running")?xu.createElement(hc,null,xu.createElement(GC,{color:"info",size:6})):null},"InProgressTransactionBadge"),Eu=VC;import{EventSeverity as KC}from"@rango-dev/queue-manager-rango-preset";import{Typography as jC}from"@rango-dev/ui";import Iu from"react";function Au(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===KC.WARNING);return o?Iu.createElement(fc,{isSever:n},Iu.createElement(jC,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Au,"NotificationsBadge");import{RefreshProgressButton as XC}from"@rango-dev/ui";import cs,{useEffect as YC,useState as Nu}from"react";var ZC=1e3,Wu=60,JC=100;function zr({onClick:t}){let[e,o]=Nu(0),[n,r]=Nu(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");YC(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Wu&&l()},ZC):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 cs.createElement(It,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},cs.createElement(gc,{onTransitionEnd:()=>r(!1),isRefetched:n},cs.createElement(XC,{size:22,color:t?"black":"gray",progress:e/Wu*JC})))}i(zr,"RefreshButton");function yo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Xe("notification",s)||r.includes("notifications");return Ne.createElement(Ne.Fragment,null,!r.includes("refresh")&&Ne.createElement(qr,{container:a||N(),side:"top",content:Qr.t("Refresh")},Ne.createElement(zr,{onClick:e})),!l&&Ne.createElement(ek,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Ne.createElement(ps,null)},Ne.createElement("div",null,Ne.createElement(qr,{container:N(),side:"top",content:Qr.t("Notifications")},Ne.createElement(It,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Ne.createElement(RC,{size:18,color:"black"}),Ne.createElement(Au,null))))),!r.includes("settings")&&Ne.createElement(qr,{container:N(),side:"top",content:Qr.t("Settings")},Ne.createElement(It,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Ne.createElement(tk,{size:18,color:"black"}))),!r.includes("history")&&Ne.createElement(qr,{container:N(),side:"top",content:Qr.t("History")},Ne.createElement(It,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Ne.createElement(ok,{size:18,color:"black"}),Ne.createElement(Eu,null))))}i(yo,"HeaderButtons");import{i18n as us}from"@lingui/core";import{Divider as Lu,MessageBox as ik,RefreshIcon as ak}from"@rango-dev/ui";import Go from"react";import{Button as nk,styled as rk}from"@rango-dev/ui";var Mu=rk(nk,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ms(t){let{open:e,onClose:o}=t;return Go.createElement(ee,{open:e,dismissible:!0,onClose:o,container:N()},Go.createElement(ik,{title:us.t("Something went wrong"),type:"error",description:us.t("Something went wrong. Please refresh the app.")},Go.createElement(Lu,{size:30}),Go.createElement(Mu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Go.createElement(ak,{size:20,color:"primary"}),Go.createElement(Lu,{size:4,direction:"horizontal"}),us.t("Refresh"))))}i(ms,"RefreshModal");function ds(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ds,"onScrollContentAttachStatusToContainer");import{css as sk,styled as fs}from"@rango-dev/ui";var Bu="700px",Hr=sk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Pu=fs("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Bu},fixed:{height:Bu}}}}),Du=fs("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),_u=fs("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 oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ja(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=uk(!1),c=R.use.connectedWallets(),{config:{features:m,theme:g}}=y(),{watermark:f}=se(),d=f==="FULL",{activeTheme:h}=Ho(g||{}),C=Xe("connectWalletButton",m),{isActiveTab:S,tabManagerInitiated:k,showActivateTabModal:T,setShowActivateTabModal:v,activateCurrentTab:w}=se(),I=Ze(),{manager:M}=lk(),E=ut(M).map(({swap:ae})=>ae).some(ae=>ae.status==="running"),x=i(()=>w(lo.forceClaim,E),"onActivateTab"),W=i(()=>{r.onWallet?.()},"onConnectWallet"),D=typeof r.hasBackButton>"u"||r.hasBackButton,A=Fu(null),Z=Fu(null);return gs(()=>(Or()&&Z.current&&e(Z.current),()=>{o()}),[]),gs(()=>(A.current?.addEventListener("scroll",ds),()=>{A.current?.removeEventListener("scroll",ds)}),[]),gs(()=>{u(l==="failed")},[l]),We.createElement(Pu,{height:s,id:_e.SWAP_BOX_ID,className:`${h()} ${Hr()}`,ref:Z},We.createElement(ck,{prefix:D?We.createElement(is,{onClick:()=>{I(),r.onBack&&r.onBack()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!C&&We.createElement(ls,{container:N(),onClick:W,isConnected:!!c?.length}),r.onCancel&&We.createElement(ss,{onClick:r.onCancel}))}),We.createElement(Du,{ref:A},n),We.createElement(rs,{open:T,onClose:()=>v(!1),onConfirm:x}),We.createElement(_u,null,We.createElement("div",{className:"footer__content"},k&&!S&&We.createElement("div",{className:"footer__alert"},We.createElement(os,{onActivateTab:x}),We.createElement($u,{size:10})),a),We.createElement($u,{size:12}),We.createElement("div",{className:`footer__logo ${d?"logo__show":"logo__hidden"}`},We.createElement(pk,null))),We.createElement(ms,{open:p,onClose:()=>u(!1)}))}i(oe,"Layout");import{styled as mk}from"@rango-dev/ui";var Ou="$20 $20 $10 $20",kn=mk("div",{padding:Ou,overflowY:"auto",flexGrow:1});import{styled as dk}from"@rango-dev/ui";var re=dk("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Vo}from"@lingui/core";import{useState as Uu}from"react";function zu(){let[t,e]=Uu(!1),[o,n]=Uu(void 0),{findToken:r}=y(),a=y().customTokens();function s(p,u){switch(p){case"duplicated":return{title:Vo.t("Duplicate Token"),message:Vo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Vo.t("Token Already Exists"),message:Vo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Vo.t("Token Not Found"),message:Vo.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:u}})}}}return i(s,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:p,tokenAddress:u})=>{e(!0);try{if(a.some(d=>d.address?.toLowerCase()===u.toLowerCase())){let d=s("duplicated");n(d);return}let m=await Et().getCustomToken({blockchain:p,address:u});if(!m||!m.token||m.error){let d=s("not-found",p);n(d);return}let g=m.token;if(r({blockchain:g.blockchain,address:g.address,symbol:g.symbol})){let d=s("token-exist");n(d);return}return g}catch(c){throw n(void 0),new Error(c.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(zu,"useFetchCustomToken");var bk=Sk("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${gk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),xk=1e3;function qu(){let t=vk(),[e]=wk(),o=Ze(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=an(a,r),[l,p]=Gr(""),[u,c]=Gr(!1),[m,g]=Gr(),{fetchCustomToken:f,loading:d,error:h}=zu(),[C,S]=Gr(""),k=!!s&&Wo(s,l),T=!s||!l||!k,v=i(async()=>{if(s)try{let M=await f({blockchain:a,tokenAddress:l});S(""),M&&g(M)}catch(M){M.message==="Failed to fetch"&&(S(At.t("Network Error")),c(!0))}},"getCustomToken"),w=i(()=>{h&&p(""),c(!1)},"closeErrorModal"),I=i(async()=>{C&&setTimeout(async()=>{await v()},xk),w()},"handleErrorModalButtonClick");return Tk(()=>{h&&c(!0)},[h]),ye.createElement(oe,{header:{title:At.t("Add Custom Token")}},ye.createElement(re,null,ye.createElement(bk,null,ye.createElement("div",null,ye.createElement(Ha,{onClick:()=>t(_.blockchains,{replace:!0}),hasLogo:!!s?.logo,value:s?{name:s.displayName,logo:s.logo}:void 0,title:At.t("Select chain"),placeholder:At.t("Select chain")}),ye.createElement(Tn,{size:"24"}),ye.createElement(kk,{size:"large",variant:"label"},At.t("Enter Address")),ye.createElement(Tn,{size:10}),ye.createElement(Ck,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:At.t("Enter token address"),size:"large",value:l,suffix:!!l&&k&&ye.createElement(hk,{color:"success",size:12}),onChange:M=>p(M.target.value)}),!k&&!!l&&ye.createElement(ye.Fragment,null,ye.createElement(Tn,{size:4}),ye.createElement(fk,{type:"error",variant:"alarm",title:"Invalid Address"}))),ye.createElement(Qu,{id:"widget-add-custom-token-import-btn",disabled:T,type:"primary",variant:"contained",loading:d,size:"large",onClick:v},At.t("Import"))),ye.createElement(ee,{open:u,dismissible:!0,onClose:w,container:N()},ye.createElement(yk,{title:h?.title||C,type:"error",description:h?.message||At.t("Failed Network, Please retry.")},ye.createElement(Tn,{size:40}),ye.createElement(Tn,{size:10}),ye.createElement(Qu,{id:`widget-add-custom-token-${C?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:I},C?At.t("Retry"):At.t("Add another custom token")))),s&&m&&ye.createElement(Ka,{blockchain:s,token:m,onSubmitClick:()=>{m&&(n(m),g(void 0),o())},onClose:()=>g(void 0),open:!!s&&!!m})))}i(qu,"AddCustomTokenPage");import{i18n as Hs}from"@lingui/core";import{useManager as lv}from"@rango-dev/queue-manager-react";import{Alert as Od,Button as pv,css as Vs,Divider as Gs,IconButton as Ud,styled as cv,Typography as uv,WalletIcon as mv}from"@rango-dev/ui";import xe,{useEffect as Ti,useLayoutEffect as dv,useRef as fv,useState as Pn}from"react";import{useNavigate as gv}from"react-router-dom";import{i18n as So}from"@lingui/core";import{Alert as ym,BalanceErrors as Zk,Button as Sm,ChevronLeftIcon as Jk,Divider as ei,MessageBox as Rk,Typography as ws}from"@rango-dev/ui";import X,{useCallback as eT,useEffect as Cm,useMemo as tT,useState as Co}from"react";import{useNavigate as oT}from"react-router-dom";import{i18n as Vr}from"@lingui/core";function Kr(t){switch(t.type){case 0:return Vr.t("Route has been updated.");case 3:return Vr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Vr.t("Route swappers has been updated.");case 2:return Vr.t("Route internal coins has been updated.");default:return""}}i(Kr,"getQuoteUpdateWarningMessage");import{i18n as Cs}from"@lingui/core";import{Alert as Mk,ChevronDownIcon as Lk,CloseIcon as Bk,Divider as Yu,IconButton as Zu,PasteIcon as Pk,Typography as Dk,WalletIcon as _k}from"@rango-dev/ui";import Me,{useEffect as $k,useRef as Fk}from"react";import Zr,{useRef as Nk}from"react";import*as Ko from"@radix-ui/react-collapsible";import{keyframes as Hu,styled as jr}from"@rango-dev/ui";var hs=300,Ik=Hu({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ak=Hu({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Gu=jr(Ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ys=jr(Ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Xr=jr(Ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Ik} ${hs}ms ease-out`},false:{animation:`${Ak} ${hs}ms ease-out`}}}}),Yr=jr("div",{transition:`all ${hs}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Jr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Nk(null);return Zr.createElement(Gu,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Zr.createElement(ys,{className:"collapsible_trigger",onClick:a},s),Zr.createElement(Xr,{className:"collapsible_content",open:e},r),l==="bottom"&&Zr.createElement(ys,{className:"collapsible_trigger",onClick:a},s))}i(Jr,"CustomCollapsible");import{darkTheme as Vu,styled as Ss,TextField as Wk}from"@rango-dev/ui";var Ku=Ss("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),ju=Ss(Wk,{backgroundColor:"$neutral100",padding:"$15"}),Xu=Ss("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Vu} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vu} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Ju(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=F(),{config:s}=y(),l=y().blockchains(),p=nr(e.name,l),u=Fk(null),c=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!Wo(e,r),d=i(()=>{a("")},"handleClear"),h=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),u?.current?.focus()}},"handlePaste"),C=i(()=>r?Me.createElement(Zu,{id:"widget-custom-destination-close-icon-btn",onClick:d,variant:"ghost"},Me.createElement(Bk,{size:12,color:"gray"})):m?null:Me.createElement(Zu,{id:"widget-custom-destination-paste-icon-btn",onClick:h,variant:"ghost"},Me.createElement(Pk,{size:16})),"renderSuffix");return $k(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Me.createElement(Ku,null,Me.createElement(Jr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(Xu,null,Me.createElement("div",{className:"button__content"},Me.createElement(_k,{size:18,color:"info"}),Me.createElement(Yu,{size:4,direction:"horizontal"}),Me.createElement(Dk,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Cs.t("Send to a different address"))),Me.createElement(Yr,{orientation:n?"up":"down"},Me.createElement(Lk,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(ju,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Cs.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:C(),onChange:S=>{let k=S.target.value;a(k)}})),f&&Me.createElement(Me.Fragment,null,Me.createElement(Yu,{size:4}),Me.createElement(Mk,{variant:"alarm",type:"error",title:Cs.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Ju,"CustomDestination");import{css as Ok,darkTheme as ks,IconButton as Uk,styled as _t}from"@rango-dev/ui";var Ru=_t("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),em=_t("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),zk=_t("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ks} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ks} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ks} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),tm=_t(zk,{alignSelf:"stretch",minHeight:"93px"}),om=_t("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),nm=_t(Uk,{position:"absolute",left:"$20"}),rm=_t("div",{paddingTop:"$20"}),im=Ok({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),am=_t("div",{display:"flex"}),sm=_t("div",{overflow:"visible",width:"100%"});import{i18n as dm}from"@lingui/core";import{warn as Vk}from"@rango-dev/logging-core";import{Divider as Kk,SelectableWallet as jk,Typography as fm,WalletState as gm}from"@rango-dev/ui";import Je,{useEffect as hm,useState as wn}from"react";import{Image as Hk,MessageBox as Gk}from"@rango-dev/ui";import vn from"react";import{keyframes as Qk,styled as Ts}from"@rango-dev/ui";var lm=Ts("div",{position:"relative"}),qk=Qk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),pm=Ts("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${qk} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),cm=Ts("div",{"& img":{borderRadius:"50%"}});import{i18n as jo}from"@lingui/core";function um(t,e){switch(t){case"in-progress":return{type:"loading",title:jo.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:jo.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:jo.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:jo.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:jo.t("Request Rejected"),description:jo.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(um,"generateMessageByStatus");function mm(t){let{status:e,displayName:o,image:n}=t,r=um(e,o),a=e=="in-progress";return vn.createElement(Gk,{type:r.type,title:r.title,description:r.description,icon:a?vn.createElement(lm,null,vn.createElement(cm,null,vn.createElement(Hk,{src:n,size:45})),vn.createElement(pm,null)):void 0})}i(mm,"ExperimentalChainStatus");var Xk=7,Yk=3e3;function vs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=se.use.isActiveTab(),l=R.use.connectedWallets(),{blockchains:p}=y(),[u,c]=wn(),[m,g]=wn(null),[f,d]=wn(!1),[h,C]=wn(null),{suggestAndConnect:S}=Rr(),{handleDisconnect:k}=Gt(),{list:T}=ft({chain:e}),[v,w]=wn(T),I=T.length,M=r&&I-r>0,b=i(async x=>{d(!1),C("in-progress");try{await S(x.walletType,x.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");hm(()=>{w(x=>{let W=T.findIndex(D=>o(D.type,e));return M&&W>1?[T[W]].concat(T.filter((D,A)=>A!==W)):x.map(D=>T.find(A=>A.type===D.type)??D)})},[JSON.stringify(T)]);let E=document.getElementById(_e.SWAP_BOX_ID);return hm(()=>{let x=null;return(h==="completed"||h==="rejected")&&(x=setTimeout(()=>C(null),Yk)),()=>{x&&clearTimeout(x)}},[h]),Je.createElement(Je.Fragment,null,v.slice(0,r).map(x=>{let W=Op({connectedWallets:l,walletType:x.type,chain:e}),D=W?gr(W,Xk):"",A=dr(p(),e),Z=!l.find(me=>me.walletType===x.type&&me.chain===e),ae=A&&Z&&x.state===gm.CONNECTED,J=ae?dm.t({id:"Add {chain} chain",values:{chain:e}}):D,B=i(async()=>{x.state===gm.DISCONNECTED?c(x):x.namespaces&&!D?(await k(x.type),c(x)):ae?(g({walletType:x.type,chain:e,address:W??""}),d(!0)):n({walletType:x.type,chain:e,address:W??""})},"onSelectableWalletClick"),K=m?.chain?nr(m.chain,p()):void 0;return Je.createElement(Je.Fragment,{key:`${x.title}_${K}`},!!m&&Je.createElement(ee,{open:!!m&&f,container:E,onClose:()=>{g(null)}},Je.createElement(Ia,{displayName:K,onConfirm:()=>{b(m)}})),h&&Je.createElement(ee,{open:!!h,onClose:C.bind(null,null),container:E},Je.createElement(mm,{status:h,displayName:K,image:x.image}),Je.createElement(Kk,{direction:"vertical",size:32})),Je.createElement(jk,{key:x.type,description:J,onClick:B,selected:o(x.type,e),disabled:!s,...x}))}),Je.createElement(mo,{wallet:u,onClose:()=>{c(void 0)},onConnect:x=>{t.onConnect&&x.status==="connected"&&(u?.type?t.onConnect(u.type):Vk(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),M&&Je.createElement(tm,{selected:!1,onClick:a},Je.createElement(fm,{variant:"label",size:"medium"},dm.t("Show more wallets"),Je.createElement(fm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(vs,"WalletList");var nT=2;function km(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=oT(),l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:m,customDestination:g,setCustomDestination:f}=F(),{connectedWallets:d,selectWallets:h}=R(),{config:C}=y(),[S,k]=Co(""),[T,v]=Co([]),[w,I]=Co(""),[M,b]=Co(null),[E,x]=Co(!!g),W=tT(()=>ao({filter:"all",quote:p}),[p]),D=ao({filter:"required",quote:p}),A=l.find($=>$.name===p?.swaps[p?.swaps.length-1].to.blockchain),Z=i($=>D.includes($),"isWalletRequiredFor"),ae=eT(()=>d.filter($=>$.selected&&W.includes($.chain)),[d,W]),[J,B]=Co(ae()),[K,me]=Co([]),V=i(($,Q)=>me(H=>H.concat({blockchain:$,walletType:Q})),"addNextSelectedWallets"),fe=T.length>0,ge=i(($,Q)=>!!J.find(H=>H.walletType===$&&H.chain===Q&&H.selected&&(Z(Q)||!Z(Q)&&!g)),"isSelected"),Pe=i(($,Q,H)=>{let ne=!1;return $.map(le=>{if(le.chain===Q){let pe=le.selected;return!ne&&H?(ne=!0,pe=!0):H||(pe=!1),{...le,selected:pe}}return le})},"updateSelectableWallets"),z=i($=>{x($),$?Z(A?.name??"")||B(Q=>Pe(Q,A?.name||"",!1)):(f(""),B(Q=>Pe(Q,A?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),je=i($=>{if(S&&k(""),ge($.walletType,$.chain))return;let H=d.find(ne=>ne.walletType===$.walletType&&ne.chain===$.chain);H&&(n(),$.chain===A?.name&&E&&!Z(A.name)&&(x(!1),f(null)),B(ne=>ne.filter(le=>le.chain!==$.chain).concat({...H,selected:!0})))},"onChange"),vt=i(()=>{let $=J.filter(Q=>Q.selected);h($),u($),m(!0),o()},"onConfirmBalance"),lt=i(async()=>{v([]),I(""),b(null);let $=await r?.({selectedWallets:J.filter(H=>H.selected),customDestination:g}),Q=$.warnings;Q?.balance?.messages&&v(Q.balance.messages),Q?.quoteUpdate&&b(Q.quoteUpdate),$.error&&I(Dc($.error)),!$.error&&!Q?.balance?.messages.length?vt():v(Q?.balance?.messages??[])},"onConfirmWallets");Cm(()=>{B($=>{let Q=[];return $.forEach(H=>{!d.some(le=>le.chain===H.chain&&le.walletType===H.walletType&&le.address===H.address)||Q.push(H)}),Q=Q.concat(d.filter(H=>!!!Q.find(le=>le.chain===H.chain)&&H.selected&&W.includes(H.chain))),Q})},[d,W]),Cm(()=>{let $=[];K.length>0&&(K.forEach(Q=>{let H=d.find(ne=>ne.chain===Q.blockchain&&ne.walletType===Q.walletType);H?je(H):$.push(Q)}),me($))},[d,K]);let wt=document.getElementById(_e.SWAP_BOX_ID);return X.createElement(ee,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!S,container:wt,...!S&&{styles:{container:{height:"100%"}},footer:X.createElement(am,null,X.createElement(Sm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Rc(a,E,g,p,J,A),onClick:lt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},So.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:X.createElement(om,null,X.createElement(nm,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:k.bind(null,"")},X.createElement(Jk,{size:16})),X.createElement(ws,{variant:"headline",size:"small"},So.t({id:"Your {blockchainName} wallets",values:{blockchainName:pt(S,l)}})))},anchor:"center"},X.createElement(ee,{open:fe,onClose:v.bind(null,[]),container:wt},X.createElement(Rk,{title:So.t("Insufficient account balance"),type:"error",description:X.createElement(Zk,{messages:T??[]})},X.createElement(Sm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:vt},So.t("Proceed anyway")))),S&&X.createElement(rm,null,X.createElement("div",{className:im()},X.createElement(vs,{chain:S,isSelected:ge,selectWallet:je,onShowMore:()=>k(S),onConnect:$=>{V(S,$)}}))),!S&&X.createElement(X.Fragment,null,w&&X.createElement(X.Fragment,null,X.createElement(ym,{variant:"alarm",type:"error",title:So.t(w)}),X.createElement(ei,{size:12})),M&&X.createElement(X.Fragment,null,X.createElement(ym,{variant:"alarm",type:"warning",title:Kr(M)}),X.createElement(ei,{size:12})),X.createElement(sm,null,W.map(($,Q)=>{let H=l.find(Oe=>Oe.name===$),ne=`wallet-${Q}`,le=Q===W.length-1,pe=le&&A&&C?.customDestination!==!1;return X.createElement("div",{key:ne},X.createElement(Ru,null,X.createElement(ws,{variant:"title",size:"xmedium"},So.t({id:"Your {blockchainName} wallets",values:{blockchainName:H?.shortName}})),X.createElement(ws,{variant:"label",color:"$neutral700",size:"medium"},So.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:H?.shortName}}))),X.createElement(ei,{size:24}),X.createElement(em,null,X.createElement(vs,{chain:$,isSelected:ge,selectWallet:je,limit:nT,onShowMore:()=>k(H?.name??""),onConnect:Oe=>{V($,Oe)}})),!le&&X.createElement(ei,{size:32}),pe&&X.createElement(Ju,{blockchain:A,open:E,handleOpenChange:z}))}))))}i(km,"ConfirmWalletsModal");import{i18n as vT}from"@lingui/core";import{Alert as wT,Button as bT,InfoIcon as xT}from"@rango-dev/ui";import ot from"react";import{Alert as aT,Button as sT,Divider as Es,NoRouteIcon as lT,RefreshIcon as pT,Typography as Im}from"@rango-dev/ui";import tt from"react";import{i18n as Tm}from"@lingui/core";var rT=24,iT=60;function vm(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:Tm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Tm.t("Reset")}},description:te().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:te().noResultError.description}}i(vm,"makeInfo");var bs=(o=>(o[o.small=rT]="small",o[o.large=iT]="large",o))(bs||{}),xs=(o=>(o.small="small",o.large="medium",o))(xs||{});import{styled as ti}from"@rango-dev/ui";var wm=ti("div",{display:"flex",flexDirection:"column",alignItems:"center"}),bm=ti("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),xm=ti("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Em=ti("div",{padding:"$6 $0"});function bn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=vm(o,r,()=>a(s,!0),e);return tt.createElement(wm,null,tt.createElement(lT,{size:bs[n],color:"gray"}),tt.createElement(Es,{size:4}),tt.createElement(Im,{variant:"title",size:xs[n]},te().noResultError.title),n==="large"&&tt.createElement(Es,{size:4}),!!l.description&&tt.createElement(bm,{size:n},tt.createElement(Im,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),tt.createElement(Es,{size:n==="large"?"24":"4"}),!!l.alert&&tt.createElement(xm,{size:n},tt.createElement(aT,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&tt.createElement(sT,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:tt.createElement(Em,null,tt.createElement(pT,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(bn,"NoResult");import{i18n as xn}from"@lingui/core";import{Button as uT,Divider as mT,MessageBox as dT,Typography as fT,WarningIcon as gT}from"@rango-dev/ui";import $t from"react";import{Typography as Mm}from"@rango-dev/ui";import As from"react";import{darkTheme as cT,styled as oi}from"@rango-dev/ui";var Am=oi("div",{width:"100%"}),Is=oi("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Nm=oi("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${cT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wm=oi("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Lm(t){let{title:e,value:o,valueColor:n}=t;return As.createElement(Nm,null,As.createElement(Mm,{size:"medium",variant:"label",className:"_title"},e),As.createElement(Mm,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Lm,"QuoteErrorsModalItem");function Bm(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:xn.t("Swapping"),value:L(r.inputUsdValue,4,4)},{title:xn.t("Gas cost"),value:L(r.totalFee,2,2)},{title:xn.t("Receiving"),value:L(r.outputUsdValue,4,4)},{title:xn.t("Price impact"),value:L(r.priceImpact,2,2),valueColor:`${s}500`}];return $t.createElement(ee,{footer:$t.createElement(uT,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:$t.createElement(gT,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},$t.createElement(dT,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),$t.createElement(Is,null,$t.createElement(mT,{size:"4"}),$t.createElement(fT,{size:"small",variant:"title"},xn.t("Details")),$t.createElement(Is,null,l.map((p,u)=>$t.createElement(Lm,{key:u,...p})))))}i(Bm,"HighValueLossWarningModal");import{i18n as Ns}from"@lingui/core";function Pm(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=Ns.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&&(Dt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=te().highValueLossError.title),t.type===1&&(o.title=te().unknownPriceError.title),t.type===2&&(o.title=Ns.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=Ns.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Pm,"makeAlerts");import{i18n as Xo}from"@lingui/core";import{Button as Dm,Divider as _m,MessageBox as hT,Typography as yT}from"@rango-dev/ui";import ko from"react";import{useNavigate as ST}from"react-router-dom";function $m(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=ST(),u=e??o;return ko.createElement(ee,{anchor:"bottom",open:n,prefix:ko.createElement(Dm,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>p("../"+_.settings)},ko.createElement(yT,{variant:"label",size:"medium",color:"$neutral900"},Xo.t("Change settings"))),container:N(),onClose:r},ko.createElement(hT,{type:"warning",title:s.type===3?Xo.t("High slippage"):Xo.t("Low slippage"),description:s.type===3?Xo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Xo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},ko.createElement(_m,{size:18}),ko.createElement(_m,{size:32}),ko.createElement(Dm,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Xo.t("Confirm anyway"))))}i($m,"SlippageWarningModal");import{Button as CT,MessageBox as kT,WarningIcon as TT}from"@rango-dev/ui";import ni from"react";function Fm(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ni.createElement(ee,{footer:ni.createElement(CT,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ni.createElement(TT,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},ni.createElement(kT,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(Fm,"UnknownPriceWarningModal");function En(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},g=o?.type===0||o?.type===1,f=Pm(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),ot.createElement(ot.Fragment,null,g&&ot.createElement(bn,{error:o,fetch:s}),!!f&&ot.createElement(Am,null,ot.createElement(wT,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:ot.createElement(Wm,{onClick:l},ot.createElement(xT,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:ot.createElement(bT,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:c},vT.t("Change"))}})),e&&ot.createElement(ot.Fragment,null,e.type===0&&ot.createElement(Bm,{...m,warning:e}),(e.type===3||e.type===2)&&ot.createElement($m,{...m,warning:e}),e.type===1&&ot.createElement(Fm,{...m,warning:e})))}i(En,"QuoteWarningsAndErrors");import ov from"bignumber.js";import yi from"react";import{i18n as To}from"@lingui/core";import{Alert as qT,Divider as Zo,FullExpandedQuote as HT,InfoIcon as GT,NumericTooltip as yd,QuoteTag as VT,StepDetails as KT,TokenAmount as jT,Typography as Jo}from"@rango-dev/ui";import $s from"bignumber.js";import O,{useRef as XT,useState as YT}from"react";import{styled as Ws}from"@rango-dev/ui";var Ms=Ws("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Om=Ws("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Um=Ws("div",{width:"100%",display:"flex"});import*as ri from"@radix-ui/react-collapsible";import{Button as ET,css as In,darkTheme as we,Image as zm,styled as qe,Typography as IT}from"@rango-dev/ui";var AT=300,Qm=qe(ri.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"}}]}),qm=In({padding:"$10 $15"}),Hm=qe(ET,{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"}}}),Gm=qe("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"}}}}]}),Vm=In({width:"100%",padding:"$15 $15 $10 $15"}),Km=In({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Yo=In({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),jm=In({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Xm=qe(ri.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:{[`& ${zm}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${zm}`]:{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"}}}),Ym=qe("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"}}}}),Zm=qe(Xr,{width:"100%",background:"inherit"}),Ls=qe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${AT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),_F=qe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Jm=qe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Rm=qe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Bs=qe(IT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ed=qe("div",{display:"flex",flexWrap:"wrap"}),Ps=qe("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"}}}}),td=qe("div",{display:"flex"}),ii=qe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Nt}from"@lingui/core";import{ChevronDownIcon as WT,CloseIcon as MT,Divider as li,IconButton as LT,NumericTooltip as BT,QuoteCost as PT,Typography as yt}from"@rango-dev/ui";import Y,{useState as id}from"react";import{css as NT,styled as ai}from"@rango-dev/ui";var si=ai("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ds=ai("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),od=ai("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),nd=ai("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),rd=NT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var DT=i(t=>t.fee.isZero()?null:Y.createElement(si,null,Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(yt,{variant:"label",size:"medium"},"$",L(t.fee,4,4))),"NonPayableFee");function ad(t){let[e,o]=id(!1),[n,r]=id(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],g=N(),f=zc(m);return Y.createElement(Y.Fragment,null,Y.createElement(PT,{onClickFee:c?d=>{d.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Nt.t("View more info"):void 0,tooltipContainer:g}),Y.createElement(ee,{container:g,open:e,header:Y.createElement(nd,null,Y.createElement(yt,{variant:"title",size:"medium"},Nt.t("Gas & Fee Explanation")),Y.createElement(LT,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(MT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(od,null,Y.createElement(yt,{variant:"title",size:"small"},Nt.t("Details")),Y.createElement(li,{size:10}),Object.entries(f.payable).flatMap(([d,h])=>h.map((C,S)=>{let k=`payable-fee-${S}`,T=Pa(C);return Y.createElement(si,{key:k},Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},Wa(d,Nt.t)),Y.createElement(BT,{content:C.amount,container:g},Y.createElement(yt,{variant:"label",size:"medium"},L(C.amount,2,2)," ",C.asset.symbol," ($",L(T,4,4),")")))})),Y.createElement(si,{className:"total_payable_fee"},Y.createElement(yt,{variant:"label",size:"medium"},Nt.t("Total Payable Fee")),Y.createElement(yt,{variant:"label",size:"medium"},"$",L(l,4,4))),Y.createElement(Ds,null),Object.keys(f.nonePayable).length&&Y.createElement(Jr,{triggerAnchor:"bottom",onClickTrigger:()=>r(d=>!d),trigger:Y.createElement("div",{className:rd()},Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},n?Nt.t("Hide non-payable fees"):Nt.t("Show non-payable fees")),Y.createElement(li,{size:4,direction:"horizontal"}),Y.createElement(Yr,{orientation:n?"up":"down"},Y.createElement(WT,{size:12,color:"gray"}))),open:n},Y.createElement(yt,{size:"small",variant:"title"},Nt.t("Description")),Y.createElement(li,{size:4}),Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},Nt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Y.createElement(li,{size:10}),Object.entries(f.nonePayable).map(([d,h],C)=>{let S=Uc(h),k=Wa(d,Nt.t),T=`non-payable-fee-${C}`;return Y.createElement(DT,{key:T,fee:S,label:k})}),Y.createElement(Ds,null)))))}i(ad,"QuoteCostDetails");import{i18n as pd}from"@lingui/core";import{TokenAmount as cd}from"@rango-dev/ui";import pi from"react";import{css as _T,styled as $T}from"@rango-dev/ui";var sd=$T("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ld=_T({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function An(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return pi.createElement(sd,null,pi.createElement(cd,{direction:"horizontal",label:pd.t("Swap input"),type:"input",tooltipContainer:N(),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}}),pi.createElement("div",{className:ld()}),pi.createElement(cd,{direction:"horizontal",tooltipContainer:N(),label:pd.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(An,"QuoteSummary");import{i18n as gd}from"@lingui/core";import{ChevronDownIcon as UT,ChevronRightIcon as zT,Divider as _s,Image as QT,Tooltip as fi,Typography as ui}from"@rango-dev/ui";import U from"react";import{useLayoutEffect as FT,useState as Nn}from"react";var ud=480,md=768,dd=1024,fd=1200,OT=i(()=>{let[t,e]=Nn(!1),[o,n]=Nn(!1),[r,a]=Nn(!1),[s,l]=Nn(!1),[p,u]=Nn(!1),c=i(()=>{e(window.innerWidth<=ud),n(window.innerWidth>ud&&window.innerWidth<=md),a(window.innerWidth>md&&window.innerWidth<=dd),l(window.innerWidth>dd&&window.innerWidth<=fd),u(window.innerWidth>fd)},"handleResize");return FT(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),ci=OT;var mi=4,di=6,Wn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||N();return U.createElement(fi,{container:l,side:"bottom",sideOffset:4,open:r,content:e},U.createElement(Ym,{className:n,state:a},U.createElement(QT,{src:o,size:16})))},"ImageComponent");function hd(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||N(),u=r.length,c=ru(r),{isTablet:m,isMobile:g}=ci();return U.createElement(Xm,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(d=>!d)}},U.createElement("div",{className:Yo()},U.createElement(ui,{variant:"body",size:"xsmall"},gd.t("Via:")),U.createElement(_s,{direction:"horizontal",size:4}),r.map((f,d)=>{let h=`item-${d}`,C=U.createElement(Ls,null,U.createElement(zT,{size:12,color:"black"}));return g||m?U.createElement(U.Fragment,{key:h},U.createElement(Wn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),d!==u-1&&U.createElement(U.Fragment,null,C)):U.createElement(U.Fragment,{key:h},u<=mi||u>mi&&d<mi-1?U.createElement(U.Fragment,null,U.createElement(Wn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),d!==u-1&&U.createElement(U.Fragment,null,C)):d===mi-1&&U.createElement(fi,{container:p,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Yo()},C,r.map((S,k)=>{let T=`image-${k}`;return k>=d&&U.createElement(U.Fragment,{key:T},U.createElement(Wn,{content:S.swapper.displayName,src:S.swapper.image,state:S.state,open:!1}),k!==u-1&&U.createElement(U.Fragment,null,C))}))},U.createElement(Ps,{state:r.find((S,k)=>k>=d&&(S.state==="error"||S.state==="warning"))?.state},U.createElement(ui,{size:"xsmall",variant:"body"},"+",u-d))))})),U.createElement("div",{className:Yo()},U.createElement("div",{className:"blockchains_section"},U.createElement("div",{className:Yo()},U.createElement(ui,{variant:"body",size:"xsmall"},gd.t("Chains:")),U.createElement(_s,{direction:"horizontal",size:4}),c.map((f,d)=>U.createElement(U.Fragment,{key:f.displayName},c.length<=di||c.length>di&&d<di-1?U.createElement(fi,{container:p,side:"bottom",content:f.displayName,sideOffset:4},U.createElement(Wn,{content:"",src:f.image,open:!1,className:d!==0?"blockchainImage":""})):d===di-1&&U.createElement(fi,{container:p,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Yo()},c.map((h,C)=>C>=d&&U.createElement(Wn,{key:h.displayName,content:"",src:h.image,open:!1,className:C>d?"blockchainImage":"",container:l})))},U.createElement(Ps,{className:"blockchainImage"},U.createElement(ui,{size:"xsmall",variant:"body"},"+",c.length-d))))),U.createElement(_s,{direction:"horizontal",size:32}))),U.createElement(Ls,{orientation:a?"up":"down"},U.createElement(UT,{size:12,color:"black"}))))}i(hd,"QuoteTrigger");function Fs(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:g}=t,f=y().blockchains(),{findToken:d}=y(),h=y().swappers(),{customSlippage:C,slippage:S}=y(),k=C||S,[T,v]=YT(t.expanded),w=XT(null),I=L(o.value,6,6),M=L(n.value,6,6),b=n.usdValue?L(n.usdValue,4,4):"",E=ct(o.usdValue,n.usdValue??null),x=L(E,2,2),W=Dt(E??0),D=i((ge,Pe)=>ge.map((z,je)=>{let vt,lt=r?.type===3&&r.swap.swapperId===z.swapperId,wt=r?.type===4&&r.recommendedSlippages?.has(je),$=a?.type===2&&a.recommendedSlippages?.has(je),Q=lt||wt,H=$;Q?vt="error":H&&(vt="warning");let ne=Q?To.t("Slippage Error"):To.t("Slippage Warning");return lt&&(ne=To.t("Bridge Limit Error")),{swapper:{displayName:rn(z.swapperId,h)??"",image:z.swapperLogo},from:{token:{displayName:z.from.symbol,image:z.from.logo},chain:{displayName:pt(z.from.blockchain,f)??"",image:z.from.blockchainLogo},price:{value:je===0&&!Pe?L(o.value,6,6):L(z.fromAmount,6,6),usdValue:L((z.from.usdPrice??0)*parseFloat(z.fromAmount),4,4),realValue:je===0?o.value:z.fromAmount,realUsdValue:new $s(z.from.usdPrice??0).multipliedBy(z.fromAmount).toString()}},to:{token:{displayName:z.to.symbol,image:z.to.logo},chain:{displayName:pt(z.to.blockchain,f)||"",image:z.to.blockchainLogo},price:{value:L(z.toAmount,6,6),usdValue:L((z.to.usdPrice??0)*parseFloat(z.toAmount),4,4),realValue:z.toAmount,realUsdValue:new $s(z.to.usdPrice??0).multipliedBy(z.toAmount).toString()}},state:vt,alerts:Q||H?O.createElement(Om,{dense:m},O.createElement(qT,{variant:"alarm",type:Q?"error":"warning",title:ne,footer:O.createElement(Um,null,lt&&O.createElement("div",null,O.createElement(Jo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),O.createElement(Zo,{direction:"vertical",size:2}),O.createElement(Jo,{size:"xsmall",variant:"body",color:"neutral900"},To.t({id:"Yours: {amount} {symbol}",values:{amount:L(z.fromAmount,6,6),symbol:z?.from.symbol}}))),(wt||$)&&!lt&&O.createElement("div",null,O.createElement(Jo,{size:"xsmall",variant:"body",color:"neutral900"},To.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(je)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(je)}}})),O.createElement(Zo,{direction:"vertical",size:2}),O.createElement(Jo,{size:"xsmall",variant:"body",color:"neutral900"},To.t({id:"Yours: {userSlippage}",values:{userSlippage:k}}))))})):void 0,time:pn(z.estimatedTimeInSeconds),fee:L(Ba(z,d),2,2),internalSwaps:z.internalSwaps?D(z.internalSwaps):void 0}}),"getQuoteSteps"),A=D(e?.swaps??[]),Z=A.length,ae=g||N(),J=au(t.quote.tags||[]),B=!!c,K=pn(lr(e?.swaps)),me=Lr(e?.swaps??[],d),V=L(me,2,2),fe=me.gte(new $s(Pc));return m?O.createElement(HT,{selected:l,fee:V,time:K,tooltipContainer:ln(),steps:A,tags:J,feeWarning:fe,percentageChange:x,warningLevel:W,outputPrice:{value:M,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):O.createElement(Gm,{selected:l,listItem:s==="list-item",basic:s==="basic"},O.createElement("div",{className:Vm()},!p&&J.length?O.createElement(O.Fragment,null,O.createElement(td,null,J.map((ge,Pe)=>{let z=`${ge.value}_${Pe}`;return O.createElement(O.Fragment,{key:z},O.createElement(VT,{label:ge.label,value:ge.value}),O.createElement(Zo,{size:4,direction:"horizontal"}))})),O.createElement(ii,null),!B&&O.createElement(Zo,{size:4})):null,O.createElement("div",{id:"portal-root",className:Km()},O.createElement(ad,{quote:e,time:K,fee:V,feeWarning:fe,showModalFee:u,steps:Z}),B&&O.createElement(Hm,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},O.createElement(Jo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},To.t("See All Routes")))),s==="basic"&&O.createElement("div",{className:jm()},O.createElement(Rm,null,O.createElement(GT,{size:12,color:"gray"})),O.createElement(ed,null,O.createElement(Bs,{size:"small",variant:"body"},`${I} ${A[0].from.token.displayName} = `),O.createElement(yd,{content:n.value,container:ae,open:n.value?void 0:!1},O.createElement(Bs,{size:"small",variant:"body"},"\xA0",`${M} ${A[A.length-1].to.token.displayName}`))),O.createElement(yd,{content:n.usdValue,container:ae},O.createElement(Zo,{size:2,direction:"horizontal"}),O.createElement(Jo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&O.createElement(jT,{tooltipContainer:ae,type:"output",direction:"vertical",price:{value:M,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[Z-1].to.token.displayName,image:A[Z-1].to.token.image},chain:{image:A[Z-1].to.chain.image},percentageChange:x,warningLevel:W}),s==="swap-preview"&&O.createElement(O.Fragment,null,O.createElement(An,{from:A[0].from,to:A[Z-1].to,percentageChange:x,warningLevel:W}),O.createElement(Zo,{size:4}))),O.createElement(Qm,{selected:l,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},O.createElement(hd,{type:s,quoteRef:w,selected:l,setExpanded:v,container:ae,expanded:T,steps:A}),O.createElement(Zm,{open:T},O.createElement(Jm,null),O.createElement("div",{className:qm()},A.map((ge,Pe)=>{let z=`item-${Pe}`;return O.createElement(KT,{type:"quote-details",key:z,tooltipContainer:ae,step:ge,hasSeparator:Pe!==A.length-1,state:ge.state})})))))}i(Fs,"Quote");import{Divider as ev,Skeleton as tv}from"@rango-dev/ui";import Ot from"react";import{darkTheme as ZT,styled as gi}from"@rango-dev/ui";var Sd=gi("div",{$$color:"$colors$neutral100",[`.${ZT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Cd=gi("div",{paddingTop:"$2"}),kd=gi("div",{paddingLeft:"$8"}),Td=gi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Md,Divider as St,Skeleton as nt}from"@rango-dev/ui";import q from"react";import{css as JT,styled as Ft}from"@rango-dev/ui";var Os=Ft("div",{display:"flex"}),vd=Ft("div",{padding:"$10 $0 $20"}),wd=Ft("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),bd=Ft("div",{display:"flex",justifyContent:"start",alignItems:"center"}),xd=Ft("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Ed=Ft("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Id=Ft("div",{width:"65%",display:"flex",justifyContent:"start"}),Ad=Ft("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Nd=Ft("div",{padding:"$15 $0 $15 $0"}),Wd=JT({display:"flex",justifyContent:"space-between",alignItems:"center"});function Mn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(xd,null,q.createElement(Id,null,q.createElement(Md,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(St,{size:8,direction:"horizontal"}),q.createElement(Ad,null,q.createElement(nt,{height:10,width:60,variant:"rounded"}),q.createElement(St,{size:4}),q.createElement(nt,{height:15,variant:"rounded"}))),q.createElement(nt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(Os,null,q.createElement(nt,{width:65,height:20,variant:"rounded"}),q.createElement(St,{size:4,direction:"horizontal"}),q.createElement(nt,{width:65,height:20,variant:"rounded"}),q.createElement(St,{size:4,direction:"horizontal"}),q.createElement(nt,{width:65,height:20,variant:"rounded"})),q.createElement(ii,null),!r&&q.createElement(St,{size:4})),q.createElement("div",{className:Wd()},q.createElement(Os,null,q.createElement(nt,{width:60,height:10,variant:"rounded"}),q.createElement(St,{size:4,direction:"horizontal"}),q.createElement(nt,{width:60,height:10,variant:"rounded"}),q.createElement(St,{size:4,direction:"horizontal"}),q.createElement(nt,{width:60,height:10,variant:"rounded"})),r&&q.createElement(nt,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(vd,null,q.createElement(nt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(wd,null,q.createElement(bd,null,q.createElement(Md,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(St,{direction:"horizontal",size:4}),q.createElement(nt,{height:15,width:150,variant:"rounded"})),q.createElement(St,{size:10}),q.createElement(nt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(St,{size:4}),q.createElement(Nd,null,n,q.createElement(Ed,null),n),q.createElement(St,{size:12})))}i(Mn,"QuoteSummarySkeleton");import{ChainToken as _d,Divider as zs,NextIcon as RT,Skeleton as hi}from"@rango-dev/ui";import be from"react";import{styled as Ln}from"@rango-dev/ui";var Ld=Ln("div",{display:"flex",alignItems:"start"}),Bd=Ln("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Us=Ln("div",{display:"flex",alignItems:"center",flexGrow:1}),Pd=Ln("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Dd=Ln("div",{display:"flex",alignItems:"center"});function Wt(t){let{separator:e=!0}=t;return be.createElement(be.Fragment,null,be.createElement(Dd,null,be.createElement(hi,{height:22,width:22,variant:"circular"}),be.createElement(zs,{direction:"horizontal",size:8}),be.createElement(hi,{height:15,width:148,variant:"rounded"})),be.createElement(Ld,null,be.createElement(Td,{hideSeparator:!e}),be.createElement(Bd,{extraSpace:e},be.createElement(Us,null,be.createElement(_d,{size:"small",loading:!0,chainImage:"",tokenImage:""}),be.createElement(zs,{direction:"horizontal",size:8}),be.createElement(hi,{height:12,variant:"rounded"})),be.createElement(Pd,null,be.createElement(RT,{color:"gray",size:16})),be.createElement(Us,null,be.createElement(_d,{size:"small",loading:!0,chainImage:"",tokenImage:""}),be.createElement(zs,{direction:"horizontal",size:8}),be.createElement(hi,{height:12,variant:"rounded"})))))}i(Wt,"StepSkeleton");function Bn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ot.createElement(Sd,{expanded:o,rounded:e!=="basic"},Ot.createElement(Mn,{type:e,tagHidden:n}),Ot.createElement(Cd,null,Ot.createElement(tv,{height:15,variant:"rounded"})),o&&Ot.createElement(kd,null,Ot.createElement(ev,{size:24}),Ot.createElement(Wt,null),Ot.createElement(Wt,null),Ot.createElement(Wt,{separator:!1})))}i(Bn,"QuoteSkeleton");function vo(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:g=!1,container:f}=t,{inputAmount:d,inputUsdValue:h,toToken:C}=F(),S=e?.outputAmount?new ov(e?.outputAmount):null,k=e?.outputAmount?Xt(e?.outputAmount,go(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?yi.createElement(Ms,null,yi.createElement(Bn,{tagHidden:l,type:o,expanded:s})):v?yi.createElement(Ms,{onClick:()=>p?.(e)},yi.createElement(Fs,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:g,input:{value:d,usdValue:h?.toString()??""},output:{value:S?.toString()??"",usdValue:k?.toString()??""}})):null}i(vo,"QuoteInfo");import{calculatePendingSwap as av}from"@rango-dev/queue-manager-rango-preset";import{useEffect as sv}from"react";import{useRef as nv,useState as rv}from"react";var iv=2e3;function Si({request:t}){let[e,o]=rv(!1),n=nv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,iv)),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(Si,"useFetch");function $d(){let{fetch:t,loading:e,cancelFetch:o}=Si({request:async(n,r)=>await Et().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i($d,"useFetchConfirmQuote");function Ci(t){if(!t.swaps)throw new Error(te().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Qs(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ci,"throwErrorIfResponseIsNotValid");function Qs(t){if($c(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Fc(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Qc(t);if(o){let n=Br(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Qs,"getQuoteError");function Fd(t,e,o){let n=!1;t&&(n=nu(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Uo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(jc(t,e)?r.quoteUpdate={type:3,newOutputAmount:L(Oo(e)),percentageChange:L(ct(Oo(t)??"",Oo(e)??""),null,2)}:Da(t,e)?r.quoteUpdate={type:0}:_a(t,e)?r.quoteUpdate={type:1}:$a(t,e)&&(r.quoteUpdate={type:2}));let s=Xc(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Fd,"generateWarnings");function ki(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1},warnings:null}}i(ki,"handleQuoteErrors");function qs(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=F(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),m=y().blockchains(),g=y().tokens(),{findToken:f}=y(),d=u||p,{fetch:h,cancelFetch:C,loading:S}=$d();return sv(()=>C,[]),{loading:S,fetch:i(async T=>{let v=T.selectedWallets,w=T?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((b,E)=>(b[E.chain]=E.address,b),{}),M={requestId:r?.requestId||"",selectedWallets:I,destination:w||void 0};try{return await h(M,!0).then(b=>{let{result:E}=b;if(!E)throw new Error("Error fetching updated route");Ci({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let x={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(x);let W={slippage:d.toString(),disabledSwappersGroups:c},D=Fd(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:f,selectedWallets:v,userSlippage:d});D.quoteUpdate&&s(!1),l();let A=!!D.balance,Z=av(o.toString(),E,Vc(v),W,!A,{blockchains:m,tokens:g});return{quote:x,swap:Z,error:null,warnings:D}})}catch(b){return ki(b)}},"fetch"),cancelFetch:C}}i(qs,"useConfirmSwap");var hv=cv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Ud}`]:{width:"$48",height:"$48"}}),yv=Vs({flexGrow:1,paddingRight:"$10"}),Sv=Vs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Cv=Vs({display:"flex",justifyContent:"space-between",alignItems:"center"});function zd(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=F(),s=gv(),[l,p]=Pn(""),u=!n,[c,m]=Pn(!1),[g,f]=Pn(!1),{isActiveTab:d}=se(),h=y().getDisabledLiquiditySources(),C=fv(h),{manager:S}=lv(),{fetch:k,loading:T,cancelFetch:v}=qs(),[w,I]=Pn({swap:null,error:null,warnings:null}),[M,b]=Pn(!1),E=i(async({selectedWallets:B,customDestination:K})=>{let me=await k?.({selectedWallets:B,customDestination:K});return I(me),me},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let B=`../${_.swaps}/${w.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),W=i(async()=>{f(!0),await x(),f(!1)},"onConfirm"),D=i(async()=>{w?.warnings?.quote&&!a?b(!0):await W()},"onStartConfirmSwap"),A=i(async()=>{I({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:r}).then(B=>{I(B)}).catch(B=>console.error(B))},"onRefresh");Ti(()=>{!!C.current.length&&!h.length&&A(),C.current=h},[h.length]),Ti(()=>{u&&v()},[u]),Ti(()=>{u&&m(u)},[u]),Ti(()=>{u||k({selectedWallets:o,customDestination:r}).then(B=>I(B)).catch(B=>console.error(B))},[]),dv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Z=w.warnings?.quote??null,ae=w.error,J=[];if(l&&J.push(xe.createElement(Od,{type:"error",variant:"alarm",title:l})),w.warnings?.quoteUpdate&&J.push(xe.createElement(Od,{variant:"alarm",type:"warning",title:w.warnings.quoteUpdate&&Kr(w.warnings.quoteUpdate)})),Z||ae){let B=`../${_.settings}`;J.push(xe.createElement(En,{warning:Z,error:ae,couldChangeSettings:!1,refetchQuote:A,showWarningModal:M,confirmationDisabled:!d,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(B)}))}return xe.createElement(oe,{header:{title:Hs.t("Confirm Swap"),onWallet:()=>{let B=`../${_.wallets}`;s(B)}},footer:xe.createElement(hv,null,xe.createElement("div",{className:yv()},xe.createElement(pv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||g,disabled:!!w.error||!d,onClick:D},Hs.t("Start Swap"))),xe.createElement(Ud,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||g,disabled:!d,onClick:m.bind(null,!0)},xe.createElement(mv,{size:24})))},c&&xe.createElement(km,{open:c,onClose:()=>m(!1),onCancel:v,loading:T,onCheckBalance:E}),xe.createElement(re,null,xe.createElement("div",{className:Cv()},xe.createElement(uv,{variant:"title",size:"small"},Hs.t("You get")),xe.createElement("div",{className:Sv()},xe.createElement(zr,{onClick:!T&&!c&&!M?A:void 0}))),xe.createElement(Gs,{size:"12"}),ku(J.map((B,K)=>({element:B,key:`alert-${K}`})),xe.createElement(Gs,{size:10})),J.length>0?xe.createElement(Gs,{size:10}):null,xe.createElement(vo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:w.error,loading:T,warning:w.warnings?.quote??null})))}i(zd,"ConfirmSwapPage");import{i18n as Ut}from"@lingui/core";import{Button as il,CustomTokensZeroStateDarkIcon as Fv,CustomTokensZeroStateIcon as Ov,DeleteIcon as Uv,Divider as Fn,IconButton as zv,MessageBox as Qv,NotFound as qv,styled as sl}from"@rango-dev/ui";import de,{useState as al}from"react";import{useNavigate as Hv}from"react-router-dom";import{CloseIcon as Tv,IconButton as vv,SearchIcon as wv,TextField as bv}from"@rango-dev/ui";import Dn from"react";import{styled as kv}from"@rango-dev/ui";var Qd=kv("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Ct(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...u}=t;return Dn.createElement(bv,{prefix:Dn.createElement(Qd,null,Dn.createElement(wv,{color:"black"})),suffix:!!s.length&&Dn.createElement(vv,{variant:"ghost",onClick:()=>p?.(""),size:"small"},Dn.createElement(Tv,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...u})}i(Ct,"SearchInput");import{i18n as nl}from"@lingui/core";import{darkTheme as Rd,Divider as en,ExternalLinkIcon as Mv,Image as Lv,ListItemButton as Bv,NotFound as Pv,PinIcon as Dv,Skeleton as ef,Typography as bi,VirtualizedList as _v}from"@rango-dev/ui";import G,{useEffect as tf,useState as of}from"react";import{useWallets as xv}from"@rango-dev/wallets-react";import{useEffect as Ev,useRef as Iv,useState as Av}from"react";function Ks(t){let{connectedWallets:e}=R(),{getWalletInfo:o}=xv(),n=Iv([]),[r,a]=Av(0);return Ev(()=>{let s=i(p=>{p.type==="disconnect"&&o(p.payload.walletType).supportedChains.some(m=>m.name===t)&&a(m=>m+1)},"handleWalletEvent");return Cr.on("walletEvent",s),t?(e.filter(p=>p.chain===t).forEach(p=>{let{walletType:u}=p,c=n.current.includes(u);p.loading&&!c?n.current=n.current.concat(u):!p.loading&&c&&(n.current=n.current.filter(m=>m!==u),a(m=>m+1))}),()=>Cr.off("walletEvent",s)):a(p=>p+1)},[e,t,o]),{balanceKey:r}}i(Ks,"useObserveBalanceChanges");import{Divider as Zd,ListItem as Wv,Skeleton as _n}from"@rango-dev/ui";import kt from"react";import{css as Ro,darkTheme as qd,ImageContainer as Nv,styled as mt,Typography as Hd}from"@rango-dev/ui";var js=Ro({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Xs=Ro({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ys=Ro({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Zs=Ro({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${qd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Js=Ro({}),Rs=Ro(),Gd=mt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),el=mt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),vi=mt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Xs}`]:{[`& .${Zs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Js}`]:{bottom:"-15px"},[`& .${js}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ys}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),tl=mt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ol=mt(Hd,{}),Vd=mt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Rs}`]:{$$color:"$colors$neutral600",[`.${qd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),wi=mt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),zU=mt("div",{display:"flex",alignItems:"center"}),Kd=mt("div",{position:"relative",[`& ${Nv}`]:{borderRadius:"$xm",overflow:"hidden"}}),jd=mt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Xd=mt(Hd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Yd=mt("a",{"& svg:hover":{color:"$colors$info"}});function Jd(t){return kt.createElement(vi,null,Array.from(Array(t.size),e=>kt.createElement(Wv,{key:e,hasDivider:!0,start:kt.createElement(_n,{variant:"circular",width:35,height:35}),end:kt.createElement(wi,null,kt.createElement(_n,{variant:"text",size:"large",width:70}),kt.createElement(Zd,{size:4}),kt.createElement(_n,{variant:"text",size:"medium",width:50})),title:kt.createElement("div",null,kt.createElement(_n,{variant:"text",size:"large",width:90}),kt.createElement(Zd,{size:4}),kt.createElement(_n,{variant:"text",size:"medium",width:90}))})))}i(Jd,"LoadingTokenList");var rl=20,$v=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:Xs()},o?G.createElement("div",{className:js()},o):G.createElement(el,{className:Ys()},G.createElement(bi,{variant:"title",size:"xmedium"},r.symbol),G.createElement(en,{direction:"horizontal",size:4}),G.createElement(tl,{css:a},G.createElement(ol,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${Zs()} ${!o&&Js()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(en,{size:4,direction:"horizontal"}),G.createElement(Yd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(Mv,{size:12}))))},"renderDesc");function $n(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,[l,p]=of(e),u=y().fetchStatus,c=y().blockchains(),[m,g]=of(!0),{getBalanceFor:f,loading:d}=R(),{isTokenPinned:h}=y(),{balanceKey:C}=Ks(r),S=i(()=>{p(e.slice(0,l.length+rl))},"loadNextPage");tf(()=>{g(e.length>l.length)},[l.length]),tf(()=>{p(e.slice(0,rl))},[e.length,r,C]);let k=i(v=>{let w=fr(f(v));return s?s(v):d?G.createElement(wi,null,G.createElement(ef,{variant:"text",size:"large",width:70}),G.createElement(en,{size:4}),G.createElement(ef,{variant:"text",size:"medium",width:50})):w&&G.createElement(Vd,null,G.createElement(Xd,{variant:"title",size:"small"},w.amount),G.createElement("div",null),w.usdValue&&G.createElement(bi,{variant:"body",className:Rs(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),T=i(()=>G.createElement(_v,{endReached:m?S:void 0,itemContent:v=>{let w=l[v],I=w.address||"",M=c.find(W=>W.name===w.blockchain),b=Ya(M.color,"main"),E={$$color:b.main150,[`.${Rd} &`]:{$$color:b.main750},backgroundColor:"$$color"},x={$$color:b.main750,[`.${Rd} &`]:{$$color:b.main150},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(Bv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":v,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,onClick:()=>n&&n(l[v]),start:G.createElement(Kd,null,G.createElement(Lv,{src:w.image,size:30}),t.type!=="custom-token"&&h(w,t.type)&&G.createElement(jd,null,G.createElement(Dv,{size:12,color:"gray"}))),title:M?.type==="COSMOS"||w.name||!w.name&&!I?G.createElement(el,null,G.createElement(bi,{variant:"title",size:"xmedium"},w.symbol),G.createElement(en,{direction:"horizontal",size:4}),G.createElement(tl,{css:E},G.createElement(ol,{variant:"body",size:"xsmall",css:x},w.blockchain))):void 0,description:M?.info&&I&&M.type!=="COSMOS"?$v({address:I,token:l[v],customCssForTag:E,customCssForTagTitle:x,name:w.name,url:M.info.addressUrl.split("{wallet}").join(I)}):w.name||void 0,end:k(w)}))},totalCount:l.length,key:`${r}-${o}-${C}`}),"renderList");return G.createElement(G.Fragment,null,a&&G.createElement(G.Fragment,null,G.createElement(bi,{variant:"label",size:"large"},nl.t("Select Token")),G.createElement(en,{size:4})),G.createElement(Gd,null,G.createElement(en,{size:4}),u==="loading"&&G.createElement(Jd,{size:rl}),u==="success"&&(l.length?G.createElement(vi,{as:"ul"},T()):!!o&&G.createElement(Pv,{title:nl.t("No results found"),description:nl.t("Try using different keywords")}))))}i($n,"TokenList");var Gv=sl("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Vv=sl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Kv=sl(zv,{"&:hover":{"& svg":{color:"$secondary550"}}});function nf(){let[t,e]=al(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=F(),{mode:p}=Ho({}),u=Hv(),[c,m]=al(!1),[g,f]=al(),d=i(k=>{let T=k.target.value;e(T)},"handleSearch"),h=p==="dark",C=n.filter(k=>et(k.symbol,t)||et(k.address||"",t)||et(k.name||"",t)),S=i(()=>{if(g){let k=a?De(a):null,T=r?De(r):null,v=De(g);k===v?l({token:null}):T===v&&s({token:null}),o(g)}m(!1)},"handleDeleteCustomToken");return de.createElement(oe,{header:{title:Ut.t("Custom Tokens")}},de.createElement(re,null,de.createElement(Gv,null,n.length?de.createElement(de.Fragment,null,de.createElement(Ct,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search Token"),onChange:d}),de.createElement(Fn,{size:16}),de.createElement($n,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,action:k=>de.createElement(Kv,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),f(k)}},de.createElement(Uv,{size:12,color:"gray"}))})):de.createElement(Vv,null,de.createElement(qv,{icon:h?de.createElement(Fv,{size:200}):de.createElement(Ov,{size:200}),title:Ut.t("No custom tokens"),description:Ut.t("press the button to add your custom token")})),de.createElement(Fn,{size:20}),de.createElement(il,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u(_.addCustomTokens)},Ut.t("Add Custom Token"))),de.createElement(ee,{open:c,dismissible:!0,onClose:()=>m(!1),container:N()},de.createElement(Qv,{title:Ut.t("Delete Custom Token"),type:"error",description:Ut.t("Are you sure you want to Delete this Token?")},de.createElement(Fn,{size:40}),de.createElement(Fn,{size:10}),de.createElement(il,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ut.t("Yes, Delete it")),de.createElement(Fn,{size:12}),de.createElement(il,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Ut.t("No, Continue"))))))}i(nf,"CustomTokensPage");import{i18n as Ge}from"@lingui/core";import{useManager as mw}from"@rango-dev/queue-manager-react";import{Button as fl,darkTheme as dw,Divider as bo,MessageBox as fw,NotFound as gw,styled as gl,Typography as Ii}from"@rango-dev/ui";import{TransactionStatus as zn}from"rango-types";import ie,{useMemo as wf,useState as Ai}from"react";import{useNavigate as hw}from"react-router-dom";import{FilterIcon as ew,Popover as tw}from"@rango-dev/ui";import wo from"react";import{css as jv,darkTheme as xi,IconButton as Xv,styled as On}from"@rango-dev/ui";var ll=On("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${xi} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),rf=On(Xv,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${xi} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${xi} &`]:{backgroundColor:"$neutral"},[`& ${ll}::before`]:{backgroundColor:"$secondary100",[`.${xi} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),af=On("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),sf=On("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),lf=jv({display:"flex",justifyContent:"space-between",alignItems:"center"}),pf=On("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as cf}from"@lingui/core";import{Button as Yv,Divider as uf,ListItemButton as Zv,Radio as Jv,RadioRoot as Rv,Typography as mf}from"@rango-dev/ui";import rt from"react";function df(t){let{filterBy:e,onClickItem:o}=t;return rt.createElement(sf,null,rt.createElement("div",{className:lf()},rt.createElement(mf,{size:"small",variant:"body"},cf.t("Status")),rt.createElement(Yv,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},cf.t("Reset"))),rt.createElement(uf,{size:10}),rt.createElement(Rv,{value:e},rt.createElement(pf,null,t.list.map((n,r)=>rt.createElement(Zv,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:rt.createElement(rt.Fragment,null,rt.createElement(uf,{direction:"horizontal",size:4}),rt.createElement(mf,{size:"medium",variant:"body"},n.title)),start:rt.createElement(Jv,{value:n.id}),onClick:o})))))}i(df,"FilterSelectorContent");function pl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return wo.createElement("div",null,wo.createElement(tw,{open:a,align:"end",onOpenChange:o,container:N(),content:wo.createElement(df,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},wo.createElement(rf,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},wo.createElement(ll,{isSelect:!!n},wo.createElement(ew,{size:16,color:"black"}),!!n&&wo.createElement(af,null)))))}i(pl,"FilterSelector");import{i18n as rw}from"@lingui/core";import{Divider as Sf,GroupedVirtualizedList as iw,Skeleton as aw,SwapListItem as Cf,Typography as sw}from"@rango-dev/ui";import He,{useCallback as kf,useEffect as lw,useRef as pw,useState as cw}from"react";function ff(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(ff,"calculateGroupsSoFar");import{css as ow,darkTheme as nw,styled as Un}from"@rango-dev/ui";var cl=ow(),gf=Un("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ul=Un("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${cl}`]:{$$color:"$colors$neutral600",[`.${nw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ml=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),hf=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),yf=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var uw=10;function dl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=cw([]),l=pw(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=kf(ff,[]),g=kf(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,uw),s(m(u,l.current)))},[e.length]);if(lw(()=>{r||g()},[r,g]),r){let f=[1,2];return He.createElement(He.Fragment,null,[f,f].map((h,C)=>He.createElement(ul,{key:C},He.createElement(ml,null,He.createElement(aw,{variant:"text",width:60,size:"small"}),He.createElement(Sf,{size:16})),He.createElement(Sf,{size:4}),He.createElement(hf,null,h.map((k,T)=>He.createElement(Cf,{isLoading:!0,key:T}))))))}return He.createElement(iw,{endReached:()=>{l.current<e.length&&g()},groupCounts:a,groupContent:f=>He.createElement(ul,null,He.createElement(ml,null,He.createElement(sw,{variant:"label",size:"medium",className:cl()},c[f]))),itemContent:(f,d)=>{let h=p[f];if(!h)return null;let C=h.steps[0],S=h.steps[h.steps.length-1];return He.createElement(gf,{key:h.requestId},He.createElement(Cf,{requestId:h.requestId,creationTime:h.creationTime,status:h.status,onClick:o,tooltipContainer:N(),onlyShowTime:c[d]===rw.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:L(h.inputAmount,6,6),realAmount:h.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:L(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(dl,"HistoryGroupedList");import{i18n as Ei}from"@lingui/core";import Tf from"dayjs";var vf=i(t=>{let e=new Map([["today",{title:Ei.t("Today"),swaps:[]}],["week",{title:Ei.t("This week"),swaps:[]}],["month",{title:Ei.t("This month"),swaps:[]}],["year",{title:Ei.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=Tf();t.forEach(p=>{let u=Number(p.creationTime),c=Tf(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 yw=gl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Sw=gl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Cw=gl("div",{"._typography":{color:"$neutral700",[`.${dw}&`]:{color:"$neutral900"}}}),kw=[{id:zn.SUCCESS,title:Ge.t("Complete")},{id:zn.RUNNING,title:Ge.t("Running")},{id:zn.FAILED,title:Ge.t("Failed")}],Tw=i((t,e)=>t?.length?t.filter(o=>bt(o.fromBlockchain,e)||bt(o.toBlockchain,e)||bt(o.toSymbol,e)||bt(o.fromSymbol,e)).length:!1,"isStepContainsText");function bf(){let t=hw(),{manager:e,state:o}=mw(),n=ut(e).map(({swap:T})=>T),[r,a]=Ai(""),[s,l]=Ai(!1),p=!o.loadedFromPersistor,[u,c]=Ai(""),[m,g]=Ai(!1),f=i(T=>{let v=T.target.value;a(v)},"handleSearch"),d=wf(()=>!r&&!u?n:n.filter(T=>{let{inputAmount:v,status:w,steps:I,requestId:M}=T;return(!r||bt(v,r)||bt(w,r)||Tw(I,r)||bt(M,r))&&(!u||u===w)}),[n,r,u]),h=!d?.length&&!p,C=i(()=>g(!1),"onCloseModal"),S=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(T){console.log(T)}},"onClear"),k=wf(()=>!n.some(T=>T.status===zn.SUCCESS||T.status===zn.FAILED),[n]);return ie.createElement(oe,{header:{title:Ge.t("History"),suffix:ie.createElement(Kt,null,ie.createElement(fl,{id:"widget-history-clear-btn",disabled:k,variant:"ghost",size:"xsmall",onClick:()=>g(!0)},ie.createElement(Ii,{size:"medium",variant:"label",color:"error"},Ge.t("Clear"))))}},ie.createElement(re,null,ie.createElement(Sw,null,ie.createElement(Ct,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ge.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ie.createElement(bo,{size:10,direction:"horizontal"}),ie.createElement(pl,{filterBy:u,open:s,onOpenChange:T=>l(T),onClickItem:T=>c(T),list:kw})),ie.createElement(bo,{size:"16"}),ie.createElement(yw,null,h&&ie.createElement(yf,null,ie.createElement(bo,{size:32}),ie.createElement(gw,{title:r?Ge.t("No results found"):Ge.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ge.t("Try using different keywords"):Ge.t("Your transaction history is stored locally and will appear here after you start a swap")})),!h&&ie.createElement(dl,{list:d,onSwapClick:t,groupBy:vf,isLoading:p}))),ie.createElement(ee,{open:m,onClose:C,container:N()},ie.createElement(bo,{size:20}),ie.createElement(fw,{type:"warning",title:Ge.t("Clear Transaction History"),description:ie.createElement(Cw,null,ie.createElement(Ii,{variant:"body",size:"medium"},Ge.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ie.createElement(bo,{size:"24"}),ie.createElement(Ii,{variant:"body",size:"small"},Ge.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ie.createElement(bo,{size:30}),ie.createElement(fl,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ge.t("Yes, Clear the history")),ie.createElement(bo,{size:10}),ie.createElement(fl,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:C},ie.createElement(Ii,{variant:"title",size:"medium",color:"primary"},Ge.t("No, Cancel")))))}i(bf,"HistoryPage");import{i18n as Hw}from"@lingui/core";import{Button as Gw,Divider as Gf,styled as Vw,WarningIcon as Kw}from"@rango-dev/ui";import jw from"bignumber.js";import Ve,{useEffect as Vf,useState as Kf}from"react";import{useNavigate as Xw}from"react-router-dom";import{i18n as Ef}from"@lingui/core";import{Alert as ww,Divider as hl,NoRouteIcon as bw,Typography as xw}from"@rango-dev/ui";import xo from"react";import{styled as vw}from"@rango-dev/ui";var xf=vw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function yl(){let{fromToken:t,toToken:e}=F();return!!t&&!!e&&Bt(t,e)?xo.createElement(xf,null,xo.createElement(hl,{size:10}),xo.createElement(bw,{size:24,color:"gray"}),xo.createElement(hl,{size:4}),xo.createElement(xw,{variant:"title",size:"small"},Ef.t("No Routes Found")),xo.createElement(hl,{size:4}),xo.createElement(ww,{title:Ef.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(yl,"SameTokensWarning");import{i18n as Mw}from"@lingui/core";import{Header as Lw}from"@rango-dev/ui";import eo,{useEffect as Bw,useState as Pw}from"react";import{i18n as Iw}from"@lingui/core";import{Divider as Cl,FullExpandedQuote as Aw,Typography as Nw}from"@rango-dev/ui";import Se from"react";import{styled as Sl}from"@rango-dev/ui";var If=Sl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Af=Sl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Nf=Sl("div",{width:"146px"});import{i18n as Qn}from"@lingui/core";import{Select as Ew}from"@rango-dev/ui";import Wf from"react";function Ni(t){let{updateQuotePartialState:e,sortStrategy:o}=F(),n=[{value:"SMART",label:Qn.t("Smart Routing")},{value:"FEE",label:Qn.t("Lowest Fee")},{value:"SPEED",label:Qn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Qn.t("Maximum Return")},{value:"PRICE",label:Qn.t("Maximum Output")}];return Wf.createElement(Nf,null,Wf.createElement(Ew,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ni,"SelectStrategy");var Mf=3;function qn(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:g,sortStrategy:f,error:d}=F(),{slippage:h,customSlippage:C}=y(),{findToken:S}=y(),k=l||N(),T=!!u&&u.results.length,v=C??h,w=i(b=>{if(!m||!g||!u)return null;let E={requestAmount:u.requestAmount,validationStatus:null,...b};return Uo(E,{fromToken:m,toToken:g,userSlippage:v,findToken:S})},"getQuoteWarning"),I=d?.type===0||d?.type===1,M=u?.results?_r(f,u?.results):[];return Se.createElement(Se.Fragment,null,a&&Se.createElement(Se.Fragment,null,Se.createElement(Af,null,Se.createElement(Nw,{size:"xmedium",variant:"title"},Iw.t("Sort by")),Se.createElement(Ni,{container:k})),Se.createElement(Cl,{size:"10"})),e&&Array.from({length:Mf},(b,E)=>Se.createElement(Se.Fragment,{key:E},s?Se.createElement(Aw,{loading:!0}):Se.createElement(Bn,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Mf-1&&Se.createElement(Cl,{size:16}))),!e&&Se.createElement(Se.Fragment,null,T?M.map((b,E)=>{let x=w(b),W=Qs(b.swaps),D=M.length-1===E;return Se.createElement(Se.Fragment,{key:b.requestId},Se.createElement(vo,{showModalFee:r,container:k,selected:p?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:W?.options||null,warning:x,fullExpandedMode:s,onClick:A=>{W||c("warning",x),c("error",W?.options||null),o(A)},type:"list-item"}),!D&&Se.createElement(Cl,{size:16}))}):I&&Se.createElement(If,null,Se.createElement(bn,{size:s?"large":"small",error:d,fetch:n}))))}i(qn,"Quotes");import{darkTheme as Ww,styled as Lf}from"@rango-dev/ui";var Bf=Lf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Ww} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Pf=Lf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Dw=100;function kl(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Pw(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",m=ln();return Bw(()=>{let g=null;return a?g=setTimeout(()=>{l(!0)},Dw):(l(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[a]),eo.createElement(Bf,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Hr()}`,id:_e.EXPANDED_BOX_ID},eo.createElement(Lw,{title:Mw.t("Routes"),suffix:eo.createElement(eo.Fragment,null,eo.createElement(Ni,{container:m}),eo.createElement(yo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),eo.createElement(Pf,null,eo.createElement(qn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:ln(),onClickOnQuote:n,fullExpandedMode:c})))}i(kl,"ExpandedQuotes");import{i18n as zf}from"@lingui/core";import{SwapInput as Qf}from"@rango-dev/ui";import Hn from"react";import{ReverseIcon as Fw}from"@rango-dev/ui";import vl from"react";import{keyframes as _w,styled as Df}from"@rango-dev/ui";var Tl=450,$w=_w({"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)"}}),_f=Df("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),$f=Df("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${$w} ${Tl}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 wl(){let t=F.use.switchFromAndTo();return vl.createElement(_f,null,vl.createElement($f,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Tl),t()}},vl.createElement(Fw,{size:12})))}i(wl,"SwitchFromAndToButton");import{styled as Ff}from"@rango-dev/ui";var Of=Ff("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Uf=Ff("div",{position:"relative"});function bl(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:g,outputUsdValue:f,selectedQuote:d}=F(),{connectedWallets:h,getBalanceFor:C}=R(),S=a?C(a):null,k=fr(S)?.amount??"0",T=s&&a?L(S?.amount,S?.decimals):"0",v=!!s&&Up(h,s.name),w=!La(d,c,m),I=!La(d,c,f),M=!m||!f||!f.gt(0)?null:ct(m.toString(),f.toString());return Hn.createElement(Of,null,Hn.createElement(Uf,null,Hn.createElement(Qf,{label:zf.t("From"),mode:"From",onInputChange:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:w?void 0:L(m,4,4),realUsdValue:w?void 0:m?.toString(),error:w?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:N(),onSelectMaxBalance:()=>{u(T.split(",").join(""))},anyWalletConnected:h.length>0}),Hn.createElement(wl,null)),Hn.createElement(Qf,{sharpBottomStyle:!r&&(!!d||e),label:zf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:L(ct(m,f),2,2),warningLevel:Dt(M??0),price:{value:L(g,6,6),usdValue:I?void 0:L(f,4,4),realValue:g?.toString(),realUsdValue:I?void 0:f?.toString(),error:I?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(bl,"Inputs");import{useCallback as Ow,useEffect as Uw,useRef as zw,useState as Qw}from"react";function qf(){let{fetch:t,loading:e,cancelFetch:o}=Si({request:async(n,r)=>await Et().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(qf,"useFetchAllQuotes");var qw=600;function Wi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=qf(),{excludeLiquiditySources:n,routing:r}=y().config,a=R.use.connectedWallets(),{fromToken:s,toToken:l,inputAmount:p,inputUsdValue:u,selectedQuote:c,sortStrategy:m,resetQuote:g,error:f,warning:d,setSelectedQuote:h,updateQuotePartialState:C}=F(),{slippage:S,customSlippage:k,affiliatePercent:T,affiliateRef:v,affiliateWallets:w,fetchStatus:I}=y(),M=y().getLiquiditySources(),b=y().getDisabledLiquiditySources(),E=y().excludeLiquiditySources(),{findToken:x}=y(),[W,D]=Qw(!0),A=zw(p),Z=k??S,J=!s||!l||Bt(s,l)||!cn(p),B=i(V=>{D(V)},"resetState"),K=i(V=>{let{fromToken:fe,toToken:ge,inputAmount:Pe,liquiditySources:z,excludeLiquiditySources:je,disabledLiquiditySources:vt,slippage:lt,affiliateRef:wt,affiliatePercent:$,affiliateWallets:Q}=V;if(W||B(!0),!J&&fe&&ge){g();let H=Gc({fromToken:fe,toToken:ge,inputAmount:Pe,liquiditySources:z,excludeLiquiditySources:je,disabledLiquiditySources:vt,wallets:a,slippage:lt,affiliateRef:wt,affiliatePercent:$,affiliateWallets:Q});Lo("experimental",r)&&(H.experimental=!0),Lo("avoidNativeFee",r)&&(H.avoidNativeFee=!0),Lo("enableCentralizedSwappers",r)&&(H.enableCentralizedSwappers=!0),r?.maxLength&&(H.maxLength=r.maxLength),e(H).then(ne=>{let le=_r(m,ne.results),pe=iu(c,le,ne.requestAmount);D(!1),C("quotes",ne),h(pe),Ci({diagnosisMessages:ne.diagnosisMessages,requestId:pe?.requestId||"",swaps:pe?.swaps});let Oe=go(pe)||ge?.usdPrice,tr=Sn(pe)||fe?.usdPrice,io=pe&&Uo(pe,{fromToken:{...fe,usdPrice:tr},toToken:{...ge,usdPrice:Oe},userSlippage:Z,findToken:x});C("warning",io)}).catch(ne=>{let{error:le}=ki(ne);(le?.type===0||le?.type===1)&&g(),le?.type!==2&&(C("error",le),D(!1))})}},"fetch"),me=Ow(Ep(V=>{K(V)},qw),[J]);return Uw(()=>{if(!t){D(!1);return}if(I!=="success")return;if(J){D(!1),(c||f||d)&&g();return}if(!cn(p)||u?.eq(0)){B(!1),o();return}g(),B(!0);let V=K;return A.current&&A.current!=p&&(V=me),A.current=p,V({inputAmount:p,fromToken:s,toToken:l,liquiditySources:M,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:Z,affiliateRef:v,affiliatePercent:T,affiliateWallets:w}),o},[I,p,s?.symbol,s?.address,s?.blockchain,l?.symbol,l?.address,l?.blockchain,J,M?.length,n,b.length,Z,v,T,JSON.stringify(w)]),{fetch:()=>K({inputAmount:p,fromToken:s,toToken:l,liquiditySources:M,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:Z,affiliateRef:v,affiliatePercent:T,affiliateWallets:w}),loading:W}}i(Wi,"useSwapInput");function Hf(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};he.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Hf,"emitPreventableEvent");var Yw=Vw("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Zw=300;function jf(){let t=Xw(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:g}=F(),[f,d]=Kf(!1),{isLargeScreen:h,isExtraLargeScreen:C}=ci(),{fetch:S,loading:k}=Wi({refetchQuote:a}),{config:T,fetchStatus:v}=y(),{connectedWallets:w}=R(),{isActiveTab:I}=se(),[M,b]=Kf(!1),x=Oc({fetchMetaStatus:v,fetchingQuote:k,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),W=Kp(h,C,T?.variant),D=!!n&&!!e&&!!o&&new jw(n).gt(0)&&!eu(e,o),A=D&&v==="success"&&k,J=(!W||W&&p?.results.length)&&(l||s);Vf(()=>{c(),g("refetchQuote",!0)},[]),Vf(()=>{d(D)},[D]);let B=(r||s)&&!M?S:void 0,K=i(V=>{W&&f?(d(!1),setTimeout(()=>{t(V)},Zw)):t(V)},"onHandleNavigation"),me=i(V=>{r?.requestId!==V.requestId&&(b(!1),u(V))},"onClickOnQuote");return Ve.createElement(Yw,null,Ve.createElement(oe,{height:"auto",footer:Ve.createElement(Gw,{id:`widget-swap-${x.action}-btn`,type:"primary",size:"large",disabled:x.disabled||!I,prefix:x.action==="confirm-warning"&&Ve.createElement(Kw,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?Hf({type:"clickConnectWallet"},()=>K(_.wallets)):x.action==="confirm-warning"?b(!0):K(_.confirmSwap)}},x.title),header:{onWallet:()=>{K(_.wallets)},hasBackButton:!1,title:T.title||Hw.t("Swap"),suffix:Ve.createElement(yo,{hidden:W?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>K(_.swaps),onClickSettings:()=>{K(_.settings)}})}},Ve.createElement(re,null,Ve.createElement(bl,{fetchingQuote:A,fetchMetaStatus:v,isExpandable:W,onClickToken:V=>{K(V==="from"?_.fromSwap:_.toSwap)}}),Ve.createElement(Gf,{size:"2"}),W?null:Ve.createElement(vo,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{g("refetchQuote",!1),K(_.routes)}:void 0}),J?Ve.createElement(Ve.Fragment,null,Ve.createElement(Gf,{size:"10"}),Ve.createElement(En,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:S,showWarningModal:M,confirmationDisabled:!I,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:()=>{b(!1),m(!0),K(_.confirmSwap)},onChangeSettings:()=>K(_.settings)})):null,Ve.createElement(yl,null))),W?Ve.createElement(kl,{loading:A,onClickOnQuote:me,fetch:S,onClickRefresh:B,isVisible:f}):null)}i(jf,"Home");import{i18n as Xf}from"@lingui/core";import{Alert as Jw,Divider as Rw,List as eb,ListItemButton as tb,Radio as ob,RadioRoot as nb,Typography as rb}from"@rango-dev/ui";import Mt from"react";function to(){let{setLanguage:t,language:e,config:o}=y(),n=Jp,r=o?.language||Bo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Bo),resetLanguage:()=>t(null)}}i(to,"useLanguage");function Yf(){let{activeLanguage:t,changeLanguage:e,languages:o}=to(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Mt.createElement(rb,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Mt.createElement(ob,{value:s}),start:Mt.createElement(p,null)}});return Mt.createElement(oe,{header:{title:Xf.t("Language")}},Mt.createElement(re,null,Mt.createElement(Jw,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Mt.createElement(Rw,{size:"8"}),Mt.createElement(nb,{value:t},Mt.createElement(eb,{type:Mt.createElement(tb,{title:Xf.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Yf,"LanguagePage");import{i18n as zt}from"@lingui/core";import{Button as pb,Checkbox as cb,Image as ub,ListItemButton as mb,NotFound as db,Typography as fb}from"@rango-dev/ui";import Ke,{useState as gb}from"react";import{Checkbox as sb,Skeleton as Jf}from"@rango-dev/ui";import Vn from"react";import{styled as xl}from"@rango-dev/ui";var Gn=xl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),El=xl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Il=xl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as ib,styled as ab}from"@rango-dev/ui";var Zf=ab(ib,{height:61});var lb=30;function Al(){return Vn.createElement(Gn,null,Array.from(Array(lb),(t,e)=>Vn.createElement(Zf,{hasDivider:!0,key:e,start:Vn.createElement(Jf,{variant:"circular",width:35,height:35}),title:Vn.createElement(Jf,{variant:"text",size:"large",width:90}),end:Vn.createElement(sb,{checked:!1})})))}i(Al,"LoadingLiquiditySourceList");function Nl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=gb(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=Sr(o,n),u={Exchanges:zt.t("Exchanges"),Bridges:zt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(S=>c.includes(S.type)),g=m.length===m.filter(S=>S.selected).length,f=i(()=>{m.forEach(S=>{g?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),d=m.map(S=>{let{selected:k,groupTitle:T,logo:v,id:w,...I}=S;return{id:`widget-setting-liquidity-source-${w.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ke.createElement(ub,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(T)},end:Ke.createElement(cb,{checked:k,disabled:l}),title:Ke.createElement(fb,{variant:"title",size:"xmedium"},zt.t(T)),selected:k,groupTitle:T,logo:v,...I}}),h=i(S=>{let k=S.target.value;a(k)},"handleSearch"),C=d;return r&&(C=d.filter(S=>bt(S.groupTitle,r))),Ke.createElement(oe,{header:{title:zt.t(t),suffix:Ke.createElement(El,null,Ke.createElement(pb,{id:`widget-liquidity-source-${g?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},g?zt.t("Deselect all"):zt.t("Select all")))}},Ke.createElement(re,{view:!0},Ke.createElement(Ct,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search {sourceType}",{sourceType:u[t]}),onChange:h}),e==="loading"&&Ke.createElement(Al,null),!C.length&&r?Ke.createElement(Il,null,Ke.createElement(db,{title:zt.t("No results found"),description:zt.t("Try using different keywords")})):e==="success"&&Ke.createElement(Gn,{disabled:l},C.map(S=>{let{groupTitle:k,...T}=S;return Ke.createElement(Ke.Fragment,{key:S.id},Ke.createElement(mb,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(Nl,"LiquiditySourcePage");import{i18n as hb}from"@lingui/core";import Mi from"react";import{useNavigate as yb}from"react-router-dom";function Rf(){let t=yb(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=F(),{fetch:l,loading:p}=Wi({refetchQuote:n}),u=i(g=>{r(g),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${_.settings}`,m=`../${_.wallets}`;return Mi.createElement(oe,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:hb.t("Routes"),suffix:Mi.createElement(yo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Mi.createElement(re,null,Mi.createElement(qn,{fetch:l,loading:p,onClickOnQuote:u})))}i(Rf,"RoutesPage");import{i18n as ag}from"@lingui/core";import{Divider as sg,getCategoriesCount as Ib,SelectableCategoryList as Ab}from"@rango-dev/ui";import Qt,{useState as lg}from"react";import{useNavigate as Nb}from"react-router-dom";import{i18n as Wl}from"@lingui/core";import{Divider as Tb,Image as vb,ListItemButton as wb,NotFound as bb,Typography as ig}from"@rango-dev/ui";import it,{useEffect as xb,useState as Eb}from"react";var eg=i((t,e,o)=>t.filter(n=>sr(n.type,o)).filter(n=>et(n.name,e)||et(n.displayName,e)),"filterBlockchains");import{ImageContainer as Sb,styled as tg}from"@rango-dev/ui";var og=tg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Li=tg(kn,{padding:0,margin:0,listStyle:"none",[`& ${Sb}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Cb,Skeleton as ng}from"@rango-dev/ui";import Bi from"react";var kb=20;function rg(){return Bi.createElement(Li,null,Array.from(Array(kb),t=>Bi.createElement(Cb,{key:t,hasDivider:!0,start:Bi.createElement(ng,{variant:"circular",width:35,height:35}),title:Bi.createElement(ng,{variant:"text",size:"large",width:90})})))}i(rg,"LoadingBlockchainList");function Ml(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=Eb(e),{fetchStatus:p}=y();xb(()=>{l([...eg(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?it.createElement(bb,{title:Wl.t("No results found"),description:Wl.t("Try using different keywords")}):it.createElement(Li,{as:"ul",key:`${r}-${o}`},s.map(c=>it.createElement(wb,{key:`${c.name}-${c.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(c),start:it.createElement(vb,{src:c.logo,size:30}),title:it.createElement(ig,{variant:"title",size:"medium"},c.displayName),id:c.name}))),"renderList");return it.createElement(it.Fragment,null,a&&it.createElement(it.Fragment,null,it.createElement(ig,{variant:"label",size:"large"},Wl.t("Select Chain")),it.createElement(Tb,{size:4})),it.createElement(og,null,p==="loading"&&it.createElement(rg,null),p==="success"&&u()))}i(Ml,"BlockchainList");function Pi(t){let{type:e}=t,o=Ze(),[n,r]=lg(""),[a,s]=lg("ALL"),l=F.use.setToBlockchain(),p=F.use.setFromBlockchain(),{fetchStatus:u}=y(),c=Nb(),m=y().blockchains({type:e}),g=Ib(m),f=!t.hideCategory&&g!==1;return Qt.createElement(oe,{header:{title:ag.t("Select Chain")}},Qt.createElement(re,{view:!0},f&&Qt.createElement(Qt.Fragment,null,Qt.createElement(Ab,{setCategory:s,category:a,blockchains:m,isLoading:u==="loading"}),Qt.createElement(sg,{size:24})),Qt.createElement(Ct,{value:n,autoFocus:!0,placeholder:ag.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Qt.createElement(sg,{size:16}),Qt.createElement(Ml,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:d=>{e==="custom-token"?c(`..?blockchain=${d.name}`,{replace:!0}):(e==="source"?p(d):l(d),o())}})))}i(Pi,"SelectBlockchainPage");import{i18n as _i}from"@lingui/core";import{Divider as fg}from"@rango-dev/ui";import Eo,{useState as $b}from"react";import{useNavigate as Fb}from"react-router-dom";import{i18n as Pl}from"@lingui/core";import{BlockchainsChip as Di,Divider as mg,Image as dg,Skeleton as Pb,Tooltip as Db,Typography as Dl}from"@rango-dev/ui";import Le from"react";import{useEffect as Lb}from"react";var pg=["ETH","COSMOS","OSMOSIS"];function Ll(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Wb),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(Mb(s)),r=n.splice(a)}return{list:n,more:r}}i(Ll,"prepare");function Wb(t,e){let o=pg,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(Wb,"sortByMostUsedBlockchains");function Mb(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(Mb,"generateSortByPreferredBlockchainsFor");function cg(t,e){return!!e.list.find(o=>o.name===t)}i(cg,"isInVisibleList");function Bl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();Lb(()=>{if(e?.selected){let a=Ll(t,o,e);cg(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ll(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Bl,"usePrepareBlockchainList");import{styled as Bb}from"@rango-dev/ui";var ug=Bb("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var _b=12;function _l(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Bl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=F.use.resetToBlockchain(),u=F.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,g=!m&&c;return Le.createElement(Le.Fragment,null,Le.createElement(mg,{size:12}),Le.createElement(Dl,{variant:"label",size:"large"},Pl.t("Select Chain")),Le.createElement(mg,{size:12}),Le.createElement(ug,null,l==="loading"&&Array.from(Array(_b),f=>Le.createElement(Pb,{key:f,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(Di,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(Dl,{variant:"body",size:"xsmall",color:"secondary500"},Pl.t("All"))),s.list.map(f=>Le.createElement(Db,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},Le.createElement(Di,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Le.createElement(dg,{src:f.logo,size:30})))),m?Le.createElement(Di,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(dg,{src:s.more[0].logo,size:30})):null,g?Le.createElement(Di,{onClick:a,key:"more-blockchains"},Le.createElement(Dl,{variant:"body",size:"xsmall",color:"secondary500"},Pl._("More +{count}",{count:s.more.length}))):null)))}i(_l,"BlockchainsSection");function $l(t){let{type:e}=t,o=Fb(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=F(),c=R.use.getBalanceFor(),[m,g]=$b(""),d=(e==="source"?r:a)?.name??"",h=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:d,searchFor:m,getBalanceFor:c}),S=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),k=i(v=>{e==="source"?s({token:v,meta:{blockchains:h,tokens:C}}):l({token:v,meta:{blockchains:h,tokens:C}})},"updateToken"),T={source:_i.t("Source"),destination:_i.t("Destination")};return Eo.createElement(oe,{header:{title:_i.t("Swap {type}",{type:T[e]})}},Eo.createElement(re,null,Eo.createElement(_l,{blockchains:h,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(_.blockchains),onChange:v=>{S(v)}}),Eo.createElement(fg,{size:24}),Eo.createElement(Ct,{value:m,autoFocus:!0,placeholder:_i.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:v=>g(v.target.value)}),Eo.createElement(fg,{size:16}),Eo.createElement($n,{list:C,selectedBlockchain:d,searchedFor:m,type:e,onChange:v=>{k(v);let w=h.find(I=>v.blockchain===I.name);w&&S(w),n()}})))}i($l,"SelectSwapItemsPage");import{i18n as Ul}from"@lingui/core";import{Alert as cx,Button as ux,styled as mx}from"@rango-dev/ui";import Io from"react";import{useInRouterContext as dx,useSearchParams as fx}from"react-router-dom";import{i18n as kg}from"@lingui/core";import{Divider as Tg,InfoIcon as Qb,SlippageIcon as qb,TextField as Hb,Tooltip as Gb,Typography as vg}from"@rango-dev/ui";import at from"react";import{Chip as Ob,styled as Kn,TextField as Ub}from"@rango-dev/ui";var gg=Kn("div",{paddingTop:"$5",padding:"$10 $5"}),hg=Kn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ub}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),yg=Kn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),$i=Kn("div",{maxWidth:"280px",padding:"$10"}),Sg=Kn(Ob,{width:"61px",flexShrink:0});import{i18n as Fl}from"@lingui/core";import{Typography as zb}from"@rango-dev/ui";import jn from"react";function Cg(){return jn.createElement($i,null,jn.createElement(zb,{variant:"label",size:"medium",color:"neutral700"},Fl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),jn.createElement("br",null),jn.createElement("br",null),jn.createElement("b",null,Fl.t("Warning")),":\xA0",Fl.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(Cg,"SlippageTooltipContent");function Ol(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return at.createElement(gg,null,at.createElement(yg,null,at.createElement(qb,{size:16,color:"gray"}),at.createElement(Tg,{direction:"horizontal",size:4}),at.createElement(vg,{variant:"title",size:"xmedium"},kg.t("Slippage tolerance per swap")),at.createElement(Tg,{direction:"horizontal",size:4}),at.createElement(Gb,{container:N(),side:"top",sideOffset:4,content:at.createElement(Cg,null)},at.createElement(Qb,{color:"gray"}))),at.createElement(hg,null,Rp.map((r,a)=>{let s=`slippage-${a}`;return at.createElement(Sg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),at.createElement(Hb,{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>=nc&&s<=oc?n(s):n(null)},suffix:o&&at.createElement(vg,{variant:"body",size:"small"},"%"),placeholder:kg.t("Custom")})))}i(Ol,"Slippage");import{i18n as dt}from"@lingui/core";import{AutoThemeIcon as wg,BridgesIcon as Vb,ChevronRightIcon as Fi,DarkModeIcon as bg,Divider as Xn,ExchangeIcon as Kb,InfinityIcon as jb,InfoIcon as Xb,LanguageIcon as Yb,LightModeIcon as xg,List as Zb,ListItem as Jb,ListItemButton as Rb,Skeleton as ex,styled as tx,Switch as ox,Tabs as nx,TargetIcon as rx,Tooltip as ix,Typography as Re}from"@rango-dev/ui";import P from"react";import{useNavigate as ax}from"react-router-dom";var sx=tx("div",{width:"202px",height:"$40"}),lx=[{id:"light",icon:P.createElement(xg,{color:"black",size:24}),tooltip:P.createElement(Re,{size:"xsmall",variant:"body"},dt.t("Light"))},{id:"dark",icon:P.createElement(bg,{color:"black",size:24}),tooltip:P.createElement(Re,{size:"xsmall",variant:"body"},dt.t("Dark"))},{id:"auto",icon:P.createElement(wg,{color:"black",size:24}),tooltip:P.createElement(Re,{size:"xsmall",variant:"body"},dt.t("Auto"))}],px=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return P.createElement(wg,{...e});case"dark":return P.createElement(bg,{...e});default:return P.createElement(xg,{...e})}},"getThemeIcon");function Eg(){let t=ax(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=to(),s=a.find(B=>B.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),m=y().customTokens(),g=Xe("theme",c),f=Xe("liquiditySource",c),d=Xe("language",c),h=Xe("customTokens",c),C=y().infiniteApprove,S=y().toggleInfiniteApprove,k=Sr(p,u),T=k.filter(B=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(B.type)),v=T.length,w=T.filter(B=>B.selected).length,I=k.filter(B=>B.type==="DEX"),M=I.length,b=I.filter(B=>B.selected).length,E=i((B,K)=>{switch(l){case"loading":return P.createElement(ex,{variant:"text",size:"medium",width:50});case"failed":return P.createElement(Re,{variant:"body",size:"medium",color:"$error500"},dt.t("Loading failed"));default:return P.createElement(Re,{variant:"body",size:"medium"},`${B} / ${K}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:P.createElement(Re,{variant:"title",size:"xmedium"},dt.t("Bridges")),end:P.createElement(P.Fragment,null,E(w,v),P.createElement(Xn,{direction:"horizontal",size:8}),P.createElement(Fi,{color:"black"})),onClick:()=>t(_.bridges),start:P.createElement(Vb,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:P.createElement(Re,{variant:"title",size:"xmedium"},dt.t("Exchanges")),end:P.createElement(P.Fragment,null,E(b,M),P.createElement(Xn,{direction:"horizontal",size:8}),P.createElement(Fi,{color:"black"})),start:P.createElement(Kb,{color:"gray",size:16}),onClick:()=>t(_.exchanges)},D={id:"widget-setting-custom-tokens-item-btn",title:P.createElement(Re,{variant:"title",size:"xmedium"},dt.t("Custom Tokens")),end:P.createElement(P.Fragment,null,P.createElement(Re,{variant:"body",size:"medium"},`${m.length}`),P.createElement(Xn,{direction:"horizontal",size:8}),P.createElement(Fi,{color:"black"})),start:P.createElement(rx,{color:"gray",size:16}),onClick:()=>t(_.customTokens)},A={id:"widget-setting-language-item-btn",title:P.createElement(Re,{variant:"title",size:"xmedium"},dt.t("Language")),start:P.createElement(Yb,{color:"gray",size:16}),end:P.createElement(P.Fragment,null,P.createElement(Re,{variant:"body",size:"medium"},s),P.createElement(Xn,{direction:"horizontal",size:8}),P.createElement(Fi,{color:"black"})),onClick:()=>t(_.languages)},Z={id:"widget-setting-infinite-approval-item-btn",title:P.createElement(P.Fragment,null,P.createElement(Re,{variant:"title",size:"xmedium"},dt.t("Infinite approval")),P.createElement(Xn,{direction:"horizontal",size:4}),P.createElement(ix,{side:"top",sideOffset:4,container:N(),content:P.createElement($i,null,P.createElement(Re,{variant:"label",size:"medium",color:"neutral700"},P.createElement("b",null,dt.t("Warning")),":\xA0",dt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},P.createElement(Xb,{color:"gray"}))),start:P.createElement(jb,{color:"gray",size:16}),end:P.createElement(ox,{checked:C}),onClick:S},ae={id:"widget-setting-theme-item-btn",type:P.createElement(Jb,null),title:P.createElement(Re,{variant:"title",size:"xmedium"},dt.t("Theme")),end:P.createElement(sx,null,P.createElement(nx,{container:N(),items:lx,value:n,onChange:B=>o(B.id),type:"primary",borderRadius:"small"})),start:px(n)},J=f?[]:[x,W];return h||J.push(D),d||J.push(A),J.push(Z),!e?.singleTheme&&!g&&J.push(ae),P.createElement(Zb,{type:P.createElement(Rb,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Eg,"SettingsLists");var gx=mx("div",{paddingLeft:"$8"});function Ig(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=fx(),r=dx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Io.createElement(oe,{header:{title:Ul.t("Settings")}},Io.createElement(re,null,o&&Io.createElement(cx,{type:"info",variant:"alarm",title:Ul.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:Io.createElement(gx,null,Io.createElement(ux,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Ul.t("Reset")))}),Io.createElement(Ol,null),Io.createElement(Eg,null)))}i(Ig,"SettingsPage");import{i18n as oE}from"@lingui/core";import{cancelSwap as nE}from"@rango-dev/queue-manager-rango-preset";import{useManager as rE}from"@rango-dev/queue-manager-react";import{Alert as iE}from"@rango-dev/ui";import np from"react";import{useParams as aE}from"react-router-dom";import{i18n as st}from"@lingui/core";import{getCurrentBlockchainOfOrNull as $x,getCurrentStep as Fx,getRelatedWalletOrNull as Ox}from"@rango-dev/queue-manager-rango-preset";import{Button as rh,CopyIcon as Ux,Divider as zx,DoneIcon as Qx,IconButton as qx,QuoteCost as Hx,RangoExplorerIcon as Gx,StepDetails as Vx,Tooltip as ih,Typography as Ao,useCopyToClipboard as Kx}from"@rango-dev/ui";import{useWallets as jx}from"@rango-dev/wallets-react";import ah from"bignumber.js";import{PendingSwapNetworkStatus as Ki}from"rango-types";import j,{useEffect as sh,useRef as Xx,useState as lh}from"react";import{useNavigate as Yx}from"react-router-dom";import{i18n as oo}from"@lingui/core";var hx=[oo.t("Sunday"),oo.t("Monday"),oo.t("Tuesday"),oo.t("Wednesday"),oo.t("Thursday"),oo.t("Friday"),oo.t("Saturday")];function Ag(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?oo.t("Today"):`${hx[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ag,"timeSince");function Ng(t){return t.finishTime?Ag(parseInt(t.finishTime)):Ag(parseInt(t.creationTime))}i(Ng,"getSwapDate");import{PendingSwapNetworkStatus as zi}from"rango-types";import Qi from"react";import{i18n as Oi}from"@lingui/core";import{Button as Wg,Divider as zl,MessageBox as yx}from"@rango-dev/ui";import no from"react";var Mg=i(({onCancel:t,onClose:e})=>no.createElement(no.Fragment,null,no.createElement(zl,{size:20}),no.createElement(yx,{type:"error",title:Oi.t("Cancel Swap"),description:Oi.t("Are you sure you want to cancel this swap?")}),no.createElement(zl,{size:32}),no.createElement(Wg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Oi.t("Yes, Cancel it")),no.createElement(zl,{size:12}),no.createElement(Wg,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Oi.t("No, Continue"))),"CancelContent");import{i18n as Ui}from"@lingui/core";import{Button as Lg,Divider as Ql,MessageBox as Sx,Typography as Cx}from"@rango-dev/ui";import qt from"react";var Bg=i(({onDelete:t,onClose:e})=>qt.createElement(qt.Fragment,null,qt.createElement(Ql,{size:20}),qt.createElement(Sx,{type:"error",title:Ui.t("Delete Transaction"),description:Ui.t("Are you sure you want to delete this swap?")}),qt.createElement(Ql,{size:32}),qt.createElement(Lg,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ui.t("Yes, Delete it")),qt.createElement(Ql,{size:12}),qt.createElement(Lg,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},qt.createElement(Cx,{variant:"title",size:"medium",color:"primary"},Ui.t("No, Cancel")))),"DeleteContent");import{i18n as ql}from"@lingui/core";import{PendingSwapNetworkStatus as Hl}from"rango-types";var Gl={[Hl.WaitingForNetworkChange]:{type:"loading",title:ql.t("Change Network")},[Hl.WaitingForConnectingWallet]:{type:"warning",title:ql.t("Connect Wallet")},[Hl.NetworkChanged]:{type:"success",title:ql.t("Network Changed")}};import{warn as kx}from"@rango-dev/logging-core";import{MessageBox as Tx,Wallet as vx}from"@rango-dev/ui";import{useWallets as wx}from"@rango-dev/wallets-react";import tn,{useState as bx}from"react";import{styled as Pg}from"@rango-dev/ui";var Dg=Pg("div",{display:"flex",justifyContent:"center"}),b5=Pg("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var _g=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,p]=bx(),{getWalletInfo:u,state:c}=wx(),m=n?.walletType,g=m?un(c(m)):null,f=m?u(m):null,d=a&&!!m&&!!g&&!!f,{list:h}=ft(),C=i(()=>{if(m){let S=h.find(k=>k.type===m);S?p(S):kx(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return tn.createElement(tn.Fragment,null,tn.createElement(Tx,{type:e,title:o,description:r}),d&&tn.createElement(Dg,null,tn.createElement(vx,{container:N(),title:f.name,image:f.img,type:m,state:g,link:f.installLink,disabled:s,onClick:C})),tn.createElement(mo,{wallet:l,onClose:()=>{p(void 0)}}))},"WalletStateContent");function Vl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===zi.WaitingForNetworkChange||e===zi.WaitingForConnectingWallet||e===zi.NetworkChanged;return Qi.createElement(ee,{open:!!e,onClose:o,container:document.getElementById(_e.SWAP_BOX_ID)||document.body},p&&Qi.createElement(_g,{type:Gl[e].type,title:Gl[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==zi.WaitingForNetworkChange}),e==="delete"&&Qi.createElement(Bg,{onClose:o,onDelete:n}),e==="cancel"&&Qi.createElement(Mg,{onClose:o,onCancel:r}))}i(Vl,"SwapDetailsModal");import{i18n as Yn}from"@lingui/core";import{Button as Kl,Divider as qi,MessageBox as $g,TokenAmount as xx,Typography as jl}from"@rango-dev/ui";import Fe from"react";import{useNavigate as Ex}from"react-router-dom";function Xl(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:g}=t,f=Ex();return Fe.createElement(ee,{open:e,onClose:o,container:document.getElementById(_e.SWAP_BOX_ID)||document.body},n==="success"?Fe.createElement($g,{type:"success",title:Yn.t("Swap Successful")},Fe.createElement(xx,{direction:"vertical",tooltipContainer:N(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Fe.createElement(qi,{size:12}),Fe.createElement(jl,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Fe.createElement($g,{type:"error",title:Yn.t("Transaction Failed"),description:m}),Fe.createElement(qi,{size:32}),n==="success"&&Fe.createElement(Kl,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Fe.createElement(jl,{variant:"title",size:"medium",color:"neutral100"},Yn.t("Done"))),Fe.createElement(qi,{size:12}),g&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Kl,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},Yn.t("Diagnosis")),Fe.createElement(qi,{size:12})),Fe.createElement(Kl,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Fe.createElement(jl,{variant:"title",size:"medium",color:"primary"},Yn.t("See Details"))))}i(Xl,"SwapDetailsCompleteModal");import _x from"react";import{i18n as Lx}from"@lingui/core";import{Alert as eh,IconButton as Bx,LinkIcon as Px}from"@rango-dev/ui";import ro,{Fragment as Dx}from"react";import{Alert as Ax,ChevronDownIcon as Nx,IconButton as Wx}from"@rango-dev/ui";import nn,{useState as Mx}from"react";import{css as Zn,darkTheme as Fg,styled as Ht,Typography as Ix}from"@rango-dev/ui";var Og=Ht("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Hi=Ht("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Fg} &`]:{color:"$secondary500"}}}}}),Ug=Ht(kn,{padding:"$0 $20 $20 $20"}),s4=Ht("div",{display:"flex",flexDirection:"column",gap:"$10"}),zg=Ht("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),l4=Ht("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),on=Zn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Fg} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Qg=Zn({padding:"$5 0"}),Gi=Zn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),qg=Zn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Hg=Zn({width:"100%",padding:"0 $20 $10"}),Gg=Ht("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Vg=Ht("div",{display:"flex",flexDirection:"column",gap:"$5"}),Vi=Ht(Ix,{wordBreak:"break-word"});import{styled as Yl}from"@rango-dev/ui";var Kg=Yl("div",{display:"flex",flexDirection:"column",gap:"$10"}),jg=Yl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Xg=Yl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Yg(t){let{message:e}=t,[o,n]=Mx(!1);return nn.createElement(Ax,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&nn.createElement(Wx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},nn.createElement(jg,{rotated:o},nn.createElement(Nx,{size:12,color:"gray"}))),footer:nn.createElement(Xg,{open:o},nn.createElement(Vi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Yg,"FailedAlert");import{i18n as Zg}from"@lingui/core";import{Alert as Zl,Button as Jg}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Jl}from"rango-types";import Jn from"react";function Rg(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Jn.createElement(Zl,{type:"warning",title:n.shortMessage,action:Jn.createElement(Jg,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Jl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Zg.t("Change"))}):r===Jl.WaitingForConnectingWallet?Jn.createElement(Zl,{type:"warning",title:n.shortMessage,action:Jn.createElement(Jg,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Jl.WaitingForConnectingWallet)}},Zg.t("Connect"))}):Jn.createElement(Zl,{type:"warning",title:n.shortMessage})}i(Rg,"WarningAlert");function Rl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=yn(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return ro.createElement(Kg,null,a.explorerUrl?.map((m,g,f)=>{let d=g+m.url,h=g===f.length-1,C=(h&&u||p)&&!c,S=h&&a.status==="failed";return ro.createElement(Dx,{key:d},ro.createElement(eh,{type:h&&(C&&"loading"||S&&"error")||"success",title:m.description?`${m.description} Tx`:Lx.t("View transaction"),action:m.url&&ro.createElement(Bx,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},ro.createElement(Px,{size:12}))}))}),c&&ro.createElement(eh,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&ro.createElement(Rg,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&ro.createElement(Yg,{message:r}))}i(Rl,"SwapDetailsAlerts");var th=2e3;var oh=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:pt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:L(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:pt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:L(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:rn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:pt(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:pt(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:rn(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:_x.createElement(Rl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function nh(t){if(yn(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(nh,"getStepState");function ep(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=jx(),p=y().blockchains(),u=y().swappers(),{findToken:c}=y(),m=F.use.retry(),g=se.use.isActiveTab(),f=Yx(),[d,h]=Kx(th),C=Xx(null),[S,k]=lh(null),[T,v]=lh(null),w=i(()=>{r(),k(null)},"onCancel"),I=ve.use.getNotifications(),M=ve.use.removeNotification(),b=I(),E=Fx(e),x=E?.networkStatus;sh(()=>{b.find(Oe=>Oe.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),M(e.requestId)):T&&v(null))},[e.status,e.requestId]),sh(()=>{B?k(Ki.WaitingForNetworkChange):x===Ki.WaitingForConnectingWallet||x===Ki.NetworkChanged?k(x):k(null)},[x]);let W=Zc(e),D=E?$x(e,E):null,A=E?Ox(e,E):null,Z=Ng(e),ae=Jc(e),J=i(pe=>!!l(pe)?.mobileWallet,"isMobileWallet"),B=x===Ki.WaitingForNetworkChange&&!!D&&!!A?.walletType&&(J(A.walletType)||a(A.walletType,D)),K=B?s.bind(null,A.walletType,D):void 0,me=Yc(e,E),V=oh({swap:e,switchNetwork:K,showNetworkModal:x,setNetworkModal:k,message:me,blockchains:p,swappers:u}),fe=V.length,[ge,Pe]=[e.steps[0],e.steps[fe-1]],z=Pe.outputAmount||Pe.expectedOutputAmountHumanReadable,je=e.steps.reduce((pe,Oe)=>pe+parseFloat(Oe.feeInUsd||""),0),vt=e.steps.find(pe=>pe.diagnosisUrl)?.diagnosisUrl,lt=L(parseFloat(z||"0")*(Pe.toUsdPrice||0),4,4),wt=L(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),$=z?new ah(z).multipliedBy(Pe.toUsdPrice||0).toString():"",Q=new ah(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),H=ct(wt,lt),ne=me.detailedMessage.content||me.shortMessage,le=e.status==="success"?st.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:L(z,6,6),token:V[fe-1].to.token.displayName,conciseAddress:gr(e.wallets[V[fe-1].to.chain.displayName]?.address||""),chain:V[fe-1].to.chain.displayName}}):j.createElement(Vg,null,j.createElement(Ao,{variant:"body",size:"medium",color:"neutral700",align:"center"},ne?"":st.t("Transaction was not sent."),W?`${st.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:W.outputAmount,symbol:W.symbol,blockchain:W.blockchain}})}`:""),ne&&j.createElement(Vi,{align:"center",variant:"body",size:"medium",color:"neutral700"},j.createElement("b",null,"Reason:")," ",ne));return j.createElement(oe,{header:{title:st.t("Swap Details"),onCancel:e.status==="running"?()=>k("cancel"):void 0,suffix:e.status!=="running"&&j.createElement(Kt,null,j.createElement(rh,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>k("delete")},j.createElement(Ao,{size:"medium",variant:"label",color:"error"},st.t("Delete"))))},footer:ae&&!T&&j.createElement(rh,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let pe=Dr(e,p,c);m(pe),setTimeout(()=>{f("../../")},0)}},st.t("Try again"))},j.createElement(re,{compact:!0,view:!0},j.createElement(Hi,null,j.createElement("div",{className:on()},j.createElement(Ao,{variant:"label",size:"large",color:"neutral700"},`${st.t("Request ID")}`),j.createElement("div",{className:Gi()},j.createElement(Ao,{variant:"label",size:"small",color:"neutral700"},o),j.createElement(ih,{container:N(),content:d?st.t("Copied To Clipboard"):st.t("Copy Request ID"),open:d||void 0,side:"bottom",alignOffset:-16,align:"end"},j.createElement(qx,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:h.bind(null,o||"")},d?j.createElement(Qx,{size:16,color:"secondary"}):j.createElement(Ux,{size:16,color:"gray"}))),j.createElement(Gg,{target:"_blank",href:`${Sp}/swap/${o}`},j.createElement(ih,{container:N(),content:st.t("View on Rango Explorer"),side:"bottom"},j.createElement(Gx,{size:20}))))),j.createElement("div",{className:on()},j.createElement(Ao,{variant:"label",size:"large",color:"neutral700"},e.finishTime?st.t("Finished at"):st.t("Created at")),j.createElement(Ao,{variant:"label",size:"small",color:"neutral700"},Z))),j.createElement("div",{className:qg()},j.createElement(Hx,{fee:L(String(je),2,2),time:pn(lr(e.steps)),steps:fe}),j.createElement(An,{from:{price:{value:L(e.inputAmount,6,6),usdValue:wt,realUsdValue:Q,realValue:e.inputAmount},token:{displayName:V[0].from.token.displayName,image:V[0].from.token.image},chain:{image:V[0].from.chain.image,displayName:V[0].from.chain.displayName}},to:{price:{value:L(z,6,6),usdValue:lt,realUsdValue:$,realValue:z||""},token:{displayName:V[fe-1].to.token.displayName,image:V[fe-1].to.token.image},chain:{image:V[fe-1].to.chain.image,displayName:V[fe-1].to.chain.displayName}},percentageChange:L(H,2,2),warningLevel:Dt(H??0)})),j.createElement("div",{className:Hg()},j.createElement(Ao,{variant:"title",size:"small"},st.t("Swaps steps"))),j.createElement(zx,{size:8}),j.createElement(Ug,{ref:C},V.map((pe,Oe)=>{let tr=Oe,io=nh(e.steps[Oe]),_h=io==="error"||io==="in-progress"||io==="warning"||io==="completed"&&Oe===V.length-1;return j.createElement(Vx,{key:tr,step:pe,type:"swap-progress",ref:C,state:io,hasSeparator:Oe!==0,tabIndex:tr,isFocused:_h,tooltipContainer:N()})}))),j.createElement(Vl,{state:S,onClose:()=>k(null),onCancel:w,onDelete:n,message:me.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!g}),j.createElement(Xl,{open:!!T,diagnosisUrl:vt,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:L(z,6,6),usdValue:lt,realUsdValue:$,realValue:z||"",percentageChange:L(H,2,2),token:{displayName:V[fe-1].to.token.displayName,image:V[fe-1].to.token.image},chain:{image:V[fe-1].to.chain.image},description:le}))}i(ep,"SwapDetails");import{i18n as Xi}from"@lingui/core";import{Divider as uh,NotFound as tE,Skeleton as er,Typography as Yi}from"@rango-dev/ui";import Ce from"react";import{i18n as Zx}from"@lingui/core";import{Divider as Jx,Skeleton as Rx,Typography as eE}from"@rango-dev/ui";import ke from"react";import{css as Tt,styled as tp}from"@rango-dev/ui";var ph=tp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Rn=tp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ji=tp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),k8=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),T8=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),v8=Tt({paddingTop:"$15",display:"flex"}),w8=Tt({padding:"$15 $0"}),b8=Tt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),x8=Tt({paddingBottom:"$10"}),E8=Tt({display:"flex",justifyContent:"start",alignItems:"center"}),I8=Tt({paddingTop:"$5",display:"flex",alignItems:"center"}),A8=Tt({display:"flex",alignItems:"center"}),N8=Tt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),ch=Tt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function op(){return ke.createElement(ph,null,ke.createElement(Mn,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(eE,{variant:"title",size:"small"},Zx.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(Rn,null,ke.createElement(Wt,{separator:!1}),ke.createElement("div",{className:ch()},ke.createElement(Jx,{direction:"horizontal",size:20}),ke.createElement(Rx,{height:22,variant:"rectangular"}))),ke.createElement(ji,null),ke.createElement(Rn,null,ke.createElement(Wt,{separator:!1})),ke.createElement(ji,null),ke.createElement(Rn,null,ke.createElement(Wt,{separator:!1})),ke.createElement(ji,null),ke.createElement(Rn,null,ke.createElement(Wt,{separator:!1}))))}i(op,"LoadingSwapDetails");function mh(t){let{requestId:e,showSkeleton:o}=t;return Ce.createElement(oe,{header:{title:Xi.t("Swap Details"),suffix:Ce.createElement(Kt,null)}},o&&Ce.createElement(Og,null,Ce.createElement(Hi,null,Ce.createElement("div",{className:on()},Ce.createElement(Yi,{variant:"label",size:"large",color:"neutral700"},`${Xi.t("Request ID")}`),Ce.createElement("div",{className:Gi()},Ce.createElement(Yi,{variant:"label",size:"small",color:"neutral700"},Ce.createElement(er,{width:60,height:10,variant:"rounded"})),Ce.createElement(uh,{direction:"horizontal",size:4}),Ce.createElement(er,{width:16,height:16,variant:"rectangular"}),Ce.createElement(uh,{direction:"horizontal",size:4}),Ce.createElement(er,{width:16,height:16,variant:"rectangular"}))),Ce.createElement("div",{className:on()},Ce.createElement(Yi,{className:Qg(),variant:"label",size:"large",color:"neutral700"},Ce.createElement(er,{width:60,height:10,variant:"rounded"})),Ce.createElement(Yi,{variant:"label",size:"small",color:"neutral700"},Ce.createElement(er,{width:60,height:10,variant:"rounded"})))),Ce.createElement(op,null)),!o&&Ce.createElement(zg,null,Ce.createElement(tE,{title:Xi.t("Not found"),description:Xi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(mh,"SwapDetailsPlaceholder");function dh(){let{manager:t,state:e}=rE(),o=!e.loadedFromPersistor,n=ut(t),{requestId:r}=aE(),a=Ze(),{fetchStatus:s}=y();if(!r)return np.createElement(iE,{containerStyles:{margin:"20px"},type:"error",title:oE.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:g})=>g.requestId===r):void 0,u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&nE(g)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(g){console.log(g)}},"onDelete"),m=p?.swap;return!m||l?np.createElement(mh,{requestId:r,showSkeleton:l}):np.createElement(ep,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(dh,"SwapDetailsPage");import{i18n as fh}from"@lingui/core";import{Divider as sE,getCategoriesCount as lE,SelectableCategoryList as pE,styled as hh,Typography as cE,Wallet as uE}from"@rango-dev/ui";import Lt,{useState as gh}from"react";var mE=hh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),dE=hh(re,{textAlign:"center"});function yh(){let{fetchStatus:t}=y(),[e,o]=gh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=gh(),l=se.use.isActiveTab(),{list:p}=ft(),u=Qp(p,n),m=lE(u)!==1,g=qp(p,e),f=i(d=>{Np(p,r.multiWallets)||s(d)},"handleWalletItemClick");return Lt.createElement(oe,{header:{title:fh.t("Connect Wallets")}},Lt.createElement(dE,null,m&&Lt.createElement(Lt.Fragment,null,Lt.createElement(pE,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Lt.createElement(sE,{size:24})),Lt.createElement(cE,{variant:"title",size:"xmedium",align:"center"},fh.t("Choose a wallet to connect.")),Lt.createElement(mE,null,g.map((d,h)=>{let C=`wallet-${h}-${d.type}`;return Lt.createElement(uE,{key:C,...d,container:N(),onClick:()=>f(d),isLoading:t==="loading",disabled:!l})}),Lt.createElement(mo,{wallet:a,onClose:()=>{s(void 0)}}))))}i(yh,"WalletsPage");function Sh(){return lu(),Qa(),fE([{path:_.home,element:Be.createElement(jf,null)},{path:_.routes,element:Be.createElement(Rf,null)},{path:_.fromSwap,children:[{index:!0,element:Be.createElement($l,{type:"source"})},{path:_.blockchains,element:Be.createElement(Pi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Be.createElement($l,{type:"destination"})},{path:_.blockchains,element:Be.createElement(Pi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Be.createElement(Ig,null)},{path:_.languages,element:Be.createElement(Yf,null)},{path:_.exchanges,element:Be.createElement(Nl,{sourceType:"Exchanges"})},{path:_.bridges,element:Be.createElement(Nl,{sourceType:"Bridges"})},{path:_.customTokens,children:[{index:!0,element:Be.createElement(nf,null)},{path:_.addCustomTokens,children:[{index:!0,element:Be.createElement(qu,null)},{path:_.blockchains,element:Be.createElement(Pi,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:_.swaps,children:[{index:!0,element:Be.createElement(bf,null)},{path:_.swapDetails,element:Be.createElement(dh,null)}]},{path:_.wallets,element:Be.createElement(yh,null)},{path:_.confirmSwap,element:Be.createElement(zd,null)}])}i(Sh,"AppRoutes");import{useQueueManager as wE}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as bE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as xE}from"rango-sdk";import{useContext as EE,useEffect as xh,useState as Eh}from"react";import{globalCss as gE}from"@rango-dev/ui";var Ch=i(()=>gE({"@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 kh(){let{setWatermark:t}=se();return{fetchApiConfig:i(async()=>{let o=await fetch(`${Pt("BASE_URL")}/meta/dapp/config?apiKey=${Pt("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(kh,"useFetchApiConfig");import{useWallets as hE}from"@rango-dev/wallets-react";import{useEffect as yE,useRef as SE}from"react";function Th(){let{connect:t,state:e}=hE(),o=SE({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);yE(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Th,"useForceAutoConnect");import{isApprovalTX as CE,RouteEventType as vh,StepEventType as wh,StepExecutionEventStatus as kE,WidgetEvents as Zi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as bh}from"react";function rp(){let t=R.use.connectedWallets(),e=R.use.getWalletsDetails(),o=ve.use.setNotification(),{findToken:n}=y();bh(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===wh.TX_EXECUTION&&s.status===kE.TX_SENT&&!CE(l)||s.type===wh.SUCCEEDED){let c=t.find(g=>g.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(g=>g.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return he.on(Zi.StepEvent,r),()=>he.off(Zi.StepEvent,r)},[he,t]),bh(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===vh.FAILED||s.type===vh.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return he.on(Zi.RouteEvent,r),()=>he.off(Zi.RouteEvent,r)},[he])}i(rp,"useSubscribeToWidgetEvents");import{useManager as TE}from"@rango-dev/queue-manager-react";import{useEffect as vE}from"react";function ip(){let{isSynced:t,syncNotifications:e}=ve(),{manager:o,state:n}=TE();vE(()=>{ve.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ut(o))},[ve.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ip,"useSyncNotifications");function ap(){Th(),Ch(),rp(),ip();let t=y().blockchains(),{canSwitchNetworkTo:e}=Rr(),[o,n]=Eh(""),[r,a]=Eh(),s=EE(Ar),l=t.filter(xE),{fetchApiConfig:p}=kh();xh(()=>()=>su(),[]),wE({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),xh(()=>(lo.init(),ve.persist.hasHydrated()||ve.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===bE(o)?.[0]&&n("")}),p().catch(console.log),lo.destroy),[])}i(ap,"useBootstrap");import{styled as IE}from"@rango-dev/ui";var Ih=IE("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ji(){ap();let{config:t}=y(),{activeTheme:e}=Ho(t?.theme||{}),{activeLanguage:o}=to();return sp.createElement(AE,{language:o},sp.createElement(Ih,{id:"swap-container",className:e()},sp.createElement(Sh,null)))}i(Ji,"Main");import{setSolanaSignerConfig as jE}from"@rango-dev/signer-solana";import pp,{useEffect as Bh,useMemo as XE}from"react";import{useState as NE}from"react";var WE=i(()=>{let[t,e]=NE(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=Ap(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Ah=WE;import{checkWaitingForNetworkChange as ME,makeQueueDefinition as LE}from"@rango-dev/queue-manager-rango-preset";import{Provider as BE}from"@rango-dev/queue-manager-react";import{useWallets as PE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as DE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as _E}from"rango-types";import $E,{useMemo as FE}from"react";function OE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=PE(),l=FE(()=>LE({API_KEY:t.apiKey||Pt("API_KEY"),BASE_URL:Pt("BASE_URL"),emitter:{emit:he.emit}}),[t.apiKey]),p=y().blockchains(),c={blockchains:R.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},m=i(async(T,v)=>{if(a(T,v))return r(T,v)},"switchNetwork"),g=i(T=>!!s(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,v)=>(T[v.name]=v,T),{}),d=p.filter(_E),h=i(T=>{let{supportedChains:v}=s(T);return ur(v)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:f,evmBasedChains:d,evmNetworkChainInfo:DE(d),getSupportedChainNames:h},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:g},k=se.use.isActiveTab();return $E.createElement(BE,{queuesDefs:[l],context:S,onPersistedDataLoaded:T=>{ME(T)},isPaused:!k},t.children)}i(OE,"QueueManager");var Nh=OE;import{useManager as HE}from"@rango-dev/queue-manager-react";import GE,{createContext as VE,useContext as KE}from"react";function Wh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=F();return i(u=>{let{fromBlockchain:c,fromToken:m,toBlockchain:g,toToken:f,requestAmount:d}=u,h={blockchains:e,tokens:o};if(c!==void 0){let C=e.find(S=>S.name===c)??null;n(C)}if(m!==void 0){let C=m?t(m)??null:null;r({meta:h,token:C})}if(g!==void 0){let C=e.find(S=>S.name===g)??null;a(C)}if(f!==void 0){let C=f?t(f)??null:null;s({meta:h,token:C})}d!==void 0&&l(d)},"updateQuoteInputs")}i(Wh,"useUpdateQuoteInputs");import{cancelSwap as UE,getCurrentBlockchainOfOrNull as zE,getCurrentStep as QE,getRelatedWalletOrNull as qE}from"@rango-dev/queue-manager-rango-preset";var Ri=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ut(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=Dr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&UE(o)}getCurrentStepInfo(e){let o=QE(e);return{step:o,wallet:o?qE(e,o):null,network:o?zE(e,o):null}}};var Mh=VE(void 0);function lp(t){let{manager:e}=HE(),o=se.use.isActiveTab(),n=F.use.retry(),{findToken:r}=y(),a=new Ri(e,{retrySwap:n,findToken:r}),s=R.use.connectedWallets(),l=R.use.loading(),p=_p(s),u=R.use.getWalletsDetails(),c=y().blockchains(),m=y().tokens(),g=y().swappers(),f=y().fetchStatus,d=to().resetLanguage,h=ve().getNotifications(),C=ve().clearNotifications,S=Wh(),{fromBlockchain:k,toBlockchain:T,fromToken:v,toToken:w,inputAmount:I}=F(),M={isActiveTab:o,setCurrentTabAsActive:lo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:b=>u(b,r)},meta:{blockchains:c,tokens:m,swappers:g,loadingStatus:f,findToken:r},resetLanguage:d,notifications:{list:h,clearAll:C},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:T?.name??null,toToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,requestAmount:I},updateQuoteInputs:S}};return GE.createElement(Mh.Provider,{value:M},t.children)}i(lp,"WidgetInfo");function Lh(){let t=KE(Mh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Lh,"useWidget");function ea(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Ah();return Bh(()=>{n&&r(n)},[n]),XE(()=>{Hp({API_KEY:o?.apiKey||ir,BASE_URL:o?.apiUrl||yp})},[o.apiKey,o.apiUrl]),Bh(()=>{t.config?.signers?.customSolanaRPC&&jE("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),pp.createElement(Nr,{config:o,onUpdateState:e},pp.createElement(Nh,{apiKey:o.apiKey},pp.createElement(lp,null,t.children)))}i(ea,"WidgetProvider");function Ph(t){let e=t.config?.externalWallets;return ta.createElement(Bc,null,e?ta.createElement(Ji,null):ta.createElement(ea,{config:t.config??ia},ta.createElement(Ji,null)))}i(Ph,"Widget");function Dh(){let{on:t,off:e}=he;return{on:t,off:e}}i(Dh,"useWidgetEvents");var Oj={DerivationPath:fn,Namespaces:dn,isOnDerivationPath:hn,isOnNamespace:gn};export{uj as EventSeverity,so as MainEvents,Tj as Networks,bj as PendingSwapNetworkStatus,ya as QuoteEventTypes,mj as RouteEventType,aa as SUPPORTED_FONTS,Oj as StatefulConnect,dj as StepEventType,fj as StepExecutionBlockedEventStatus,gj as StepExecutionEventStatus,_e as UI_ID,Sa as UiEventTypes,kr as WalletEventTypes,Cj as WalletEvents,vj as WalletTypes,Ph as Widget,so as WidgetEvents,ea as WidgetProvider,Nr as WidgetWallets,es as customizedThemeTokens,yj as readAccountAddress,Gt as useStatefulConnect,ft as useWalletList,Rr as useWallets,Lh as useWidget,Dh as useWidgetEvents,Cr as widgetEventEmitter};
1
+ var Fh=Object.defineProperty;var i=(t,e)=>Fh(t,"name",{value:e,configurable:!0});import{EventSeverity as Vj,RouteEventType as Kj,StepEventType as jj,StepExecutionBlockedEventStatus as Xj,StepExecutionEventStatus as Yj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Jj}from"@rango-dev/wallets-core/legacy";import{useWallets as jr,Events as e3}from"@rango-dev/wallets-react";import{Networks as o3,WalletTypes as n3}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as i3}from"rango-types";import{Divider as BS}from"@rango-dev/ui";import po,{useEffect as MS,useRef as LS,useState as Nc}from"react";import{WalletState as Oh}from"@rango-dev/ui";import{useWallets as Uh}from"@rango-dev/wallets-react";import{useReducer as zh}from"react";function tp(t){return!!t.derivationPath}i(tp,"isStateOnDerivationPathStep");function op(t){return!!t.namespace}i(op,"isStateOnNamespace");var tr={status:"init",namespace:null,derivationPath:null};function np(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"reset":return tr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:tr;default:throw new Error("Action hasn't been defined.")}}i(np,"reducer");function Gt(){let{state:t,disconnect:e,connect:o}=Uh(),[n,r]=zh(np,tr),a=i(async(c,m,h)=>{r({type:"reset"});try{let f=m?.map(d=>({...d,network:void 0}));return await o(c,f),{status:"connected"}}catch(f){let d=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:f})}},"runConnect"),s=i(async(c,m)=>{if(c.state===Oh.DISCONNECTED){if(!!c.isHub&&c.properties?.find(T=>T.name==="detached")&&c.state!=="connected")return r({type:"needsNamespace",payload:{targetWallet:c}}),{status:"namespace"};if(!c.needsNamespace)return await a(c.type,void 0,m);let d=c.needsNamespace.data.length>1,g=c.needsDerivationPath;if(d)return r({type:"needsNamespace",payload:{targetWallet:c}}),{status:"namespace"};if(g){let C=c.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:C.value}}),{status:"derivation-path"}}return await a(c.type,c.needsNamespace?.data.map(C=>({namespace:C.value})),m)}return m?.disconnectIfConnected?(await u(c.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(c,m)=>{let h=c.needsNamespace?.selection==="single",f=c.needsDerivationPath,d=m[0];if(!d)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:d}}),{status:"derivation-path"};if(!op(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=n.namespace.targetWallet.type,C=m.map(S=>({namespace:S}));return await a(g,C)},"handleNamespace"),p=i(async c=>{if(!c)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!tp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:c}];return await a(m,f)},"handleDerivationPath"),u=i(async c=>{let m=t(c);return m.connected||m.connecting?(await e(c),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:p,getState:()=>n,resetState:c=>{r(c==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Gt,"useStatefulConnect");import{WalletState as fa}from"@rango-dev/ui";import{useWallets as Xy}from"@rango-dev/wallets-react";import{detectMobileScreens as Yy,KEPLR_COMPATIBLE_WALLETS as Zy,WalletTypes as cn}from"@rango-dev/wallets-shared";import{useCallback as Jy,useEffect as Ry}from"react";import Hy,{createContext as Gy,useContext as Vy,useEffect as Ky,useRef as jy}from"react";import{create as Qy}from"zustand";import{persist as qy}from"zustand/middleware";import{allProviders as Qh}from"@rango-dev/provider-all";var Zi=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},bo=new Zi;import{defineVersions as rp,pickVersion as ip,Provider as Ji}from"@rango-dev/wallets-core";function ap({allProviders:t,configWallets:e,options:o}){if(e){let n=[];return e.forEach(r=>{if(typeof r=="string"){let a=t.find(s=>{let l=sp(s,o);return l instanceof Ji?l.id===r:l.config.type===r});a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else r instanceof Ji?n.push(rp().version("1.0.0",r).build()):n.push(rp().version("0.0.0",r).build())}),n}return t}i(ap,"matchAndGenerateProviders");function sp(t,e){let{experimentalWallet:o="enabled"}=e||{},n=o=="disabled"?"0.0.0":"1.0.0";try{return ip(t,n)[1]}catch{return ip(t,"0.0.0")[1]}}i(sp,"pickProviderVersionWithFallbackToLegacy");function lp(t,e){return t.map(n=>sp(n,e)).map(n=>n instanceof Ji?n.id:n.config.type)}i(lp,"configWalletsToWalletName");function or(t,e){return e.find(o=>o.name===t)?.displayName}i(or,"getBlockchainDisplayNameFor");function st(t,e){return e.find(o=>o.name===t)?.shortName}i(st,"getBlockchainShortNameFor");function pp(t,e){return e.find(o=>o.name===t)?.logo}i(pp,"getBlockchainImage");function on(t,e){return e.find(o=>o.id===t)?.title}i(on,"getSwapperDisplayName");function nn(t,e){return e.find(o=>o.name===t)??null}i(nn,"findBlockchain");function Ri(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(Ri,"isTokenNative");function lt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(lt,"createTokenHash");function Eo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Eo,"isValidTokenAddress");function rn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=lt(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=lt(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(rn,"matchTokensFromConfigWithMeta");function nr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(nr,"getSupportedBlockchainsFromConfig");function up(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,experimentalWallet:t.features?.experimentalWallet}}i(up,"makeProvidersOptionsFromConfig");var rr={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"},features:{experimentalWallet:"enabled"}},qh={clientUrl:void 0},Hh={liquiditySources:void 0};function cp(t){let e=up(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return Qh(o).map(a=>a())}i(cp,"generateProviders");var mp=i((t,e,o)=>{let n=cp({...rr,...t});return{config:{...rr,...t},iframe:qh,campaignMode:Hh,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l}=o(),p=rn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),u=rn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});bo.set("supportedSourceTokens",p),bo.set("supportedDestinationTokens",u),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=cp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=up(a);return ap({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as dp}from"rango-types";var fp=[dp.EVM,dp.SOLANA];import{RangoClient as iy}from"rango-sdk";import{UI_ID as Gh}from"@rango-dev/ui";var ir="c6381a79-2817-4602-83bf-6a641a409e32",gp="https://api.rango.exchange",hp="https://explorer.rango.exchange",$e={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Gh};import{BlockchainCategories as Jh,WalletState as xt}from"@rango-dev/ui";import{legacyReadAccountAddress as Rh}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ey,getCosmosExperimentalChainInfo as ty,isEvmAddress as oy,KEPLR_COMPATIBLE_WALLETS as eA,Networks as Np}from"@rango-dev/wallets-shared";import ro from"bignumber.js";import{isCosmosBlockchain as ny}from"rango-types";import Vh from"bignumber.js";var ge=new Vh(0);import{WalletTypes as Kh}from"@rango-dev/wallets-shared";var yp=[Kh.LEAP];import{BlockchainCategories as ta,WalletState as Zh}from"@rango-dev/ui";import{TransactionType as ar}from"rango-sdk";var Sp="Roboto",ea=[{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"}];function Io(t){return Array.from(new Set(t))}i(Io,"removeDuplicateFrom");function xp(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(xp,"debounce");function Je(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Je,"containsText");function Tp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Tp,"exactText");function vp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(vp,"startWithText");var W=i(()=>document.getElementById($e.SWAP_BOX_ID),"getContainer"),no=i(()=>document.getElementById($e.EXPANDED_BOX_ID),"getExpanded");function wp(t,e,o){let n=!!e&&Tp(e,t),r=!!o&&Tp(o,t);return n!==r?n?-1:1:0}i(wp,"compareExactMatchText");function oa(t,e,o){let n=!!e&&Je(e,t),r=!!o&&Je(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(oa,"compareContainsText");function na(t,e,o){let n=!!e&&vp(e,t),r=!!o&&vp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(na,"compareStartWithText");function bp(t,e,o){if(!o)return 0;let n=wp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=wp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=na(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=oa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=na(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=oa(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=na(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=oa(o,t.address,e.address);if(r!==0)return r}return 0}i(bp,"compareWithSearchFor");var sr=i((t,e)=>{switch(e){case ta.ALL:return!0;case ta.UTXO:return t===ar.TRANSFER;case ta.OTHER:return t!==ar.TRANSFER&&t!==ar.COSMOS&&t!==ar.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Ep=i(t=>ea.find(o=>o.value===t)?.url,"getFontUrlByName");function Ip(t,e){let o=!!t.find(n=>n.state===Zh.CONNECTED);return e===!1&&o}i(Ip,"isSingleWalletActive");import{BigNumber as Ap}from"bignumber.js";var an=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"),L=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ap(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Ap(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 lr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),sn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ln(t){switch(!0){case t.connected:return xt.CONNECTED;case t.connecting:return xt.CONNECTING;case!t.installed:return xt.NOT_INSTALLED;default:return xt.DISCONNECTED}}i(ln,"mapStatusToWalletState");function Wp(t,e,o,n){return o.filter(r=>!yp.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,needsNamespace:u,supportedChains:c,needsDerivationPath:m,properties:h,isHub:f}=e(r),d=Io(c.map(C=>C.type)),g=ln(t(r));return{title:a,image:s,link:ey(l),state:g,type:r,showOnMobile:p,needsNamespace:u,blockchainTypes:d,needsDerivationPath:m,properties:h,isHub:f}})}i(Wp,"mapWalletTypesToWalletInfo");function ur(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(ur,"walletAndSupportedChainsNames");function ra(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}=Rh(p),m=l.length>0,h=l.includes(c),f=c===Np.Unknown;if(m&&!h&&!f)return;let g=c===Np.Unknown&&oy(u);if(f&&!g)return;o.includes(c)||g?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(ra,"prepareAccountsForWalletStore");function io(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,h=u.to.blockchain,f=a===o.swaps.length-1,d=c===p.length-1;(!f&&!d||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(io,"getQuoteWallets");function Bp(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Bp,"isAccountAndWalletMatched");var Mp=i(t=>{let e=Object.values(t).reduce((o,n)=>n.usdValue?o.plus(n.usdValue):o,new ro(ge));return ry(e.toString())},"calculateWalletUsdValue");function ry(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ry,"numberWithThousandSeparator");var mr=i((t,e)=>{let o=ty(Object.entries(t).map(([,n])=>n).filter(ny));return o&&o[e]?.experimental},"isExperimentalChain");function dr(t){if(!t)return null;let e=new ro(t.amount).shiftedBy(-t.decimals).toFixed(),o=t.usdValue?new ro(t.usdValue).shiftedBy(-t.decimals).toFixed():null,n=L(e,8,8),r=o?L(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(dr,"formatBalance");function Lp(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new ro(t.usdValue).shiftedBy(-t.decimals):ge,n=e&&e.usdValue?new ro(e.usdValue).shiftedBy(-e.decimals):ge;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new ro(t.amount).shiftedBy(-t.decimals):ge,n=e&&e.amount?new ro(e.amount).shiftedBy(-e.decimals):ge;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Lp,"compareTokenBalance");function Mt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Mt,"areTokensEqual");function Pp(t){return t.sort((e,o)=>+(o.state===xt.CONNECTED)-+(e.state===xt.CONNECTED)||+(o.state===xt.DISCONNECTED||o.state===xt.CONNECTING)-+(e.state===xt.DISCONNECTED||e.state===xt.CONNECTING))}i(Pp,"sortWalletsBasedOnConnectionState");function fr(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(fr,"getConciseAddress");function _p({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(_p,"getAddress");var $p=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Dp(t){return t.map(e=>e.state).join("-")}i(Dp,"hashWalletsState");function Fp(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(Fp,"filterBlockchainsByWalletTypes");function Op(t,e){return e===Jh.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(sr(n,e))return!0;return!1})}i(Op,"filterWalletsByCategory");var ia={API_KEY:ir};function Lt(t){return ia[t]||""}i(Lt,"getConfig");function Up(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ia=e,ia}i(Up,"initConfig");var zp=20,Qp=25,aa="theme-widget",sa=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Mt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Mt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),la=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),qp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var gr,bt=i(()=>gr||(gr=new iy(Lt("API_KEY"),Lt("BASE_URL")),gr),"httpService");function hr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Io(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(hr,"getUniqueSwappersGroups");function Hp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Hp,"sortLiquiditySourcesByGroupTitle");function Ve(t,e){return e?.[t]==="hidden"}i(Ve,"isFeatureHidden");function Gp(t,e){return e?.[t]==="enabled"}i(Gp,"isFeatureEnabled");function Ao(t,e){return e?.[t]==="enabled"}i(Ao,"isRoutingEnabled");var Vp=i((t,e,o)=>Ve("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Kp=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_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;if(o.type==="custom-token"){let p=nr({config:a}),u=r;return p.length>0&&(u=u.filter(c=>p.includes(c.name))),u.filter(c=>fp.includes(c.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),p=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",c=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=bo.get(c);m?.length||(m=rn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),bo.set(c,m)),m=Vp(m,s,a.features);let h=e().blockchains({type:o.type});return m.filter(d=>o.blockchain&&d.blockchain!==o.blockchain||!h.some(g=>g.name===d.blockchain)?!1:o.searchFor?!!(Je(d.symbol,o.searchFor)||Je(d.address||"",o.searchFor)||Je(d.name||"",o.searchFor)):!0).sort((d,g)=>{let C=e().isTokenPinned(d,o.type),S=e().isTokenPinned(g,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(d),M=o.getBalanceFor(g),x=Lp(A,M);if(x!==0)return x}let T=p.get(d.blockchain),k=p.get(g.blockchain),v=Ri(d,T),w=Ri(g,k);if(v!==w)return v?-1:1;if(d.isPopular!==g.isPopular)return d.isPopular?-1:1;if(o.searchFor){let A=bp(d,g,o.searchFor);if(A)return A}return d.isSecondaryCoin!==g.isSecondaryCoin?d.isSecondaryCoin?1:-1:T&&k?T.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=lt(o),s=n.get(a);return s||(s=r.find(l=>lt(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Mt(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(Hp)},fetch:async()=>{try{let{routing:o}=e().config,n=Ao("enableCentralizedSwappers",o),r=await bt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},p=[],u=r.popularTokens,c=r.swappers.filter(f=>f.enabled),m=new Set;r.tokens.forEach(f=>{m.add(f.blockchain),p.push(f)}),r.blockchains.sort((f,d)=>f.sort-d.sort).forEach(f=>{f.enabled&&m.has(f.name)&&a.set(f.name,f)}),p.forEach(f=>{let d=lt(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(d,f),l[f.blockchain].push(d)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:c})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as ay,Catalonia as sy,Chinese as jp,Denmark as ly,English as py,Finland as cy,French as uy,German as my,Greece as dy,Hungary as fy,India as gy,Indonesian as hy,Italian as yy,Japanese as Sy,Korea as Cy,Lithuania as ky,Malay as Ty,Netherlands as vy,Pakistan as wy,Philippines as xy,Poland as by,Portuguese as Ey,Russian as Iy,SaudiArabia as Ay,Serbia as Ny,Slovakia as Wy,SouthAfrica as By,Spanish as My,Swahili as Ly,Swedish as Py,Thai as _y,Turkish as $y,Ukrainian as Dy,Vietnamese as Fy}from"@rango-dev/ui";var Xp=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:By},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Ay},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:ay},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:sy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:jp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:jp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:ly},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:vy},{title:"English",label:"English",local:"en",SVGFlag:py},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:xy},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:cy},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:uy},{title:"German",label:"Deutsch",local:"de",SVGFlag:my},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:dy},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:gy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:fy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:hy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:yy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Sy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:Cy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:ky},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Ty},{title:"Polish",label:"Polski",local:"pl",SVGFlag:by},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ey},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Iy},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Ny},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:Wy},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:My},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:Ly},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Py},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:_y},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:$y},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Dy},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:wy},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Fy}],No="en";var Yp=[.5,1,3],Zp=1,Jp=5,Rp=100,ec=0;var tc=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Zp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],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=Io(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=Ve("theme",n),s=Ve("language",n),l=Ve("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||No},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||No}})},setCustomToken:o=>t(n=>({_customTokens:[o,...n._customTokens]})),deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=nr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ac from"bignumber.js";import Oy from"mitt";var he=Oy(),Uy={on:he.on,off:he.off};import{WidgetEvents as oc}from"@rango-dev/queue-manager-rango-preset";var ca=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ca||{}),ua=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ua||{}),ma=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ma||{}),Wo=(a=>(a[a.RouteEvent=oc.RouteEvent]="RouteEvent",a[a.StepEvent=oc.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Wo||{});import zy from"bignumber.js";function pn(t){return`${t.blockchain}-${t.address}-${t.symbol}`}i(pn,"createAssetKey");function da(t,e){return`${pn(e)}-${t}`}i(da,"createBalanceKey");function yr(t){let[e,o,n]=t.split("-");return{address:o,blockchain:e,symbol:n}}i(yr,"extractAssetFromBalanceKey");function nc(t,e){let o={};return t.balances?.forEach(n=>{let r=da(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=e().findToken(n.asset)?.usdPrice,p=l?new zy(l??ge).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:p};o[r]=u}),o}i(nc,"createBalanceStateForNewAccount");function rc(t,e){for(let o in e){let n=yr(o),r=pn(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(rc,"updateAggregatedBalanceStateForNewAccount");function ic(t,e){let o=yr(e),n=pn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(ic,"removeBalanceFromAggregatedBalance");var sc=i((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!1,error:!1}:r)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:o=>{let n=e().connectedWallets,r=o.filter(a=>!n.some(s=>Bp(a,s)));if(r.length>0){let a=r.map(s=>{let l=!n.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!1,error:!1}});t(s=>({connectedWallets:[...s.connectedWallets.filter(p=>!a.some(u=>u.walletType===p.walletType&&u.chain===p.chain)),...a]}))}},setWalletsAsSelected:o=>{let n=e().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});t({connectedWallets:n})},newWalletConnected:async o=>{he.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r=e().connectedWallets.filter(u=>u.walletType===o);e().connectedWallets.forEach(u=>{u.walletType!==o&&(r=r.filter(c=>!(c.chain===u.chain&&c.address===u.address)))}),n?.chains&&n.chains.length>0&&(r=r.filter(u=>n.chains?.includes(u.chain)));let a={},s=e()._aggregatedBalances,l=e()._balances;Object.keys(l).forEach(u=>{let c=yr(u),m=!!r.find(h=>da(h.address,{address:c.address,blockchain:h.chain,symbol:c.symbol})===u);m||(a[u]=l[u]),m&&(s=ic(s,u))}),t({_balances:a,_aggregatedBalances:s})},disconnectWallet:o=>{if(e().connectedWallets.find(r=>r.walletType===o)){he.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),e().removeBalancesForWallet(o);let r=e().connectedWallets.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain),a=e().connectedWallets.filter(s=>s.walletType!==o);r.length>0&&(a=a.map(s=>r.includes(s.chain)?(r=r.filter(l=>l!==s.chain),{...s,selected:!0}):s)),t({connectedWallets:a})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let r=o[0].walletType;e().setConnectedWalletAsRefetching(r);let a=o.map(p=>({address:p.address,blockchain:p.chain})),l=(await bt().getWalletsDetails(a)).wallets;if(l){let{retryOnFailedBalances:p=!0}=n||{};if(p){let m=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));m.length>0&&e().fetchBalances(m,{retryOnFailedBalances:!1})}let u={},c=e()._aggregatedBalances;l.forEach(m=>{if(m.failed)return;let h=nc(m,e);c=rc(c,h),u={...u,...h}}),t(m=>({_balances:{...m._balances,...u},_aggregatedBalances:c})),e().setConnectedWalletRetrievedData(r)}else throw e().setConnectedWalletHasError(r),new Error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=pn(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let p=a[0];return n[p]}let l=n[a[0]];return a.forEach(p=>{let u=n[p],c=new ac(u.amount),m=new ac(l.amount);c.isGreaterThan(m)&&(l=u)}),l}}),"createWalletsSlice");function lc(t){return Qy()(qy((...e)=>({...sc(...e),...Kp(...e),...tc(...e),...mp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,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(lc,"createAppStore");var pc=Gy(null);function y(){let t=Vy(pc);if(Ky(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function cc(t){let e=jy();return e.current||(e.current=lc(t.config)),Hy.createElement(pc.Provider,{value:e.current},t.children)}i(cc,"AppStoreProvider");function ft(t){let{chain:e}=t||{},{config:o,connectedWallets:n,getAvailableProviders:r}=y(),{state:a,getWalletInfo:s}=Xy(),l=y().blockchains(),{handleDisconnect:p}=Gt(),u=lp(r(),{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,tonConnect:o.tonConnect}),c=Wp(a,s,u,e);c=Yy()?c.filter(C=>C.showOnMobile!==!1&&a(C.type).installed):c;let m=Pp(c),h=i(C=>!n.find(S=>S.walletType===C&&S.chain===e),"isExperimentalChainNotAdded"),f=Jy(()=>{let C=c?.filter(S=>S.state===fa.CONNECTING)||[];for(let S of C)p(S.type)},[Dp(c)]);Ry(()=>()=>{f()},[]);let d=i(C=>{let S=C.find(k=>k.type===cn.DEFAULT);return!S||S.state===fa.NOT_INSTALLED?!1:C.filter(k=>k.state!=fa.NOT_INSTALLED&&![cn.DEFAULT,cn.WALLET_CONNECT_2,cn.LEDGER].includes(k.type)&&s(k.type).supportedChains.filter(v=>v.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((C,S,T)=>mr(T,S)&&h(C)&&!Zy.includes(C)||C==cn.DEFAULT&&!d(c),"shouldExcludeWallet");return{list:m.filter(C=>!g(C.type,e??"",l)),terminateConnectingWallets:f}}i(ft,"useWalletList");import{Modal as nS}from"@rango-dev/ui";import rS from"react";import{create as oS}from"zustand";var uc="rango-widget";var un=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.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.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(uc),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}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}}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 tS=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"),Bo=tS;var re=Bo(oS()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,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})},setShowProfileBanner:o=>{t({showProfileBanner:o})}}))),ao=new un({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});function Z(t){let{watermark:e}=re();return rS.createElement(nS,{hasWatermark:e==="FULL",...t},t.children)}i(Z,"WatermarkedModal");import{i18n as ga}from"@lingui/core";import{Button as cS,Checkbox as uS,Divider as mS,Image as Tc,ListItemButton as dS,MessageBox as fS,Radio as gS,RadioRoot as hS}from"@rango-dev/ui";import we,{useState as yS}from"react";import{css as iS,darkTheme as dc,IconButton as aS,styled as so}from"@rango-dev/ui";var Et=so(aS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${dc} &`]:{backgroundColor:"$neutral"}}}),fc=so("div",{position:"absolute",background:"$secondary500",[`.${dc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Vt=so("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),gc=so("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"}}}}),hc=so("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),yc=so("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Sc=iS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Sr=so("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as sS,styled as Cr}from"@rango-dev/ui";var oN=Cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Mo=Cr("div",{position:"relative"}),lS=sS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Lo=Cr("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}),kr=Cr("div",{"& img":{borderRadius:"50%"}});function Cc(t,e){return t.find(o=>o.name===e)?.logo}i(Cc,"getBlockchainLogo");import{styled as pS}from"@rango-dev/ui";var kc=pS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function mn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=yS([]),s=y().blockchains(),l=i(u=>{a(o?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>o?we.createElement(hS,{value:r?.[0]},u):we.createElement(we.Fragment,null,u),"wrapRadioRoot");return we.createElement(we.Fragment,null,we.createElement(mS,{size:20}),we.createElement(fS,{type:"info",title:ga.t("Select chain types"),description:ga.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:we.createElement(Mo,null,we.createElement(Sr,null,we.createElement(Tc,{src:n,size:45})),we.createElement(Lo,null))}),we.createElement(kc,null,p(we.createElement(we.Fragment,null,e.needsNamespace?.data.map(u=>we.createElement(dS,{key:u.id,id:u.id,title:u.label,hasDivider:!0,style:{height:60},onClick:()=>l(u.value),start:we.createElement(Tc,{src:Cc(s,u.id),size:22}),end:o?we.createElement(gS,{value:u.value}):we.createElement(uS,{checked:r.includes(u.value)})}))))),we.createElement(cS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},ga.t("Confirm")))}i(mn,"Namespaces");import{i18n as Po}from"@lingui/core";import{Button as kS,Divider as xc,Image as TS,MessageBox as vS,Select as wS,TextField as xS}from"@rango-dev/ui";import Oe,{useEffect as bS,useState as bc}from"react";import{namespaces as SS}from"@rango-dev/wallets-shared";var Tr={id:"custom",label:"Custom",generateDerivationPath:t=>t};function ha(t){let e=t?SS[t].derivationPaths:null;return e?[...e,Tr]:[]}i(ha,"getDerivationPaths");import{styled as vc,Typography as CS}from"@rango-dev/ui";var wc=vc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ya=vc(CS,{paddingLeft:"$10"}),Sa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Ec="0";function dn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=bc(null),[l,p]=bc(Ec),u=a===Tr.id,c=ha(o),m=i(({value:f})=>{let d=c?.find(g=>g.id===f);d&&(a===Tr.id&&Number.isNaN(Number(l))&&p(Ec),s(d.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=c.find(d=>d.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return bS(()=>{s(ha(o)[0]?.id||null)},[o]),Oe.createElement(Oe.Fragment,null,Oe.createElement(xc,{size:20}),Oe.createElement(vS,{type:"info",title:Po.t("Select Derivation Path"),description:Po.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Oe.createElement(Mo,null,Oe.createElement(kr,null,Oe.createElement(TS,{src:n,size:45})),Oe.createElement(Lo,null))}),Oe.createElement(wc,null,Oe.createElement(ya,{variant:"body",size:"xsmall",color:"$neutral600"},Po.t("Choose Derivation Path Template")),Oe.createElement(wS,{value:a||"",options:c.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:m,styles:{trigger:Sa}}),Oe.createElement(xc,{size:20}),Oe.createElement(ya,{variant:"body",size:"xsmall",color:"$neutral600"},u?Po.t("Enter Path"):Po.t("Enter Index")),Oe.createElement(xS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>p(f.target.value),style:Sa})),Oe.createElement(kS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!c||!a||!l},Po.t("Confirm")))}i(dn,"DerivationPath");import{i18n as _o}from"@lingui/core";import{Image as ES,MessageBox as Ca,WalletState as IS}from"@rango-dev/ui";import{useWallets as AS}from"@rango-dev/wallets-react";import lo from"react";function ka(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=AS();return ln(a(n))===IS.CONNECTED?lo.createElement(Ca,{type:"success",title:_o.t("Wallet Connected"),description:_o.t("Your wallet is connected, you can use it to swap.")}):o?lo.createElement(Ca,{type:"error",title:_o.t("Failed to Connect"),description:o||_o.t("Your wallet is not connected. Please try again.")}):lo.createElement(Ca,{type:"loading",title:_o.t("Connecting to your wallet"),description:_o.t("Click connect in your wallet popup."),icon:lo.createElement(Mo,null,lo.createElement(kr,null,lo.createElement(ES,{src:r,size:45})),lo.createElement(Lo,null))})}i(ka,"ConnectStatus");import{i18n as Ta}from"@lingui/core";import{Button as NS,Divider as Ic,MessageBox as WS}from"@rango-dev/ui";import vr from"react";function va(t){let{displayName:e,onConfirm:o}=t;return vr.createElement(WS,{title:Ta.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ta.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},vr.createElement(Ic,{size:18}),vr.createElement(Ic,{size:32}),vr.createElement(NS,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ta.t("Confirm")))}i(va,"ExperimentalChain");function Ac(t,e){return t().status==="init"&&!!e}i(Ac,"isOnStatus");function fn(t){return t().status==="namespace"}i(fn,"isOnNamespace");function gn(t){return t().status==="derivationPath"}i(gn,"isOnDerivationPath");var PS=3e3,_S=300;function co(t){let e=LS(),[o,n]=Nc(!1),[r,a]=Nc(),s=i(S=>{a(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=ft(),{handleConnect:p,handleDerivationPath:u,handleNamespace:c,getState:m,resetState:h}=Gt(),f=i(S=>{c(t.wallet,S).catch(s)},"handleConfirmNamespaces"),d=i(S=>{if(!S)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(S).catch(s)},"handleDerivationPathConfirm"),g=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState");return MS(()=>{if(t.wallet){C();let S=!1,T=!0,k=i(()=>{setTimeout(()=>{T=!1,S||n(!0)},_S)},"beforeConnecting"),v=i(w=>{let A=w.status==="connected",M=["disconnected","disconnected-unhandled"].includes(w.status);["namespace","derivation-path"].includes(w.status)||(S=!0),A&&!T?e.current=setTimeout(g,PS):M&&g(),t.onConnect&&t.onConnect(w)},"afterConnected");k(),p(t.wallet,{disconnectIfConnected:!0}).then(v).catch(s)}},[t.wallet]),po.createElement(Z,{open:o,onClose:g,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:W()},Ac(m,t.wallet)&&po.createElement(po.Fragment,null,po.createElement(ka,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),po.createElement(BS,{direction:"vertical",size:32})),fn(m)&&po.createElement(mn,{onConfirm:f,value:m().namespace}),gn(m)&&po.createElement(dn,{onConfirm:d,value:m().derivationPath}))}i(co,"StatefulConnectModal");import{legacyFormatAddressWithNetwork as DS,legacyReadAccountAddress as Bc}from"@rango-dev/wallets-core/legacy";import{Events as wr,Provider as FS}from"@rango-dev/wallets-react";import{isEvmBlockchain as OS}from"rango-sdk";import xr,{createContext as US,useEffect as Mc,useMemo as zS,useRef as Lc}from"react";import{useEffect as $S}from"react";function Wc(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Wc,"hashProviders");function wa(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return $S(()=>{o(),r()},[Wc(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(wa,"useWalletProviders");var br=US({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function QS(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r,removeBalancesForWallet:a}=y(),s=y().blockchains(),{newWalletConnected:l,disconnectWallet:p,connectedWallets:u}=y(),c=y().config,m={walletConnectProjectId:c?.walletConnectProjectId,trezorManifest:c?.trezorManifest,tonConnect:c.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,experimentalWallet:t.config.features?.experimentalWallet},{providers:h}=wa(c.wallets,m),f=Lc(),d=Lc();Mc(()=>{n().catch(console.log)},[]),Mc(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:c,dappConfig:t.config})},[t.config,r]);let g=s.filter(OS).map(k=>k.name),C=i((k,v,w,A,M)=>{if(v===wr.ACCOUNTS){let x=ur(M.supportedBlockchains),E=[],b=[];if(w?.forEach(I=>{let{network:B}=Bc(I);g.includes(B)?E.push(I):b.push(I)}),u.filter(I=>I.walletType===k).map(I=>DS(I.address,I.chain)).length>0){if(E.length>0){let I=ra(k,E,g,x,M.isContractWallet);a(k,{chains:I.map(B=>B.chain)})}b.length>0&&a(k,{chains:b.map(I=>{let{network:B}=Bc(I);return B})})}if(w){let I=ra(k,w,g,x,M.isContractWallet);I.length&&l(I)}else p(k),d.current?d.current(k):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")}if(v===wr.ACCOUNTS&&A.connected||v===wr.ACCOUNTS&&M.isHub){let x=`${k}-${A.network}-${w}`;f.current?f.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(v===wr.NETWORK&&A.network){let x=`${k}-${A.network}`;f.current?f.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(k,v,w,A,M)},"onUpdateState"),S=re.use.isActiveTab(),T=zS(()=>({onConnectWallet:k=>{f.current=k},onDisconnectWallet:k=>{d.current=k}}),[]);return xr.createElement(br.Provider,{value:T},xr.createElement(FS,{allBlockChains:s,providers:h,onUpdateState:C,autoConnect:!!S,configs:{wallets:c.wallets,isExperimentalEnabled:Gp("experimentalWallet",c.features)}},t.children))}i(QS,"Main");function Er(t){let{config:e,...o}=t;return xr.createElement(cc,{config:e},xr.createElement(QS,{...o,config:e}))}i(Er,"WidgetWallets");import Xi from"react";import qS,{Fragment as HS}from"react";import{MemoryRouter as GS,useInRouterContext as VS}from"react-router";function Pc({children:t}){let o=VS()?HS:GS;return qS.createElement(o,null,t)}i(Pc,"AppRouter");import{I18nManager as IE}from"@rango-dev/ui";import Zl from"react";import _e from"react";import{useRoutes as dE}from"react-router-dom";var D={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as Do,useRef as _r}from"react";import Ke from"bignumber.js";import{create as XS}from"zustand";import{subscribeWithSelector as YS}from"zustand/middleware";import{i18n as gt}from"@lingui/core";import{RouteEventType as pB}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Lr}from"rango-types";import{i18n as De}from"@lingui/core";var R=i(()=>({genericServerError:De.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:De.t("Please reset your liquidity sources."),description:De.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:De.t("No Routes Found."),description:De.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:De.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:De.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:De.t("High Price Impact"),title:De.t("Price impact is too high!"),description:De.t("The price impact is significantly higher than the allowed amount."),confirmMessage:De.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:De.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:De.t("USD Price Unknown"),title:De.t("USD Price Unknown, Cannot calculate Price Impact."),description:De.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:De.t("Confirm USD Price Unknown")}}),"errorMessages");function _c(t){switch(t.type){case 0:return t.diagnosisMessage??R().noResultError.title;case 1:return R().genericServerError;default:return""}}i(_c,"getQuoteErrorMessage");import{i18n as Ir}from"@lingui/core";var uo=i(()=>({connectWallet:Ir.t("Connect Wallet"),swap:Ir.t("Swap"),swapAnyway:Ir.t("Swap anyway"),ethWarning:Ir.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function xa(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(xa,"getFeeLabel");var ba=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],$c=100,Dc=30,Fc=15,Oc=60;var Uc=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],zc=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as jS}from"@rango-dev/queue-manager-rango-preset";import XW from"bignumber.js";function qc(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(qc,"getRequiredBalanceOfWallet");function _t(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(_t,"getPriceImpactLevel");function Nr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=jS(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=nn(a?a.toBlockchain:n.fromBlockchain,e),p=nn(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Nr,"createRetryQuote");function $o(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=hn(o),s=pt(o);if(o&&a&&s){let u=Pt(a.toString(),s.toString());if(!!u&&jc(a,u)){let m=Br(o?.swaps,n),h=_t(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:m,warningLevel:h}}}if(e&&Zc(e,o))return{type:4,usdValueChange:L(pt(o)?.minus(pt(e)??0).toString()??"0",null,2),percentageChange:L(Pt(pt(e)??"1",pt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=Mr(o.swaps),p=r>Jp;if(Yc(t.userSlippage.toString(),l)){if(p&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Xc(o,r),minRequiredSlippage:l};return null}i($o,"generateQuoteWarnings");function Hc(t){return![4].includes(t.type)}i(Hc,"isQuoteWarningConfirmationRequired");function Pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ea(t.toString(),e.toString());return n&&n<0?n:null}i(Pt,"getPriceImpact");var Gc=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"),Wr=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"),Vc=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...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,validationStatus:null,...r||e[0]}},"getDefaultQuote"),Kc=i(t=>{let e=i((o,n)=>{let r=ba.indexOf(o.value),a=ba.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function jc(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Uc.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ue(r)))}i(jc,"hasHighValueLoss");function Jc(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(Jc,"hasLimitError");function Rc(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(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 Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=gt.t({id:"Required: >= {min} {symbol}",values:{min:L(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=gt.t({id:"Required: > {min} {symbol}",values:{min:L(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=gt.t({id:"Required: <= {max} {symbol}",values:{max:L(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=gt.t({id:"Required: < {max} {symbol}",values:{max:L(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Rc,"getLimitErrorMessage");function eu(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:uo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:uo().swap,action:"confirm-swap",disabled:!0}:s?{title:uo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:uo().ethWarning,action:"confirm-warning",disabled:!1}:{title:uo().swap,action:"confirm-swap",disabled:!1}:{title:uo().connectWallet,action:"connect-wallet",disabled:!1}}i(eu,"getSwapButtonState");function Ia(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ge))&&e&&e!=="0"&&n!==0)}i(Ia,"canComputePriceImpact");function Aa(t,e){let o=ge;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 Ue(r.amount).multipliedBy(a||0))}return o}i(Aa,"getUsdFeeOfStep");function Br(t,e){return t.reduce((o,n)=>o.plus(Aa(n,e)),ge)}i(Br,"getTotalFeeInUsd");function Na(t){let e=ge;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(Na,"getUsdFee");function tu(t){return t.reduce((e,o)=>e.plus(Na(o)),ge)}i(tu,"getTotalFeesInUsd");function ou(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(ou,"getFeesGroup");function nu(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(nu,"checkSlippageErrors");function Xc(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(Xc,"checkSlippageWarnings");function Mr(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(Mr,"getMinRequiredSlippage");function Yc(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Yc,"hasProperSlippage");function ru(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:h,destination:f}=t,d=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),g=[];return r?.forEach(S=>{g.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:g,selectedWallets:d??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(ru,"createQuoteRequestBody");function iu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(iu,"getWalletsForNewSwap");function hn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(hn,"getUsdInputFrom");function pt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(pt,"getUsdOutputFrom");function Ea(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy($c).toNumber()}i(Ea,"getPercentageChange");function Zc(t,e){let o=hn(t),n=pt(t),r=pt(e);if(!o||!n||!r)return!1;let a=Ea(n.toString(),r.toString());return zc.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(Zc,"isOutputAmountChangedExcessively");function au(t,e,o){let n=t.validationStatus,r=io({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>qc(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=L(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=L(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=gt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=gt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=gt.t(" for input and network fee")),gt.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:st(s.asset.blockchain,o)}})})}i(au,"generateBalanceWarnings");function yn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Lr.NetworkChanged}i(yn,"isNetworkStatusInWarningState");function su(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),yn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Lr.WaitingForConnectingWallet:n=n||gt.t("Waiting for connecting wallet");break;case Lr.WaitingForQueue:n=n||gt.t("Waiting for other running tasks to be finished");break;case Lr.WaitingForNetworkChange:n=n||gt.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(su,"getSwapMessages");function lu(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(lu,"getLastConvertedTokenInFailedSwap");function pu(t){return t.status==="failed"}i(pu,"shouldRetrySwap");function cu(t,e,o,n,r,a){if(!n||t)return!0;let s=io({filter:"all",quote:n}),l=io({filter:"required",quote:n}),p=s.every(m=>r.some(h=>h.chain===m)),u=l.every(m=>r.some(h=>h.chain===m)),c=o&&a?Eo(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(cu,"isConfirmSwapDisabled");function uu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(uu,"isTokensIdentical");var Pr=i((t,e)=>t?.usdPrice?new Ke(e||ge).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Bo(XS()(YS(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ke(0),outputUsdValue:new Ke(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=ge,a=o.inputUsdValue;return sn(o.inputAmount)?(e&&(n=e?.outputAmount?new Ke(e?.outputAmount):null,a=hn(e)??ge,r=pt(e)??ge),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ke(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ke(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ke(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Pr(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Ke(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new Ke(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Pr(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:Pr(n??null,s),outputUsdValue:new Ke(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?Pr(e.toToken,e.outputAmount?.toString()||""):new Ke(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ke(0),inputUsdValue:new Ke(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ke(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),mu=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&he.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&&he.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 du(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=O(),c=y().config,m=y().fetchStatus,h=y().blockchains(),f=y().tokens(),{findToken:d}=y(),{setAffiliateRef:g,setAffiliatePercent:C,setAffiliateWallets:S}=y(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,w=c?.to?.blockchains,A=_r(void 0),M=_r(void 0),x=_r(void 0),E=_r(void 0);Do(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),Do(()=>{if(m==="success"){r();let b=h.find(B=>B.name===c?.from?.blockchain),N=c?.from?.token,I=N&&d(N);(b||!b&&x.current)&&n(b??null),I?a({token:I,meta:{blockchains:h,tokens:f}}):!I&&A.current&&a({token:null}),x.current=c?.from?.blockchain,A.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),Do(()=>{sa(s,T)&&a({token:null}),la(p,k)&&n(null)},[T,k]),Do(()=>{sa(l,v)&&a({token:null}),la(u,w)&&o(null)},[v,w]),Do(()=>{if(m==="success"){r();let b=h.find(B=>B.name===c?.to?.blockchain),N=c?.to?.token,I=N&&d(N);(b||!b&&E.current)&&o(b??null),I?e({token:I,meta:{blockchains:h,tokens:f}}):!I&&M.current&&e({token:null}),E.current=c?.to?.blockchain,M.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),Do(()=>{g(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),S(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(du,"useSyncStoresWithConfig");import{useEffect as Ma,useRef as ZS}from"react";import{useInRouterContext as JS,useLocation as RS,useSearchParams as eC}from"react-router-dom";function Wa(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Wa,"convertTokenSearchParamToAsset");function Ba(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ba,"tokenToSearchParam");function Pa(){let t=RS(),[e,o]=eC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:h}=O(),f=y().fetchStatus,d=y().blockchains(),g=y().tokens(),C=JS(),{updateIframe:S,updateCampaignMode:T}=y(),k=y().isInCampaignMode(),v=ZS(),{findToken:w}=y(),A=i(()=>{let x={};for(let[X,se]of e.entries())X.startsWith("utm_")&&(x[X]=se);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),N=e.get("fromToken"),I=e.get("toBlockchain"),B=e.get("toToken"),j=e.get("autoConnect"),te=e.get("clientUrl"),J=e.get("liquiditySources"),P=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:N,toBlockchain:I,toToken:B,autoConnect:j,clientUrl:te,liquiditySources:J,utmQueryParams:x,blockchain:P}},"getUrlSearchParams"),M=i(x=>{for(let E in x)x[E]||delete x[E];o(x,{replace:!0})},"updateUrlSearchParams");Ma(()=>{let{autoConnect:x,clientUrl:E,utmQueryParams:b,blockchain:N}=A();C&&f==="success"&&M({fromBlockchain:n?.name,fromToken:Ba(a),toBlockchain:r?.name,toToken:Ba(s),fromAmount:l,autoConnect:x??void 0,clientUrl:E??void 0,blockchain:N??void 0,liquiditySources:k?v.current:void 0,...b})},[t.pathname,l,n,a,r,s,k]),Ma(()=>{if(!C)return;let x=A();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&h(x.fromAmount),f==="success"){let E=d.find(B=>B.name===x.fromBlockchain),b=x.fromToken&&E?w(Wa(x.fromToken,E)):void 0,N=d.find(B=>B.name===x.toBlockchain),I=x.toToken&&N?w(Wa(x.toToken,N)):void 0;E&&(p(E),b&&c({token:b,meta:{blockchains:d,tokens:g}})),N&&(u(N),I&&m({token:I,meta:{blockchains:d,tokens:g}}))}},[f]),Ma(()=>{let{clientUrl:x,liquiditySources:E}=A();S("clientUrl",x||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Pa,"useSyncUrlAndStore");import{i18n as It}from"@lingui/core";import{Alert as fk,Button as Ku,darkTheme as gk,Divider as kn,DoneIcon as hk,MessageBox as yk,styled as Sk,TextField as Ck,Typography as kk}from"@rango-dev/ui";import ye,{useEffect as Tk,useState as Qr}from"react";import{useNavigate as vk,useSearchParams as wk}from"react-router-dom";import{ChevronRightIcon as tC,Divider as Su,Image as oC,Typography as Cu}from"@rango-dev/ui";import ht from"react";import{darkTheme as fu,styled as _a}from"@rango-dev/ui";var gu=_a("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${fu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${fu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),hu=_a("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),yu=_a("div",{display:"flex"});function $a(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return ht.createElement(hu,null,ht.createElement(Cu,{size:"large",variant:"label"},n),ht.createElement(Su,{size:10}),ht.createElement(gu,{onClick:s?void 0:e,disabled:s},ht.createElement(yu,null,r&&ht.createElement(ht.Fragment,null,ht.createElement(oC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),ht.createElement(Su,{size:4,direction:"horizontal"})),ht.createElement(Cu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),ht.createElement(tC,{size:12,color:"black"})))}i($a,"BlockchainSelectorButton");import{i18n as Fa}from"@lingui/core";import{Button as nC,Divider as Sn,ExternalLinkIcon as rC,Image as iC,Typography as Oo}from"@rango-dev/ui";import Ne from"react";function ku(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(ku,"generateExplorerLink");import{darkTheme as Fo,styled as Tu}from"@rango-dev/ui";var Da=Tu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Fo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Fo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),vu=Tu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Fo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"}}});function Oa(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=ku(n.address,a);return Ne.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},Ne.createElement(vu,null,Ne.createElement(iC,{src:n.image,size:45,type:"circular"}),Ne.createElement(Oo,{variant:"title",size:"medium"},n.name),Ne.createElement(Oo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ne.createElement(Sn,{size:4}),Ne.createElement(Oo,{variant:"body",size:"medium"},s?Ne.createElement(Da,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ne.createElement(rC,{size:12,color:"gray"})):Ne.createElement(Da,null,n.address)),Ne.createElement(Sn,{size:4}),n.coinSource&&Ne.createElement(Oo,{className:"_coin-source",variant:"body",size:"xsmall"},Fa.t("via")," ",Ne.createElement(Oo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ne.createElement(Sn,{size:"32"}),Ne.createElement(Oo,{size:"medium",variant:"body",className:"_custom-token-description"},Fa.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Ne.createElement(Sn,{size:40}),Ne.createElement(Sn,{size:10}),Ne.createElement(nC,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},Fa.t("Import")))}i(Oa,"CustomTokenModal");import{useManager as lk}from"@rango-dev/queue-manager-react";import{BottomLogo as pk,Divider as Qu,Header as ck}from"@rango-dev/ui";import Be,{useEffect as ss,useRef as qu,useState as uk}from"react";import{useRef as aC}from"react";function $r(){return window.self!==window.top}i($r,"isAppLoadedIntoIframe");function Ua(){let t=aC(null),{iframe:e}=y(),o=$r()&&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(Ua,"useIframe");import{useNavigate as sC}from"react-router-dom";function je(){let t=sC();return()=>t(-1)}i(je,"useNavigateBack");import{createTheme as Ka,darkTheme as TC,lightTheme as vC}from"@rango-dev/ui";import{useEffect as wC,useState as xC}from"react";import{theme as CC,darkColors as kC}from"@rango-dev/ui";import Ga from"react";function lC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(lC,"expandShortHexColor");function pC(t){return/[0-9]+$/.test(t)}i(pC,"isOverridingColor");function cC(t,e){return t.padStart(e,"0")}i(cC,"pad");function za(t){let e=Math.min(Math.max(Math.round(t),0),255);return cC(e.toString(16),2)}i(za,"intToHex");function uC(t){return`#${za(t.red)}${za(t.green)}${za(t.blue)}`}i(uC,"rgbToHex");function mC(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(mC,"hexToRGB");function dC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(dC,"generateShade");function fC(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(fC,"generateTint");function gC(t){return wu(t,dC)}i(gC,"calculateShades");function hC(t){return wu(t,fC)}i(hC,"calculateTints");function wu(t,e){let o=mC(t),n=[];for(let r=1;r<9;r++)n.push(uC(e(o,r)));return n}i(wu,"calculateColors");function Qa(t,e,o){let a=hC(t).reverse().concat(t),s=gC(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(Qa,"createTintsAndShades");function qa(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)&&!pC(r)){let p=lC(a);Object.assign(n,Qa(p,r,s))}}return{...n,...e}}i(qa,"expandToGenerateThemeColors");var xu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=xu(o%52)+e;return xu(o%52)+e},"toAlphabeticName"),SC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ha=i(t=>yC(SC(5381,JSON.stringify(t))>>>0),"toHash");function Va(t){let e=CC.colors,o={...e,...kC},n,r;if(t?.light){let s={colors:qa(e,t.light)};n={id:`${aa}-light-${Ha(s)}`,tokens:s}}if(t?.dark){let s={colors:qa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${aa}-dark-${Ha(s)}`,tokens:s}}return{light:n,dark:r}}i(Va,"customizedThemeTokens");function bu(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ga.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ga.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ga.cloneElement(e,{key:l}))}}),o}i(bu,"joinList");function Eu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Eu,"doesWindowPreferDarkColorScheme");function Uo(t){let{colors:e,fontFamily:o=Sp,borderRadius:n=zp,secondaryBorderRadius:r=Qp}=t,[a,s]=xC(Eu()?"dark":"light"),{theme:l}=y(),{dark:p,light:u}=Va(e),c=Ka({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,vC.className],h=[c.className,TC.className];if(u){let d=Ka(u.id,u.tokens);m.push(d.className)}if(p){let d=Ka(p.id,p.tokens);h.push(d.className)}return wC(()=>{let d=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Eu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",d),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",d)}},[]),{activeTheme:i(()=>{let d=m.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:d:l==="dark"?g:d},"getActiveTheme"),mode:l==="auto"?a:l}}i(Uo,"useTheme");var ct=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 Iu}from"@lingui/core";import{Alert as bC,Button as EC}from"@rango-dev/ui";import Au from"react";function ja(t){return Au.createElement(bC,{action:Au.createElement(EC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Iu.t("Activate this tab")),type:"warning",variant:"alarm",title:Iu.t("Another tab is open and handles transactions.")})}i(ja,"ActivateTabAlert");import{i18n as Xa}from"@lingui/core";import{Button as IC,Divider as AC,MessageBox as NC}from"@rango-dev/ui";import Dr from"react";function Ya(t){let{open:e,onClose:o,onConfirm:n}=t;return Dr.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},Dr.createElement(NC,{title:Xa.t("Activate current tab"),type:"warning",description:Xa.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.")},Dr.createElement(AC,{size:20}),Dr.createElement(IC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Xa.t("Confirm"))))}i(Ya,"ActivateTabModal");import{ChevronLeftIcon as WC}from"@rango-dev/ui";import Nu from"react";function Za(t){return Nu.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Nu.createElement(WC,{color:"black",size:16}))}i(Za,"BackButton");import{i18n as BC}from"@lingui/core";import{Button as MC,Typography as LC}from"@rango-dev/ui";import Ja from"react";function Ra(t){return Ja.createElement(Vt,null,Ja.createElement(MC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},Ja.createElement(LC,{variant:"label",size:"medium",color:"error500"},BC.t("Cancel"))))}i(Ra,"CancelButton");import{i18n as PC}from"@lingui/core";import{Image as _C,Tooltip as $C,WalletIcon as DC}from"@rango-dev/ui";import mo from"react";function es(t){let{list:e}=ft(),o=e.filter(r=>r.state==="connected"),n=o.length?mo.createElement("div",{className:Sc()},o.map(r=>mo.createElement(Sr,{key:r.title},mo.createElement(_C,{src:r.image,size:14})))):PC.t("Connect Wallet");return mo.createElement($C,{container:t.container,side:"bottom",content:n},mo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&mo.createElement(fc,null),mo.createElement(DC,{size:18,color:"black"})))}i(es,"WalletButton");import{i18n as Or}from"@lingui/core";import{NotificationsIcon as RC,Popover as ek,SettingsIcon as tk,Tooltip as Ur,TransactionIcon as ok}from"@rango-dev/ui";import We from"react";import{Notifications as zC}from"@rango-dev/ui";import QC from"react";import{useNavigate as qC}from"react-router-dom";import{create as FC}from"zustand";import{persist as OC,subscribeWithSelector as UC}from"zustand/middleware";var xe=Bo(FC()(OC(UC((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:{creationTime:parseInt(n.creationTime),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)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.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 ts(){let t=qC(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=y().blockchains(),{findToken:a}=y();return QC.createElement(zC,{list:n,getBlockchainImage:l=>pp(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${D.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ts,"NotificationContent");import{useManager as HC}from"@rango-dev/queue-manager-react";import{InProgressIcon as GC}from"@rango-dev/ui";import Wu from"react";var VC=i(()=>{let{manager:t}=HC();return ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Wu.createElement(yc,null,Wu.createElement(GC,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bu=VC;import{EventSeverity as KC}from"@rango-dev/queue-manager-rango-preset";import{Typography as jC}from"@rango-dev/ui";import Mu from"react";function Lu(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===KC.WARNING);return o?Mu.createElement(gc,{isSever:n},Mu.createElement(jC,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Lu,"NotificationsBadge");import{RefreshProgressButton as XC}from"@rango-dev/ui";import os,{useEffect as YC,useState as Pu}from"react";var ZC=1e3,_u=60,JC=100;function Fr({onClick:t}){let[e,o]=Pu(0),[n,r]=Pu(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");YC(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===_u&&l()},ZC):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 os.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},os.createElement(hc,{onTransitionEnd:()=>r(!1),isRefetched:n},os.createElement(XC,{size:22,color:t?"black":"gray",progress:e/_u*JC})))}i(Fr,"RefreshButton");function fo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ve("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Ur,{container:a||W(),side:"top",content:Or.t("Refresh")},We.createElement(Fr,{onClick:e})),!l&&We.createElement(ek,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:We.createElement(ts,null)},We.createElement("div",null,We.createElement(Ur,{container:W(),side:"top",content:Or.t("Notifications")},We.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},We.createElement(RC,{size:18,color:"black"}),We.createElement(Lu,null))))),!r.includes("settings")&&We.createElement(Ur,{container:W(),side:"top",content:Or.t("Settings")},We.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},We.createElement(tk,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Ur,{container:W(),side:"top",content:Or.t("History")},We.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},We.createElement(ok,{size:18,color:"black"}),We.createElement(Bu,null))))}i(fo,"HeaderButtons");import{i18n as ns}from"@lingui/core";import{Divider as Du,MessageBox as ik,RefreshIcon as ak}from"@rango-dev/ui";import zo from"react";import{Button as nk,styled as rk}from"@rango-dev/ui";var $u=rk(nk,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function rs(t){let{open:e,onClose:o}=t;return zo.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},zo.createElement(ik,{title:ns.t("Something went wrong"),type:"error",description:ns.t("Something went wrong. Please refresh the app.")},zo.createElement(Du,{size:30}),zo.createElement($u,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},zo.createElement(ak,{size:20,color:"primary"}),zo.createElement(Du,{size:4,direction:"horizontal"}),ns.t("Refresh"))))}i(rs,"RefreshModal");function is(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(is,"onScrollContentAttachStatusToContainer");import{css as sk,styled as as}from"@rango-dev/ui";var Fu="700px",zr=sk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ou=as("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Fu},fixed:{height:Fu}}}}),Uu=as("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),zu=as("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 oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ua(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:p}=y(),[u,c]=uk(!1),{config:{features:m,theme:h}}=y(),{watermark:f}=re(),d=f==="FULL",{activeTheme:g}=Uo(h||{}),C=Ve("connectWalletButton",m),{isActiveTab:S,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:w}=re(),A=je(),{manager:M}=lk(),E=ct(M).map(({swap:te})=>te).some(te=>te.status==="running"),b=i(()=>w(ao.forceClaim,E),"onActivateTab"),N=i(()=>{r.onWallet?.()},"onConnectWallet"),I=typeof r.hasBackButton>"u"||r.hasBackButton,B=qu(null),j=qu(null);return ss(()=>($r()&&j.current&&e(j.current),()=>{o()}),[]),ss(()=>(B.current?.addEventListener("scroll",is),()=>{B.current?.removeEventListener("scroll",is)}),[]),ss(()=>{c(l==="failed")},[l]),Be.createElement(Ou,{height:s,id:$e.SWAP_BOX_ID,className:`${g()} ${zr()}`,ref:j},Be.createElement(ck,{prefix:I?Be.createElement(Za,{onClick:()=>{A(),r.onBack&&r.onBack()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!C&&Be.createElement(es,{container:W(),onClick:N,isConnected:!!p?.length}),r.onCancel&&Be.createElement(Ra,{onClick:r.onCancel}))}),Be.createElement(Uu,{ref:B},n),Be.createElement(Ya,{open:k,onClose:()=>v(!1),onConfirm:b}),Be.createElement(zu,null,Be.createElement("div",{className:"footer__content"},T&&!S&&Be.createElement("div",{className:"footer__alert"},Be.createElement(ja,{onActivateTab:b}),Be.createElement(Qu,{size:10})),a),Be.createElement(Qu,{size:12}),Be.createElement("div",{className:`footer__logo ${d?"logo__show":"logo__hidden"}`},Be.createElement(pk,null))),Be.createElement(rs,{open:u,onClose:()=>c(!1)}))}i(oe,"Layout");import{styled as mk}from"@rango-dev/ui";var Hu="$20 $20 $10 $20",Cn=mk("div",{padding:Hu,overflowY:"auto",flexGrow:1});import{styled as dk}from"@rango-dev/ui";var ie=dk("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Qo}from"@lingui/core";import{useState as Gu}from"react";function Vu(){let[t,e]=Gu(!1),[o,n]=Gu(void 0),{findToken:r}=y(),a=y().customTokens();function s(p,u){switch(p){case"duplicated":return{title:Qo.t("Duplicate Token"),message:Qo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Qo.t("Token Already Exists"),message:Qo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Qo.t("Token Not Found"),message:Qo.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:u}})}}}return i(s,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:p,tokenAddress:u})=>{e(!0);try{if(a.some(d=>d.address?.toLowerCase()===u.toLowerCase())){let d=s("duplicated");n(d);return}let m=await bt().getCustomToken({blockchain:p,address:u});if(!m||!m.token||m.error){let d=s("not-found",p);n(d);return}let h=m.token;if(r({blockchain:h.blockchain,address:h.address,symbol:h.symbol})){let d=s("token-exist");n(d);return}return h}catch(c){if(c?.code==="ERR_BAD_REQUEST"){let m=s("not-found",p);n(m);return}throw n(void 0),new Error(c.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(Vu,"useFetchCustomToken");var xk=Sk("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${gk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),bk=1e3;function ju(){let t=vk(),[e]=wk(),o=je(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=nn(a,r),[l,p]=Qr(""),[u,c]=Qr(!1),[m,h]=Qr(),{fetchCustomToken:f,loading:d,error:g}=Vu(),[C,S]=Qr(""),T=!!s&&Eo(s,l),k=!s||!l||!T,v=i(async()=>{if(s)try{let M=await f({blockchain:a,tokenAddress:l});S(""),M&&h(M)}catch(M){M.message==="Failed to fetch"&&(S(It.t("Network Error")),c(!0))}},"getCustomToken"),w=i(()=>{g&&p(""),c(!1)},"closeErrorModal"),A=i(async()=>{C&&setTimeout(async()=>{await v()},bk),w()},"handleErrorModalButtonClick");return Tk(()=>{g&&c(!0)},[g]),ye.createElement(oe,{header:{title:It.t("Add Custom Token")}},ye.createElement(ie,null,ye.createElement(xk,null,ye.createElement("div",null,ye.createElement($a,{onClick:()=>t(D.blockchains,{replace:!0}),hasLogo:!!s?.logo,value:s?{name:s.displayName,logo:s.logo}:void 0,title:It.t("Select chain"),placeholder:It.t("Select chain")}),ye.createElement(kn,{size:"24"}),ye.createElement(kk,{size:"large",variant:"label"},It.t("Enter Address")),ye.createElement(kn,{size:10}),ye.createElement(Ck,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&T&&ye.createElement(hk,{color:"success",size:12}),onChange:M=>p(M.target.value)}),!T&&!!l&&ye.createElement(ye.Fragment,null,ye.createElement(kn,{size:4}),ye.createElement(fk,{type:"error",variant:"alarm",title:"Invalid Address"}))),ye.createElement(Ku,{id:"widget-add-custom-token-import-btn",disabled:k,type:"primary",variant:"contained",loading:d,size:"large",onClick:v},It.t("Import"))),ye.createElement(Z,{open:u,dismissible:!0,onClose:w,container:W()},ye.createElement(yk,{title:g?.title||C,type:"error",description:g?.message||It.t("Failed Network, Please retry.")},ye.createElement(kn,{size:40}),ye.createElement(kn,{size:10}),ye.createElement(Ku,{id:`widget-add-custom-token-${C?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:A},C?It.t("Retry"):It.t("Add another custom token")))),s&&m&&ye.createElement(Oa,{blockchain:s,token:m,onSubmitClick:()=>{m&&(n(m),h(void 0),o())},onClose:()=>h(void 0),open:!!s&&!!m})))}i(ju,"AddCustomTokenPage");import{i18n as Ds}from"@lingui/core";import{useManager as lv}from"@rango-dev/queue-manager-react";import{Alert as pv,Button as cv,css as Os,Divider as Fs,IconButton as Qd,styled as uv,Typography as mv,WalletIcon as dv}from"@rango-dev/ui";import Le,{useEffect as hi,useLayoutEffect as fv,useRef as gv,useState as Ln}from"react";import{useNavigate as hv}from"react-router-dom";import{i18n as go}from"@lingui/core";import{Alert as Yk,BalanceErrors as Zk,Button as vm,ChevronLeftIcon as Jk,Divider as gs,MessageBox as Rk,Typography as hs}from"@rango-dev/ui";import ee,{useCallback as eT,useEffect as wm,useMemo as tT,useState as Go}from"react";import{useNavigate as oT}from"react-router-dom";import{i18n as us}from"@lingui/core";import{Alert as Wk,ChevronDownIcon as Bk,CloseIcon as Mk,Divider as tm,IconButton as om,PasteIcon as Lk,Typography as Pk,WalletIcon as _k}from"@rango-dev/ui";import Me,{useEffect as $k,useRef as Dk}from"react";import Vr,{useRef as Ak}from"react";import*as qo from"@radix-ui/react-collapsible";import{keyframes as Xu,styled as qr}from"@rango-dev/ui";var ls=300,Ek=Xu({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ik=Xu({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Yu=qr(qo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ps=qr(qo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Hr=qr(qo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Ek} ${ls}ms ease-out`},false:{animation:`${Ik} ${ls}ms ease-out`}}}}),Gr=qr("div",{transition:`all ${ls}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Kr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Ak(null);return Vr.createElement(Yu,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Vr.createElement(ps,{className:"collapsible_trigger",onClick:a},s),Vr.createElement(Hr,{className:"collapsible_content",open:e},r),l==="bottom"&&Vr.createElement(ps,{className:"collapsible_trigger",onClick:a},s))}i(Kr,"CustomCollapsible");import{darkTheme as Zu,styled as cs,TextField as Nk}from"@rango-dev/ui";var Ju=cs("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Ru=cs(Nk,{backgroundColor:"$neutral100",padding:"$15"}),em=cs("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Zu} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Zu} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function nm(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),p=or(e.name,l),u=Dk(null),c=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!Eo(e,r),d=i(()=>{a("")},"handleClear"),g=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),u?.current?.focus()}},"handlePaste"),C=i(()=>r?Me.createElement(om,{id:"widget-custom-destination-close-icon-btn",onClick:d,variant:"ghost"},Me.createElement(Mk,{size:12,color:"gray"})):m?null:Me.createElement(om,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Me.createElement(Lk,{size:16})),"renderSuffix");return $k(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Me.createElement(Ju,null,Me.createElement(Kr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(em,null,Me.createElement("div",{className:"button__content"},Me.createElement(_k,{size:18,color:"info"}),Me.createElement(tm,{size:4,direction:"horizontal"}),Me.createElement(Pk,{variant:"label",size:"medium",color:n?"$neutral600":void 0},us.t("Send to a different address"))),Me.createElement(Gr,{orientation:n?"up":"down"},Me.createElement(Bk,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(Ru,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:us.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:C(),onChange:S=>{let T=S.target.value;a(T)}})),f&&Me.createElement(Me.Fragment,null,Me.createElement(tm,{size:4}),Me.createElement(Wk,{variant:"alarm",type:"error",title:us.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(nm,"CustomDestination");import{css as Fk,darkTheme as ms,IconButton as Ok,styled as $t}from"@rango-dev/ui";var rm=$t("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),im=$t("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Uk=$t("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ms} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ms} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ms} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),am=$t(Uk,{alignSelf:"stretch",minHeight:"93px"}),sm=$t("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),lm=$t(Ok,{position:"absolute",left:"$20"}),pm=$t("div",{paddingTop:"$20"}),cm=Fk({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),um=$t("div",{display:"flex"}),mm=$t("div",{overflow:"visible",width:"100%"});import{i18n as Sm}from"@lingui/core";import{warn as Gk}from"@rango-dev/logging-core";import{Divider as Vk,SelectableWallet as Kk,Typography as Cm,WalletState as km}from"@rango-dev/ui";import Xe,{useEffect as Tm,useState as vn}from"react";import{Image as qk,MessageBox as Hk}from"@rango-dev/ui";import Tn from"react";import{keyframes as zk,styled as ds}from"@rango-dev/ui";var dm=ds("div",{position:"relative"}),Qk=zk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fm=ds("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Qk} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),gm=ds("div",{"& img":{borderRadius:"50%"}});import{i18n as Ho}from"@lingui/core";function hm(t,e){switch(t){case"in-progress":return{type:"loading",title:Ho.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Ho.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Ho.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Ho.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Ho.t("Request Rejected"),description:Ho.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(hm,"generateMessageByStatus");function ym(t){let{status:e,displayName:o,image:n}=t,r=hm(e,o),a=e=="in-progress";return Tn.createElement(Hk,{type:r.type,title:r.title,description:r.description,icon:a?Tn.createElement(dm,null,Tn.createElement(gm,null,Tn.createElement(qk,{src:n,size:45})),Tn.createElement(fm,null)):void 0})}i(ym,"ExperimentalChainStatus");var jk=7,Xk=3e3;function fs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=re.use.isActiveTab(),{blockchains:l,connectedWallets:p}=y(),[u,c]=vn(),[m,h]=vn(null),[f,d]=vn(!1),[g,C]=vn(null),{suggestAndConnect:S}=jr(),{handleDisconnect:T}=Gt(),{list:k}=ft({chain:e}),[v,w]=vn(k),A=k.length,M=r&&A-r>0,x=i(async b=>{d(!1),C("in-progress");try{await S(b.walletType,b.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Tm(()=>{w(b=>{let N=k.findIndex(I=>o(I.type,e));return M&&N>1?[k[N]].concat(k.filter((I,B)=>B!==N)):b.map(I=>k.find(B=>B.type===I.type)??I)})},[JSON.stringify(k)]);let E=document.getElementById($e.SWAP_BOX_ID);return Tm(()=>{let b=null;return(g==="completed"||g==="rejected")&&(b=setTimeout(()=>C(null),Xk)),()=>{b&&clearTimeout(b)}},[g]),Xe.createElement(Xe.Fragment,null,v.slice(0,r).map(b=>{let N=_p({connectedWallets:p,walletType:b.type,chain:e}),I=N?fr(N,jk):"",B=mr(l(),e),j=!p.find(se=>se.walletType===b.type&&se.chain===e),te=B&&j&&b.state===km.CONNECTED,J=te?Sm.t({id:"Add {chain} chain",values:{chain:e}}):I,P=i(async()=>{let se=b.state===km.DISCONNECTED,z=(b.isHub||!!b.needsNamespace)&&!I;se?c(b):z?(await T(b.type),c(b)):te?(h({walletType:b.type,chain:e,address:N??""}),d(!0)):n({walletType:b.type,chain:e,address:N??""})},"onSelectableWalletClick"),X=m?.chain?or(m.chain,l()):void 0;return Xe.createElement(Xe.Fragment,{key:`${b.title}_${X}`},!!m&&Xe.createElement(Z,{open:!!m&&f,container:E,onClose:()=>{h(null)}},Xe.createElement(va,{displayName:X,onConfirm:()=>{x(m)}})),g&&Xe.createElement(Z,{open:!!g,onClose:C.bind(null,null),container:E},Xe.createElement(ym,{status:g,displayName:X,image:b.image}),Xe.createElement(Vk,{direction:"vertical",size:32})),Xe.createElement(Kk,{key:b.type,description:J,onClick:P,selected:o(b.type,e),disabled:!s,...b}))}),Xe.createElement(co,{wallet:u,onClose:()=>{c(void 0)},onConnect:b=>{t.onConnect&&b.status==="connected"&&(u?.type?t.onConnect(u.type):Gk(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),M&&Xe.createElement(am,{selected:!1,onClick:a},Xe.createElement(Cm,{variant:"label",size:"medium"},Sm.t("Show more wallets"),Xe.createElement(Cm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(r??0)))))}i(fs,"WalletList");var nT=2;function xm(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=oT(),l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:f}=O(),{config:d,connectedWallets:g,setWalletsAsSelected:C}=y(),[S,T]=Go(""),[k,v]=Go([]),[w,A]=Go(""),[M,x]=Go(!!h),E=tT(()=>io({filter:"all",quote:p}),[p]),b=io({filter:"required",quote:p}),N=l.find(_=>_.name===p?.swaps[p?.swaps.length-1].to.blockchain),I=i(_=>b.includes(_),"isWalletRequiredFor"),B=eT(()=>g.filter(_=>_.selected&&E.includes(_.chain)),[g,E]),[j,te]=Go(B()),[J,P]=Go([]),X=i((_,H)=>P(V=>V.concat({blockchain:_,walletType:H})),"addNextSelectedWallets"),se=k.length>0,z=i((_,H)=>!!j.find(V=>V.walletType===_&&V.chain===H&&V.selected&&(I(H)||!I(H)&&!h)),"isSelected"),me=i((_,H,V)=>{let de=!1;return _.map(ne=>{if(ne.chain===H){let fe=ne.selected;return!de&&V?(de=!0,fe=!0):V||(fe=!1),{...ne,selected:fe}}return ne})},"updateSelectableWallets"),vt=i(_=>{x(_),_?I(N?.name??"")||te(H=>me(H,N?.name||"",!1)):(f(""),te(H=>me(H,N?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ze=i(_=>{if(S&&T(""),z(_.walletType,_.chain))return;let V=g.find(de=>de.walletType===_.walletType&&de.chain===_.chain);V&&(n(),_.chain===N?.name&&M&&!I(N.name)&&(x(!1),f(null)),te(de=>de.filter(ne=>ne.chain!==_.chain).concat({...V,selected:!0})))},"onChange"),le=i(()=>{let _=j.filter(H=>H.selected);C(_),u(_),m(!0),o()},"onConfirmBalance"),at=i(async()=>{v([]),A("");let _=await r?.({selectedWallets:j.filter(V=>V.selected),customDestination:h}),H=_.warnings;H?.balance?.messages&&v(H.balance.messages),_.error&&A(_c(_.error)),!_.error&&!H?.balance?.messages.length?le():v(H?.balance?.messages??[])},"onConfirmWallets");wm(()=>{te(_=>{let H=[];return _.forEach(V=>{!g.some(ne=>ne.chain===V.chain&&ne.walletType===V.walletType&&ne.address===V.address)||H.push(V)}),H=H.concat(g.filter(V=>!!!H.find(ne=>ne.chain===V.chain)&&V.selected&&E.includes(V.chain))),H})},[g,E]),wm(()=>{let _=[];J.length>0&&(J.forEach(H=>{let V=g.find(de=>de.chain===H.blockchain&&de.walletType===H.walletType);V?Ze(V):_.push(H)}),P(_))},[g,J]);let G=document.getElementById($e.SWAP_BOX_ID);return ee.createElement(Z,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!S,container:G,...!S&&{styles:{container:{height:"100%"}},footer:ee.createElement(um,null,ee.createElement(vm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:cu(a,M,h,p,j,N),onClick:at,variant:"contained",type:"primary",fullWidth:!0,size:"large"},go.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ee.createElement(sm,null,ee.createElement(lm,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:T.bind(null,"")},ee.createElement(Jk,{size:16})),ee.createElement(hs,{variant:"headline",size:"small"},go.t({id:"Your {blockchainName} wallets",values:{blockchainName:st(S,l)}})))},anchor:"center"},ee.createElement(Z,{open:se,onClose:v.bind(null,[]),container:G},ee.createElement(Rk,{title:go.t("Insufficient account balance"),type:"error",description:ee.createElement(Zk,{messages:k??[]})},ee.createElement(vm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:le},go.t("Proceed anyway")))),S&&ee.createElement(pm,null,ee.createElement("div",{className:cm()},ee.createElement(fs,{chain:S,isSelected:z,selectWallet:Ze,onShowMore:()=>T(S),onConnect:_=>{X(S,_)}}))),!S&&ee.createElement(ee.Fragment,null,w&&ee.createElement(ee.Fragment,null,ee.createElement(Yk,{variant:"alarm",type:"error",title:go.t(w)}),ee.createElement(gs,{size:12})),ee.createElement(mm,null,E.map((_,H)=>{let V=l.find(Fe=>Fe.name===_),de=`wallet-${H}`,ne=H===E.length-1,fe=ne&&N&&d?.customDestination!==!1;return ee.createElement("div",{key:de},ee.createElement(rm,null,ee.createElement(hs,{variant:"title",size:"xmedium"},go.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),ee.createElement(hs,{variant:"label",color:"$neutral700",size:"medium"},go.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),ee.createElement(gs,{size:24}),ee.createElement(im,null,ee.createElement(fs,{chain:_,isSelected:z,selectWallet:Ze,limit:nT,onShowMore:()=>T(V?.name??""),onConnect:Fe=>{X(_,Fe)}})),!ne&&ee.createElement(gs,{size:32}),fe&&ee.createElement(nm,{blockchain:N,open:M,handleOpenChange:vt}))}))))}i(xm,"ConfirmWalletsModal");import{i18n as vT}from"@lingui/core";import{Alert as wT,Button as xT,InfoIcon as bT}from"@rango-dev/ui";import et from"react";import{Alert as aT,Button as sT,Divider as Cs,NoRouteIcon as lT,RefreshIcon as pT,Typography as Bm}from"@rango-dev/ui";import Re from"react";import{i18n as bm}from"@lingui/core";var rT=24,iT=60;function Em(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:R().genericServerError,action:{onClick:n,title:bm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:R().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:bm.t("Reset")}},description:R().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:R().noResultError.description}}i(Em,"makeInfo");var ys=(o=>(o[o.small=rT]="small",o[o.large=iT]="large",o))(ys||{}),Ss=(o=>(o.small="small",o.large="medium",o))(Ss||{});import{styled as Xr}from"@rango-dev/ui";var Im=Xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Am=Xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Nm=Xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Wm=Xr("div",{padding:"$6 $0"});function wn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Em(o,r,()=>a(s,!0),e);return Re.createElement(Im,null,Re.createElement(lT,{size:ys[n],color:"gray"}),Re.createElement(Cs,{size:4}),Re.createElement(Bm,{variant:"title",size:Ss[n]},R().noResultError.title),n==="large"&&Re.createElement(Cs,{size:4}),!!l.description&&Re.createElement(Am,{size:n},Re.createElement(Bm,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Re.createElement(Cs,{size:n==="large"?"24":"4"}),!!l.alert&&Re.createElement(Nm,{size:n},Re.createElement(aT,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Re.createElement(sT,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:Re.createElement(Wm,null,Re.createElement(pT,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(wn,"NoResult");import{i18n as xn}from"@lingui/core";import{Button as uT,Divider as mT,MessageBox as dT,Typography as fT,WarningIcon as gT}from"@rango-dev/ui";import Dt from"react";import{Typography as _m}from"@rango-dev/ui";import Ts from"react";import{darkTheme as cT,styled as Yr}from"@rango-dev/ui";var Mm=Yr("div",{width:"100%"}),ks=Yr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Lm=Yr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${cT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Pm=Yr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function $m(t){let{title:e,value:o,valueColor:n}=t;return Ts.createElement(Lm,null,Ts.createElement(_m,{size:"medium",variant:"label",className:"_title"},e),Ts.createElement(_m,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i($m,"QuoteErrorsModalItem");function Dm(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:xn.t("Swapping"),value:L(r.inputUsdValue,4,4)},{title:xn.t("Gas cost"),value:L(r.totalFee,2,2)},{title:xn.t("Receiving"),value:L(r.outputUsdValue,4,4)},{title:xn.t("Price impact"),value:L(r.priceImpact,2,2),valueColor:`${s}500`}];return Dt.createElement(Z,{footer:Dt.createElement(uT,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Dt.createElement(gT,null),fullWidth:!0,disabled:a,onClick:n},R().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},Dt.createElement(dT,{type:s,title:R().highValueLossError.impactTitle,description:R().highValueLossError.description}),Dt.createElement(ks,null,Dt.createElement(mT,{size:"4"}),Dt.createElement(fT,{size:"small",variant:"title"},xn.t("Details")),Dt.createElement(ks,null,l.map((p,u)=>Dt.createElement($m,{key:u,...p})))))}i(Dm,"HighValueLossWarningModal");import{i18n as Zr}from"@lingui/core";function Fm(t,e){let o={alertType:"warning",title:"",action:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Zr.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o;if(t){switch(t.type){case 0:{_t(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=R().highValueLossError.title;break}case 4:{o.title=Zr.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=R().unknownPriceError.title;break}case 2:{o.title=Zr.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings";break}case 3:{o.title=Zr.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Fm,"makeAlerts");import{i18n as Vo}from"@lingui/core";import{Button as Om,Divider as Um,MessageBox as hT,Typography as yT}from"@rango-dev/ui";import ho from"react";import{useNavigate as ST}from"react-router-dom";function zm(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=ST(),u=e??o;return ho.createElement(Z,{anchor:"bottom",open:n,prefix:ho.createElement(Om,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>p("../"+D.settings)},ho.createElement(yT,{variant:"label",size:"medium",color:"$neutral900"},Vo.t("Change settings"))),container:W(),onClose:r},ho.createElement(hT,{type:"warning",title:s.type===3?Vo.t("High slippage"):Vo.t("Low slippage"),description:s.type===3?Vo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Vo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},ho.createElement(Um,{size:18}),ho.createElement(Um,{size:32}),ho.createElement(Om,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Vo.t("Confirm anyway"))))}i(zm,"SlippageWarningModal");import{Button as CT,MessageBox as kT,WarningIcon as TT}from"@rango-dev/ui";import Jr from"react";function Qm(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Jr.createElement(Z,{footer:Jr.createElement(CT,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Jr.createElement(TT,null),fullWidth:!0,disabled:r,onClick:n},R().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Jr.createElement(kT,{type:"warning",title:R().unknownPriceError.impactTitle,description:R().unknownPriceError.description}))}i(Qm,"UnknownPriceWarningModal");function bn(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},h=o?.type===0||o?.type===1,f=Fm(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),et.createElement(et.Fragment,null,h&&et.createElement(wn,{error:o,fetch:s}),!!f&&et.createElement(Mm,null,et.createElement(wT,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:et.createElement(Pm,{onClick:l},et.createElement(bT,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:et.createElement(xT,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:c},vT.t("Change"))}})),e&&et.createElement(et.Fragment,null,e.type===0&&et.createElement(Dm,{...m,warning:e}),(e.type===3||e.type===2)&&et.createElement(zm,{...m,warning:e}),e.type===1&&et.createElement(Qm,{...m,warning:e})))}i(bn,"QuoteWarningsAndErrors");import ov from"bignumber.js";import mi from"react";import{i18n as yo}from"@lingui/core";import{Alert as qT,Divider as jo,FullExpandedQuote as HT,InfoIcon as GT,NumericTooltip as kd,QuoteTag as VT,StepDetails as KT,TokenAmount as jT,Typography as Xo}from"@rango-dev/ui";import Ws from"bignumber.js";import F,{useRef as XT,useState as YT}from"react";import{styled as vs}from"@rango-dev/ui";var ws=vs("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),qm=vs("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Hm=vs("div",{width:"100%",display:"flex"});import*as Rr from"@radix-ui/react-collapsible";import{Button as ET,css as En,darkTheme as be,Image as Gm,styled as ze,Typography as IT}from"@rango-dev/ui";var AT=300,Vm=ze(Rr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Km=En({padding:"$10 $15"}),jm=ze(ET,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Xm=ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}}}}]}),Ym=En({width:"100%",padding:"$15 $15 $10 $15"}),Zm=En({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Ko=En({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Jm=En({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rm=ze(Rr.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:{[`& ${Gm}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Gm}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),ed=ze("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"}}}}),td=ze(Hr,{width:"100%",background:"inherit"}),xs=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${AT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),LF=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),od=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),nd=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),bs=ze(IT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),rd=ze("div",{display:"flex",flexWrap:"wrap"}),Es=ze("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"}}}}),id=ze("div",{display:"flex"}),ei=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as At}from"@lingui/core";import{ChevronDownIcon as WT,CloseIcon as BT,Divider as ni,IconButton as MT,NumericTooltip as LT,QuoteCost as PT,Typography as yt}from"@rango-dev/ui";import Y,{useState as pd}from"react";import{css as NT,styled as ti}from"@rango-dev/ui";var oi=ti("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Is=ti("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ad=ti("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),sd=ti("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),ld=NT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var _T=i(t=>t.fee.isZero()?null:Y.createElement(oi,null,Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(yt,{variant:"label",size:"medium"},"$",L(t.fee,4,4))),"NonPayableFee");function As(t){let[e,o]=pd(!1),[n,r]=pd(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,timeWarning:c,showModalFee:m,fullExpandedMode:h=!1}=t,f=s?.swaps??[],d=h?no():W(),g=ou(f);return Y.createElement(Y.Fragment,null,Y.createElement(PT,{onClickFee:m?C=>{C.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,timeWarning:c,time:p,steps:a,tooltipGas:m?At.t("View more info"):void 0,tooltipContainer:d}),Y.createElement(Z,{container:d,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(sd,{style:{textAlign:h?"left":"center"}},Y.createElement(yt,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Y.createElement(MT,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(BT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(ad,null,Y.createElement(yt,{variant:"title",size:"small"},At.t("Details")),Y.createElement(ni,{size:10}),Object.entries(g.payable).flatMap(([C,S])=>S.map((T,k)=>{let v=`payable-fee-${k}`,w=Na(T);return Y.createElement(oi,{key:v},Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},xa(C,At.t)),Y.createElement(LT,{content:T.amount,container:d},Y.createElement(yt,{variant:"label",size:"medium"},L(T.amount,2,2)," ",T.asset.symbol," ($",L(w,4,4),")")))})),Y.createElement(oi,{className:"total_payable_fee"},Y.createElement(yt,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Y.createElement(yt,{variant:"label",size:"medium"},"$",L(l,4,4))),Y.createElement(Is,null),Object.keys(g.nonePayable).length&&Y.createElement(Kr,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Y.createElement("div",{className:ld()},Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Y.createElement(ni,{size:4,direction:"horizontal"}),Y.createElement(Gr,{orientation:n?"up":"down"},Y.createElement(WT,{size:12,color:"gray"}))),open:n},Y.createElement(yt,{size:"small",variant:"title"},At.t("Description")),Y.createElement(ni,{size:4}),Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},At.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Y.createElement(ni,{size:10}),Object.entries(g.nonePayable).map(([C,S],T)=>{let k=tu(S),v=xa(C,At.t),w=`non-payable-fee-${T}`;return Y.createElement(_T,{key:w,fee:k,label:v})}),Y.createElement(Is,null)))))}i(As,"QuoteCostDetails");import{i18n as md}from"@lingui/core";import{TokenAmount as dd}from"@rango-dev/ui";import ri from"react";import{css as $T,styled as DT}from"@rango-dev/ui";var cd=DT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ud=$T({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function In(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ri.createElement(cd,null,ri.createElement(dd,{direction:"horizontal",label:md.t("Swap input"),type:"input",tooltipContainer:W(),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}}),ri.createElement("div",{className:ud()}),ri.createElement(dd,{direction:"horizontal",tooltipContainer:W(),label:md.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(In,"QuoteSummary");import{i18n as Sd}from"@lingui/core";import{ChevronDownIcon as UT,ChevronRightIcon as zT,Divider as Ns,Image as QT,Tooltip as pi,Typography as ai}from"@rango-dev/ui";import U from"react";import{useLayoutEffect as FT,useState as An}from"react";var fd=480,gd=768,hd=1024,yd=1200,OT=i(()=>{let[t,e]=An(!1),[o,n]=An(!1),[r,a]=An(!1),[s,l]=An(!1),[p,u]=An(!1),c=i(()=>{e(window.innerWidth<=fd),n(window.innerWidth>fd&&window.innerWidth<=gd),a(window.innerWidth>gd&&window.innerWidth<=hd),l(window.innerWidth>hd&&window.innerWidth<=yd),u(window.innerWidth>yd)},"handleResize");return FT(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),ii=OT;var si=4,li=6,Nn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||W();return U.createElement(pi,{container:l,side:"bottom",sideOffset:4,open:r,content:e},U.createElement(ed,{className:n,state:a},U.createElement(QT,{src:o,size:16})))},"ImageComponent");function Cd(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||W(),u=r.length,c=Gc(r),{isTablet:m,isMobile:h}=ii();return U.createElement(Rm,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(d=>!d)}},U.createElement("div",{className:Ko()},U.createElement(ai,{variant:"body",size:"xsmall"},Sd.t("Via:")),U.createElement(Ns,{direction:"horizontal",size:4}),r.map((f,d)=>{let g=`item-${d}`,C=U.createElement(xs,null,U.createElement(zT,{size:12,color:"black"}));return h||m?U.createElement(U.Fragment,{key:g},U.createElement(Nn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),d!==u-1&&U.createElement(U.Fragment,null,C)):U.createElement(U.Fragment,{key:g},u<=si||u>si&&d<si-1?U.createElement(U.Fragment,null,U.createElement(Nn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),d!==u-1&&U.createElement(U.Fragment,null,C)):d===si-1&&U.createElement(pi,{container:p,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Ko()},C,r.map((S,T)=>{let k=`image-${T}`;return T>=d&&U.createElement(U.Fragment,{key:k},U.createElement(Nn,{content:S.swapper.displayName,src:S.swapper.image,state:S.state,open:!1}),T!==u-1&&U.createElement(U.Fragment,null,C))}))},U.createElement(Es,{state:r.find((S,T)=>T>=d&&(S.state==="error"||S.state==="warning"))?.state},U.createElement(ai,{size:"xsmall",variant:"body"},"+",u-d))))})),U.createElement("div",{className:Ko()},U.createElement("div",{className:"blockchains_section"},U.createElement("div",{className:Ko()},U.createElement(ai,{variant:"body",size:"xsmall"},Sd.t("Chains:")),U.createElement(Ns,{direction:"horizontal",size:4}),c.map((f,d)=>U.createElement(U.Fragment,{key:f.displayName},c.length<=li||c.length>li&&d<li-1?U.createElement(pi,{container:p,side:"bottom",content:f.displayName,sideOffset:4},U.createElement(Nn,{content:"",src:f.image,open:!1,className:d!==0?"blockchainImage":""})):d===li-1&&U.createElement(pi,{container:p,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Ko()},c.map((g,C)=>C>=d&&U.createElement(Nn,{key:g.displayName,content:"",src:g.image,open:!1,className:C>d?"blockchainImage":"",container:l})))},U.createElement(Es,{className:"blockchainImage"},U.createElement(ai,{size:"xsmall",variant:"body"},"+",c.length-d))))),U.createElement(Ns,{direction:"horizontal",size:32}))),U.createElement(xs,{orientation:a?"up":"down"},U.createElement(UT,{size:12,color:"black"}))))}i(Cd,"QuoteTrigger");function Bs(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:h}=t,f=y().blockchains(),{findToken:d}=y(),g=y().swappers(),{customSlippage:C,slippage:S}=y(),T=C||S,[k,v]=YT(t.expanded),w=XT(null),A=L(o.value,6,6),M=L(n.value,6,6),x=n.usdValue?L(n.usdValue,4,4):"",E=Pt(o.usdValue,n.usdValue??null),b=L(E,2,2),N=_t(E??0),I=i((le,at)=>le.map((G,_)=>{let H,V=r?.type===3&&r.swap.swapperId===G.swapperId,de=r?.type===4&&r.recommendedSlippages?.has(_),ne=a?.type===2&&a.recommendedSlippages?.has(_),fe=V||de,Fe=ne;fe?H="error":Fe&&(H="warning");let ve=fe?yo.t("Slippage Error"):yo.t("Slippage Warning");return V&&(ve=yo.t("Bridge Limit Error")),{swapper:{displayName:on(G.swapperId,g)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:st(G.from.blockchain,f)??"",image:G.from.blockchainLogo},price:{value:_===0&&!at?L(o.value,6,6):L(G.fromAmount,6,6),usdValue:L((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:_===0?o.value:G.fromAmount,realUsdValue:new Ws(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:st(G.to.blockchain,f)||"",image:G.to.blockchainLogo},price:{value:L(G.toAmount,6,6),usdValue:L((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Ws(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:H,alerts:fe||Fe?F.createElement(qm,{dense:m},F.createElement(qT,{variant:"alarm",type:fe?"error":"warning",title:ve,footer:F.createElement(Hm,null,V&&F.createElement("div",null,F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(jo,{direction:"vertical",size:2}),F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},yo.t({id:"Yours: {amount} {symbol}",values:{amount:L(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(de||ne)&&!V&&F.createElement("div",null,F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},yo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(_)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(_)}}})),F.createElement(jo,{direction:"vertical",size:2}),F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},yo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:an(G.estimatedTimeInSeconds),fee:L(Aa(G,d),2,2),internalSwaps:G.internalSwaps?I(G.internalSwaps):void 0}}),"getQuoteSteps"),B=I(e?.swaps??[]),j=B.length,te=h||W(),J=Kc(t.quote.tags||[]),P=!!c,X=lr(e?.swaps),se=an(X),z=Br(e?.swaps??[],d),me=L(z,2,2),vt=z.gte(new Ws(Dc)),Ze=X/Oc>=Fc;return m?F.createElement(HT,{selected:l,fee:me,time:se,tooltipContainer:no(),steps:B,tags:J,quoteCost:F.createElement(As,{quote:e,fullExpandedMode:!0,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:u,steps:j}),percentageChange:b,warningLevel:N,outputPrice:{value:M,usdValue:x,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Xm,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Ym()},!p&&J.length?F.createElement(F.Fragment,null,F.createElement(id,null,J.map((le,at)=>{let G=`${le.value}_${at}`;return F.createElement(F.Fragment,{key:G},F.createElement(VT,{label:le.label,value:le.value}),F.createElement(jo,{size:4,direction:"horizontal"}))})),F.createElement(ei,null),!P&&F.createElement(jo,{size:4})):null,F.createElement("div",{id:"portal-root",className:Zm()},F.createElement(As,{quote:e,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:u,steps:j}),P&&F.createElement(jm,{onClick:le=>{le.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Xo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},yo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Jm()},F.createElement(nd,null,F.createElement(GT,{size:12,color:"gray"})),F.createElement(rd,null,F.createElement(bs,{size:"small",variant:"body"},`${A} ${B[0].from.token.displayName} = `),F.createElement(kd,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(bs,{size:"small",variant:"body"},"\xA0",`${M} ${B[B.length-1].to.token.displayName}`))),F.createElement(kd,{content:n.usdValue,container:te},F.createElement(jo,{size:2,direction:"horizontal"}),F.createElement(Xo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),s==="list-item"&&F.createElement(jT,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:M,usdValue:x,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:B[j-1].to.token.displayName,image:B[j-1].to.token.image},chain:{image:B[j-1].to.chain.image},percentageChange:b,warningLevel:N}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(In,{from:B[0].from,to:B[j-1].to,percentageChange:b,warningLevel:N}),F.createElement(jo,{size:4}))),F.createElement(Vm,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},F.createElement(Cd,{type:s,quoteRef:w,selected:l,setExpanded:v,container:te,expanded:k,steps:B}),F.createElement(td,{open:k},F.createElement(od,null),F.createElement("div",{className:Km()},B.map((le,at)=>{let G=`item-${at}`;return F.createElement(KT,{type:"quote-details",key:G,tooltipContainer:te,step:le,hasSeparator:at!==B.length-1,state:le.state})})))))}i(Bs,"Quote");import{Divider as ev,Skeleton as tv}from"@rango-dev/ui";import Ot from"react";import{darkTheme as ZT,styled as ci}from"@rango-dev/ui";var Td=ci("div",{$$color:"$colors$neutral100",[`.${ZT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),vd=ci("div",{paddingTop:"$2"}),wd=ci("div",{paddingLeft:"$8"}),xd=ci("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Pd,Divider as St,Skeleton as tt}from"@rango-dev/ui";import Q from"react";import{css as JT,styled as Ft}from"@rango-dev/ui";var Ms=Ft("div",{display:"flex"}),bd=Ft("div",{padding:"$10 $0 $20"}),Ed=Ft("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Id=Ft("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ad=Ft("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Nd=Ft("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Wd=Ft("div",{width:"65%",display:"flex",justifyContent:"start"}),Bd=Ft("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Md=Ft("div",{padding:"$15 $0 $15 $0"}),Ld=JT({display:"flex",justifyContent:"space-between",alignItems:"center"});function Wn(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Ad,null,Q.createElement(Wd,null,Q.createElement(Pd,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{size:8,direction:"horizontal"}),Q.createElement(Bd,null,Q.createElement(tt,{height:10,width:60,variant:"rounded"}),Q.createElement(St,{size:4}),Q.createElement(tt,{height:15,variant:"rounded"}))),Q.createElement(tt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(Ms,null,Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"})),Q.createElement(ei,null),!r&&Q.createElement(St,{size:4})),Q.createElement("div",{className:Ld()},Q.createElement(Ms,null,Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(tt,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(bd,null,Q.createElement(tt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Ed,null,Q.createElement(Id,null,Q.createElement(Pd,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{direction:"horizontal",size:4}),Q.createElement(tt,{height:15,width:150,variant:"rounded"})),Q.createElement(St,{size:10}),Q.createElement(tt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(St,{size:4}),Q.createElement(Md,null,n,Q.createElement(Nd,null),n),Q.createElement(St,{size:12})))}i(Wn,"QuoteSummarySkeleton");import{ChainToken as Od,Divider as Ps,NextIcon as RT,Skeleton as ui}from"@rango-dev/ui";import Ee from"react";import{styled as Bn}from"@rango-dev/ui";var _d=Bn("div",{display:"flex",alignItems:"start"}),$d=Bn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ls=Bn("div",{display:"flex",alignItems:"center",flexGrow:1}),Dd=Bn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Fd=Bn("div",{display:"flex",alignItems:"center"});function Nt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(Fd,null,Ee.createElement(ui,{height:22,width:22,variant:"circular"}),Ee.createElement(Ps,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:15,width:148,variant:"rounded"})),Ee.createElement(_d,null,Ee.createElement(xd,{hideSeparator:!e}),Ee.createElement($d,{extraSpace:e},Ee.createElement(Ls,null,Ee.createElement(Od,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ps,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:12,variant:"rounded"})),Ee.createElement(Dd,null,Ee.createElement(RT,{color:"gray",size:16})),Ee.createElement(Ls,null,Ee.createElement(Od,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ps,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:12,variant:"rounded"})))))}i(Nt,"StepSkeleton");function Mn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ot.createElement(Td,{expanded:o,rounded:e!=="basic"},Ot.createElement(Wn,{type:e,tagHidden:n}),Ot.createElement(vd,null,Ot.createElement(tv,{height:15,variant:"rounded"})),o&&Ot.createElement(wd,null,Ot.createElement(ev,{size:24}),Ot.createElement(Nt,null),Ot.createElement(Nt,null),Ot.createElement(Nt,{separator:!1})))}i(Mn,"QuoteSkeleton");function So(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:h=!1,container:f}=t,{inputAmount:d,inputUsdValue:g}=O(),C=e?.outputAmount?new ov(e?.outputAmount):null,S=e?pt(e):null,k=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?mi.createElement(ws,null,mi.createElement(Mn,{tagHidden:l,type:o,expanded:s})):k?mi.createElement(ws,{onClick:()=>p?.(e)},mi.createElement(Bs,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:h,input:{value:d,usdValue:g?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(So,"QuoteInfo");import{calculatePendingSwap as av}from"@rango-dev/queue-manager-rango-preset";import{useEffect as sv}from"react";import{useRef as nv,useState as rv}from"react";var iv=2e3;function di({request:t}){let[e,o]=rv(!1),n=nv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,iv)),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(di,"useFetch");function Ud(){let{fetch:t,loading:e,cancelFetch:o}=di({request:async(n,r)=>await bt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Ud,"useFetchConfirmQuote");function fi(t){if(!t.swaps)throw new Error(R().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=_s(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(fi,"throwErrorIfResponseIsNotValid");function _s(t){if(Jc(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Rc(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=nu(t);if(o){let n=Mr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(_s,"getQuoteError");function zd(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},p=$o({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});p&&(l.quote=p);let u=au(e,r,n.blockchains);return u.length===0||(l.balance={messages:u}),l}i(zd,"generateWarnings");function gi(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1},warnings:null}}i(gi,"handleQuoteErrors");function $s(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),m=y().blockchains(),h=y().tokens(),{findToken:f}=y(),d=u||p,{fetch:g,cancelFetch:C,loading:S}=Ud();return sv(()=>C,[]),{loading:S,fetch:i(async k=>{let v=k.selectedWallets,w=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((x,E)=>(x[E.chain]=E.address,x),{}),M={requestId:a?.requestId||"",selectedWallets:A,destination:w||void 0};try{return await g(M,!0).then(x=>{let{result:E}=x;if(!E)throw new Error("Error fetching updated route");fi({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let b={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};r(b);let N={slippage:d.toString(),disabledSwappersGroups:c},I=zd({previousQuote:a??void 0,currentQuote:b,meta:{blockchains:m},selectedWallets:v,userSlippage:d,inputUsdValue:n,findToken:f});l();let B=!!I.balance,j=av(o.toString(),E,iu(v),N,!B,{blockchains:m,tokens:h});return{quote:b,swap:j,error:null,warnings:I}})}catch(x){return gi(x)}},"fetch"),cancelFetch:C}}i($s,"useConfirmSwap");var yv=uv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Qd}`]:{width:"$48",height:"$48"}}),Sv=Os({flexGrow:1,paddingRight:"$10"}),Cv=Os({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),kv=Os({display:"flex",justifyContent:"space-between",alignItems:"center"});function qd(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=hv(),[l,p]=Ln(""),u=!n,[c,m]=Ln(!1),[h,f]=Ln(!1),{isActiveTab:d}=re(),g=y().getDisabledLiquiditySources(),C=gv(g),{manager:S}=lv(),{fetch:T,loading:k,cancelFetch:v}=$s(),[w,A]=Ln({swap:null,error:null,warnings:null}),[M,x]=Ln(!1),E=i(async({selectedWallets:P,customDestination:X})=>{let se=await T?.({selectedWallets:P,customDestination:X});return A(se),se},"onConfirmSwap"),b=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let P=`../${D.swaps}/${w.swap.requestId}`;s(P,{replace:!0}),setTimeout(()=>{e("")},0)}catch(P){p("Error: "+P?.message)}},"addNewSwap"),N=i(async()=>{f(!0),await b(),f(!1)},"onConfirm"),I=i(async()=>{w.warnings?.quote&&Hc(w.warnings.quote)&&!a?x(!0):await N()},"onStartConfirmSwap"),B=i(async()=>{A({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(P=>{A(P)}).catch(P=>console.error(P))},"onRefresh");hi(()=>{!!C.current.length&&!g.length&&B(),C.current=g},[g.length]),hi(()=>{u&&v()},[u]),hi(()=>{u&&m(u)},[u]),hi(()=>{u||T({selectedWallets:o,customDestination:r}).then(P=>A(P)).catch(P=>console.error(P))},[]),fv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let j=w.warnings?.quote??null,te=w.error,J=[];if(l&&J.push(Le.createElement(pv,{type:"error",variant:"alarm",title:l})),j||te){let P=`../${D.settings}`;J.push(Le.createElement(bn,{warning:j,error:te,couldChangeSettings:!1,refetchQuote:B,showWarningModal:M,confirmationDisabled:!d,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await b()},onChangeSettings:()=>s(P)}))}return Le.createElement(oe,{header:{title:Ds.t("Confirm Swap"),onWallet:()=>{let P=`../${D.wallets}`;s(P)}},footer:Le.createElement(yv,null,Le.createElement("div",{className:Sv()},Le.createElement(cv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!w.error||!d,onClick:I},Ds.t("Start Swap"))),Le.createElement(Qd,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!d,onClick:m.bind(null,!0)},Le.createElement(dv,{size:24})))},c&&Le.createElement(xm,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:E}),Le.createElement(ie,null,Le.createElement("div",{className:kv()},Le.createElement(mv,{variant:"title",size:"small"},Ds.t("You get")),Le.createElement("div",{className:Cv()},Le.createElement(Fr,{onClick:!k&&!c&&!M?B:void 0}))),Le.createElement(Fs,{size:"12"}),bu(J.map((P,X)=>({element:P,key:`alert-${X}`})),Le.createElement(Fs,{size:10})),J.length>0?Le.createElement(Fs,{size:10}):null,Le.createElement(So,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:w.error,loading:k,warning:w.warnings?.quote??null})))}i(qd,"ConfirmSwapPage");import{i18n as Ut}from"@lingui/core";import{Button as Ys,CustomTokensZeroStateDarkIcon as $v,CustomTokensZeroStateIcon as Dv,DeleteIcon as Fv,Divider as Dn,IconButton as Ov,MessageBox as Uv,NotFound as zv,styled as Js}from"@rango-dev/ui";import ue,{useState as Zs}from"react";import{useNavigate as Qv}from"react-router-dom";import{CloseIcon as vv,IconButton as wv,SearchIcon as xv,TextField as bv}from"@rango-dev/ui";import Pn from"react";import{styled as Tv}from"@rango-dev/ui";var Hd=Tv("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Ct(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...u}=t;return Pn.createElement(bv,{prefix:Pn.createElement(Hd,null,Pn.createElement(xv,{color:"black"})),suffix:!!s.length&&Pn.createElement(wv,{variant:"ghost",onClick:()=>p?.(""),size:"small"},Pn.createElement(vv,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...u})}i(Ct,"SearchInput");import{i18n as Xs}from"@lingui/core";import{darkTheme as tf,Divider as Zo,ExternalLinkIcon as Av,Image as Nv,ListItemButton as Wv,NotFound as Bv,PinIcon as Mv,Skeleton as of,Typography as Ci,VirtualizedList as Lv}from"@rango-dev/ui";import q from"react";import{Divider as Rd,ListItem as Iv,Skeleton as _n}from"@rango-dev/ui";import kt from"react";import{css as Yo,darkTheme as Gd,ImageContainer as Ev,styled as ut,Typography as Vd}from"@rango-dev/ui";var Us=Yo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),zs=Yo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Qs=Yo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),qs=Yo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Gd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Hs=Yo({}),Gs=Yo(),Kd=ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Vs=ut("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),yi=ut("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${zs}`]:{[`& .${qs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Hs}`]:{bottom:"-15px"},[`& .${Us}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Qs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ks=ut("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),js=ut(Vd,{}),jd=ut("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Gs}`]:{$$color:"$colors$neutral600",[`.${Gd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Si=ut("div",{display:"flex",alignItems:"end",flexDirection:"column"}),IU=ut("div",{display:"flex",alignItems:"center"}),Xd=ut("div",{position:"relative",[`& ${Ev}`]:{borderRadius:"$xm",overflow:"hidden"}}),Yd=ut("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Zd=ut(Vd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Jd=ut("a",{"& svg:hover":{color:"$colors$info"}});function ef(t){return kt.createElement(yi,null,Array.from(Array(t.size),e=>kt.createElement(Iv,{key:e,hasDivider:!0,start:kt.createElement(_n,{variant:"circular",width:35,height:35}),end:kt.createElement(Si,null,kt.createElement(_n,{variant:"text",size:"large",width:70}),kt.createElement(Rd,{size:4}),kt.createElement(_n,{variant:"text",size:"medium",width:50})),title:kt.createElement("div",null,kt.createElement(_n,{variant:"text",size:"large",width:90}),kt.createElement(Rd,{size:4}),kt.createElement(_n,{variant:"text",size:"medium",width:90}))})))}i(ef,"LoadingTokenList");var Pv=20,_v=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return q.createElement("div",{className:zs()},o?q.createElement("div",{className:Us()},o):q.createElement(Vs,{className:Qs()},q.createElement(Ci,{variant:"title",size:"xmedium"},r.symbol),q.createElement(Zo,{direction:"horizontal",size:4}),q.createElement(Ks,{css:a},q.createElement(js,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&q.createElement("div",{className:`${qs()} ${!o&&Hs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",q.createElement(Zo,{size:4,direction:"horizontal"}),q.createElement(Jd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},q.createElement(Av,{size:12}))))},"renderDesc");function $n(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,l=y().fetchStatus,p=y().blockchains(),{getBalanceFor:u,fetchingWallets:c}=y(),{isTokenPinned:m}=y(),h=i(d=>{let g=dr(u(d));return s?s(d):c?q.createElement(Si,null,q.createElement(of,{variant:"text",size:"large",width:70}),q.createElement(Zo,{size:4}),q.createElement(of,{variant:"text",size:"medium",width:50})):g&&q.createElement(jd,null,q.createElement(Zd,{variant:"title",size:"small"},g.amount),q.createElement("div",null),g.usdValue&&q.createElement(Ci,{variant:"body",className:Gs(),size:"xsmall"},`$${g.usdValue}`))},"endRenderer"),f=i(()=>q.createElement(Lv,{itemContent:d=>{let g=e[d],C=g.address||"",S=p.find(w=>w.name===g.blockchain),T=Qa(S.color,"main"),k={$$color:T.main150,[`.${tf} &`]:{$$color:T.main750},backgroundColor:"$$color"},v={$$color:T.main750,[`.${tf} &`]:{$$color:T.main150},color:"$$color"};return q.createElement("div",{style:{paddingRight:5}},q.createElement(Wv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":d,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,className:"widget-token-list-item-btn",hasDivider:!0,onClick:()=>n&&n(e[d]),start:q.createElement(Xd,null,q.createElement(Nv,{src:g.image,size:30}),t.type!=="custom-token"&&m(g,t.type)&&q.createElement(Yd,null,q.createElement(Mv,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||g.name||!g.name&&!C?q.createElement(Vs,null,q.createElement(Ci,{variant:"title",size:"xmedium"},g.symbol),q.createElement(Zo,{direction:"horizontal",size:4}),q.createElement(Ks,{css:k},q.createElement(js,{variant:"body",size:"xsmall",css:v},g.blockchain))):void 0,description:S?.info&&C&&S.type!=="COSMOS"?_v({address:C,token:e[d],customCssForTag:k,customCssForTagTitle:v,name:g.name,url:S.info.addressUrl.split("{wallet}").join(C)}):g.name||void 0,end:h(g)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList");return q.createElement(q.Fragment,null,a&&q.createElement(q.Fragment,null,q.createElement(Ci,{variant:"label",size:"large"},Xs.t("Select Token")),q.createElement(Zo,{size:4})),q.createElement(Kd,null,q.createElement(Zo,{size:4}),l==="loading"&&q.createElement(ef,{size:Pv}),l==="success"&&(e.length?q.createElement(yi,{as:"ul"},f()):!!o&&q.createElement(Bv,{title:Xs.t("No results found"),description:Xs.t("Try using different keywords")}))))}i($n,"TokenList");var qv=Js("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Hv=Js("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Gv=Js(Ov,{"&:hover":{"& svg":{color:"$secondary550"}}});function nf(){let[t,e]=Zs(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:p}=Uo({}),u=Qv(),[c,m]=Zs(!1),[h,f]=Zs(),d=i(T=>{let k=T.target.value;e(k)},"handleSearch"),g=p==="dark",C=n.filter(T=>Je(T.symbol,t)||Je(T.address||"",t)||Je(T.name||"",t)),S=i(()=>{if(h){let T=a?lt(a):null,k=r?lt(r):null,v=lt(h);T===v?l({token:null}):k===v&&s({token:null}),o(h)}m(!1)},"handleDeleteCustomToken");return ue.createElement(oe,{header:{title:Ut.t("Custom Tokens")}},ue.createElement(ie,null,ue.createElement(qv,null,n.length?ue.createElement(ue.Fragment,null,ue.createElement(Ct,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search Token"),onChange:d}),ue.createElement(Dn,{size:16}),ue.createElement($n,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,action:T=>ue.createElement(Gv,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),f(T)}},ue.createElement(Fv,{size:12,color:"gray"}))})):ue.createElement(Hv,null,ue.createElement(zv,{icon:g?ue.createElement($v,{size:200}):ue.createElement(Dv,{size:200}),title:Ut.t("No custom tokens"),description:Ut.t("press the button to add your custom token")})),ue.createElement(Dn,{size:20}),ue.createElement(Ys,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u(D.addCustomTokens)},Ut.t("Add Custom Token"))),ue.createElement(Z,{open:c,dismissible:!0,onClose:()=>m(!1),container:W()},ue.createElement(Uv,{title:Ut.t("Delete Custom Token"),type:"error",description:Ut.t("Are you sure you want to Delete this Token?")},ue.createElement(Dn,{size:40}),ue.createElement(Dn,{size:10}),ue.createElement(Ys,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ut.t("Yes, Delete it")),ue.createElement(Dn,{size:12}),ue.createElement(Ys,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Ut.t("No, Continue"))))))}i(nf,"CustomTokensPage");import{i18n as qe}from"@lingui/core";import{useManager as cw}from"@rango-dev/queue-manager-react";import{Button as il,darkTheme as uw,Divider as ko,MessageBox as mw,NotFound as dw,styled as al,Typography as vi}from"@rango-dev/ui";import{TransactionStatus as Un}from"rango-types";import ae,{useMemo as wf,useState as wi}from"react";import{useNavigate as fw}from"react-router-dom";import{FilterIcon as Jv,Popover as Rv}from"@rango-dev/ui";import Co from"react";import{css as Vv,darkTheme as ki,IconButton as Kv,styled as Fn}from"@rango-dev/ui";var Rs=Fn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ki} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),rf=Fn(Kv,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ki} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ki} &`]:{backgroundColor:"$neutral"},[`& ${Rs}::before`]:{backgroundColor:"$secondary100",[`.${ki} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),af=Fn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),sf=Fn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),lf=Vv({display:"flex",justifyContent:"space-between",alignItems:"center"}),pf=Fn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as cf}from"@lingui/core";import{Button as jv,Divider as uf,ListItemButton as Xv,Radio as Yv,RadioRoot as Zv,Typography as mf}from"@rango-dev/ui";import ot from"react";function df(t){let{filterBy:e,onClickItem:o}=t;return ot.createElement(sf,null,ot.createElement("div",{className:lf()},ot.createElement(mf,{size:"small",variant:"body"},cf.t("Status")),ot.createElement(jv,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},cf.t("Reset"))),ot.createElement(uf,{size:10}),ot.createElement(Zv,{value:e},ot.createElement(pf,null,t.list.map((n,r)=>ot.createElement(Xv,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ot.createElement(ot.Fragment,null,ot.createElement(uf,{direction:"horizontal",size:4}),ot.createElement(mf,{size:"medium",variant:"body"},n.title)),start:ot.createElement(Yv,{value:n.id}),onClick:o})))))}i(df,"FilterSelectorContent");function el(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Co.createElement("div",null,Co.createElement(Rv,{open:a,align:"end",onOpenChange:o,container:W(),content:Co.createElement(df,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Co.createElement(rf,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Co.createElement(Rs,{isSelect:!!n},Co.createElement(Jv,{size:16,color:"black"}),!!n&&Co.createElement(af,null)))))}i(el,"FilterSelector");import{i18n as ow}from"@lingui/core";import{Divider as Sf,GroupedVirtualizedList as nw,Skeleton as rw,SwapListItem as Cf,Typography as iw}from"@rango-dev/ui";import Qe,{useCallback as kf,useEffect as aw,useRef as sw,useState as lw}from"react";function ff(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(ff,"calculateGroupsSoFar");import{css as ew,darkTheme as tw,styled as On}from"@rango-dev/ui";var tl=ew(),gf=On("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ol=On("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${tl}`]:{$$color:"$colors$neutral600",[`.${tw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),nl=On("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),hf=On("div",{gap:"$10",display:"flex",flexDirection:"column"}),yf=On("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var pw=10;function rl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lw([]),l=sw(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=kf(ff,[]),h=kf(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,pw),s(m(u,l.current)))},[e.length]);if(aw(()=>{r||h()},[r,h]),r){let f=[1,2];return Qe.createElement(Qe.Fragment,null,[f,f].map((g,C)=>Qe.createElement(ol,{key:C},Qe.createElement(nl,null,Qe.createElement(rw,{variant:"text",width:60,size:"small"}),Qe.createElement(Sf,{size:16})),Qe.createElement(Sf,{size:4}),Qe.createElement(hf,null,g.map((T,k)=>Qe.createElement(Cf,{isLoading:!0,key:k}))))))}return Qe.createElement(nw,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>Qe.createElement(ol,null,Qe.createElement(nl,null,Qe.createElement(iw,{variant:"label",size:"medium",className:tl()},c[f]))),itemContent:(f,d)=>{let g=p[f];if(!g)return null;let C=g.steps[0],S=g.steps[g.steps.length-1];return Qe.createElement(gf,{key:g.requestId},Qe.createElement(Cf,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,tooltipContainer:W(),onlyShowTime:c[d]===ow.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:L(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:L(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(rl,"HistoryGroupedList");import{i18n as Ti}from"@lingui/core";import Tf from"dayjs";var vf=i(t=>{let e=new Map([["today",{title:Ti.t("Today"),swaps:[]}],["week",{title:Ti.t("This week"),swaps:[]}],["month",{title:Ti.t("This month"),swaps:[]}],["year",{title:Ti.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=Tf();t.forEach(p=>{let u=Number(p.creationTime),c=Tf(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 gw=al("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),hw=al("div",{display:"flex",justifyContent:"center",alignItems:"center"}),yw=al("div",{"._typography":{color:"$neutral700",[`.${uw}&`]:{color:"$neutral900"}}}),Sw=[{id:Un.SUCCESS,title:qe.t("Complete")},{id:Un.RUNNING,title:qe.t("Running")},{id:Un.FAILED,title:qe.t("Failed")}],Cw=i((t,e)=>t?.length?t.filter(o=>wt(o.fromBlockchain,e)||wt(o.toBlockchain,e)||wt(o.toSymbol,e)||wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function xf(){let t=fw(),{manager:e,state:o}=cw(),n=ct(e).map(({swap:k})=>k),[r,a]=wi(""),[s,l]=wi(!1),p=!o.loadedFromPersistor,[u,c]=wi(""),[m,h]=wi(!1),f=i(k=>{let v=k.target.value;a(v)},"handleSearch"),d=wf(()=>!r&&!u?n:n.filter(k=>{let{inputAmount:v,status:w,steps:A,requestId:M}=k;return(!r||wt(v,r)||wt(w,r)||Cw(A,r)||wt(M,r))&&(!u||u===w)}),[n,r,u]),g=!d?.length&&!p,C=i(()=>h(!1),"onCloseModal"),S=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),T=wf(()=>!n.some(k=>k.status===Un.SUCCESS||k.status===Un.FAILED),[n]);return ae.createElement(oe,{header:{title:qe.t("History"),suffix:ae.createElement(Vt,null,ae.createElement(il,{id:"widget-history-clear-btn",disabled:T,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ae.createElement(vi,{size:"medium",variant:"label",color:"error"},qe.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(hw,null,ae.createElement(Ct,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qe.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ae.createElement(ko,{size:10,direction:"horizontal"}),ae.createElement(el,{filterBy:u,open:s,onOpenChange:k=>l(k),onClickItem:k=>c(k),list:Sw})),ae.createElement(ko,{size:"16"}),ae.createElement(gw,null,g&&ae.createElement(yf,null,ae.createElement(ko,{size:32}),ae.createElement(dw,{title:r?qe.t("No results found"):qe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?qe.t("Try using different keywords"):qe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ae.createElement(rl,{list:d,onSwapClick:t,groupBy:vf,isLoading:p}))),ae.createElement(Z,{open:m,onClose:C,container:W()},ae.createElement(ko,{size:20}),ae.createElement(mw,{type:"warning",title:qe.t("Clear Transaction History"),description:ae.createElement(yw,null,ae.createElement(vi,{variant:"body",size:"medium"},qe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(ko,{size:"24"}),ae.createElement(vi,{variant:"body",size:"small"},qe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(ko,{size:30}),ae.createElement(il,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},qe.t("Yes, Clear the history")),ae.createElement(ko,{size:10}),ae.createElement(il,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:C},ae.createElement(vi,{variant:"title",size:"medium",color:"primary"},qe.t("No, Cancel")))))}i(xf,"HistoryPage");import{i18n as qw}from"@lingui/core";import{Button as Hw,Divider as Gf,styled as Gw,WarningIcon as Vw}from"@rango-dev/ui";import Kw from"bignumber.js";import He,{useEffect as Vf,useState as Kf}from"react";import{useNavigate as jw}from"react-router-dom";import{i18n as Ef}from"@lingui/core";import{Alert as Tw,Divider as sl,NoRouteIcon as vw,Typography as ww}from"@rango-dev/ui";import To from"react";import{styled as kw}from"@rango-dev/ui";var bf=kw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function ll(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Mt(t,e)?To.createElement(bf,null,To.createElement(sl,{size:10}),To.createElement(vw,{size:24,color:"gray"}),To.createElement(sl,{size:4}),To.createElement(ww,{variant:"title",size:"small"},Ef.t("No Routes Found")),To.createElement(sl,{size:4}),To.createElement(Tw,{title:Ef.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(ll,"SameTokensWarning");import{i18n as Nw}from"@lingui/core";import{Header as Ww}from"@rango-dev/ui";import Jt,{useEffect as Bw,useState as Mw}from"react";import{i18n as bw}from"@lingui/core";import{Divider as cl,FullExpandedQuote as Ew,Typography as Iw}from"@rango-dev/ui";import Se from"react";import{styled as pl}from"@rango-dev/ui";var If=pl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Af=pl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Nf=pl("div",{width:"146px"});import{i18n as zn}from"@lingui/core";import{Select as xw}from"@rango-dev/ui";import Wf from"react";function xi(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:zn.t("Smart Routing")},{value:"FEE",label:zn.t("Lowest Fee")},{value:"SPEED",label:zn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:zn.t("Maximum Return")},{value:"PRICE",label:zn.t("Maximum Output")}];return Wf.createElement(Nf,null,Wf.createElement(xw,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(xi,"SelectStrategy");var Bf=3;function Qn(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:h,sortStrategy:f,error:d}=O(),{slippage:g,customSlippage:C}=y(),{findToken:S}=y(),T=l||W(),k=!!u&&u.results.length,v=C??g,w=i(x=>{if(!m||!h||!u)return null;let E={requestAmount:u.requestAmount,validationStatus:null,...x};return $o({currentQuote:E,userSlippage:v,findToken:S})},"getQuoteWarning"),A=d?.type===0||d?.type===1,M=u?.results?Wr(f,u?.results):[];return Se.createElement(Se.Fragment,null,a&&Se.createElement(Se.Fragment,null,Se.createElement(Af,null,Se.createElement(Iw,{size:"xmedium",variant:"title"},bw.t("Sort by")),Se.createElement(xi,{container:T})),Se.createElement(cl,{size:"10"})),e&&Array.from({length:Bf},(x,E)=>Se.createElement(Se.Fragment,{key:E},s?Se.createElement(Ew,{loading:!0}):Se.createElement(Mn,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Bf-1&&Se.createElement(cl,{size:16}))),!e&&Se.createElement(Se.Fragment,null,k?M.map((x,E)=>{let b=w(x),N=_s(x.swaps),I=M.length-1===E;return Se.createElement(Se.Fragment,{key:x.requestId},Se.createElement(So,{showModalFee:r,container:T,selected:p?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:b,fullExpandedMode:s,onClick:B=>{N||c("warning",b),c("error",N?.options||null),o(B)},type:"list-item"}),!I&&Se.createElement(cl,{size:16}))}):A&&Se.createElement(If,null,Se.createElement(wn,{size:s?"large":"small",error:d,fetch:n}))))}i(Qn,"Quotes");import{darkTheme as Aw,styled as Mf}from"@rango-dev/ui";var Lf=Mf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Aw} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Pf=Mf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Lw=100;function ul(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Mw(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",m=no();return Bw(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},Lw):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),Jt.createElement(Lf,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${zr()}`,id:$e.EXPANDED_BOX_ID},Jt.createElement(Ww,{title:Nw.t("Routes"),suffix:Jt.createElement(Jt.Fragment,null,Jt.createElement(xi,{container:m}),Jt.createElement(fo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Jt.createElement(Pf,null,Jt.createElement(Qn,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:no(),onClickOnQuote:n,fullExpandedMode:c})))}i(ul,"ExpandedQuotes");import{i18n as zf}from"@lingui/core";import{SwapInput as Qf}from"@rango-dev/ui";import Dw from"bignumber.js";import qn from"react";import{ReverseIcon as $w}from"@rango-dev/ui";import dl from"react";import{keyframes as Pw,styled as _f}from"@rango-dev/ui";var ml=450,_w=Pw({"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)"}}),$f=_f("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Df=_f("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${_w} ${ml}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 fl(){let t=O.use.switchFromAndTo();return dl.createElement($f,null,dl.createElement(Df,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ml),t()}},dl.createElement($w,{size:12})))}i(fl,"SwitchFromAndToButton");import{styled as Ff}from"@rango-dev/ui";var Of=Ff("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Uf=Ff("div",{position:"relative"});function gl(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:h,outputUsdValue:f,selectedQuote:d}=O(),{connectedWallets:g,getBalanceFor:C}=y(),S=a?C(a):null,T=dr(S)?.amount??"0",k=S?new Dw(S.amount).shiftedBy(-S.decimals):ge,v=!!s&&$p(g,s.name),w=!Ia(d,c,m),A=!Ia(d,c,f),M=!m||!f||!f.gt(0)?null:Pt(m.toString(),f.toString());return qn.createElement(Of,null,qn.createElement(Uf,null,qn.createElement(Qf,{label:zf.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:w?void 0:L(m,4,4),realUsdValue:w?void 0:m?.toString(),error:w?R().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:W(),onSelectMaxBalance:()=>{let x=L(k,S?.decimals),E=S?.amount?x:"";u(E)},anyWalletConnected:g.length>0}),qn.createElement(fl,null)),qn.createElement(Qf,{sharpBottomStyle:!r&&(!!d||e),label:zf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:L(Pt(m,f),2,2),warningLevel:_t(M??0),price:{value:L(h,6,6),usdValue:A?void 0:L(f,4,4),realValue:h?.toString(),realUsdValue:A?void 0:f?.toString(),error:A?R().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(gl,"Inputs");import{useCallback as Fw,useEffect as Ow,useRef as Uw,useState as zw}from"react";function qf(){let{fetch:t,loading:e,cancelFetch:o}=di({request:async(n,r)=>await bt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(qf,"useFetchAllQuotes");var Qw=600;function bi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=qf(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),{fromToken:s,toToken:l,inputAmount:p,inputUsdValue:u,selectedQuote:c,sortStrategy:m,resetQuote:h,error:f,warning:d,setSelectedQuote:g,updateQuotePartialState:C}=O(),{slippage:S,customSlippage:T,affiliatePercent:k,affiliateRef:v,affiliateWallets:w,fetchStatus:A}=y(),M=y().getLiquiditySources(),x=y().getDisabledLiquiditySources(),E=y().excludeLiquiditySources(),{findToken:b}=y(),[N,I]=zw(!0),B=Uw(p),j=T??S,J=!s||!l||Mt(s,l)||!sn(p),P=i(z=>{I(z)},"resetState"),X=i(z=>{let{fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,slippage:_,affiliateRef:H,affiliatePercent:V,affiliateWallets:de}=z;if(N||P(!0),!J&&me&&vt){h();let ne=ru({fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,wallets:a,slippage:_,affiliateRef:H,affiliatePercent:V,affiliateWallets:de});Ao("experimental",r)&&(ne.experimental=!0),Ao("avoidNativeFee",r)&&(ne.avoidNativeFee=!0),Ao("enableCentralizedSwappers",r)&&(ne.enableCentralizedSwappers=!0),r?.maxLength&&(ne.maxLength=r.maxLength),e(ne).then(fe=>{let Fe=Wr(m,fe.results),ve=Vc(c,Fe,fe.requestAmount);I(!1),C("quotes",fe),g(ve),fi({diagnosisMessages:fe.diagnosisMessages,requestId:ve?.requestId||"",swaps:ve?.swaps});let dt=ve&&$o({currentQuote:ve,userSlippage:j,findToken:b});C("warning",dt)}).catch(fe=>{let{error:Fe}=gi(fe);(Fe?.type===0||Fe?.type===1)&&h(),Fe?.type!==2&&(C("error",Fe),I(!1))})}},"fetch"),se=Fw(xp(z=>{X(z)},Qw),[J]);return Ow(()=>{if(!t){I(!1);return}if(A!=="success")return;if(J){I(!1),(c||f||d)&&h();return}if(!sn(p)||u?.eq(0)){P(!1),o();return}h(),P(!0);let z=X;return B.current&&B.current!=p&&(z=se),B.current=p,z({inputAmount:p,fromToken:s,toToken:l,liquiditySources:M,excludeLiquiditySources:E,disabledLiquiditySources:x,slippage:j,affiliateRef:v,affiliatePercent:k,affiliateWallets:w}),o},[A,p,s?.symbol,s?.address,s?.blockchain,l?.symbol,l?.address,l?.blockchain,J,M?.length,n,x.length,j,v,k,JSON.stringify(w)]),{fetch:()=>X({inputAmount:p,fromToken:s,toToken:l,liquiditySources:M,excludeLiquiditySources:E,disabledLiquiditySources:x,slippage:j,affiliateRef:v,affiliatePercent:k,affiliateWallets:w}),loading:N}}i(bi,"useSwapInput");function Hf(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};he.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Hf,"emitPreventableEvent");var Xw=Gw("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Yw=300;function jf(){let t=jw(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:h}=O(),[f,d]=Kf(!1),{isLargeScreen:g,isExtraLargeScreen:C}=ii(),{fetch:S,loading:T}=bi({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:w}=y(),{isActiveTab:A}=re(),[M,x]=Kf(!1),b=eu({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),N=qp(g,C,k?.variant),I=!!n&&!!e&&!!o&&new Kw(n).gt(0)&&!uu(e,o),B=I&&v==="success"&&T,J=(!N||N&&p?.results.length)&&(l||s);Vf(()=>{c(),h("refetchQuote",!0)},[]),Vf(()=>{d(I)},[I]);let P=(r||s)&&!M?S:void 0,X=i(z=>{N&&f?(d(!1),setTimeout(()=>{t(z)},Yw)):t(z)},"onHandleNavigation"),se=i(z=>{r?.requestId!==z.requestId&&(x(!1),u(z))},"onClickOnQuote");return He.createElement(Xw,null,He.createElement(oe,{height:"auto",footer:He.createElement(Hw,{id:`widget-swap-${b.action}-btn`,type:"primary",size:"large",disabled:b.disabled||!A,prefix:b.action==="confirm-warning"&&He.createElement(Vw,null),fullWidth:!0,onClick:()=>{b.action==="connect-wallet"?Hf({type:"clickConnectWallet"},()=>X(D.wallets)):b.action==="confirm-warning"?x(!0):X(D.confirmSwap)}},b.title),header:{onWallet:()=>{X(D.wallets)},hasBackButton:!1,title:k.title||qw.t("Swap"),suffix:He.createElement(fo,{hidden:N?["refresh"]:void 0,onClickRefresh:P,onClickHistory:()=>X(D.swaps),onClickSettings:()=>{X(D.settings)}})}},He.createElement(ie,null,He.createElement(gl,{fetchingQuote:B,fetchMetaStatus:v,isExpandable:N,onClickToken:z=>{X(z==="from"?D.fromSwap:D.toSwap)}}),He.createElement(Gf,{size:"2"}),N?null:He.createElement(So,{quote:r,loading:B,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{h("refetchQuote",!1),X(D.routes)}:void 0}),J?He.createElement(He.Fragment,null,He.createElement(Gf,{size:"10"}),He.createElement(bn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:S,showWarningModal:M,confirmationDisabled:!A,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),m(!0),X(D.confirmSwap)},onChangeSettings:()=>X(D.settings)})):null,He.createElement(ll,null))),N?He.createElement(ul,{loading:B,onClickOnQuote:se,fetch:S,onClickRefresh:P,isVisible:f}):null)}i(jf,"Home");import{i18n as Xf}from"@lingui/core";import{Alert as Zw,Divider as Jw,List as Rw,ListItemButton as ex,Radio as tx,RadioRoot as ox,Typography as nx}from"@rango-dev/ui";import Wt from"react";function Rt(){let{setLanguage:t,language:e,config:o}=y(),n=Xp,r=o?.language||No;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||No),resetLanguage:()=>t(null)}}i(Rt,"useLanguage");function Yf(){let{activeLanguage:t,changeLanguage:e,languages:o}=Rt(),n=je(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Wt.createElement(nx,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Wt.createElement(tx,{value:s}),start:Wt.createElement(p,null)}});return Wt.createElement(oe,{header:{title:Xf.t("Language")}},Wt.createElement(ie,null,Wt.createElement(Zw,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Wt.createElement(Jw,{size:"8"}),Wt.createElement(ox,{value:t},Wt.createElement(Rw,{type:Wt.createElement(ex,{title:Xf.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Yf,"LanguagePage");import{i18n as zt}from"@lingui/core";import{Button as lx,Checkbox as px,Image as cx,ListItemButton as ux,NotFound as mx,Typography as dx}from"@rango-dev/ui";import Ge,{useState as fx}from"react";import{Checkbox as ax,Skeleton as Jf}from"@rango-dev/ui";import Gn from"react";import{styled as hl}from"@rango-dev/ui";var Hn=hl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),yl=hl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Sl=hl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as rx,styled as ix}from"@rango-dev/ui";var Zf=ix(rx,{height:61});var sx=30;function Cl(){return Gn.createElement(Hn,null,Array.from(Array(sx),(t,e)=>Gn.createElement(Zf,{hasDivider:!0,key:e,start:Gn.createElement(Jf,{variant:"circular",width:35,height:35}),title:Gn.createElement(Jf,{variant:"text",size:"large",width:90}),end:Gn.createElement(ax,{checked:!1})})))}i(Cl,"LoadingLiquiditySourceList");function kl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=fx(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=hr(o,n),u={Exchanges:zt.t("Exchanges"),Bridges:zt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(S=>c.includes(S.type)),h=m.length===m.filter(S=>S.selected).length,f=i(()=>{m.forEach(S=>{h?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),d=m.map(S=>{let{selected:T,groupTitle:k,logo:v,id:w,...A}=S;return{id:`widget-setting-liquidity-source-${w.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ge.createElement(cx,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ge.createElement(px,{checked:T,disabled:l}),title:Ge.createElement(dx,{variant:"title",size:"xmedium"},zt.t(k)),selected:T,groupTitle:k,logo:v,...A}}),g=i(S=>{let T=S.target.value;a(T)},"handleSearch"),C=d;return r&&(C=d.filter(S=>wt(S.groupTitle,r))),Ge.createElement(oe,{header:{title:zt.t(t),suffix:Ge.createElement(yl,null,Ge.createElement(lx,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},h?zt.t("Deselect all"):zt.t("Select all")))}},Ge.createElement(ie,{view:!0},Ge.createElement(Ct,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search {sourceType}",{sourceType:u[t]}),onChange:g}),e==="loading"&&Ge.createElement(Cl,null),!C.length&&r?Ge.createElement(Sl,null,Ge.createElement(mx,{title:zt.t("No results found"),description:zt.t("Try using different keywords")})):e==="success"&&Ge.createElement(Hn,{disabled:l},C.map(S=>{let{groupTitle:T,...k}=S;return Ge.createElement(Ge.Fragment,{key:S.id},Ge.createElement(ux,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(kl,"LiquiditySourcePage");import{i18n as gx}from"@lingui/core";import Ei from"react";import{useNavigate as hx}from"react-router-dom";function Rf(){let t=hx(),e=je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:p}=bi({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${D.settings}`,m=`../${D.wallets}`;return Ei.createElement(oe,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:gx.t("Routes"),suffix:Ei.createElement(fo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Ei.createElement(ie,null,Ei.createElement(Qn,{fetch:l,loading:p,onClickOnQuote:u})))}i(Rf,"RoutesPage");import{i18n as ag}from"@lingui/core";import{Divider as sg,getCategoriesCount as Ex,SelectableCategoryList as Ix}from"@rango-dev/ui";import Qt,{useState as lg}from"react";import{useNavigate as Ax}from"react-router-dom";import{i18n as Tl}from"@lingui/core";import{Divider as kx,Image as Tx,ListItemButton as vx,NotFound as wx,Typography as ig}from"@rango-dev/ui";import nt,{useEffect as xx,useState as bx}from"react";var eg=i((t,e,o)=>t.filter(n=>sr(n.type,o)).filter(n=>Je(n.name,e)||Je(n.displayName,e)),"filterBlockchains");import{ImageContainer as yx,styled as tg}from"@rango-dev/ui";var og=tg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ii=tg(Cn,{padding:0,margin:0,listStyle:"none",[`& ${yx}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Sx,Skeleton as ng}from"@rango-dev/ui";import Ai from"react";var Cx=20;function rg(){return Ai.createElement(Ii,null,Array.from(Array(Cx),t=>Ai.createElement(Sx,{key:t,hasDivider:!0,start:Ai.createElement(ng,{variant:"circular",width:35,height:35}),title:Ai.createElement(ng,{variant:"text",size:"large",width:90})})))}i(rg,"LoadingBlockchainList");function vl(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=bx(e),{fetchStatus:p}=y();xx(()=>{l([...eg(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?nt.createElement(wx,{title:Tl.t("No results found"),description:Tl.t("Try using different keywords")}):nt.createElement(Ii,{as:"ul",key:`${r}-${o}`},s.map(c=>nt.createElement(vx,{key:`${c.name}-${c.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(c),start:nt.createElement(Tx,{src:c.logo,size:30}),title:nt.createElement(ig,{variant:"title",size:"medium"},c.displayName),id:c.name}))),"renderList");return nt.createElement(nt.Fragment,null,a&&nt.createElement(nt.Fragment,null,nt.createElement(ig,{variant:"label",size:"large"},Tl.t("Select Chain")),nt.createElement(kx,{size:4})),nt.createElement(og,null,p==="loading"&&nt.createElement(rg,null),p==="success"&&u()))}i(vl,"BlockchainList");function Ni(t){let{type:e}=t,o=je(),[n,r]=lg(""),[a,s]=lg("ALL"),l=O.use.setToBlockchain(),p=O.use.setFromBlockchain(),{fetchStatus:u}=y(),c=Ax(),m=y().blockchains({type:e}),h=Ex(m),f=!t.hideCategory&&h!==1;return Qt.createElement(oe,{header:{title:ag.t("Select Chain")}},Qt.createElement(ie,{view:!0},f&&Qt.createElement(Qt.Fragment,null,Qt.createElement(Ix,{setCategory:s,category:a,blockchains:m,isLoading:u==="loading"}),Qt.createElement(sg,{size:24})),Qt.createElement(Ct,{value:n,autoFocus:!0,placeholder:ag.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Qt.createElement(sg,{size:16}),Qt.createElement(vl,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:d=>{e==="custom-token"?c(`..?blockchain=${d.name}`,{replace:!0}):(e==="source"?p(d):l(d),o())}})))}i(Ni,"SelectBlockchainPage");import{i18n as Bi}from"@lingui/core";import{Divider as fg}from"@rango-dev/ui";import vo,{useState as $x}from"react";import{useNavigate as Dx}from"react-router-dom";import{i18n as bl}from"@lingui/core";import{BlockchainsChip as Wi,Divider as mg,Image as dg,Skeleton as Lx,Tooltip as Px,Typography as El}from"@rango-dev/ui";import Pe from"react";import{useEffect as Bx}from"react";var pg=["ETH","COSMOS","OSMOSIS"];function wl(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Nx),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(Wx(s)),r=n.splice(a)}return{list:n,more:r}}i(wl,"prepare");function Nx(t,e){let o=pg,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(Nx,"sortByMostUsedBlockchains");function Wx(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(Wx,"generateSortByPreferredBlockchainsFor");function cg(t,e){return!!e.list.find(o=>o.name===t)}i(cg,"isInVisibleList");function xl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();Bx(()=>{if(e?.selected){let a=wl(t,o,e);cg(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=wl(t,o,e);return{list:r.list,more:r.more,history:[]}}i(xl,"usePrepareBlockchainList");import{styled as Mx}from"@rango-dev/ui";var ug=Mx("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var _x=12;function Il(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=xl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,h=!m&&c;return Pe.createElement(Pe.Fragment,null,Pe.createElement(mg,{size:12}),Pe.createElement(El,{variant:"label",size:"large"},bl.t("Select Chain")),Pe.createElement(mg,{size:12}),Pe.createElement(ug,null,l==="loading"&&Array.from(Array(_x),f=>Pe.createElement(Lx,{key:f,variant:"rounded",height:50})),l==="success"&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Wi,{selected:!n,onClick:()=>{o==="from"?u():p()}},Pe.createElement(El,{variant:"body",size:"xsmall",color:"secondary500"},bl.t("All"))),s.list.map(f=>Pe.createElement(Px,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:W()},Pe.createElement(Wi,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Pe.createElement(dg,{src:f.logo,size:30})))),m?Pe.createElement(Wi,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Pe.createElement(dg,{src:s.more[0].logo,size:30})):null,h?Pe.createElement(Wi,{onClick:a,key:"more-blockchains"},Pe.createElement(El,{variant:"body",size:"xsmall",color:"secondary500"},bl._("More +{count}",{count:s.more.length}))):null)))}i(Il,"BlockchainsSection");function Al(t){let{type:e}=t,o=Dx(),n=je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=O(),{getBalanceFor:c}=y(),[m,h]=$x(""),d=(e==="source"?r:a)?.name??"",g=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:d,searchFor:m,getBalanceFor:c}),S=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:g,tokens:C}}):l({token:v,meta:{blockchains:g,tokens:C}})},"updateToken"),k={source:Bi.t("Source"),destination:Bi.t("Destination")};return vo.createElement(oe,{header:{title:Bi.t("Swap {type}",{type:k[e]})}},vo.createElement(ie,null,vo.createElement(Il,{blockchains:g,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(D.blockchains),onChange:v=>{S(v)}}),vo.createElement(fg,{size:24}),vo.createElement(Ct,{value:m,autoFocus:!0,placeholder:Bi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:v=>h(v.target.value)}),vo.createElement(fg,{size:16}),vo.createElement($n,{list:C,selectedBlockchain:d,searchedFor:m,type:e,onChange:v=>{T(v);let w=g.find(A=>v.blockchain===A.name);w&&S(w),n()}})))}i(Al,"SelectSwapItemsPage");import{i18n as Bl}from"@lingui/core";import{Alert as pb,Button as cb,styled as ub}from"@rango-dev/ui";import wo from"react";import{useInRouterContext as mb,useSearchParams as db}from"react-router-dom";import{i18n as kg}from"@lingui/core";import{Divider as Tg,InfoIcon as zx,SlippageIcon as Qx,TextField as qx,Tooltip as Hx,Typography as vg}from"@rango-dev/ui";import rt from"react";import{Chip as Fx,styled as Vn,TextField as Ox}from"@rango-dev/ui";var gg=Vn("div",{paddingTop:"$5",padding:"$10 $5"}),hg=Vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ox}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),yg=Vn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Mi=Vn("div",{maxWidth:"280px",padding:"$10"}),Sg=Vn(Fx,{width:"61px",flexShrink:0});import{i18n as Nl}from"@lingui/core";import{Typography as Ux}from"@rango-dev/ui";import Kn from"react";function Cg(){return Kn.createElement(Mi,null,Kn.createElement(Ux,{variant:"label",size:"medium",color:"neutral700"},Nl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Kn.createElement("br",null),Kn.createElement("br",null),Kn.createElement("b",null,Nl.t("Warning")),":\xA0",Nl.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(Cg,"SlippageTooltipContent");function Wl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return rt.createElement(gg,null,rt.createElement(yg,null,rt.createElement(Qx,{size:16,color:"gray"}),rt.createElement(Tg,{direction:"horizontal",size:4}),rt.createElement(vg,{variant:"title",size:"xmedium"},kg.t("Slippage tolerance per swap")),rt.createElement(Tg,{direction:"horizontal",size:4}),rt.createElement(Hx,{container:W(),side:"top",sideOffset:4,content:rt.createElement(Cg,null)},rt.createElement(zx,{color:"gray"}))),rt.createElement(hg,null,Yp.map((r,a)=>{let s=`slippage-${a}`;return rt.createElement(Sg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),rt.createElement(qx,{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>=ec&&s<=Rp?n(s):n(null)},suffix:o&&rt.createElement(vg,{variant:"body",size:"small"},"%"),placeholder:kg.t("Custom")})))}i(Wl,"Slippage");import{i18n as mt}from"@lingui/core";import{AutoThemeIcon as wg,BridgesIcon as Gx,ChevronRightIcon as Li,DarkModeIcon as xg,Divider as jn,ExchangeIcon as Vx,InfinityIcon as Kx,InfoIcon as jx,LanguageIcon as Xx,LightModeIcon as bg,List as Yx,ListItem as Zx,ListItemButton as Jx,Skeleton as Rx,styled as eb,Switch as tb,Tabs as ob,TargetIcon as nb,Tooltip as rb,Typography as Ye}from"@rango-dev/ui";import $ from"react";import{useNavigate as ib}from"react-router-dom";var ab=eb("div",{width:"202px",height:"$40"}),sb=[{id:"light",icon:$.createElement(bg,{color:"black",size:24}),tooltip:$.createElement(Ye,{size:"xsmall",variant:"body"},mt.t("Light"))},{id:"dark",icon:$.createElement(xg,{color:"black",size:24}),tooltip:$.createElement(Ye,{size:"xsmall",variant:"body"},mt.t("Dark"))},{id:"auto",icon:$.createElement(wg,{color:"black",size:24}),tooltip:$.createElement(Ye,{size:"xsmall",variant:"body"},mt.t("Auto"))}],lb=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(wg,{...e});case"dark":return $.createElement(xg,{...e});default:return $.createElement(bg,{...e})}},"getThemeIcon");function Eg(){let t=ib(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Rt(),s=a.find(P=>P.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),m=y().customTokens(),h=Ve("theme",c),f=Ve("liquiditySource",c),d=Ve("language",c),g=Ve("customTokens",c),C=y().infiniteApprove,S=y().toggleInfiniteApprove,T=hr(p,u),k=T.filter(P=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(P.type)),v=k.length,w=k.filter(P=>P.selected).length,A=T.filter(P=>P.type==="DEX"),M=A.length,x=A.filter(P=>P.selected).length,E=i((P,X)=>{switch(l){case"loading":return $.createElement(Rx,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(Ye,{variant:"body",size:"medium",color:"$error500"},mt.t("Loading failed"));default:return $.createElement(Ye,{variant:"body",size:"medium"},`${P} / ${X}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:$.createElement(Ye,{variant:"title",size:"xmedium"},mt.t("Bridges")),end:$.createElement($.Fragment,null,E(w,v),$.createElement(jn,{direction:"horizontal",size:8}),$.createElement(Li,{color:"black"})),onClick:()=>t(D.bridges),start:$.createElement(Gx,{color:"gray",size:16})},N={id:"widget-setting-exchange-item-btn",title:$.createElement(Ye,{variant:"title",size:"xmedium"},mt.t("Exchanges")),end:$.createElement($.Fragment,null,E(x,M),$.createElement(jn,{direction:"horizontal",size:8}),$.createElement(Li,{color:"black"})),start:$.createElement(Vx,{color:"gray",size:16}),onClick:()=>t(D.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(Ye,{variant:"title",size:"xmedium"},mt.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(Ye,{variant:"body",size:"medium"},`${m.length}`),$.createElement(jn,{direction:"horizontal",size:8}),$.createElement(Li,{color:"black"})),start:$.createElement(nb,{color:"gray",size:16}),onClick:()=>t(D.customTokens)},B={id:"widget-setting-language-item-btn",title:$.createElement(Ye,{variant:"title",size:"xmedium"},mt.t("Language")),start:$.createElement(Xx,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(Ye,{variant:"body",size:"medium"},s),$.createElement(jn,{direction:"horizontal",size:8}),$.createElement(Li,{color:"black"})),onClick:()=>t(D.languages)},j={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(Ye,{variant:"title",size:"xmedium"},mt.t("Infinite approval")),$.createElement(jn,{direction:"horizontal",size:4}),$.createElement(rb,{side:"top",sideOffset:4,container:W(),content:$.createElement(Mi,null,$.createElement(Ye,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,mt.t("Warning")),":\xA0",mt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(jx,{color:"gray"}))),start:$.createElement(Kx,{color:"gray",size:16}),end:$.createElement(tb,{checked:C}),onClick:S},te={id:"widget-setting-theme-item-btn",type:$.createElement(Zx,null),title:$.createElement(Ye,{variant:"title",size:"xmedium"},mt.t("Theme")),end:$.createElement(ab,null,$.createElement(ob,{container:W(),items:sb,value:n,onChange:P=>o(P.id),type:"primary",borderRadius:"small"})),start:lb(n)},J=f?[]:[b,N];return g||J.push(I),d||J.push(B),J.push(j),!e?.singleTheme&&!h&&J.push(te),$.createElement(Yx,{type:$.createElement(Jx,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Eg,"SettingsLists");var fb=ub("div",{paddingLeft:"$8"});function Ig(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=db(),r=mb(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return wo.createElement(oe,{header:{title:Bl.t("Settings")}},wo.createElement(ie,null,o&&wo.createElement(pb,{type:"info",variant:"alarm",title:Bl.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:wo.createElement(fb,null,wo.createElement(cb,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Bl.t("Reset")))}),wo.createElement(Wl,null),wo.createElement(Eg,null)))}i(Ig,"SettingsPage");import{i18n as tE}from"@lingui/core";import{cancelSwap as oE}from"@rango-dev/queue-manager-rango-preset";import{useManager as nE}from"@rango-dev/queue-manager-react";import{Alert as rE}from"@rango-dev/ui";import Kl from"react";import{useParams as iE}from"react-router-dom";import{i18n as it}from"@lingui/core";import{getCurrentNamespaceOfOrNull as $b,getCurrentStep as Db,getRelatedWalletOrNull as Fb}from"@rango-dev/queue-manager-rango-preset";import{Button as ih,CopyIcon as Ob,Divider as Ub,DoneIcon as zb,IconButton as Qb,QuoteCost as qb,RangoExplorerIcon as Hb,StepDetails as Gb,Tooltip as ah,Typography as xo,useCopyToClipboard as Vb}from"@rango-dev/ui";import{useWallets as Kb}from"@rango-dev/wallets-react";import sh from"bignumber.js";import{PendingSwapNetworkStatus as zi}from"rango-types";import K,{useEffect as lh,useRef as jb,useState as ph}from"react";import{useNavigate as Xb}from"react-router-dom";import{i18n as eo}from"@lingui/core";var gb=[eo.t("Sunday"),eo.t("Monday"),eo.t("Tuesday"),eo.t("Wednesday"),eo.t("Thursday"),eo.t("Friday"),eo.t("Saturday")];function Ag(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?eo.t("Today"):`${gb[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ag,"timeSince");function Ng(t){return t.finishTime?Ag(parseInt(t.finishTime)):Ag(parseInt(t.creationTime))}i(Ng,"getSwapDate");import{PendingSwapNetworkStatus as $i}from"rango-types";import Di from"react";import{i18n as Pi}from"@lingui/core";import{Button as Wg,Divider as Ml,MessageBox as hb}from"@rango-dev/ui";import to from"react";var Bg=i(({onCancel:t,onClose:e})=>to.createElement(to.Fragment,null,to.createElement(Ml,{size:20}),to.createElement(hb,{type:"error",title:Pi.t("Cancel Swap"),description:Pi.t("Are you sure you want to cancel this swap?")}),to.createElement(Ml,{size:32}),to.createElement(Wg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Pi.t("Yes, Cancel it")),to.createElement(Ml,{size:12}),to.createElement(Wg,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Pi.t("No, Continue"))),"CancelContent");import{i18n as _i}from"@lingui/core";import{Button as Mg,Divider as Ll,MessageBox as yb,Typography as Sb}from"@rango-dev/ui";import qt from"react";var Lg=i(({onDelete:t,onClose:e})=>qt.createElement(qt.Fragment,null,qt.createElement(Ll,{size:20}),qt.createElement(yb,{type:"error",title:_i.t("Delete Transaction"),description:_i.t("Are you sure you want to delete this swap?")}),qt.createElement(Ll,{size:32}),qt.createElement(Mg,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},_i.t("Yes, Delete it")),qt.createElement(Ll,{size:12}),qt.createElement(Mg,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},qt.createElement(Sb,{variant:"title",size:"medium",color:"primary"},_i.t("No, Cancel")))),"DeleteContent");import{i18n as Pl}from"@lingui/core";import{PendingSwapNetworkStatus as _l}from"rango-types";var $l={[_l.WaitingForNetworkChange]:{type:"loading",title:Pl.t("Change Network")},[_l.WaitingForConnectingWallet]:{type:"warning",title:Pl.t("Connect Wallet")},[_l.NetworkChanged]:{type:"success",title:Pl.t("Network Changed")}};import{warn as Cb}from"@rango-dev/logging-core";import{MessageBox as kb,Wallet as Tb}from"@rango-dev/ui";import{useWallets as vb}from"@rango-dev/wallets-react";import Jo,{useState as wb}from"react";import{styled as Pg}from"@rango-dev/ui";var _g=Pg("div",{display:"flex",justifyContent:"center"}),s5=Pg("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var $g=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,p]=wb(),{getWalletInfo:u,state:c}=vb(),m=n?.walletType,h=m?ln(c(m)):null,f=m?u(m):null,d=a&&!!m&&!!h&&!!f,{list:g}=ft(),C=i(()=>{if(m){let S=g.find(T=>T.type===m);S?p(S):Cb(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return Jo.createElement(Jo.Fragment,null,Jo.createElement(kb,{type:e,title:o,description:r}),d&&Jo.createElement(_g,null,Jo.createElement(Tb,{container:W(),title:f.name,image:f.img,type:m,state:h,link:f.installLink,disabled:s,onClick:C})),Jo.createElement(co,{wallet:l,onClose:()=>{p(void 0)}}))},"WalletStateContent");function Dl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===$i.WaitingForNetworkChange||e===$i.WaitingForConnectingWallet||e===$i.NetworkChanged;return Di.createElement(Z,{open:!!e,onClose:o,container:document.getElementById($e.SWAP_BOX_ID)||document.body},p&&Di.createElement($g,{type:$l[e].type,title:$l[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==$i.WaitingForNetworkChange}),e==="delete"&&Di.createElement(Lg,{onClose:o,onDelete:n}),e==="cancel"&&Di.createElement(Bg,{onClose:o,onCancel:r}))}i(Dl,"SwapDetailsModal");import{i18n as Xn}from"@lingui/core";import{Button as Fl,Divider as Yn,MessageBox as Dg,TokenAmount as xb,Typography as Fg}from"@rango-dev/ui";import Ce from"react";import{useNavigate as bb}from"react-router-dom";function Ol(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:h}=t,f=bb(),{showProfileBanner:d}=re();return Ce.createElement(Z,{open:e,onClose:o,container:document.getElementById($e.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(Dg,{type:"success",title:Xn.t("Swap Successful")},Ce.createElement(xb,{direction:"vertical",tooltipContainer:W(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Ce.createElement(Yn,{size:12}),Ce.createElement(Fg,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Ce.createElement(Dg,{type:"error",title:Xn.t("Transaction Failed"),description:m}),Ce.createElement(Yn,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,d&&Ce.createElement(Ce.Fragment,null,Ce.createElement("img",{src:"https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.png",alt:"Profile Banner"}),Ce.createElement(Yn,{size:30})),Ce.createElement(Fl,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Xn.t("Done"))),Ce.createElement(Yn,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Fl,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Xn.t("Diagnosis")),Ce.createElement(Yn,{size:12})),Ce.createElement(Fl,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(Fg,{variant:"title",size:"medium",color:"primary"},Xn.t("See Details"))))}i(Ol,"SwapDetailsCompleteModal");import _b from"react";import{i18n as Bb}from"@lingui/core";import{Alert as th,IconButton as Mb,LinkIcon as Lb}from"@rango-dev/ui";import oo,{Fragment as Pb}from"react";import{Alert as Ib,ChevronDownIcon as Ab,IconButton as Nb}from"@rango-dev/ui";import en,{useState as Wb}from"react";import{css as Zn,darkTheme as Og,styled as Ht,Typography as Eb}from"@rango-dev/ui";var Ug=Ht("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Fi=Ht("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Og} &`]:{color:"$secondary500"}}}}}),zg=Ht(Cn,{padding:"$0 $20 $20 $20"}),G5=Ht("div",{display:"flex",flexDirection:"column",gap:"$10"}),Qg=Ht("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),V5=Ht("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Ro=Zn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Og} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),qg=Zn({padding:"$5 0"}),Oi=Zn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Hg=Zn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Gg=Zn({width:"100%",padding:"0 $20 $10"}),Vg=Ht("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Kg=Ht("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ui=Ht(Eb,{wordBreak:"break-word"});import{styled as Ul}from"@rango-dev/ui";var jg=Ul("div",{display:"flex",flexDirection:"column",gap:"$10"}),Xg=Ul("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Yg=Ul("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Zg(t){let{message:e}=t,[o,n]=Wb(!1);return en.createElement(Ib,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&en.createElement(Nb,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},en.createElement(Xg,{rotated:o},en.createElement(Ab,{size:12,color:"gray"}))),footer:en.createElement(Yg,{open:o},en.createElement(Ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Zg,"FailedAlert");import{i18n as Jg}from"@lingui/core";import{Alert as zl,Button as Rg}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ql}from"rango-types";import Jn from"react";function eh(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Jn.createElement(zl,{type:"warning",title:n.shortMessage,action:Jn.createElement(Rg,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Ql.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Jg.t("Change"))}):r===Ql.WaitingForConnectingWallet?Jn.createElement(zl,{type:"warning",title:n.shortMessage,action:Jn.createElement(Rg,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Ql.WaitingForConnectingWallet)}},Jg.t("Connect"))}):Jn.createElement(zl,{type:"warning",title:n.shortMessage})}i(eh,"WarningAlert");function ql(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=yn(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return oo.createElement(jg,null,a.explorerUrl?.map((m,h,f)=>{let d=h+m.url,g=h===f.length-1,C=(g&&u||p)&&!c,S=g&&a.status==="failed";return oo.createElement(Pb,{key:d},oo.createElement(th,{type:g&&(C&&"loading"||S&&"error")||"success",title:m.description?`${m.description} Tx`:Bb.t("View transaction"),action:m.url&&oo.createElement(Mb,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},oo.createElement(Lb,{size:12}))}))}),c&&oo.createElement(th,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&oo.createElement(eh,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&oo.createElement(Zg,{message:r}))}i(ql,"SwapDetailsAlerts");var oh=2e3;var nh=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:st(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:L(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:st(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:L(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:on(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:st(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:st(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:on(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:_b.createElement(ql,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function rh(t){if(yn(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(rh,"getStepState");function Hl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Kb(),p=y().blockchains(),u=y().swappers(),{findToken:c}=y(),m=O.use.retry(),h=re.use.isActiveTab(),f=Xb(),[d,g]=Vb(oh),C=jb(null),[S,T]=ph(null),[k,v]=ph(null),w=i(()=>{r(),T(null)},"onCancel"),A=xe.use.getNotifications(),M=xe.use.removeNotification(),x=A(),E=Db(e),b=E?.networkStatus;lh(()=>{x.find(dt=>dt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),M(e.requestId)):k&&v(null))},[e.status,e.requestId]),lh(()=>{P?T(zi.WaitingForNetworkChange):b===zi.WaitingForConnectingWallet||b===zi.NetworkChanged?T(b):T(null)},[b]);let N=lu(e),I=E?$b(e,E):null,B=E?Fb(e,E):null,j=Ng(e),te=pu(e),J=i(ve=>!!l(ve)?.mobileWallet,"isMobileWallet"),P=b===zi.WaitingForNetworkChange&&!!I&&!!B?.walletType&&(J(B.walletType)||a(B.walletType,I.network)),X=P?s.bind(null,B.walletType,[{namespace:I.namespace,network:I.network}]):void 0,se=su(e,E),z=nh({swap:e,switchNetwork:X,showNetworkModal:b,setNetworkModal:T,message:se,blockchains:p,swappers:u}),me=z.length,[vt,Ze]=[e.steps[0],e.steps[me-1]],le=Ze.outputAmount||Ze.expectedOutputAmountHumanReadable,at=e.steps.reduce((ve,dt)=>ve+parseFloat(dt.feeInUsd||""),0),G=e.steps.find(ve=>ve.diagnosisUrl)?.diagnosisUrl,_=L(parseFloat(le||"0")*(Ze.toUsdPrice||0),4,4),H=L(parseFloat(e.inputAmount)*(vt.fromUsdPrice||0),4,4),V=le?new sh(le).multipliedBy(Ze.toUsdPrice||0).toString():"",de=new sh(e.inputAmount).multipliedBy(vt.fromUsdPrice||0).toString(),ne=Pt(H,_),fe=se.detailedMessage.content||se.shortMessage,Fe=e.status==="success"?it.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:L(le,6,6),token:z[me-1].to.token.displayName,conciseAddress:fr(e.wallets[z[me-1].to.chain.displayName]?.address||""),chain:z[me-1].to.chain.displayName}}):K.createElement(Kg,null,K.createElement(xo,{variant:"body",size:"medium",color:"neutral700",align:"center"},fe?"":it.t("Transaction was not sent."),N?`${it.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:N.outputAmount,symbol:N.symbol,blockchain:N.blockchain}})}`:""),fe&&K.createElement(Ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},K.createElement("b",null,"Reason:")," ",fe));return K.createElement(oe,{header:{title:it.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Vt,null,K.createElement(ih,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},K.createElement(xo,{size:"medium",variant:"label",color:"error"},it.t("Delete"))))},footer:te&&!k&&K.createElement(ih,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ve=Nr(e,p,c);m(ve),setTimeout(()=>{f("../../")},0)}},it.t("Try again"))},K.createElement(ie,{compact:!0,view:!0},K.createElement(Fi,null,K.createElement("div",{className:Ro()},K.createElement(xo,{variant:"label",size:"large",color:"neutral700"},`${it.t("Request ID")}`),K.createElement("div",{className:Oi()},K.createElement(xo,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(ah,{container:W(),content:d?it.t("Copied To Clipboard"):it.t("Copy Request ID"),open:d||void 0,side:"bottom",alignOffset:-16,align:"end"},K.createElement(Qb,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},d?K.createElement(zb,{size:16,color:"secondary"}):K.createElement(Ob,{size:16,color:"gray"}))),K.createElement(Vg,{target:"_blank",href:`${hp}/swap/${o}`},K.createElement(ah,{container:W(),content:it.t("View on Rango Explorer"),side:"bottom"},K.createElement(Hb,{size:20}))))),K.createElement("div",{className:Ro()},K.createElement(xo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?it.t("Finished at"):it.t("Created at")),K.createElement(xo,{variant:"label",size:"small",color:"neutral700"},j))),K.createElement("div",{className:Hg()},K.createElement(qb,{fee:L(String(at),2,2),time:an(lr(e.steps)),steps:me}),K.createElement(In,{from:{price:{value:L(e.inputAmount,6,6),usdValue:H,realUsdValue:de,realValue:e.inputAmount},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:L(le,6,6),usdValue:_,realUsdValue:V,realValue:le||""},token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image,displayName:z[me-1].to.chain.displayName}},percentageChange:L(ne,2,2),warningLevel:_t(ne??0)})),K.createElement("div",{className:Gg()},K.createElement(xo,{variant:"title",size:"small"},it.t("Swaps steps"))),K.createElement(Ub,{size:8}),K.createElement(zg,{ref:C},z.map((ve,dt)=>{let ep=dt,tn=rh(e.steps[dt]),Dh=tn==="error"||tn==="in-progress"||tn==="warning"||tn==="completed"&&dt===z.length-1;return K.createElement(Gb,{key:ep,step:ve,type:"swap-progress",ref:C,state:tn,hasSeparator:dt!==0,tabIndex:ep,isFocused:Dh,tooltipContainer:W()})}))),K.createElement(Dl,{state:S,onClose:()=>T(null),onCancel:w,onDelete:n,message:se.detailedMessage.content,currentStepWallet:B,walletButtonDisabled:!h}),K.createElement(Ol,{open:!!k,diagnosisUrl:G,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:L(le,6,6),usdValue:_,realUsdValue:V,realValue:le||"",percentageChange:L(ne,2,2),token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image},description:Fe}))}i(Hl,"SwapDetails");import{i18n as qi}from"@lingui/core";import{Divider as mh,NotFound as eE,Skeleton as er,Typography as Hi}from"@rango-dev/ui";import ke from"react";import{i18n as Yb}from"@lingui/core";import{Divider as Zb,Skeleton as Jb,Typography as Rb}from"@rango-dev/ui";import Te from"react";import{css as Tt,styled as Gl}from"@rango-dev/ui";var ch=Gl("div",{width:"100%",height:"100%",padding:"$10 $20"}),Rn=Gl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Qi=Gl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),rK=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),iK=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),aK=Tt({paddingTop:"$15",display:"flex"}),sK=Tt({padding:"$15 $0"}),lK=Tt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),pK=Tt({paddingBottom:"$10"}),cK=Tt({display:"flex",justifyContent:"start",alignItems:"center"}),uK=Tt({paddingTop:"$5",display:"flex",alignItems:"center"}),mK=Tt({display:"flex",alignItems:"center"}),dK=Tt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),uh=Tt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Vl(){return Te.createElement(ch,null,Te.createElement(Wn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(Rb,{variant:"title",size:"small"},Yb.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(Rn,null,Te.createElement(Nt,{separator:!1}),Te.createElement("div",{className:uh()},Te.createElement(Zb,{direction:"horizontal",size:20}),Te.createElement(Jb,{height:22,variant:"rectangular"}))),Te.createElement(Qi,null),Te.createElement(Rn,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Qi,null),Te.createElement(Rn,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Qi,null),Te.createElement(Rn,null,Te.createElement(Nt,{separator:!1}))))}i(Vl,"LoadingSwapDetails");function dh(t){let{requestId:e,showSkeleton:o}=t;return ke.createElement(oe,{header:{title:qi.t("Swap Details"),suffix:ke.createElement(Vt,null)}},o&&ke.createElement(Ug,null,ke.createElement(Fi,null,ke.createElement("div",{className:Ro()},ke.createElement(Hi,{variant:"label",size:"large",color:"neutral700"},`${qi.t("Request ID")}`),ke.createElement("div",{className:Oi()},ke.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(er,{width:60,height:10,variant:"rounded"})),ke.createElement(mh,{direction:"horizontal",size:4}),ke.createElement(er,{width:16,height:16,variant:"rectangular"}),ke.createElement(mh,{direction:"horizontal",size:4}),ke.createElement(er,{width:16,height:16,variant:"rectangular"}))),ke.createElement("div",{className:Ro()},ke.createElement(Hi,{className:qg(),variant:"label",size:"large",color:"neutral700"},ke.createElement(er,{width:60,height:10,variant:"rounded"})),ke.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(er,{width:60,height:10,variant:"rounded"})))),ke.createElement(Vl,null)),!o&&ke.createElement(Qg,null,ke.createElement(eE,{title:qi.t("Not found"),description:qi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(dh,"SwapDetailsPlaceholder");function fh(){let{manager:t,state:e}=nE(),o=!e.loadedFromPersistor,n=ct(t),{requestId:r}=iE(),a=je(),{fetchStatus:s}=y();if(!r)return Kl.createElement(rE,{containerStyles:{margin:"20px"},type:"error",title:tE.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:h})=>h.requestId===r):void 0,u=i(()=>{if(p?.id){let h=t?.get(p.id);h&&oE(h)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(h){console.log(h)}},"onDelete"),m=p?.swap;return!m||l?Kl.createElement(dh,{requestId:r,showSkeleton:l}):Kl.createElement(Hl,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(fh,"SwapDetailsPage");import{i18n as gh}from"@lingui/core";import{Divider as aE,getCategoriesCount as sE,SelectableCategoryList as lE,styled as yh,Typography as pE,Wallet as cE}from"@rango-dev/ui";import Bt,{useState as hh}from"react";var uE=yh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),mE=yh(ie,{textAlign:"center"});function Sh(){let{fetchStatus:t}=y(),[e,o]=hh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=hh(),l=re.use.isActiveTab(),{list:p}=ft(),u=Fp(p,n),m=sE(u)!==1,h=Op(p,e),f=i(d=>{Ip(p,r.multiWallets)||s(d)},"handleWalletItemClick");return Bt.createElement(oe,{header:{title:gh.t("Connect Wallets")}},Bt.createElement(mE,null,m&&Bt.createElement(Bt.Fragment,null,Bt.createElement(lE,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Bt.createElement(aE,{size:24})),Bt.createElement(pE,{variant:"title",size:"xmedium",align:"center"},gh.t("Choose a wallet to connect.")),Bt.createElement(uE,null,h.map((d,g)=>{let C=`wallet-${g}-${d.type}`;return Bt.createElement(cE,{key:C,...d,container:W(),onClick:()=>f(d),isLoading:t==="loading",disabled:!l})}),Bt.createElement(co,{wallet:a,onClose:()=>{s(void 0)}}))))}i(Sh,"WalletsPage");function Ch(){return du(),Pa(),dE([{path:D.home,element:_e.createElement(jf,null)},{path:D.routes,element:_e.createElement(Rf,null)},{path:D.fromSwap,children:[{index:!0,element:_e.createElement(Al,{type:"source"})},{path:D.blockchains,element:_e.createElement(Ni,{type:"source"})}]},{path:D.toSwap,children:[{index:!0,element:_e.createElement(Al,{type:"destination"})},{path:D.blockchains,element:_e.createElement(Ni,{type:"destination"})}]},{path:D.settings,children:[{index:!0,element:_e.createElement(Ig,null)},{path:D.languages,element:_e.createElement(Yf,null)},{path:D.exchanges,element:_e.createElement(kl,{sourceType:"Exchanges"})},{path:D.bridges,element:_e.createElement(kl,{sourceType:"Bridges"})},{path:D.customTokens,children:[{index:!0,element:_e.createElement(nf,null)},{path:D.addCustomTokens,children:[{index:!0,element:_e.createElement(ju,null)},{path:D.blockchains,element:_e.createElement(Ni,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:D.swaps,children:[{index:!0,element:_e.createElement(xf,null)},{path:D.swapDetails,element:_e.createElement(fh,null)}]},{path:D.wallets,element:_e.createElement(Sh,null)},{path:D.confirmSwap,element:_e.createElement(qd,null)}])}i(Ch,"AppRoutes");import{useQueueManager as vE}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as wE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as xE}from"rango-sdk";import{useContext as bE,useEffect as Eh,useState as Ih}from"react";import{globalCss as fE}from"@rango-dev/ui";var kh=i(()=>fE({"@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 Th(){let{setWatermark:t,setShowProfileBanner:e}=re();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Lt("BASE_URL")}/meta/dapp/config?apiKey=${Lt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(Th,"useFetchApiConfig");import{useWallets as gE}from"@rango-dev/wallets-react";import{useEffect as hE,useRef as yE}from"react";function vh(){let{connect:t,state:e}=gE(),o=yE({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);hE(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(vh,"useForceAutoConnect");import{isApprovalTX as SE,RouteEventType as wh,StepEventType as xh,StepExecutionEventStatus as CE,WidgetEvents as Gi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as bh}from"react";function jl(){let t=xe.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();bh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===xh.TX_EXECUTION&&a.status===CE.TX_SENT&&!SE(s)||a.type===xh.SUCCEEDED){let u=e.find(m=>m.chain===s?.fromBlockchain),c=s?.fromBlockchain!==s?.toBlockchain&&e.find(m=>m.chain===s?.toBlockchain);u&&o([u]),c&&o([c])}t(a,l)},"handleStepEvent");return he.on(Gi.StepEvent,n),()=>he.off(Gi.StepEvent,n)},[he,e]),bh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===wh.FAILED||a.type===wh.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return he.on(Gi.RouteEvent,n),()=>he.off(Gi.RouteEvent,n)},[he])}i(jl,"useSubscribeToWidgetEvents");import{useManager as kE}from"@rango-dev/queue-manager-react";import{useEffect as TE}from"react";function Xl(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=kE();TE(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ct(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Xl,"useSyncNotifications");function Yl(){vh(),kh(),jl(),Xl();let t=y().blockchains(),{canSwitchNetworkTo:e}=jr(),[o,n]=Ih(""),[r,a]=Ih(),s=bE(br),l=t.filter(xE),{fetchApiConfig:p}=Th();Eh(()=>()=>mu(),[]),vE({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Eh(()=>(ao.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===wE(o)?.[0]&&n("")}),p().catch(console.log),ao.destroy),[])}i(Yl,"useBootstrap");import{styled as EE}from"@rango-dev/ui";var Ah=EE("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Vi(){Yl();let{config:t}=y(),{activeTheme:e}=Uo(t?.theme||{}),{activeLanguage:o}=Rt();return Zl.createElement(IE,{language:o},Zl.createElement(Ah,{id:"swap-container",className:e()},Zl.createElement(Ch,null)))}i(Vi,"Main");import{setSolanaSignerConfig as KE}from"@rango-dev/signer-solana";import Rl,{useEffect as Ph,useMemo as jE}from"react";import{useState as AE}from"react";var NE=i(()=>{let[t,e]=AE(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=Ep(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Nh=NE;import{checkWaitingForNetworkChange as WE,makeQueueDefinition as BE}from"@rango-dev/queue-manager-rango-preset";import{Provider as ME}from"@rango-dev/queue-manager-react";import{useWallets as LE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as PE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as _E}from"rango-types";import $E,{useMemo as DE}from"react";function FE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=LE(),l=DE(()=>BE({API_KEY:t.apiKey||Lt("API_KEY"),BASE_URL:Lt("BASE_URL"),emitter:{emit:he.emit}}),[t.apiKey]),{blockchains:p,connectedWallets:u}=y(),c=p(),m={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,w)=>a(v,w.network)?await r(v,[w]):void 0,"switchNetwork"),f=i(v=>!!s(v).mobileWallet,"isMobileWallet"),d=c.filter(v=>v.enabled).reduce((v,w)=>(v[w.name]=w,v),{}),g=c.filter(_E),C=i(v=>{let{supportedChains:w}=s(v);return ur(w)},"getSupportedChainNames"),S=e(),T={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:PE(g),getSupportedChainNames:C},getSigners:o,wallets:m,providers:S,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},k=re.use.isActiveTab();return $E.createElement(ME,{queuesDefs:[l],context:T,onPersistedDataLoaded:v=>{WE(v)},isPaused:!k},t.children)}i(FE,"QueueManager");var Wh=FE;import{useManager as qE}from"@rango-dev/queue-manager-react";import HE,{createContext as GE,useContext as VE}from"react";function Bh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(u=>{let{fromBlockchain:c,fromToken:m,toBlockchain:h,toToken:f,requestAmount:d}=u,g={blockchains:e,tokens:o};if(c!==void 0){let C=e.find(S=>S.name===c)??null;n(C)}if(m!==void 0){let C=m?t(m)??null:null;r({meta:g,token:C})}if(h!==void 0){let C=e.find(S=>S.name===h)??null;a(C)}if(f!==void 0){let C=f?t(f)??null:null;s({meta:g,token:C})}d!==void 0&&l(d)},"updateQuoteInputs")}i(Bh,"useUpdateQuoteInputs");import{cancelSwap as OE,getCurrentNamespaceOfOrNull as UE,getCurrentStep as zE,getRelatedWalletOrNull as QE}from"@rango-dev/queue-manager-rango-preset";var Ki=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ct(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Nr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&OE(o)}getCurrentStepInfo(e){let o=zE(e);return{step:o,wallet:o?QE(e,o):null,network:o?UE(e,o)?.network:null}}};var Mh=GE(void 0);function Jl(t){let{manager:e}=qE(),o=re.use.isActiveTab(),n=O.use.retry(),{findToken:r,connectedWallets:a,getBalances:s,fetchBalances:l}=y(),p=new Ki(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=y(),c=Mp(s()),m=y().blockchains(),h=y().tokens(),f=y().swappers(),d=y().fetchStatus,g=Rt().resetLanguage,C=xe().getNotifications(),S=xe().clearNotifications,T=Bh(),{fromBlockchain:k,toBlockchain:v,fromToken:w,toToken:A,inputAmount:M}=O(),x={isActiveTab:o,setCurrentTabAsActive:ao.forceClaim,history:p,wallets:{isLoading:u,details:a,totalBalance:c,refetch:async E=>l(E)},meta:{blockchains:m,tokens:h,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:C,clearAll:S},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:M},updateQuoteInputs:T}};return HE.createElement(Mh.Provider,{value:x},t.children)}i(Jl,"WidgetInfo");function Lh(){let t=VE(Mh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Lh,"useWidget");function ji(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Nh();return Ph(()=>{n&&r(n)},[n]),jE(()=>{Up({API_KEY:o?.apiKey||ir,BASE_URL:o?.apiUrl||gp})},[o.apiKey,o.apiUrl]),Ph(()=>{t.config?.signers?.customSolanaRPC&&KE("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Rl.createElement(Er,{config:o,onUpdateState:e},Rl.createElement(Wh,{apiKey:o.apiKey},Rl.createElement(Jl,null,t.children)))}i(ji,"WidgetProvider");function _h(t){let e=t.config?.externalWallets;return Xi.createElement(Pc,null,e?Xi.createElement(Vi,null):Xi.createElement(ji,{config:t.config??rr},Xi.createElement(Vi,null)))}i(_h,"Widget");function $h(){let{on:t,off:e}=he;return{on:t,off:e}}i($h,"useWidgetEvents");var k3={DerivationPath:dn,Namespaces:mn,isOnDerivationPath:gn,isOnNamespace:fn};export{Vj as EventSeverity,Wo as MainEvents,o3 as Networks,i3 as PendingSwapNetworkStatus,ca as QuoteEventTypes,Kj as RouteEventType,ea as SUPPORTED_FONTS,k3 as StatefulConnect,jj as StepEventType,Xj as StepExecutionBlockedEventStatus,Yj as StepExecutionEventStatus,$e as UI_ID,ma as UiEventTypes,ua as WalletEventTypes,e3 as WalletEvents,n3 as WalletTypes,_h as Widget,Wo as WidgetEvents,ji as WidgetProvider,Er as WidgetWallets,Va as customizedThemeTokens,Jj as readAccountAddress,Gt as useStatefulConnect,ft as useWalletList,jr as useWallets,Lh as useWidget,$h as useWidgetEvents,Uy as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map