@rango-dev/widget-embedded 0.0.0-experimental-1624fbb4-20260708 → 0.0.0-experimental-99f1781b-20260920

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 (190) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/QueueManager.d.ts.map +1 -1
  3. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +1 -1
  4. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  5. package/dist/components/CustomDestination/CustomDestination.styles.d.ts +4 -4
  6. package/dist/components/CustomDestination/CustomDestination.styles.d.ts.map +1 -1
  7. package/dist/components/CustomTokenModal/CustomTokenModal.styles.d.ts +169 -169
  8. package/dist/components/CustomTokenModal/CustomTokenModal.styles.d.ts.map +1 -1
  9. package/dist/components/FilterSelector/FilterSelector.style.d.ts +1 -1
  10. package/dist/components/FilterSelector/FilterSelector.style.d.ts.map +1 -1
  11. package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts +1 -1
  12. package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts.map +1 -1
  13. package/dist/components/NamespaceItem/NamespaceItem.d.ts.map +1 -1
  14. package/dist/components/NamespaceItem/NamespaceItem.styles.d.ts +1 -1
  15. package/dist/components/NamespaceItem/NamespaceItem.styles.d.ts.map +1 -1
  16. package/dist/components/NamespaceItem/NamespaceItem.types.d.ts +3 -3
  17. package/dist/components/NamespaceItem/NamespaceItem.types.d.ts.map +1 -1
  18. package/dist/components/Quote/Quote.d.ts.map +1 -1
  19. package/dist/components/Quote/Quote.styles.d.ts +171 -171
  20. package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
  21. package/dist/components/Quote/Quote.types.d.ts +0 -2
  22. package/dist/components/Quote/Quote.types.d.ts.map +1 -1
  23. package/dist/components/Quote/QuoteCostDetails.d.ts.map +1 -1
  24. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts +169 -169
  25. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -1
  26. package/dist/components/RefreshModal/RefreshModal.styles.d.ts +168 -168
  27. package/dist/components/RefreshModal/RefreshModal.styles.d.ts.map +1 -1
  28. package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts +2 -1
  29. package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts.map +1 -1
  30. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  31. package/dist/components/SwapDetails/SwapDetails.styles.d.ts +1 -1
  32. package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
  33. package/dist/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.d.ts.map +1 -1
  34. package/dist/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.d.ts.map +1 -1
  35. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +3 -3
  36. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
  37. package/dist/components/SwapMetrics/SwapMetrics.styles.d.ts +1 -1
  38. package/dist/components/SwapMetrics/SwapMetrics.styles.d.ts.map +1 -1
  39. package/dist/components/TokenList/TokenList.styles.d.ts +2 -2
  40. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
  41. package/dist/components/WalletStatefulConnect/DerivationPath.d.ts.map +1 -1
  42. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts +7 -3
  43. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts.map +1 -1
  44. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.test.d.ts +2 -0
  45. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.test.d.ts.map +1 -0
  46. package/dist/components/WalletStatefulConnect/DerivationPath.styles.d.ts +169 -169
  47. package/dist/components/WalletStatefulConnect/DerivationPath.styles.d.ts.map +1 -1
  48. package/dist/components/WalletStatefulConnect/Detached.d.ts.map +1 -1
  49. package/dist/components/WalletStatefulConnect/Detached.types.d.ts +2 -1
  50. package/dist/components/WalletStatefulConnect/Detached.types.d.ts.map +1 -1
  51. package/dist/components/WalletStatefulConnect/NamespaceDetachedItem.d.ts.map +1 -1
  52. package/dist/components/WalletStatefulConnect/Namespaces.d.ts.map +1 -1
  53. package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts +168 -168
  54. package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts.map +1 -1
  55. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +3 -3
  56. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -1
  57. package/dist/constants/errors.d.ts +1 -0
  58. package/dist/constants/errors.d.ts.map +1 -1
  59. package/dist/containers/Wallets/Wallets.constants.d.ts +3 -0
  60. package/dist/containers/Wallets/Wallets.constants.d.ts.map +1 -0
  61. package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
  62. package/dist/containers/Wallets/Wallets.helpers.d.ts +2 -2
  63. package/dist/containers/Wallets/Wallets.helpers.d.ts.map +1 -1
  64. package/dist/containers/Wallets/Wallets.helpers.test.d.ts +2 -0
  65. package/dist/containers/Wallets/Wallets.helpers.test.d.ts.map +1 -0
  66. package/dist/containers/Wallets/Wallets.types.d.ts +6 -4
  67. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -1
  68. package/dist/containers/Wallets/useUpdates.d.ts +1 -1
  69. package/dist/containers/Wallets/useUpdates.d.ts.map +1 -1
  70. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -1
  71. package/dist/containers/WidgetProvider/WidgetProvider.helpers.d.ts +5 -0
  72. package/dist/containers/WidgetProvider/WidgetProvider.helpers.d.ts.map +1 -0
  73. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +1 -1
  74. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -1
  75. package/dist/hooks/useConnectWithLogging/index.d.ts +2 -0
  76. package/dist/hooks/useConnectWithLogging/index.d.ts.map +1 -0
  77. package/dist/hooks/useConnectWithLogging/useConnectWithLogging.d.ts +11 -0
  78. package/dist/hooks/useConnectWithLogging/useConnectWithLogging.d.ts.map +1 -0
  79. package/dist/hooks/useConnectWithLogging/useConnectWithLogging.test.d.ts +2 -0
  80. package/dist/hooks/useConnectWithLogging/useConnectWithLogging.test.d.ts.map +1 -0
  81. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts +2 -1
  82. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -1
  83. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts +5 -4
  84. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts.map +1 -1
  85. package/dist/hooks/useWalletList.d.ts.map +1 -1
  86. package/dist/hooks/useWalletProviders/useWalletProviders.d.ts +2 -2
  87. package/dist/hooks/useWalletProviders/useWalletProviders.d.ts.map +1 -1
  88. package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts +2 -3
  89. package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts.map +1 -1
  90. package/dist/index.d.ts +10 -7
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +3 -2
  93. package/dist/index.js.map +4 -4
  94. package/dist/libs/connectLogging/connectLogging.constants.d.ts +9 -0
  95. package/dist/libs/connectLogging/connectLogging.constants.d.ts.map +1 -0
  96. package/dist/libs/connectLogging/connectLogging.d.ts +12 -0
  97. package/dist/libs/connectLogging/connectLogging.d.ts.map +1 -0
  98. package/dist/libs/connectLogging/connectLogging.test.d.ts +2 -0
  99. package/dist/libs/connectLogging/connectLogging.test.d.ts.map +1 -0
  100. package/dist/libs/connectLogging/connectLogging.types.d.ts +57 -0
  101. package/dist/libs/connectLogging/connectLogging.types.d.ts.map +1 -0
  102. package/dist/libs/connectLogging/index.d.ts +3 -0
  103. package/dist/libs/connectLogging/index.d.ts.map +1 -0
  104. package/dist/pages/WalletsPage.d.ts.map +1 -1
  105. package/dist/store/AppStore.d.ts +2 -2
  106. package/dist/store/AppStore.d.ts.map +1 -1
  107. package/dist/store/app.d.ts +2 -2
  108. package/dist/store/app.d.ts.map +1 -1
  109. package/dist/store/slices/config.d.ts +5 -5
  110. package/dist/store/slices/config.d.ts.map +1 -1
  111. package/dist/test-utils/fixtures.d.ts +2 -2
  112. package/dist/test-utils/fixtures.d.ts.map +1 -1
  113. package/dist/types/config.d.ts +25 -4
  114. package/dist/types/config.d.ts.map +1 -1
  115. package/dist/types/wallets.d.ts +1 -1
  116. package/dist/types/wallets.d.ts.map +1 -1
  117. package/dist/utils/common.d.ts +1 -0
  118. package/dist/utils/common.d.ts.map +1 -1
  119. package/dist/utils/errors.d.ts +14 -0
  120. package/dist/utils/errors.d.ts.map +1 -0
  121. package/dist/utils/errors.test.d.ts +2 -0
  122. package/dist/utils/errors.test.d.ts.map +1 -0
  123. package/dist/utils/providers.d.ts +3 -6
  124. package/dist/utils/providers.d.ts.map +1 -1
  125. package/dist/utils/swap.d.ts +1 -1
  126. package/dist/utils/swap.d.ts.map +1 -1
  127. package/dist/utils/wallets.d.ts +2 -1
  128. package/dist/utils/wallets.d.ts.map +1 -1
  129. package/package.json +16 -16
  130. package/src/QueueManager.tsx +17 -16
  131. package/src/components/ConfirmWalletsModal/WalletList.tsx +2 -2
  132. package/src/components/NamespaceItem/NamespaceItem.styles.ts +1 -0
  133. package/src/components/NamespaceItem/NamespaceItem.tsx +5 -1
  134. package/src/components/NamespaceItem/NamespaceItem.types.ts +3 -3
  135. package/src/components/Quote/Quote.tsx +0 -2
  136. package/src/components/Quote/Quote.types.ts +0 -2
  137. package/src/components/Quote/QuoteCostDetails.tsx +15 -4
  138. package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +4 -2
  139. package/src/components/SwapDetails/SwapDetails.tsx +17 -8
  140. package/src/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.tsx +12 -13
  141. package/src/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.tsx +8 -2
  142. package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +3 -3
  143. package/src/components/TokenList/LoadingTokenList.tsx +2 -2
  144. package/src/components/WalletStatefulConnect/DerivationPath.helpers.test.ts +98 -0
  145. package/src/components/WalletStatefulConnect/DerivationPath.helpers.ts +14 -10
  146. package/src/components/WalletStatefulConnect/DerivationPath.tsx +14 -7
  147. package/src/components/WalletStatefulConnect/Detached.tsx +17 -10
  148. package/src/components/WalletStatefulConnect/Detached.types.ts +2 -1
  149. package/src/components/WalletStatefulConnect/NamespaceDetachedItem.tsx +2 -1
  150. package/src/components/WalletStatefulConnect/Namespaces.tsx +6 -12
  151. package/src/components/WalletStatefulConnect/Namespaces.types.tsx +3 -3
  152. package/src/constants/errors.ts +3 -0
  153. package/src/containers/Wallets/Wallets.constants.ts +14 -0
  154. package/src/containers/Wallets/Wallets.helpers.test.ts +67 -0
  155. package/src/containers/Wallets/Wallets.helpers.ts +9 -9
  156. package/src/containers/Wallets/Wallets.tsx +20 -3
  157. package/src/containers/Wallets/Wallets.types.ts +7 -7
  158. package/src/containers/Wallets/useUpdates.ts +7 -117
  159. package/src/containers/WidgetProvider/WidgetProvider.helpers.ts +10 -0
  160. package/src/containers/WidgetProvider/WidgetProvider.tsx +12 -1
  161. package/src/containers/WidgetProvider/WidgetProvider.types.ts +1 -1
  162. package/src/hooks/useConnectWithLogging/index.ts +1 -0
  163. package/src/hooks/useConnectWithLogging/useConnectWithLogging.test.ts +138 -0
  164. package/src/hooks/useConnectWithLogging/useConnectWithLogging.ts +36 -0
  165. package/src/hooks/useStatefulConnect/useStatefulConnect.ts +36 -29
  166. package/src/hooks/useStatefulConnect/useStatefulConnect.types.ts +6 -3
  167. package/src/hooks/useWalletList.ts +10 -7
  168. package/src/hooks/useWalletProviders/useWalletProviders.helpers.ts +3 -10
  169. package/src/hooks/useWalletProviders/useWalletProviders.ts +2 -2
  170. package/src/index.ts +10 -11
  171. package/src/libs/connectLogging/connectLogging.constants.ts +17 -0
  172. package/src/libs/connectLogging/connectLogging.test.ts +918 -0
  173. package/src/libs/connectLogging/connectLogging.ts +359 -0
  174. package/src/libs/connectLogging/connectLogging.types.ts +70 -0
  175. package/src/libs/connectLogging/index.ts +5 -0
  176. package/src/pages/WalletsPage.tsx +1 -0
  177. package/src/store/AppStore.tsx +4 -2
  178. package/src/store/app.ts +7 -2
  179. package/src/store/slices/config.ts +36 -25
  180. package/src/store/slices/data.test.ts +2 -2
  181. package/src/test-utils/fixtures.ts +6 -2
  182. package/src/types/config.ts +31 -4
  183. package/src/types/wallets.ts +1 -1
  184. package/src/utils/common.ts +6 -0
  185. package/src/utils/errors.test.ts +78 -0
  186. package/src/utils/errors.ts +69 -0
  187. package/src/utils/providers.ts +16 -50
  188. package/src/utils/swap.ts +8 -1
  189. package/src/utils/wallets.ts +12 -15
  190. package/dist/widget-embedded.build.json +0 -1
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
- var vT=Object.defineProperty;var i=(t,e)=>vT(t,"name",{value:e,configurable:!0});import{EventSeverity as vee,RouteEventType as Eee,StepEventType as bee,StepExecutionBlockedEventStatus as xee,StepExecutionEventStatus as Iee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Nee}from"@rango-dev/wallets-core/legacy";import{useWallets as pT,Events as Pee}from"@rango-dev/wallets-react";import{Networks as Bee,WalletTypes as _ee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Dee}from"rango-types";import{Divider as zk}from"@rango-dev/ui";import mo,{useEffect as Hk,useRef as Qk,useState as kd}from"react";import{WalletState as ET}from"@rango-dev/ui";import{useWallets as bT}from"@rango-dev/wallets-react";import{useReducer as xT}from"react";function _p(t){return!!t.derivationPath}i(_p,"isStateOnDerivationPathStep");function Mp(t){return!!t.namespace}i(Mp,"isStateOnNamespace");var ei={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Dp(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"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return ei;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ei;default:throw new Error("Action hasn't been defined.")}}i(Dp,"reducer");function an(){let{state:t,disconnect:e,connect:o}=bT(),[n,r]=xT(Dp,ei),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d.type,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";if(h?.disconnectOnError)try{await u(d)}catch{console.warn("An error happened during disconnecting wallet after error on connecting.")}throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{let h=d.state===ET.DISCONNECTED,g=f?.forceConnectToNamespaces;if(h){let m=!!d.isHub,S=m?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,T=m?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(g){let y=g.find(k=>!S?.data?.map(w=>w.value).includes(k));if(y)throw new Error(`One of the forced namespaces is not available in the wallet. Forced namespace: ${y}`);if(g.length>1&&T)throw new Error("Derivation path is not supported when multiple namespaces are selected.");return g.length===1&&g[0]&&T?(r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:g[0]}}),{status:"derivation-path"}):await a(d,g.map(k=>({namespace:k})),{...f,disconnectOnError:!0})}if(!S?.data?.length)return await a(d,void 0,f);if(S?.data.length&&S.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(S?.data.length===1&&S.data[0]){if(T){let y=S.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d,S?.data?.map(y=>({namespace:y.value})),f)}}if(d.isHub&&!f?.forceConnectToNamespaces){let m=d.properties?.find(S=>S.name==="namespaces")?.value;if(m?.data.length&&m.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,S=g?.selection==="single",T=f[0];if(!T)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:T}}),{status:"derivation-path"};if(!Mp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let y=f.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:y??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f,h)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!_p(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=[{namespace:n.derivationPath.namespace,derivationPath:f}],T=!!d.isHub?d.properties?.find(w=>w.name==="namespaces")?.value:d.needsNamespace,y=!!T?.data&&T.data.length>1,k=!!h?.forceConnectToNamespaces;return y&&!k?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(d,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Wo(p)?(r({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:d=>{r(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(an,"useStatefulConnect");import{WalletState as yi}from"@rango-dev/ui";import{useWallets as $C}from"@rango-dev/wallets-react";import{detectMobileScreens as FC,WalletTypes as Mt}from"@rango-dev/wallets-shared";import{useCallback as OC,useEffect as Yu}from"react";import LC,{createContext as BC,useContext as _C,useEffect as MC,useRef as DC}from"react";import{create as WC}from"zustand";import{persist as PC}from"zustand/middleware";import{allProviders as IT}from"@rango-dev/provider-all";var ns=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()}},sn=new ns;import{Provider as rs}from"@hub3js/core";import{defineVersions as Fp,pickVersion as Op}from"@hub3js/core/utils";function Up({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=is(a);return s instanceof rs?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof rs?o.push(Fp().version("1.0.0",n).build()):o.push(Fp().version("0.0.0",n).build())}),o}return t}i(Up,"matchAndGenerateProviders");function is(t){try{return Op(t,"1.0.0")[1]}catch{return Op(t,"0.0.0")[1]}}i(is,"pickProviderVersionWithFallbackToLegacy");function zp(t){return t.map(o=>is(o)).map(o=>o instanceof rs?o.id:o.config.type)}i(zp,"configWalletsToWalletName");function Hp(t,e){return e.find(o=>o.name===t)?.displayName}i(Hp,"getBlockchainDisplayNameFor");function Tt(t,e){return e.find(o=>o.name===t)?.shortName}i(Tt,"getBlockchainShortNameFor");function Qp(t,e){return e.find(o=>o.name===t)?.logo}i(Qp,"getBlockchainImage");function Kn(t,e){return e.find(o=>o.id===t)?.title}i(Kn,"getSwapperDisplayName");function Po(t,e){return e.find(o=>o.name===t)??null}i(Po,"findBlockchain");function as(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(as,"isTokenNative");function Ct(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(Ct,"createTokenHash");function Lo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Lo,"isValidTokenAddress");function ti(t){let{contractAddress:e,blockchainMeta:o}=t;return o.info?.tokenUrl?o.info.tokenUrl.replace("{address}",e):o.info?.addressUrl.replace("{wallet}",e)}i(ti,"createTokenExplorerUrl");function jn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=Ct(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"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 c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=Ct(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(jn,"matchTokensFromConfigWithMeta");function oi(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(oi,"getSupportedBlockchainsFromConfig");function Gp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Gp,"makeProvidersOptionsFromConfig");var ln={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/assets/refs/heads/main/manifests/tonconnect/manifest.json"}},AT={clientUrl:void 0},NT={liquiditySources:void 0};function qp(t){let e=Gp(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return IT(o).map(a=>a())}i(qp,"generateProviders");var Vp=i((t,e,o)=>{let n=qp({...ln,...t});return{config:{...ln,...t},iframe:AT,campaignMode:NT,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:c}=o(),l=jn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=jn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});sn.set("supportedSourceTokens",l),sn.set("supportedDestinationTokens",p),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=qp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Gp(a);return Up({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Kp}from"rango-types";var jp=[Kp.EVM,Kp.SOLANA],ni="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as GT}from"rango-sdk";function Xp(){return process.env.REACT_APP_RANGO_API_KEY}i(Xp,"getApiKeyFromEnv");function Yp(){let t=Xp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}i(Yp,"getApiKeyFromEnvOrThrow");function Zp(){return Xp()||"NOT_SET"}i(Zp,"getApiKeyFromEnvOrNotSet");import{BlockchainCategories as DT,WalletState as ut}from"@rango-dev/ui";import{legacyReadAccountAddress as $T}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as FT,HYPERLIQUID_SIGN_NETWORK as OT,getBlockChainNameFromId as UT,isEvmAddress as zT,Networks as ds}from"@rango-dev/wallets-shared";import pn from"bignumber.js";import WT from"bignumber.js";var ue=new WT(0);var Bo="~",Jp=[];import{BlockchainCategories as ls,WalletState as MT}from"@rango-dev/ui";import{TransactionType as cs}from"rango-sdk";import{UI_ID as PT}from"@rango-dev/ui";var Rp="https://api.rango.exchange",eu="https://explorer.rango.exchange",kt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...PT};var tu="Roboto",ss=[{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 cn(t){return Array.from(new Set(t))}i(cn,"removeDuplicateFrom");function ri(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ri,"debounce");function pt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(pt,"containsText");function ru(t,e){return t.toLowerCase()===e.toLowerCase()}i(ru,"exactText");function iu(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(iu,"startWithText");var W=i(()=>document.getElementById(kt.SWAP_BOX_ID),"getContainer"),_o=i(()=>document.getElementById(kt.EXPANDED_BOX_ID),"getExpanded");function au(t,e,o){let n=!!e&&ru(e,t),r=!!o&&ru(o,t);return n!==r?n?-1:1:0}i(au,"compareExactMatchText");function ps(t,e,o){let n=!!e&&pt(e,t),r=!!o&&pt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ps,"compareContainsText");function us(t,e,o){let n=!!e&&iu(e,t),r=!!o&&iu(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(us,"compareStartWithText");function su(t,e,o){if(!o)return 0;let n=au(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=au(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=us(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ps(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=us(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ps(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=us(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ps(o,t.address,e.address);if(r!==0)return r}return 0}i(su,"compareWithSearchFor");var ii=i((t,e)=>{switch(e){case ls.ALL:return!0;case ls.UTXO:return t===cs.TRANSFER;case ls.OTHER:return t!==cs.TRANSFER&&t!==cs.EVM;default:return t===e}},"isBlockchainTypeInCategory"),lu=i(t=>ss.find(o=>o.value===t)?.url,"getFontUrlByName");function cu(t,e){let o=!!t.find(n=>n.state===MT.CONNECTED);return e===!1&&o}i(cu,"isSingleWalletActive");function pu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(pu,"memoizedResult");function uu(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(uu,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as Cu}from"bignumber.js";function du(t){return t.replace(/^0+(?=\d)/g,"")}i(du,"removeLeadingZeros");function mu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(mu,"ensureLeadingZeroForDecimal");function fu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(fu,"formatThousandsWithCommas");function gu(t){return t.replace(/\s+/g,"-")}i(gu,"replaceSpacesWithDash");function hu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(hu,"stripTrailingZeros");function yu(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}i(yu,"parseNumericValue");function ai(t){return/^0+(?:\.0+)?$/.test(t)}i(ai,"isZeroValue");function Su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Su,"isValidCurrencyFormat");function Tu(t){return/\d+$/.test(t)}i(Tu,"isColorKeyOverridden");var Xn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Cu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Cu(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 si=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var _t=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Yn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ku(t){return ai(t)?"0":t.endsWith(".")?t.slice(0,-1):hu(t)}i(ku,"sanitizeInputAmount");function HT(t,e){let o=t?.get("EVM");return o?.network?UT(o.network,e)??o.network:null}i(HT,"getConnectedEvmChainName");function Zn(t,e){return qT(t,e)?ut.PARTIALLY_CONNECTED:e.connected?ut.CONNECTED:e.connecting?ut.CONNECTING:e.installed?ut.DISCONNECTED:ut.NOT_INSTALLED}i(Zn,"getWalletConnectionStatus");function wu(t,e,o,n){return o.filter(r=>!Jp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,namespaces:l}=t(r);return s&&(!c||!!n&&HT(l,a)!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:f,isHub:h}=e(r),g=cn(u.map(S=>S.type)),m=Zn(e(r),t(r));return{title:a,image:s,link:FT(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(wu,"mapWalletTypesToWalletInfo");function Jn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Jn,"walletAndSupportedChainsNames");function fs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=$T(l),d=c.length>0,f=c.includes(u),h=u===ds.Unknown;if(d&&!f&&!h)return;let m=u===ds.Unknown&&zT(p);if(h&&!m)return;if(o.includes(u)||m)if(r)s(u,p.toLowerCase(),r);else{let T=c.filter(k=>o.includes(k));T.forEach(k=>{s(k,p.toLowerCase())}),T.includes(OT)&&s(ds.HYPERLIQUID,p.toLowerCase())}else s(u,p)}),a}i(fs,"prepareAccountsForWalletStore");function Mo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Mo,"getQuoteChains");function Rn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Rn,"isAccountAndWalletMatched");var vu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ms(n.usdValue,n.decimals):ue.toFixed();return o.plus(r)},new pn(ue));return QT(e.toString())},"calculateWalletUsdValue");function QT(t){let e=t.toString().split(".");return e[0]&&(e[0]=fu(e[0])),e.join(".")}i(QT,"numberWithThousandSeparator");function ms(t,e){return new pn(t).shiftedBy(-e).toFixed()}i(ms,"representAmountInNumber");function pi(t){if(!t)return null;let e=ms(t.amount,t.decimals),o=t.usdValue?ms(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(pi,"formatBalance");function Eu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new pn(t.usdValue).shiftedBy(-t.decimals):ue,n=e&&e.usdValue?new pn(e.usdValue).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new pn(t.amount).shiftedBy(-t.decimals):ue,n=e&&e.amount?new pn(e.amount).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Eu,"compareTokenBalance");function Vt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Vt,"areTokensEqual");function bu(t){return t.sort((e,o)=>+(o.state===ut.CONNECTED)-+(e.state===ut.CONNECTED)||+(o.state===ut.PARTIALLY_CONNECTED)-+(e.state===ut.PARTIALLY_CONNECTED)||+(o.state===ut.DISCONNECTED||o.state===ut.CONNECTING)-+(e.state===ut.DISCONNECTED||e.state===ut.CONNECTING))}i(bu,"sortWalletsBasedOnConnectionState");function po(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(po,"getConciseAddress");function xu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(xu,"getAddress");var Iu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function gs(t){return t.map(e=>e.state).join("-")}i(gs,"hashWalletsState");function Au(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(Au,"filterBlockchainsByWalletTypes");function Nu(t,e){return e===DT.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ii(n,e))return!0;return!1})}i(Nu,"filterWalletsByCategory");function qT(t,e){if(!t.isHub||!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e.namespaces?.get(r.value)?.connected)}i(qT,"checkIsWalletPartiallyConnected");var hs={API_KEY:Zp()};function Kt(t){return hs[t]||""}i(Kt,"getConfig");function Wu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),hs=e,hs}i(Wu,"initConfig");var Pu=20,Lu=25,ys="theme-widget",Ss=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Vt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Vt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),Ts=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Bu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ui,dt=i(()=>ui||(ui=new GT(Kt("API_KEY"),Kt("BASE_URL")),ui),"httpService");import{i18n as _u}from"@lingui/core";var di=[.5,1,3],mi=1,un=5,er=30,fi=0;var Je=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Je||{});var tr=(s=>(s.QUOTE_INPUT_UPDATE="quoteInputUpdate",s.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",s.ROUTE_REQUESTED="routeRequested",s.ROUTE_NOT_FOUND="routeNotFound",s.ROUTE_FETCH_FAILED="routeFetchFailed",s.ROUTE_CHANGED="routeChanged",s))(tr||{}),gi=(n=>(n.CONNECT="connect",n.DISCONNECT="disconnect",n.DETECTED="detected",n))(gi||{}),Re=(m=>(m.CLICK_CONNECT_WALLET="clickConnectWallet",m.TOKEN_SELECTED="tokenSelected",m.CHAIN_FILTER_APPLIED="chainFilterApplied",m.SETTINGS_CHANGED="settingsChanged",m.ROUTE_FEE_VIEWED="routeFeeViewed",m.DESTINATION_ADDRESS_SET="destinationAddressSet",m.GAS_WARNING_SHOWN="gasWarningShown",m.GAS_WARNING_BYPASSED="gasWarningBypassed",m.SWAP_INITIATED="swapInitiated",m.SWAP_WALLETS_MODAL_SHOWN="swapWalletsModalShown",m.SWAP_WALLETS_CONFIRMED="swapWalletsConfirmed",m.SWAP_STARTED="swapStarted",m.SWAP_RESUMED="swapResumed",m.SWAP_RETRIED="swapRetried",m.SWAP_CANCELLED="swapCancelled",m))(Re||{}),dn=(a=>(a.RouteEvent="routeEvent",a.StepEvent="stepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(dn||{});function hi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return cn(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(hi,"getUniqueSwappersGroups");function Mu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Mu,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}i(nt,"isFeatureHidden");function mn(t,e){return e?.[t]==="enabled"}i(mn,"isRoutingEnabled");var Du=i((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function fn(t){return t==fi?{type:"error",message:_u.t("Slippage must be greater than or equal to 0.01")}:t>un&&t<=er?{type:"warning",message:_u.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(fn,"getSlippageValidation");var $u=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 l=oi({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>jp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=sn.get(u);d?.length||(d=jn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),sn.set(u,d)),d=Du(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(pt(g.symbol,o.searchFor)||pt(g.address||"",o.searchFor)||pt(g.name||"",o.searchFor)):!0).sort((g,m)=>{let S=e().isTokenPinned(g,o.type),T=e().isTokenPinned(m,o.type);if(S!==T)return S?-1:1;if(o.getBalanceFor){let x=o.getBalanceFor(g),A=o.getBalanceFor(m),E=Eu(x,A);if(E!==0)return E}let y=l.get(g.blockchain),k=l.get(m.blockchain),w=as(g,y),v=as(m,k);if(w!==v)return w?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let x=su(g,m,o.searchFor);if(x)return x}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:y&&k?y.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=Ct(o),s=n.get(a);return s||(s=r.find(c=>Ct(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Vt(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(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Mu)},fetch:async()=>{try{let{routing:o}=e().config,n=mn("enableCentralizedSwappers",o),r=await dt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=r.popularTokens,p=r.swappers.filter(d=>d.enabled);r.blockchains.sort((d,f)=>d.sort-f.sort).forEach(d=>{d.enabled&&a.set(d.name,d)}),r.tokens.forEach(d=>{let f=Ct(d);c[d.blockchain]||(c[d.blockchain]=[]),s.set(f,d),c[d.blockchain]?.push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as VT,Catalonia as KT,Chinese as Fu,Denmark as jT,English as XT,Finland as YT,French as ZT,German as JT,Greece as RT,Hungary as eC,India as tC,Indonesian as oC,Italian as nC,Japanese as rC,Korea as iC,Lithuania as aC,Malay as sC,Netherlands as lC,Pakistan as cC,Philippines as pC,Poland as uC,Portuguese as dC,Russian as mC,SaudiArabia as fC,Serbia as gC,Slovakia as hC,SouthAfrica as yC,Spanish as SC,Swahili as TC,Swedish as CC,Thai as kC,Turkish as wC,Ukrainian as vC,Vietnamese as EC}from"@rango-dev/ui";var Ou=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:yC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:fC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:VT},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:KT},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Fu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Fu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:jT},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:lC},{title:"English",label:"English",local:"en",SVGFlag:XT},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:pC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:YT},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:ZT},{title:"German",label:"Deutsch",local:"de",SVGFlag:JT},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:RT},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:tC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:eC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:oC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:nC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:rC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:iC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:aC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:sC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:uC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:dC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:mC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:gC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:hC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:SC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:TC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:CC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:kC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:wC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:vC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:cC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:EC}],gn="en";var Uu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:mi,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))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=cn(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=nt("theme",n),s=nt("language",n),c=nt("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||gn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||gn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),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=oi({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import bs from"bignumber.js";import bC from"mitt";var ge=bC(),xC={on:ge.on,off:ge.off};var zu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import Hu from"bignumber.js";function jt(t){return`${t.blockchain}${Bo}${t.address}${Bo}${t.symbol}`}i(jt,"createAssetKey");function Qu(t,e){return`${jt(e)}${Bo}${t}`}i(Qu,"createBalanceKey");function or(t){let[e,o,n]=t.split(Bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(or,"extractAssetFromBalanceKey");function ks(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[jt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Hu(r??ue).multipliedBy(o[s].amount).toString():""})})}),o}i(ks,"computeNextBalancesWithNewPrices");function ws(t,e){let o={};return t.balances?.forEach(n=>{let r=Qu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Hu(c??ue).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(ws,"createBalanceStateForNewAccount");function vs(t,e){for(let o in e){let n=or(o);if(n){let r=jt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(vs,"updateAggregatedBalanceStateForNewAccount");function IC(t,e){let o=or(e);if(!o)return t;let n=jt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(IC,"removeBalanceFromAggregatedBalance");function Es(t,e,o){let n=t.connectedWallets.filter(l=>e.includes(l.walletType));t.connectedWallets.forEach(l=>{e.includes(l.walletType)||(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=or(l);if(!p)return;!!n.find(d=>Qu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=IC(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Es,"computeNextStateAfterWalletBalanceRemoval");function AC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(AC,"matchWalletDetailsWithConnectedWallet");var NC=pu(),qu=zu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Rn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Rn(s,a))?{...a,loading:!1,error:!1,explorerUrl:AC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Rn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Rn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(d=>d.walletType===u.walletType&&d.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await dt().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ks(m,g,d);let S=ws(g,e);f=vs(f,S),d={...d,...S}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r,a)=>{let s=o[0];s&&(ge.emit("walletEvent",{type:"connect",payload:{walletType:s.walletType,accounts:o,chain:s.chain??null,walletName:a?.walletName??s.walletType}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=Es(r,[o],n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(ge.emit("walletEvent",{type:"disconnect",payload:{walletType:o,walletName:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=[...new Set(o.map(l=>l.walletType))];e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await dt().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ks(f,d,l);let{_balances:h,_aggregatedBalances:g}=Es(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>r.includes(S.walletType)&&S.address===d.address&&S.chain===d.blockChain))return;let m=ws(d,e);p=vs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>{let h=e().connectedWallets.find(g=>g.chain===f.blockChain&&g.address)?.walletType;return h?{chain:f.blockChain,walletType:h,address:f.address}:null}).filter(f=>!!f);d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.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=jt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new bs(u.amount),f=new bs(l.amount);d.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>NC(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=or(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new bs(l.amount).shiftedBy(-l.decimals):ue;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Gu(t){return WC()(PC((...e)=>({...qu(...e),...$u(...e),...Uu(...e),...Vp(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,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Gu,"createAppStore");var Vu=BC(null);function C(){let t=_C(Vu);if(MC(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(C,"useAppStore");function Ku(t){let e=DC();return e.current||(e.current=Gu(t.config)),LC.createElement(Vu.Provider,{value:e.current},t.children)}i(Ku,"AppStoreProvider");function te(t){ge.emit("uiEvent",t)}i(te,"emitUiEvent");function ju(t,e){let o=!1,n={...t.payload,preventDefault(){o=!0}};te({type:t.type,payload:n}),o||e()}i(ju,"emitPreventableEvent");function hn(t){ge.emit("quoteEvent",t)}i(hn,"emitQuoteEvent");function Xu(t){ge.emit("walletEvent",{type:"detected",payload:t})}i(Xu,"emitWalletDetected");var Zu=new Set,UC=new Set([Mt.LEDGER,Mt.TREZOR,Mt.WALLET_CONNECT_2,Mt.TON_CONNECT,Mt.DEFAULT]);function bt(t){let{chain:e}=t||{},{getAvailableProviders:o}=C(),{state:n,getWalletInfo:r}=$C(),{handleDisconnect:a}=an(),s=zp(o()),c=wu(n,r,s,e);c=FC()?c.filter(f=>f.showOnMobile!==!1&&n(f.type).installed):c;let l=bu(c);Yu(()=>{c.forEach(f=>{if(UC.has(f.type))return;f.state!==yi.NOT_INSTALLED&&!Zu.has(f.type)&&(Zu.add(f.type),Xu({walletName:f.title}))})},[gs(c)]);let p=OC(()=>{let f=c?.filter(h=>h.state===yi.CONNECTING)||[];for(let h of f)a(h)},[gs(c)]);Yu(()=>()=>{p()},[]);let u=i(f=>{let h=f.find(m=>m.type===Mt.DEFAULT);return!h||h.state===yi.NOT_INSTALLED?!1:f.filter(m=>m.state!=yi.NOT_INSTALLED&&![Mt.DEFAULT,Mt.WALLET_CONNECT_2,Mt.LEDGER].includes(m.type)&&r(m.type).supportedChains.filter(S=>S.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i(f=>f==Mt.DEFAULT&&!u(c),"shouldExcludeWallet");return{list:l.filter(f=>!d(f.type)),terminateConnectingWallets:p}}i(bt,"useWalletList");import{Modal as qC}from"@rango-dev/ui";import GC from"react";import{create as QC}from"zustand";var Ju="rango-widget";var nr=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(Ju),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 HC=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"),uo=HC;var ne=uo(QC()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!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})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),$o=new nr({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});function re(t){let{watermark:e}=ne();return GC.createElement(qC,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import{i18n as Tn}from"@lingui/core";import{Alert as ik,Button as ak,Divider as Cn,Image as sk,MessageBox as lk,RadioRoot as ck,WalletImageContainer as pk}from"@rango-dev/ui";import le,{useEffect as uk,useMemo as dk,useState as mk}from"react";import{i18n as XC}from"@lingui/core";import{Typography as ad}from"@rango-dev/ui";import yn from"react";function Si(t,e){return t.find(o=>o.name===e)?.logo}i(Si,"getBlockchainLogo");import{darkTheme as VC,Image as KC,styled as Xt,Typography as jC}from"@rango-dev/ui";var Ti=Xt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${VC} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),Ci=Xt("div",{display:"flex",gap:"$8",alignItems:"center"}),ed=Xt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),td=Xt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),od=Xt("div",{display:"flex",gap:"$6",alignItems:"center"}),nd=Xt("div",{paddingLeft:"48px"}),rd=Xt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),id=Xt(jC,{maxWidth:"100px"}),ki=Xt(KC,{variants:{disabled:{true:{opacity:"0.5"}}}});function wi(t){let{namespace:e}=t,o=C().blockchains();return yn.createElement(Ti,{unsupported:!0},yn.createElement(Ci,null,yn.createElement(ki,{src:Si(o,e.id),size:40,disabled:!0}),yn.createElement(td,null,yn.createElement(ad,{variant:"label",size:"large"},e.label),yn.createElement(ad,{variant:"body",size:"xsmall"},XC.t("(Currently not supported)")))))}i(wi,"NamespaceUnsupportedItem");import{Checkbox as ok,Radio as nk}from"@rango-dev/ui";import Ns from"react";import{i18n as As}from"@lingui/core";import{ChevronDownIcon as ZC,ChevronUpIcon as JC,Divider as RC,Typography as rr}from"@rango-dev/ui";import Ne,{useEffect as ek,useState as tk}from"react";import{Image as ld,Tooltip as cd,Typography as YC}from"@rango-dev/ui";import Dt from"react";import{styled as sd}from"@rango-dev/ui";var xs=sd("div",{display:"flex",alignItems:"center",padding:0,margin:0}),vi=sd("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Is=3;function pd(t){let{chains:e}=t;return Dt.createElement(xs,{id:"widget-supported-chains-container"},e.slice(0,Is).map((o,n)=>Dt.createElement(cd,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},Dt.createElement(vi,{firstItem:n===0},Dt.createElement(ld,{src:o.logo,size:15})))),e.length>Is&&Dt.createElement(cd,{container:W(),side:"bottom",align:"start",sideOffset:4,content:Dt.createElement(xs,null,e.map((o,n)=>Dt.createElement(vi,{key:o.name,firstItem:n===0},Dt.createElement(ld,{src:o.logo,size:15}))))},Dt.createElement(vi,null,Dt.createElement(YC,{variant:"body",size:"xsmall"},"+",e.length-Is))))}i(pd,"SupportedChainsList");function Fo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=tk(!1),p=C().blockchains();ek(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(Ti,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(Ci,null,Ne.createElement(ki,{src:Si(p,e.id),size:40}),Ne.createElement(ed,{showSupportedChains:d||r||!!o},Ne.createElement(od,null,Ne.createElement(rr,{variant:"label",size:"large"},e.label),r&&Ne.createElement(rr,{variant:"body",size:"small",color:"success500"},As.t("Connected")),!!o&&Ne.createElement(rr,{variant:"body",size:"small",color:"error500"},As.t("Connection failed"))),d&&Ne.createElement(pd,{chains:u}),r&&Ne.createElement(id,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(rd,{onClick:()=>l(f=>!f)},Ne.createElement(rr,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},As.t("See why")),c?Ne.createElement(JC,{size:12,color:"gray"}):Ne.createElement(ZC,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(RC,{size:4}),Ne.createElement(nd,null,Ne.createElement(rr,{variant:"body",size:"small",color:"neutral700"},o))))}i(Fo,"NamespaceItem");function ud(t){let{onClick:e,type:o,namespace:n}=t;return Ns.createElement(Fo,{namespace:n,onClick:e,suffix:o==="radio"?Ns.createElement(nk,{value:n.value}):Ns.createElement(ok,{checked:t.value})})}i(ud,"NamespaceListItem");import{Button as rk,styled as dd}from"@rango-dev/ui";var Ei=dd("ul",{padding:0,paddingBottom:"$20",margin:0}),Sn=dd(rk,{minHeight:"$40"});function ir(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=C().blockchains(),[l,p]=mk([]),u=dk(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:S=>S.includes(m)?S.filter(T=>T!==m):S.concat(m))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),g=i(m=>r?le.createElement(ck,{value:l?.[0]},m):le.createElement(le.Fragment,null,m),"wrapRadioRoot");return uk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(S=>S.getSupportedChains(c).some(T=>t.value.defaultSelectedChains?.includes(T.name)));p(m.map(S=>S.value))}else p(u.map(m=>m.value))},[]),le.createElement(le.Fragment,null,le.createElement(lk,{type:"info",title:Tn.t("Connect {wallet}",{wallet:e.title}),description:Tn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:le.createElement(pk,null,le.createElement(sk,{src:s,size:45}))}),r?le.createElement(le.Fragment,null,le.createElement(Cn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),le.createElement(ik,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:Tn.t("This wallet can only connect to one chain at a time. ")}),le.createElement(Cn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):le.createElement(le.Fragment,null,le.createElement(Cn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),le.createElement(ak,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?Tn.t("Deselect all"):Tn.t("Select all")),le.createElement(Cn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),le.createElement(Ei,null,g(le.createElement(le.Fragment,null,a?.data.map((m,S,T)=>le.createElement(le.Fragment,{key:m.id},m.unsupported?le.createElement(wi,{namespace:m}):le.createElement(ud,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),S!==T.length-1&&le.createElement(Cn,{size:10})))))),le.createElement(Cn,{size:20}),le.createElement(Sn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},Tn.t("Connect")))}i(ir,"Namespaces");import{i18n as ar}from"@lingui/core";import{Alert as Ck,Button as kk,Divider as kn,Image as wk,MessageBox as vk,WalletImageContainer as Ek}from"@rango-dev/ui";import{useWallets as bk}from"@rango-dev/wallets-react";import me from"react";import{styled as fk}from"@rango-dev/ui";var md=fk("div",{display:"flex",justifyContent:"end"});import{i18n as Ws}from"@lingui/core";import{Button as gk,Spinner as hk}from"@rango-dev/ui";import Ps,{useLayoutEffect as yk,useRef as Sk,useState as Tk}from"react";function fd(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=Tk(null),p=Sk(!1);yk(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(m){l(m)}finally{p.current=!1}},"handleConnectNamespace"),d=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),m=g?.[g.length-1];return!r.connected||!m?null:po(m)},"getConnectedAddress"),h=i(()=>r.connected?Ws.t("Disconnect"):c?Ws.t("Try again"):Ws.t("Connect"),"getButtonText");return Ps.createElement(Fo,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?Ps.createElement(hk,{color:"info"}):Ps.createElement(gk,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(fd,"NamespaceDetachedItem");function sr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=ar.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=bk(),d=c.type,f=u(d),h=c.properties?.find(w=>w.name==="namespaces"),g=c.properties?.find(w=>w.name==="derivationPath"),m=h?.value.selection==="single",S=i(async(w,v)=>{m&&await p(d),g&&v?.shouldAskForDerivationPath?s(w):await l(d,[{namespace:w,network:"",derivationPath:v?.derivationPath??void 0}])},"handleConnectNamespace"),T=i(async w=>{await p(d,[w])},"handleDisconnectNamespace"),y=i(()=>m?me.createElement(me.Fragment,null,me.createElement(kn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),me.createElement(Ck,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:ar.t("This wallet can only connect to one chain at a time.")}),me.createElement(kn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):me.createElement(me.Fragment,null,me.createElement(kn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),me.createElement(md,null,me.createElement(kk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},ar.t("Disconnect wallet"))),me.createElement(kn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),k=i(w=>{if(w.unsupported)return me.createElement(wi,{namespace:w});let v=o?.find(E=>E.namespace===w.value),x=f.namespaces?.get(w.value);if(!x)throw new Error(`State for ${w.value} was not found!`);let A=m&&f.connecting;return me.createElement(fd,{namespace:w,initialConnect:!!v,disabled:A,state:x,handleConnect:async E=>S(w.value,{derivationPath:v?.derivationPath,shouldAskForDerivationPath:E?.shouldAskForDerivationPath}),handleDisconnect:async()=>T(w.value)})},"renderNamespaceItem");return me.createElement(me.Fragment,null,me.createElement(vk,{type:"info",title:ar.t("Connect {wallet}",{wallet:c.title}),description:ar.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:me.createElement(Ek,null,me.createElement(wk,{src:c.image,size:45}))}),y(),me.createElement(Ei,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((w,v,x)=>me.createElement(me.Fragment,{key:w.id},k(w),v!==x.length-1&&me.createElement(kn,{size:10})))),me.createElement(kn,{size:20}),me.createElement(Sn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(sr,"Detached");import{i18n as wn}from"@lingui/core";import{Divider as Nk,Image as Wk,MessageBox as Pk,Select as Lk,TextField as Bk}from"@rango-dev/ui";import xt,{useEffect as _k,useState as hd}from"react";import{namespaces as xk}from"@rango-dev/wallets-shared";var bi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ls(t){let e=t?xk[t]?.derivationPaths:null;return e?[...e,bi]:[]}i(Ls,"getDerivationPaths");import{Button as Ik,styled as Bs,Typography as Ak}from"@rango-dev/ui";var gd=Bs("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),_s=Bs(Ak,{paddingLeft:"$10"}),Ms={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},R_=Bs(Ik,{minHeight:"$40"});var yd="0";function lr(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=hd(null),[c,l]=hd(yd),p=a===bi.id,u=Ls(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===bi.id&&Number.isNaN(Number(c))&&l(yd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return _k(()=>{s(Ls(o)[0]?.id||null)},[o]),xt.createElement(xt.Fragment,null,xt.createElement(Pk,{type:"info",title:wn.t("Select Derivation Path"),description:wn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:xt.createElement(Wk,{src:n,size:45})}),xt.createElement(gd,{className:"_derivation_path_inputs_container"},xt.createElement(_s,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},wn.t("Choose Derivation Path Template")),xt.createElement(Lk,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ms}}),xt.createElement(Nk,{size:20}),xt.createElement(_s,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?wn.t("Enter Path"):wn.t("Enter Index")),xt.createElement(Bk,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ms})),xt.createElement(Sn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},wn.t("Confirm")))}i(lr,"DerivationPath");import{i18n as vn}from"@lingui/core";import{Image as $k,MessageBox as $s,WalletImageContainer as Fk,WalletState as Ok}from"@rango-dev/ui";import{useWallets as Uk}from"@rango-dev/wallets-react";import Oo from"react";import{keyframes as Mk,styled as Ds}from"@rango-dev/ui";var pM=Ds("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Sd=Ds("div",{position:"relative"}),Dk=Mk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Td=Ds("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Dk} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Fs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=Uk();return Zn(s(n),a(n))===Ok.CONNECTED?Oo.createElement($s,{type:"success",title:vn.t("Wallet Connected"),description:vn.t("Your wallet is connected, you can use it to swap.")}):o?Oo.createElement($s,{type:"error",title:vn.t("Failed to Connect"),description:o||vn.t("Your wallet is not connected. Please try again.")}):Oo.createElement($s,{type:"loading",title:vn.t("Connecting to your wallet"),description:vn.t("Click connect in your wallet popup."),icon:Oo.createElement(Sd,null,Oo.createElement(Fk,null,Oo.createElement($k,{src:r,size:45})),Oo.createElement(Td,null))})}i(Fs,"ConnectStatus");function Cd(t,e){return t().status==="init"&&!!e}i(Cd,"isOnStatus");function cr(t){return t().status==="namespace"}i(cr,"isOnNamespace");function pr(t){return t().status==="derivationPath"}i(pr,"isOnDerivationPath");function Wo(t){return t().status==="detached"}i(Wo,"isOnDetached");var qk=3e3,Gk=300;function ur(t){let e=Qk(),[o,n]=kd(!1),[r,a]=kd(),s=i(v=>{a(v.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=bt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=an(),g=i(v=>{u(t.wallet,v).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{T()},"handleDetachedConfirm"),S=i(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,v).then(k).catch(s)},"handleDerivationPathConfirm"),T=i(()=>{n(!1)},"handleClosingModal"),y=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((v,x)=>{let A=v.status==="connected",E=["disconnected","disconnected-unhandled"].includes(v.status);A?(t.onConnect?.(),x||(e.current=setTimeout(T,qk))):E&&T()},"afterConnected"),w=i(v=>{t.wallet?.needsDerivationPath&&u(t.wallet,[v])},"handleNavigateToDerivationPath");return Hk(()=>{if(t.wallet){y();let v=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,v||n(!0)},Gk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(E=>{["namespace","Detached","derivation-path"].includes(E.status)||(v=!0),k(E,x)}).catch(s)}},[t.wallet]),mo.createElement(re,{id:t.id,open:o,onClose:T,onExit:()=>{y(),c(),t.onClose&&t.onClose()},container:W()},Cd(d,t.wallet)&&mo.createElement(mo.Fragment,null,mo.createElement(Fs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),mo.createElement(zk,{direction:"vertical",size:32})),cr(d)&&mo.createElement(ir,{onConfirm:g,value:d().namespace}),pr(d)&&mo.createElement(lr,{onConfirm:S,value:d().derivationPath}),Wo(d)&&mo.createElement(sr,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:w}))}i(ur,"StatefulConnectModal");import es from"react";import Vk,{Fragment as Kk}from"react";import{MemoryRouter as jk,useInRouterContext as Xk}from"react-router";function xi({children:t}){let o=Xk()?Kk:jk;return Vk.createElement(o,null,t)}i(xi,"AppRouter");import{I18nManager as Q0}from"@rango-dev/ui";import Np from"react";import ze from"react";import{useRoutes as k0}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 bn,useRef as Bi}from"react";import at from"bignumber.js";import{create as em}from"zustand";import{subscribeWithSelector as tm}from"zustand/middleware";import{createContext as Yk,useContext as Zk}from"react";var wd=Yk({swapMode:"swap",isMultiMode:!1});function rt(){let{swapMode:t,isMultiMode:e}=Zk(wd);return{swapMode:t,isMultiMode:e}}i(rt,"useSwapMode");import{i18n as wt}from"@lingui/core";import{getRelatedWalletOrNull as ew,RouteEventType as kD}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as dr}from"rango-types";import{i18n as qe}from"@lingui/core";var ie=i(()=>({genericServerError:qe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:qe.t("Please reset your liquidity sources."),description:qe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:qe.t("No Routes Found."),description:qe.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:qe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:qe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:qe.t("High Price Impact"),title:qe.t("Price impact is too high!"),description:qe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:qe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:qe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:qe.t("USD Price Unknown"),title:qe.t("USD Price Unknown, Cannot calculate Price Impact."),description:qe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:qe.t("Confirm USD Price Unknown")}}),"errorMessages");function vd(t){return t.type===0?t.diagnosisMessage??ie().noResultError.title:t.type===1?t.diagnosisMessage??ie().genericServerError:""}i(vd,"getQuoteErrorMessage");import{i18n as Ii}from"@lingui/core";var Uo=i(()=>({connectWallet:Ii.t("Connect Wallet"),swap:Ii.t("Swap"),swapAnyway:Ii.t("Swap anyway"),ethWarning:Ii.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Os(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(Os,"getFeeLabel");var Us=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Ed=100,bd=30,xd=15,Id=60;var Ad=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Nd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Rk}from"@rango-dev/queue-manager-rango-preset";import sD from"bignumber.js";function Pd(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(Pd,"getRequiredBalanceOfWallet");function Zt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Zt,"getPriceImpactLevel");function Ai(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Rk(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=Po(a?a.toBlockchain:n.fromBlockchain,e),l=Po(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(Ai,"createRetryQuote");function En(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=zo(o),s=it(o);if(o&&a&&s){let p=Yt(a.toString(),s.toString());if(!!p&&Dd(a,p)){let d=Wi(o?.swaps,n),f=Zt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Od(e,o))return{type:4,usdValueChange:M(it(o)?.minus(it(e)??0).toString()??"0",null,2),percentageChange:M(Yt(it(e)??"1",it(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Pi(o.swaps),l=r>un;if(Fd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:$d(o,r),minRequiredSlippage:c};return null}i(En,"generateQuoteWarnings");function Ld(t){return![4].includes(t.type)}i(Ld,"isQuoteWarningConfirmationRequired");function Yt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:zs(t.toString(),e.toString());return n&&n<0?n:null}i(Yt,"getPriceImpact");var Bd=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"),Ni=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),_d=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Md=i(t=>{let e=i((o,n)=>{let r=Us.indexOf(o.value),a=Us.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Dd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Ad.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ge(r)))}i(Dd,"hasHighValueLoss");function Ud(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(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(Ud,"hasLimitError");function zd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=wt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=wt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=wt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=wt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(zd,"getLimitErrorMessage");function Hd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Uo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Uo().swap,action:"confirm-swap",disabled:!0}:s?{title:Uo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{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(Hd,"getSwapButtonState");function Hs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ue))&&e&&e!=="0"&&n!==0)}i(Hs,"canComputePriceImpact");function Qs(t,e){let o=ue;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ge(r.amount).multipliedBy(a||0))}return o}i(Qs,"getUsdFeeOfStep");function Wi(t,e){return t.reduce((o,n)=>o.plus(Qs(n,e)),ue)}i(Wi,"getTotalFeeInUsd");function qs(t){let e=ue,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(qs,"getUsdFee");function Qd(t){return t.reduce((e,o)=>e.plus(qs(o)),ue)}i(Qd,"getTotalFeesInUsd");function qd(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(qd,"getFeesGroup");function Gd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(Gd,"checkSlippageErrors");function $d(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?Object.fromEntries(o):null}i($d,"checkSlippageWarnings");function Pi(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(Pi,"getMinRequiredSlippage");function Fd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Fd,"hasProperSlippage");function Vd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((y,k)=>(y[k.chain]=k.address,y),{}),S=[];return r?.forEach(y=>{S.push({blockchain:y.chain,addresses:[y.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(y=>!s.includes(y)),swappersGroupsExclude:!1}}}i(Vd,"createQuoteRequestBody");function Kd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Kd,"getWalletsForNewSwap");function zo(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(zo,"getUsdInputFrom");function it(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(it,"getUsdOutputFrom");function zs(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(Ed).toNumber()}i(zs,"getPercentageChange");function Od(t,e){let o=zo(t),n=it(t),r=it(e);if(!o||!n||!r)return!1;let a=zs(n.toString(),r.toString());return Nd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Od,"isOutputAmountChangedExcessively");function jd(t,e,o){let n=t.validationStatus,r=Mo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Pd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=M(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=M(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=wt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=wt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=wt.t(" for input and network fee")),wt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:Tt(s.asset.blockchain,o)}})})}i(jd,"generateBalanceWarnings");function mr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==dr.NetworkChanged}i(mr,"isNetworkStatusInWarningState");function Xd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),mr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?ew(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case dr.WaitingForConnectingWallet:r=u?wt.t("Connect {wallet}",{wallet:u}):r;break;case dr.WaitingForQueue:r=r||wt.t("Waiting for other running tasks to be finished");break;case dr.WaitingForNetworkChange:r=r||wt.t("Waiting for changing wallet network");break;case dr.NetworkChangeFailed:r=r||wt.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Xd,"getSwapMessages");function Yd(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(Yd,"getLastConvertedTokenInFailedSwap");function Zd(t){return t.status==="failed"}i(Zd,"shouldRetrySwap");function Jd(t,e,o,n,r,a){if(!n||t)return!0;let s=Mo({filter:"all",quote:n}),c=Mo({filter:"required",quote:n}),l=s.every(d=>r.some(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?Lo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Jd,"isConfirmSwapDisabled");function Rd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Rd,"isTokensIdentical");var Li=i((t,e)=>t?.usdPrice?new at(e||ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),om=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new at(0),outputUsdValue:new at(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ue,a=o.inputUsdValue;return Yn(o.inputAmount)?(e&&(n=e?.outputAmount?new at(e?.outputAmount):null,a=zo(e)??ue,r=it(e)??ue),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new at(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new at(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new at(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:Li(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 at(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=ku(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=yu(e);ai(e)||(o=du(o),o=mu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new at(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Li(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Li(n??null,s),outputUsdValue:new at(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Li(e.toToken,e.outputAmount?.toString()||""):new at(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new at(0),inputUsdValue:new at(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new at(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})}),"initializer"),nm=em()(tm(om)),rm=em()(tm(om)),tw=uo(nm),ow=uo(rm);function z(){let{swapMode:t}=rt();return uo(t==="refuel"?rm:nm)}i(z,"useQuoteStore");var im=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ge.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&&ge.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})},"subscribeCallback"),am=tw.subscribe(im),sm=ow.subscribe(im);function lm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=C().config,d=C().fetchStatus,f=C().blockchains(),{findToken:h}=C(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:S}=C(),T=u?.from?.tokens,y=u?.from?.blockchains,k=u?.to?.tokens,w=u?.to?.blockchains,v=Bi(void 0),x=Bi(void 0),A=Bi(void 0),E=Bi(void 0);bn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),bn(()=>{if(d==="success"){r();let I=f.find(N=>N.name===u?.from?.blockchain),b=u?.from?.token,L=b&&h(b);(I||!I&&A.current)&&n(I??null),L?a({token:L,meta:{blockchains:f}}):!L&&v.current&&a({token:null}),A.current=u?.from?.blockchain,v.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),bn(()=>{Ss(s,T)&&a({token:null}),Ts(l,y)&&n(null)},[T,y]),bn(()=>{Ss(c,k)&&a({token:null}),Ts(p,w)&&o(null)},[k,w]),bn(()=>{if(d==="success"){r();let I=f.find(N=>N.name===u?.to?.blockchain),b=u?.to?.token,L=b&&h(b);(I||!I&&E.current)&&o(I??null),L?e({token:L,meta:{blockchains:f}}):!L&&x.current&&e({token:null}),E.current=u?.to?.blockchain,x.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),bn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(lm,"useSyncStoresWithConfig");import{useEffect as Ks,useRef as nw}from"react";import{useInRouterContext as rw,useLocation as iw,useSearchParams as aw}from"react-router-dom";function Gs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Gs,"convertTokenSearchParamToAsset");function Vs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vs,"tokenToSearchParam");function Xs(){let t=iw(),[e,o]=aw(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=z()(),h=C().fetchStatus,g=C().blockchains(),m=rw(),{updateIframe:S,updateCampaignMode:T}=C(),y=C().isInCampaignMode(),k=nw(),{findToken:w}=C(),v=i(()=>{let A={};for(let[P,Z]of e.entries())(P.startsWith("utm_")||P.startsWith("privy_"))&&(A[P]=Z);let E=e.get("fromAmount"),I=e.get("fromBlockchain"),b=e.get("fromToken"),L=e.get("toBlockchain"),N=e.get("toToken"),O=e.get("autoConnect"),q=e.get("clientUrl"),j=e.get("liquiditySources"),ee=e.get("blockchain");return{fromAmount:E,fromBlockchain:I,fromToken:b,toBlockchain:L,toToken:N,autoConnect:O,clientUrl:q,liquiditySources:j,extraQueryParams:A,blockchain:ee}},"getUrlSearchParams"),x=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");Ks(()=>{let{autoConnect:A,clientUrl:E,extraQueryParams:I,blockchain:b}=v();m&&h==="success"&&x({fromBlockchain:n?.name,fromToken:Vs(a),toBlockchain:r?.name,toToken:Vs(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:b??void 0,liquiditySources:y?k.current:void 0,...I})},[t.pathname,c,n,a,r,s,y,h]),Ks(()=>{if(!m)return;let A=v();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&f(A.fromAmount),h==="success"){let E=g.find(q=>q.name===A.fromBlockchain),I=A.fromToken&&E&&Gs(A.fromToken,E),b=I?w(I):void 0,L=g.find(q=>q.name===A.toBlockchain),N=A.toToken&&L&&Gs(A.toToken,L),O=N?w(N):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:g}})),L&&(p(L),O&&d({token:O,meta:{blockchains:g}}))}},[h]),Ks(()=>{let{clientUrl:A,liquiditySources:E}=v();S("clientUrl",A||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Xs,"useSyncUrlAndStore");import{i18n as An}from"@lingui/core";import{Alert as Iv,Button as Av,darkTheme as Nv,Divider as bl,DoneIcon as Wv,styled as Pv,TextField as Lv,Typography as Bv}from"@rango-dev/ui";import Ke,{useState as _v}from"react";import{useNavigate as Mv,useSearchParams as Dv}from"react-router-dom";import{ChevronRightIcon as sw,Divider as mm,Image as lw,Typography as fm}from"@rango-dev/ui";import It from"react";import{darkTheme as cm,styled as Ys}from"@rango-dev/ui";var pm=Ys("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${cm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${cm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),um=Ys("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),dm=Ys("div",{display:"flex"});function Zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return It.createElement(um,null,It.createElement(fm,{size:"large",variant:"label"},n),It.createElement(mm,{size:10}),It.createElement(pm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},It.createElement(dm,null,r&&It.createElement(It.Fragment,null,It.createElement(lw,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),It.createElement(mm,{size:4,direction:"horizontal"})),It.createElement(fm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),It.createElement(sw,{size:12,color:"black"})))}i(Zs,"BlockchainSelectorButton");import{i18n as tl}from"@lingui/core";import{Button as hw,Divider as Tm,MessageBox as yw}from"@rango-dev/ui";import fo,{useEffect as Cm,useState as ol}from"react";import{i18n as _i}from"@lingui/core";import{Divider as Ho,ExternalLinkIcon as uw,Image as dw,InfoIcon as mw,Tooltip as fw,Typography as gr}from"@rango-dev/ui";import fe from"react";var gm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";import{Button as cw,darkTheme as xn,styled as fr,Typography as pw}from"@rango-dev/ui";var Js=fr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${xn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${xn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${xn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${xn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),hm=fr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${xn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${xn} &`]:{color:"$colors$neutral900"}}}),Rs=fr(cw,{minHeight:"$40"}),ym=fr(pw,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),Sm=fr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var gw=9;function el(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=n.address?ti({contractAddress:n.address,blockchainMeta:s}):void 0,l=i(()=>window.open(gm,"_blank"),"onClickLearnMore");return fe.createElement(re,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:W()},fe.createElement(hm,null,fe.createElement(dw,{src:n.image===""?ni:n.image,size:45,type:"circular"}),fe.createElement(Ho,{size:4}),fe.createElement(Sm,null,fe.createElement(ym,{variant:"title",size:"medium"},n.symbol),n.symbol.length>gw&&fe.createElement(fw,{content:n.symbol,container:W()},fe.createElement(mw,{size:12,color:"gray"}))),fe.createElement(gr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),fe.createElement(Ho,{size:4}),fe.createElement(gr,{variant:"body",size:"medium"},c?fe.createElement(Js,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,fe.createElement(uw,{size:12,color:"gray"})):fe.createElement(Js,null,n.address)),fe.createElement(Ho,{size:4}),n.coinSource&&fe.createElement(gr,{className:"_coin-source",variant:"body",size:"xsmall"},_i.t("via")," ",fe.createElement(gr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),fe.createElement(Ho,{size:"32"}),fe.createElement(gr,{size:"medium",variant:"body",className:"_custom-token-description"},_i.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),fe.createElement(Ho,{size:40}),fe.createElement(Ho,{size:10}),fe.createElement(Rs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},_i.t("Import Anyway")),fe.createElement(Ho,{size:10}),fe.createElement(Rs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},_i.t("Learn More")))}i(el,"CustomTokenModal");function hr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=C(),[d,f]=ol(!1),[h,g]=ol(!1),[m,S]=ol(!1),T=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),y=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),k=i(()=>{S(!0),y()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(S(!1),T()),l()},"handleExit"),v=i(()=>{e&&(u(e),c())},"handleSubmit");return Cm(()=>{n&&f(!0)},[n]),Cm(()=>{o&&e&&g(!0)},[o,e]),fo.createElement(fo.Fragment,null,fo.createElement(re,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:y,onExit:w,container:W()},fo.createElement(yw,{title:n?.title??"",type:"error",description:n?.message||tl.t("Failed Network, Please retry.")},fo.createElement(Tm,{size:40}),fo.createElement(Tm,{size:10}),fo.createElement(hw,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?tl.t("Retry"):tl.t("Add another custom token")))),o&&e&&fo.createElement(el,{blockchain:o,token:e,onSubmitClick:v,onClose:()=>g(!1),open:h,onExit:p}))}i(hr,"ImportCustomToken");import{useManager as kv}from"@rango-dev/queue-manager-react";import{BottomLogo as wv,Divider as ef,Header as vv}from"@rango-dev/ui";import Pe,{useEffect as qi,useLayoutEffect as Ev,useRef as tf,useState as of}from"react";import{useRef as Sw}from"react";function Mi(){return window.self!==window.top}i(Mi,"isAppLoadedIntoIframe");function nl(){let t=Sw(null),{iframe:e}=C(),o=Mi()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(nl,"useIframe");import{useNavigate as Tw}from"react-router-dom";function Ve(){let t=Tw();return()=>t(-1)}i(Ve,"useNavigateBack");import{createTheme as pl,darkTheme as Lw,lightTheme as Bw}from"@rango-dev/ui";import{useEffect as _w,useState as Mw}from"react";import{theme as Ww,darkColors as Pw}from"@rango-dev/ui";import ll from"react";var Di=16,$i=255,km=.11;function Cw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Cw,"expandShortHexColor");function kw(t,e){return t.padStart(e,"0")}i(kw,"pad");function rl(t){let e=Math.min(Math.max(Math.round(t),0),$i);return kw(e.toString(Di),2)}i(rl,"intToHex");function ww(t){return`#${rl(t.red)}${rl(t.green)}${rl(t.blue)}`}i(ww,"rgbToHex");function vw(t){let e=parseInt(t.slice(1,3),Di),o=parseInt(t.slice(3,5),Di),n=parseInt(t.slice(5,7),Di);return{red:e,green:o,blue:n}}i(vw,"hexToRGB");function Ew(t,e){let o=1-km*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Ew,"generateShade");function bw(t,e){let o=km*e;return{red:t.red+($i-t.red)*o,green:t.green+($i-t.green)*o,blue:t.blue+($i-t.blue)*o}}i(bw,"generateTint");function xw(t){return wm(t,Ew)}i(xw,"calculateShades");function Iw(t){return wm(t,bw)}i(Iw,"calculateTints");function wm(t,e){let o=vw(t),n=[];for(let r=1;r<9;r++)n.push(ww(e(o,r)));return n}i(wm,"calculateColors");function il(t,e,o){let a=Iw(t).reverse().concat(t),s=xw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(il,"createTintsAndShades");function al(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)&&!Tu(r)){let l=Cw(a);Object.assign(n,il(l,r,s))}}return{...n,...e}}i(al,"expandToGenerateThemeColors");var vm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Aw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=vm(o%52)+e;return vm(o%52)+e},"toAlphabeticName"),Nw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),sl=i(t=>Aw(Nw(5381,JSON.stringify(t))>>>0),"toHash");function cl(t){let e=Ww.colors,o={...e,...Pw},n,r;if(t?.light){let s={colors:al(e,t.light)};n={id:`${ys}-light-${sl(s)}`,tokens:s}}if(t?.dark){let s={colors:al(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ys}-dark-${sl(s)}`,tokens:s}}return{light:n,dark:r}}i(cl,"customizedThemeTokens");function Em(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ll.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ll.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(ll.cloneElement(e,{key:c}))}}),o}i(Em,"joinList");function bm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(bm,"doesWindowPreferDarkColorScheme");function go(t){let{colors:e,fontFamily:o=tu,borderRadius:n=Pu,secondaryBorderRadius:r=Lu}=t,[a,s]=Mw(bm()?"dark":"light"),{theme:c}=C(),{dark:l,light:p}=cl(e),u=pl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,Bw.className],f=[u.className,Lw.className];if(p){let g=pl(p.id,p.tokens);d.push(g.className)}if(l){let g=pl(l.id,l.tokens);f.push(g.className)}return _w(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return bm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(go,"useTheme");var vt=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 xm}from"@lingui/core";import{Alert as Dw,Button as $w}from"@rango-dev/ui";import Im from"react";function ul(t){return Im.createElement(Dw,{action:Im.createElement($w,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},xm.t("Activate this tab")),type:"warning",variant:"alarm",title:xm.t("Another tab is open and handles transactions.")})}i(ul,"ActivateTabAlert");import{i18n as dl}from"@lingui/core";import{Button as Fw,Divider as Ow,MessageBox as Uw}from"@rango-dev/ui";import Fi from"react";function ml(t){let{open:e,onClose:o,onConfirm:n}=t;return Fi.createElement(re,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},Fi.createElement(Uw,{title:dl.t("Activate current tab"),type:"warning",description:dl.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.")},Fi.createElement(Ow,{size:20}),Fi.createElement(Fw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},dl.t("Confirm"))))}i(ml,"ActivateTabModal");import{ChevronLeftIcon as Qw}from"@rango-dev/ui";import Mm from"react";import{css as zw,darkTheme as Am,IconButton as Hw,styled as Qo}from"@rango-dev/ui";var $t=Qo(Hw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Am} &`]:{backgroundColor:"$neutral"}}}),Nm=Qo("div",{position:"absolute",background:"$secondary500",[`.${Am} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ho=Qo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Wm=Qo("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"}}}}),Pm=Qo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Lm=Qo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Bm=zw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),_m=Qo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function fl(t){return Mm.createElement($t,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Mm.createElement(Qw,{color:"black",size:16}))}i(fl,"BackButton");import{i18n as qw}from"@lingui/core";import{Button as Gw,Typography as Vw}from"@rango-dev/ui";import gl from"react";function hl(t){return gl.createElement(ho,null,gl.createElement(Gw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},gl.createElement(Vw,{variant:"label",size:"medium",color:"error500"},qw.t("Cancel"))))}i(hl,"CancelButton");import{i18n as Kw}from"@lingui/core";import{Image as jw,Tooltip as Xw,WalletIcon as Yw,WalletState as Dm}from"@rango-dev/ui";import qo from"react";function yl(t){let{list:e}=bt(),o=e.filter(r=>r.state===Dm.CONNECTED||r.state===Dm.PARTIALLY_CONNECTED),n=o.length?qo.createElement("div",{className:Bm()},o.map(r=>qo.createElement(_m,{key:r.title},qo.createElement(jw,{src:r.image,size:14})))):Kw.t("Connect Wallet");return qo.createElement(Xw,{container:t.container,side:"bottom",content:n},qo.createElement($t,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&qo.createElement(Nm,null),qo.createElement(Yw,{size:18,color:"black"})))}i(yl,"WalletButton");import{i18n as Ui}from"@lingui/core";import{NotificationsIcon as dv,Popover as mv,SettingsIcon as fv,Tooltip as zi,TransactionIcon as gv}from"@rango-dev/ui";import _e from"react";import{Notifications as ev}from"@rango-dev/ui";import tv from"react";import{useNavigate as ov}from"react-router-dom";import{create as Zw}from"zustand";import{persist as Jw,subscribeWithSelector as Rw}from"zustand/middleware";var We=uo(Zw()(Jw(Rw((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let 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}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,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(l=>l.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 Sl(){let t=ov(),{getNotifications:e,clearNotifications:o}=We(),n=e(),r=C().blockchains(),{findToken:a}=C();return tv.createElement(ev,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Qp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${$.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(Sl,"NotificationContent");import{useManager as nv}from"@rango-dev/queue-manager-react";import{InProgressIcon as rv}from"@rango-dev/ui";import $m from"react";var iv=i(()=>{let{manager:t}=nv();return vt(t).map(({swap:o})=>o).find(o=>o.status==="running")?$m.createElement(Lm,{id:"widget-header-history-badge-container"},$m.createElement(rv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Fm=iv;import{EventSeverity as av}from"@rango-dev/queue-manager-rango-preset";import{Typography as sv}from"@rango-dev/ui";import Om from"react";function Um(){let{getNotifications:t}=We(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===av.WARNING);return o?Om.createElement(Wm,{isSever:n},Om.createElement(sv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Um,"NotificationsBadge");import{RefreshProgressButton as lv}from"@rango-dev/ui";import Tl,{useEffect as cv,useState as zm}from"react";var pv=1e3,Hm=60,uv=100;function Oi({onClick:t}){let[e,o]=zm(0),[n,r]=zm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");cv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Hm&&c()},pv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return Tl.createElement($t,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},Tl.createElement(Pm,{onTransitionEnd:()=>r(!1),isRefetched:n},Tl.createElement(lv,{size:22,color:t?"black":"gray",progress:e/Hm*uv})))}i(Oi,"RefreshButton");function Go(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=C(),c=nt("notification",s)||r.includes("notifications");return _e.createElement(_e.Fragment,null,!r.includes("refresh")&&_e.createElement(zi,{container:a||W(),side:"top",content:Ui.t("Refresh")},_e.createElement(Oi,{onClick:e})),!c&&_e.createElement(mv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:_e.createElement(Sl,null)},_e.createElement("div",null,_e.createElement(zi,{container:W(),side:"top",content:Ui.t("Notifications")},_e.createElement($t,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},_e.createElement(dv,{size:18,color:"black"}),_e.createElement(Um,null))))),!r.includes("settings")&&_e.createElement(zi,{container:W(),side:"top",content:Ui.t("Settings")},_e.createElement($t,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},_e.createElement(fv,{size:18,color:"black"}))),!r.includes("history")&&_e.createElement(zi,{container:W(),side:"top",content:Ui.t("History")},_e.createElement($t,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},_e.createElement(gv,{size:18,color:"black"}),_e.createElement(Fm,null))))}i(Go,"HeaderButtons");import{i18n as Cl}from"@lingui/core";import{Divider as qm,MessageBox as Sv,RefreshIcon as Tv}from"@rango-dev/ui";import In from"react";import{Button as hv,styled as yv}from"@rango-dev/ui";var Qm=yv(hv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function kl(t){let{open:e,onClose:o}=t;return In.createElement(re,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},In.createElement(Sv,{title:Cl.t("Something went wrong"),type:"error",description:Cl.t("Something went wrong. Please refresh the app.")},In.createElement(qm,{size:30}),In.createElement(Qm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},In.createElement(Tv,{size:20,color:"primary"}),In.createElement(qm,{size:4,direction:"horizontal"}),Cl.t("Refresh"))))}i(kl,"RefreshModal");var Gm="700px",Vm="425px",Km="550px",jm="640px",Xm="800px";function wl(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(wl,"onScrollContentAttachStatusToContainer");import{css as Cv,styled as Hi}from"@rango-dev/ui";var Qi=Cv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ym=Hi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:Gm,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:Vm,[`@media screen and (min-height: ${Xm})`]:{minHeight:Km}}},showBanner:{true:{overflow:"visible"}}}}),Zm=Hi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Jm=Hi("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"}}}),Rm=Hi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function se(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=nl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=C(),[u,d]=of(!1),{config:{features:f,theme:h}}=C(),{watermark:g}=ne(),m=g==="FULL",{activeTheme:S}=go(h||{}),[T,y]=of(!1),k=nt("connectWalletButton",f),{isActiveTab:w,tabManagerInitiated:v,showActivateTabModal:x,setShowActivateTabModal:A,activateCurrentTab:E,setShowCompactTokenSelector:I}=ne(),b=Ve(),{manager:L}=kv(),O=vt(L).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),q=i(()=>E($o.forceClaim,O),"onActivateTab"),j=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,P=tf(null),Z=tf(null);return qi(()=>{let Y=(p?.swapBoxBanner?.routes?.length??0)===0,ce=!!p?.swapBoxBanner?.routes?.some(Ee=>location.pathname.endsWith(Ee));y(!!p?.swapBoxBanner&&(Y||ce))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),qi(()=>(Mi()&&Z.current&&e(Z.current),()=>{o()}),[]),qi(()=>(P.current?.addEventListener("scroll",wl),()=>{P.current?.removeEventListener("scroll",wl)}),[]),qi(()=>{d(c==="failed")},[c]),Ev(()=>{if(!Z.current)return;let Y=new ResizeObserver(ce=>{for(let Ee of ce)Ee.contentRect&&I(Ee.contentRect.height<parseInt(jm))});return Y.observe(Z.current),()=>Y.disconnect()},[]),Pe.createElement(Ym,{height:s,id:kt.SWAP_BOX_ID,className:`${S()} ${Qi()}`,ref:Z,showBanner:T},Pe.createElement(vv,{prefix:ee?Pe.createElement(fl,{onClick:()=>{b(),r.onBack?.()}}):null,title:r.title,suffix:Pe.createElement(Pe.Fragment,null,r.suffix,r.onWallet&&!k&&Pe.createElement(yl,{container:W(),onClick:j,isConnected:!!l?.length}),r.onCancel&&Pe.createElement(hl,{onClick:r.onCancel}))}),Pe.createElement(Zm,{ref:P},n),Pe.createElement(ml,{open:x,onClose:()=>A(!1),onConfirm:q}),Pe.createElement(Jm,null,Pe.createElement("div",{className:"footer__content"},v&&!w&&Pe.createElement("div",{className:"footer__alert"},Pe.createElement(ul,{onActivateTab:q}),Pe.createElement(ef,{size:10})),a),Pe.createElement(ef,{size:12}),Pe.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Pe.createElement(wv,null))),T&&Pe.createElement(Rm,null,p?.swapBoxBanner?.element),Pe.createElement(kl,{open:u,onClose:()=>d(!1)}))}i(se,"Layout");import{styled as bv}from"@rango-dev/ui";var nf="$20 $20 $10 $20",vl=bv("div",{padding:nf,overflowY:"auto",flexGrow:1});import{styled as xv}from"@rango-dev/ui";var pe=xv("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 yo}from"@lingui/core";import{useState as El}from"react";function rf(){let[t,e]=El(!1),[o,n]=El(null),[r,a]=El(null),{findToken:s}=C(),c=C().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:yo.t("Duplicate Token"),message:yo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:yo.t("Token Already Exists"),message:yo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:yo.t("Token Not Found"),message:yo.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:f}})};case"network-error":return{type:d,title:yo.t("Network error"),message:yo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(T=>T.address?.toLowerCase()===f.toLowerCase())){let T=p("duplicated");n(T);return}let g=await dt().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let T=p("not-found",d);n(T);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let T=p("token-exist");n(T);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(rf,"useFetchCustomToken");var $v=Pv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${Nv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function af(){let t=Mv(),[e]=Dv(),o=Ve(),n=C().blockchains(),r=e.get("blockchain")||"",a=Po(r,n),[s,c]=_v(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=rf(),h=!!a&&Lo(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(se,{header:{title:An.t("Add Custom Token")}},Ke.createElement(pe,null,Ke.createElement($v,null,Ke.createElement("div",null,Ke.createElement(Zs,{onClick:()=>t($.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:An.t("Select chain"),placeholder:An.t("Select chain")}),Ke.createElement(bl,{size:"24"}),Ke.createElement(Bv,{size:"large",variant:"label"},An.t("Enter Address")),Ke.createElement(bl,{size:10}),Ke.createElement(Lv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:An.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(Wv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(bl,{size:4}),Ke.createElement(Iv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(Av,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},An.t("Import"))),Ke.createElement(hr,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(af,"AddCustomTokenPage");import{i18n as rc}from"@lingui/core";import{useManager as Cb}from"@rango-dev/queue-manager-react";import{Alert as kb,Button as wb,css as ac,Divider as ic,IconButton as Yg,styled as vb,Typography as Eb,WalletIcon as bb}from"@rango-dev/ui";import $e,{useEffect as Sa,useLayoutEffect as xb,useRef as Ib,useState as Ir}from"react";import{useNavigate as Ab}from"react-router-dom";import{i18n as Ko}from"@lingui/core";import{Alert as oE,BalanceErrors as nE,Button as Wf,ChevronLeftIcon as rE,Divider as Pl,MessageBox as iE,Typography as Ll}from"@rango-dev/ui";import ae,{useCallback as aE,useEffect as Yi,useMemo as sE,useState as Wn}from"react";import{useNavigate as lE}from"react-router-dom";import{i18n as Nl}from"@lingui/core";import{Alert as Hv,ChevronDownIcon as Qv,CloseIcon as qv,Divider as mf,IconButton as ff,PasteIcon as Gv,Typography as Vv,WalletIcon as Kv}from"@rango-dev/ui";import Me,{useEffect as gf,useRef as hf}from"react";import ji,{useRef as Uv}from"react";import*as Nn from"@radix-ui/react-collapsible";import{keyframes as sf,styled as Gi}from"@rango-dev/ui";var xl=300,Fv=sf({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ov=sf({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),lf=Gi(Nn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Il=Gi(Nn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Vi=Gi(Nn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Fv} ${xl}ms ease-out`},false:{animation:`${Ov} ${xl}ms ease-out`}}}}),Ki=Gi("div",{transition:`all ${xl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Xi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Uv(null);return ji.createElement(lf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&ji.createElement(Il,{className:"collapsible_trigger",onClick:a},s),ji.createElement(Vi,{className:"collapsible_content",open:e},r),c==="bottom"&&ji.createElement(Il,{className:"collapsible_trigger",onClick:a},s))}i(Xi,"CustomCollapsible");import{darkTheme as cf,styled as Al,TextField as zv}from"@rango-dev/ui";var pf=Al("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),uf=Al(zv,{backgroundColor:"$neutral100"}),df=Al("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${cf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${cf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function yf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=C(),c=C().blockchains(),l=Hp(e.name,c),p=hf(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Lo(e,r),g=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),p?.current?.focus()}},"handlePaste"),S=i(()=>r?Me.createElement(ff,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Me.createElement(qv,{size:12,color:"gray"})):d?null:Me.createElement(ff,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Me.createElement(Gv,{size:16})),"renderSuffix");gf(()=>{!!u&&r===null&&(a(u),o(!0))},[u]);let T=hf(null);return gf(()=>{if(!r){T.current=null;return}n&&Lo(e,r)&&T.current!==r&&(T.current=r,te({type:"destinationAddressSet",payload:{destinationChain:e.name}}))},[r,n,e]),Me.createElement(pf,null,Me.createElement(Xi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(df,{id:"widget-custom-destination-collapsible-btn"},Me.createElement("div",{className:"button__content"},Me.createElement(Kv,{size:18,color:"info"}),Me.createElement(mf,{size:4,direction:"horizontal"}),Me.createElement(Vv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Nl.t("Send to a different address"))),Me.createElement(Ki,{orientation:n?"up":"down"},Me.createElement(Qv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(uf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Nl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let k=y.target.value;a(k)}})),h&&Me.createElement(Me.Fragment,null,Me.createElement(mf,{size:4}),Me.createElement(Hv,{variant:"alarm",type:"error",title:Nl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(yf,"CustomDestination");import{css as jv,IconButton as Xv,SelectableWalletButton as Yv,styled as So}from"@rango-dev/ui";var Sf=So("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Tf=So("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Cf=So(Yv,{justifyContent:"center"}),kf=So("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),wf=So(Xv,{position:"absolute",left:"$20"}),vf=So("div",{paddingTop:"$20"}),Ef=jv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),bf=So("div",{display:"flex"}),xf=So("div",{overflow:"visible",width:"100%"});import{i18n as If}from"@lingui/core";import{warn as Zv}from"@rango-dev/logging-core";import{makeInfo as Jv,SelectableWallet as Rv,Typography as Af,WalletState as yr}from"@rango-dev/ui";import Vo,{useEffect as eE,useState as Nf}from"react";var tE=7;function Wl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=ne.use.isActiveTab(),{connectedWallets:l}=C(),[p,u]=Nf(),{list:d}=bt({chain:e}),[f,h]=Nf(d),g=d.length,m=a&&g-a>0;return eE(()=>{h(S=>{let T=d.findIndex(y=>n(y.type,e));return m&&T>1?[d[T]].concat(d.filter((y,k)=>k!==T)):S.map(y=>d.find(k=>k.type===y.type)??y)})},[JSON.stringify(d)]),Vo.createElement(Vo.Fragment,null,f.slice(0,a).map(S=>{let T=xu({connectedWallets:l,walletType:S.type,chain:e}),y=S.state===yr.CONNECTED||S.state===yr.PARTIALLY_CONNECTED,k=T?po(T,tE):"",w=y&&!!S.needsNamespace&&!k,v=i(async()=>{S.state===yr.DISCONNECTED||w?u(S):r({walletType:S.type,chain:e,address:T??""})},"onSelectableWalletClick"),x=Jv(S.state),A=i(()=>w?If.t("Chain not connected"):k||x.description,"getWalletDescription"),E=i(()=>S.state===yr.CONNECTED||S.state===yr.PARTIALLY_CONNECTED?w?"neutral600":"neutral700":x.color,"getWalletDescriptionColor");return Vo.createElement(Rv,{key:S.type,id:"widget-wallets-list-selectable-wallet-btn",description:A(),descriptionColor:E(),onClick:v,selected:n(S.type,e),disabled:!c,...S})}),Vo.createElement(ur,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):Zv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),m&&Vo.createElement(Cf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},Vo.createElement(Af,{variant:"label",size:"medium"},If.t("Show more wallets"),Vo.createElement(Af,{variant:"label",size:"medium",color:"$primary"},"\xA0+",g-(a??0)))))}i(Wl,"WalletList");var cE=2;function Pf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=lE(),c=C().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:m,setWalletsAsSelected:S}=C(),[T,y]=Wn(""),[k,w]=Wn([]),[v,x]=Wn(""),[A,E]=Wn(!!f),I=sE(()=>Mo({filter:"all",quote:l}),[l]),b=Mo({filter:"required",quote:l}),L=c.find(B=>B.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),N=i(B=>b.includes(B),"isWalletRequiredFor"),O=aE(()=>m.filter(B=>B.selected&&I.includes(B.chain)),[m,I]),[q,j]=Wn(O()),[ee,P]=Wn([]),Z=i((B,V)=>P(H=>H.concat({blockchain:B,walletType:V})),"addNextSelectedWallets"),Y=k.length>0,ce=i((B,V)=>!!q.find(H=>H.walletType===B&&H.chain===V&&H.selected&&(N(V)||!N(V)&&!f)),"isSelected"),Ee=i((B,V,H)=>{let X=!1;return B.map(G=>{if(G.chain===V){let J=G.selected;return!X&&H?(X=!0,J=!0):H||(J=!1),{...G,selected:J}}return G})},"updateSelectableWallets"),Gt=i(B=>{E(B),B?N(L?.name??"")||j(V=>Ee(V,L?.name||"",!1)):(h(""),j(V=>Ee(V,L?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),be=i(B=>{if(T&&y(""),ce(B.walletType,B.chain))return;let H=m.find(X=>X.walletType===B.walletType&&X.chain===B.chain);H&&(n(),B.chain===L?.name&&A&&!N(L.name)&&(E(!1),h(null)),j(X=>X.filter(G=>G.chain!==B.chain).concat({...H,selected:!0})))},"onChange"),He=i(()=>{let B=q.filter(V=>V.selected);te({type:"swapWalletsConfirmed",payload:{routeId:l?.requestId??""}}),S(B),p(B),d(!0),o()},"onConfirmBalance"),Xe=i(async()=>{w([]),x("");let B=await r?.({selectedWallets:q.filter(H=>H.selected),customDestination:f}),V=B.warnings;V?.balance?.messages&&w(V.balance.messages),B.error&&x(vd(B.error)),!B.error&&!V?.balance?.messages.length?He():w(V?.balance?.messages??[])},"onConfirmWallets");Yi(()=>{j(B=>{let V=[];return B.forEach(H=>{!m.some(G=>G.chain===H.chain&&G.walletType===H.walletType&&G.address===H.address)||V.push(H)}),V=V.concat(m.filter(H=>!!!V.find(G=>G.chain===H.chain)&&H.selected&&I.includes(H.chain))),V})},[m,I]),Yi(()=>{let B=[];ee.length>0&&(ee.forEach(V=>{let H=m.find(X=>X.chain===V.blockchain&&X.walletType===V.walletType);H?be(H):B.push(V)}),P(B))},[m,ee]);let St=l?.requestId??"";Yi(()=>{if(!e)return;let B=b.filter(V=>!m.some(H=>H.chain===V));te({type:"swapWalletsModalShown",payload:{chainsRequired:b.length,chainsPending:B.length}})},[e]),Yi(()=>{Y&&te({type:"gasWarningShown",payload:{routeId:St}})},[Y,St]);let ct=document.getElementById(kt.SWAP_BOX_ID);return ae.createElement(re,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!T,container:ct,...!T&&{styles:{container:{height:"100%"}},footer:ae.createElement(bf,null,ae.createElement(Wf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Jd(a,A,f,l,q,L),onClick:Xe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ko.t("Confirm")))},...T&&{styles:{container:{height:"100%",padding:"$0"}},header:ae.createElement(kf,null,ae.createElement(wf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:y.bind(null,"")},ae.createElement(rE,{size:16})),ae.createElement(Ll,{variant:"headline",size:"small"},Ko.t({id:"Your {blockchainName} wallets",values:{blockchainName:Tt(T,c)}})))},anchor:"center"},ae.createElement(re,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Y,onClose:w.bind(null,[]),container:ct},ae.createElement(iE,{title:Ko.t("Insufficient account balance"),type:"error",description:ae.createElement(nE,{messages:k??[]})},ae.createElement(Wf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>{te({type:"gasWarningBypassed",payload:{routeId:St}}),He()}},Ko.t("Proceed anyway")))),T&&ae.createElement(vf,null,ae.createElement("div",{className:Ef()},ae.createElement(Wl,{chain:T,quoteChains:I,isSelected:ce,selectWallet:be,onShowMore:()=>y(T),onConnect:B=>{Z(T,B)}}))),!T&&ae.createElement(ae.Fragment,null,v&&ae.createElement(ae.Fragment,null,ae.createElement(oE,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ko.t(v)}),ae.createElement(Pl,{size:12})),ae.createElement(xf,null,I.map((B,V)=>{let H=c.find(U=>U.name===B),X=`wallet-${V}`,G=V===I.length-1,J=G&&L&&g?.customDestination!==!1;return ae.createElement("div",{key:X},ae.createElement(Sf,null,ae.createElement(Ll,{variant:"title",size:"xmedium"},Ko.t({id:"Your {blockchainName} wallets",values:{blockchainName:H?.shortName}})),ae.createElement(Ll,{variant:"label",color:"$neutral700",size:"medium"},Ko.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:H?.shortName}}))),ae.createElement(Pl,{size:24}),ae.createElement(Tf,null,ae.createElement(Wl,{chain:B,quoteChains:I,isSelected:ce,selectWallet:be,limit:cE,onShowMore:()=>y(H?.name??""),onConnect:U=>{Z(B,U)}})),!G&&ae.createElement(Pl,{size:32}),J&&ae.createElement(yf,{blockchain:L,open:A,handleOpenChange:Gt}))}))))}i(Pf,"ConfirmWalletsModal");import{i18n as ME}from"@lingui/core";import{Alert as DE,Button as $E,Divider as Zf,InfoIcon as FE}from"@rango-dev/ui";import Oe from"react";import{Alert as dE,Button as mE,Divider as Ml,NoRouteIcon as fE,RefreshIcon as gE,Typography as Ff}from"@rango-dev/ui";import mt from"react";import{i18n as Lf}from"@lingui/core";var pE=24,uE=60;function Bf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ie().genericServerError,action:{onClick:n,title:Lf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ie().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Lf.t("Reset")}},description:ie().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ie().noResultError.description}}i(Bf,"makeInfo");var Bl=(o=>(o[o.small=pE]="small",o[o.large=uE]="large",o))(Bl||{}),_l=(o=>(o.small="small",o.large="medium",o))(_l||{});import{styled as Zi}from"@rango-dev/ui";var _f=Zi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Mf=Zi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Df=Zi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),$f=Zi("div",{padding:"$6 $0"});function Sr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=C().getDisabledLiquiditySources(),s=C().toggleAllLiquiditySources,c=C().swappers(),l=Bf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),mt.createElement(_f,{id:"widget-no-result-container"},mt.createElement(fE,{size:Bl[n],color:"gray"}),mt.createElement(Ml,{size:4}),mt.createElement(Ff,{variant:"title",size:_l[n]},ie().noResultError.title),n==="large"&&mt.createElement(Ml,{size:4}),!!l.description&&mt.createElement(Mf,{size:n},mt.createElement(Ff,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),mt.createElement(Ml,{size:n==="large"?"24":"4"}),!!l.alert&&mt.createElement(Df,{size:n},mt.createElement(dE,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&mt.createElement(mE,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:mt.createElement($f,null,mt.createElement(gE,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Sr,"NoResult");import{i18n as Tr}from"@lingui/core";import{Button as vE,Divider as EE,MessageBox as bE,Typography as xE,WarningIcon as IE}from"@rango-dev/ui";import Jt from"react";import{InfoIcon as TE,Tooltip as CE,Typography as kE}from"@rango-dev/ui";import Pn from"react";import{Button as hE,darkTheme as yE,styled as jo,Typography as SE}from"@rango-dev/ui";var Of=jo("div",{width:"100%"}),Dl=jo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Uf=jo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${yE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zf=jo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Hf=jo(SE,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),Qf=jo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),qf=jo(hE,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var wE=35;function Gf(t){let{title:e,value:o,valueColor:n}=t,r=W();return Pn.createElement(Uf,null,Pn.createElement(kE,{size:"medium",variant:"label",className:"_title"},e),Pn.createElement(zf,null,Pn.createElement(Hf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>wE&&Pn.createElement(CE,{content:o,container:r},Pn.createElement(TE,{size:12,color:"gray"}))))}i(Gf,"QuoteErrorsModalItem");function Vf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:Tr.t("Swapping"),value:M(r.inputUsdValue)},{title:Tr.t("Gas cost"),value:M(r.totalFee,2,2)},{title:Tr.t("Receiving"),value:M(r.outputUsdValue)},{title:Tr.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Jt.createElement(re,{id:"widget-high-value-loss-warning-modal",footer:Jt.createElement(vE,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Jt.createElement(IE,null),fullWidth:!0,disabled:a,onClick:n},ie().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},Jt.createElement(bE,{type:s,title:ie().highValueLossError.impactTitle,description:ie().highValueLossError.description}),Jt.createElement(Dl,null,Jt.createElement(EE,{size:"4"}),Jt.createElement(xE,{size:"small",variant:"title"},Tr.t("Details")),Jt.createElement(Dl,null,c.map((l,p)=>Jt.createElement(Gf,{key:p,...l})))))}i(Vf,"HighValueLossWarningModal");import{i18n as Ln}from"@lingui/core";function Kf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Ln.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Ln.t("Increase")),o;if(t){switch(t.type){case 0:{Zt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ie().highValueLossError.title;break}case 4:{o.title=Ln.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ie().unknownPriceError.title;break}case 2:{o.title=Ln.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Ln.t("Increase");break}case 3:{o.title=Ln.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Kf,"makeAlerts");function jf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(jf,"getRequiredSlippage");import{i18n as Bn}from"@lingui/core";import{Button as AE,Divider as $l,MessageBox as NE,WarningIcon as WE}from"@rango-dev/ui";import ko from"react";import{useNavigate as PE}from"react-router-dom";function Xf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=PE();return ko.createElement(re,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},ko.createElement(NE,{type:"warning",title:r.type===3?Bn.t("High slippage"):Bn.t("Low slippage"),description:r.type===3?Bn.t("Caution, your slippage is high. Your trade may be front run."):Bn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},ko.createElement($l,{size:18}),ko.createElement($l,{size:32}),ko.createElement(qf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},ko.createElement(WE,{color:"white",size:16}),Bn.t("Swap anyway")),ko.createElement($l,{size:10}),ko.createElement(AE,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+$.settings)},Bn.t("Change Slippage"))))}i(Xf,"SlippageWarningModal");import{Button as LE,MessageBox as BE,WarningIcon as _E}from"@rango-dev/ui";import Ji from"react";function Yf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ji.createElement(re,{id:"widget-unknown-price-warning-modal",footer:Ji.createElement(LE,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ji.createElement(_E,null),fullWidth:!0,disabled:r,onClick:n},ie().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Ji.createElement(BE,{type:"warning",title:ie().unknownPriceError.impactTitle,description:ie().unknownPriceError.description}))}i(Yf,"UnknownPriceWarningModal");function Cr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Kf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let S=!!m&&!s,T=i(y=>{if(y==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,w=jf(e,k);f?.(w)}else y==="change-settings"&&d()},"onclickActionButton");return Oe.createElement(Oe.Fragment,null,g&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Zf,{size:10}),Oe.createElement(Sr,{skipAlerts:s,error:o,fetch:c})),S&&Oe.createElement(Of,null,Oe.createElement(Zf,{size:10}),Oe.createElement(DE,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Oe.createElement(Qf,{onClick:l},Oe.createElement(FE,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Oe.createElement($E,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>T(m.action)},m.actionButtonTitle||ME.t("Change"))}})),e&&Oe.createElement(Oe.Fragment,null,e.type===0&&Oe.createElement(Vf,{...h,warning:e}),(e.type===3||e.type===2)&&Oe.createElement(Xf,{...h,warning:e}),e.type===1&&Oe.createElement(Yf,{...h,warning:e})))}i(Cr,"QuoteWarningsAndErrors");import mb from"bignumber.js";import fa from"react";import{i18n as Xo}from"@lingui/core";import{Alert as tb,CampaignQuoteTag as ob,Divider as Mn,FullExpandedQuote as nb,InfoIcon as jl,NumericTooltip as Xl,QuoteTag as rb,StepDetails as ib,TokenAmount as ab,Typography as Dn,useIsTruncated as Yl}from"@rango-dev/ui";import Zl from"bignumber.js";import F,{useRef as ua,useState as sb}from"react";import{styled as Fl}from"@rango-dev/ui";var Ol=Fl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Jf=Fl("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),Rf=Fl("div",{width:"100%",display:"flex"});import*as Ri from"@radix-ui/react-collapsible";import{Button as OE,css as ea,darkTheme as De,Image as eg,styled as je,Typography as Ul}from"@rango-dev/ui";var UE=300,tg=je(Ri.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),og=ea({padding:"$10 $15"}),ng=je(OE,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${De} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${De} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${De} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),rg=je("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",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${De} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}}}}]}),ig=ea({width:"100%",padding:"$15 $15 $10 $15"}),ag=ea({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_n=ea({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),sg=je(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:{[`& ${eg}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${eg}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),lg=je("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"}}}}),cg=je(Vi,{width:"100%",background:"inherit"}),zl=je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${UE}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),ZH=je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),pg=je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${De} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),ug=je("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),Hl=je(Ul,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Ql=je(Ul,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),ql=je("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"}}}}),dg=je("div",{display:"flex"}),ta=je("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${De} &`]:{borderTopColor:"$neutral800"}}),mg=je(Ul,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as Ft}from"@lingui/core";import{ChevronDownIcon as HE,CloseIcon as QE,Divider as ra,IconButton as qE,NumericTooltip as GE,QuoteCost as VE,Typography as At}from"@rango-dev/ui";import R,{useState as yg}from"react";import{css as zE,styled as oa}from"@rango-dev/ui";var na=oa("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Gl=oa("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),fg=oa("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),gg=oa("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),hg=zE({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var KE=i(t=>t.fee.isZero()?null:R.createElement(na,null,R.createElement(At,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(At,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Vl(t){let[e,o]=yg(!1),[n,r]=yg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?_o():W(),m=qd(h),S=M(c,2,2);return R.createElement(R.Fragment,null,R.createElement(VE,{onClickFee:d?T=>{T.stopPropagation(),!e&&s&&te({type:"routeFeeViewed",payload:{routeId:s.requestId}}),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?Ft.t("View more info"):void 0,tooltipContainer:g}),R.createElement(re,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:R.createElement(gg,{style:{textAlign:f?"left":"center"}},R.createElement(At,{variant:"title",size:"medium"},Ft.t("Gas & Fee Explanation")),R.createElement(qE,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},R.createElement(QE,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(fg,null,R.createElement(At,{variant:"title",size:"small"},Ft.t("Details")),R.createElement(ra,{size:10}),Object.entries(m.payable).flatMap(([T,y])=>y.map((k,w)=>{let v=`payable-fee-${w}`,x=qs(k);return R.createElement(na,{key:v},R.createElement(At,{variant:"label",size:"medium",color:"neutral600"},Os(T,Ft.t)),R.createElement(GE,{content:k.amount,container:g},R.createElement(At,{variant:"label",size:"medium"},M(k.amount,2,2),k.asset.symbol," ($",M(x,4,4),")")))})),R.createElement(na,{className:"total_payable_fee"},R.createElement(At,{variant:"label",size:"medium"},Ft.t("Total Payable Fee")),R.createElement(At,{variant:"label",size:"medium"},"$",M(c,4,4))),R.createElement(Gl,null),!!Object.keys(m.nonePayable).length&&R.createElement(Xi,{triggerAnchor:"bottom",onClickTrigger:()=>r(T=>!T),trigger:R.createElement("div",{className:hg()},R.createElement(At,{size:"small",variant:"body",color:"neutral700"},n?Ft.t("Hide non-payable fees"):Ft.t("Show non-payable fees")),R.createElement(ra,{size:4,direction:"horizontal"}),R.createElement(Ki,{orientation:n?"up":"down"},R.createElement(HE,{size:12,color:"gray"}))),open:n},R.createElement(At,{size:"small",variant:"title"},Ft.t("Description")),R.createElement(ra,{size:4}),R.createElement(At,{size:"small",variant:"body",color:"neutral700"},Ft.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),R.createElement(ra,{size:10}),Object.entries(m.nonePayable).map(([T,y],k)=>{let w=Qd(y),v=Os(T,Ft.t),x=`non-payable-fee-${k}`;return R.createElement(KE,{key:x,fee:w,label:v})}),R.createElement(Gl,null)))))}i(Vl,"QuoteCostDetails");import{i18n as Cg}from"@lingui/core";import{TokenAmount as kg}from"@rango-dev/ui";import ia from"react";import{css as jE,styled as XE}from"@rango-dev/ui";var Sg=XE("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Tg=jE({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function kr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ia.createElement(Sg,null,ia.createElement(kg,{direction:"horizontal",label:Cg.t("Swap input"),id:"widget-quote-summary-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}}),ia.createElement("div",{className:Tg()}),ia.createElement(kg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:Cg.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(kr,"QuoteSummary");import{i18n as xg}from"@lingui/core";import{ChevronDownIcon as JE,ChevronRightIcon as RE,Divider as Kl,Image as eb,Tooltip as pa,Typography as sa}from"@rango-dev/ui";import Q from"react";import{useLayoutEffect as YE,useState as wr}from"react";var wg=480,vg=768,Eg=1024,bg=1200,ZE=i(()=>{let[t,e]=wr(!1),[o,n]=wr(!1),[r,a]=wr(!1),[s,c]=wr(!1),[l,p]=wr(!1),u=i(()=>{e(window.innerWidth<=wg),n(window.innerWidth>wg&&window.innerWidth<=vg),a(window.innerWidth>vg&&window.innerWidth<=Eg),c(window.innerWidth>Eg&&window.innerWidth<=bg),p(window.innerWidth>bg)},"handleResize");return YE(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),aa=ZE;var la=4,ca=6,vr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||W();return Q.createElement(pa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},Q.createElement(lg,{className:n,state:a},Q.createElement(eb,{src:o,size:16})))},"ImageComponent");function Ig(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||W(),p=r.length,u=Bd(r),{isTablet:d,isMobile:f}=aa();return Q.createElement(sg,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},Q.createElement("div",{className:_n()},Q.createElement(sa,{variant:"body",size:"xsmall"},xg.t("Via:")),Q.createElement(Kl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,S=Q.createElement(zl,null,Q.createElement(RE,{size:12,color:"black"}));return f||d?Q.createElement(Q.Fragment,{key:m},Q.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):Q.createElement(Q.Fragment,{key:m},p<=la||p>la&&g<la-1?Q.createElement(Q.Fragment,null,Q.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):g===la-1&&Q.createElement(pa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:_n()},S,r.map((T,y)=>{let k=`image-${y}`;return y>=g&&Q.createElement(Q.Fragment,{key:k},Q.createElement(vr,{content:T.swapper.displayName,src:T.swapper.image??"",state:T.state,open:!1}),y!==p-1&&Q.createElement(Q.Fragment,null,S))}))},Q.createElement(ql,{state:r.find((T,y)=>y>=g&&(T.state==="error"||T.state==="warning"))?.state},Q.createElement(sa,{size:"xsmall",variant:"body"},"+",p-g))))})),Q.createElement("div",{className:_n()},Q.createElement("div",{className:"blockchains_section"},Q.createElement("div",{className:_n()},Q.createElement(sa,{variant:"body",size:"xsmall"},xg.t("Chains:")),Q.createElement(Kl,{direction:"horizontal",size:4}),u.map((h,g)=>Q.createElement(Q.Fragment,{key:h.displayName},u.length<=ca||u.length>ca&&g<ca-1?Q.createElement(pa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},Q.createElement(vr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ca-1&&Q.createElement(pa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:_n()},u.map((m,S)=>S>=g&&Q.createElement(vr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},Q.createElement(ql,{className:"blockchainImage"},Q.createElement(sa,{size:"xsmall",variant:"body"},"+",u.length-g))))),Q.createElement(Kl,{direction:"horizontal",size:32}))),Q.createElement(zl,{orientation:a?"up":"down"},Q.createElement(JE,{size:12,color:"black"}))))}i(Ig,"QuoteTrigger");function Jl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:f}=t,h=C().blockchains(),{findToken:g}=C(),m=C().swappers(),{customSlippage:S,slippage:T}=C(),y=S||T,[k,w]=sb(t.expanded),v=ua(null),x=M(n.value,6,6),A=n.usdValue?M(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:E}}=C(),I=Yt(o.usdValue,n.usdValue??null),b=M(I,2,2),L=Zt(I??0),N=i((G,J)=>G.map((U,de)=>{let Qe,ot=r?.type===3&&r.swap.swapperId===U.swapperId,co=r?.type===4&&!!r.recommendedSlippages?.[de],Gn=a?.type===2&&!!a.recommendedSlippages?.[de],No=ot||co,Rr=Gn;No?Qe="error":Rr&&(Qe="warning");let rn=No?Xo.t("Slippage Error"):Xo.t("Slippage Warning");return ot&&(rn=Xo.t("Bridge Limit Error")),{swapper:{displayName:Kn(U.swapperId,m)??"",image:U.swapperLogo},from:{token:{displayName:U.from.symbol,image:U.from.logo},chain:{displayName:Tt(U.from.blockchain,h)??"",image:U.from.blockchainLogo},price:{value:de===0&&!J?M(o.value,6,6):M(U.fromAmount,6,6),usdValue:M((U.from.usdPrice??0)*parseFloat(U.fromAmount),4,4),realValue:de===0?o.value:U.fromAmount,realUsdValue:new Zl(U.from.usdPrice??0).multipliedBy(U.fromAmount).toString()}},to:{token:{displayName:U.to.symbol,image:U.to.logo},chain:{displayName:Tt(U.to.blockchain,h)||"",image:U.to.blockchainLogo},price:{value:M(U.toAmount,6,6),usdValue:M((U.to.usdPrice??0)*parseFloat(U.toAmount),4,4),realValue:U.toAmount,realUsdValue:new Zl(U.to.usdPrice??0).multipliedBy(U.toAmount).toString()}},state:Qe,alerts:No||Rr?F.createElement(Jf,{dense:d},F.createElement(tb,{variant:"alarm",type:No?"error":"warning",title:rn,id:"widget-quote-footer-step-alarm-alert",footer:F.createElement(Rf,null,ot&&F.createElement("div",null,F.createElement(Dn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Mn,{direction:"vertical",size:2}),F.createElement(Dn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},Xo.t({id:"Yours: {amount} {symbol}",values:{amount:M(U.fromAmount,6,6),symbol:U?.from.symbol}}))),(co||Gn)&&!ot&&F.createElement("div",null,F.createElement(Dn,{size:"xsmall",variant:"body",color:"neutral900"},Xo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[de]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[de]}}})),F.createElement(Mn,{direction:"vertical",size:2}),F.createElement(Dn,{size:"xsmall",variant:"body",color:"neutral900"},Xo.t({id:"Yours: {userSlippage}",values:{userSlippage:y}}))))})):void 0,time:Xn(U.estimatedTimeInSeconds),fee:M(Qs(U,g),2,2),internalSwaps:U.internalSwaps?N(U.internalSwaps):void 0}}),"getQuoteSteps"),O=N(e?.swaps??[]),q=O.length,j=f||W(),ee=Md(t.quote.tags||[]),P=!!u,Z=si(e?.swaps),Y=Xn(Z),ce=Wi(e?.swaps??[],g),Ee=M(ce,2,2),Gt=ce.gte(new Zl(bd)),be=Z/Id>=xd,He=ua(null),Xe=Yl(o.value,He),St=ua(null),ct=Yl(n.value,St),B=ua(null),V=Yl(A,B),H=O[q-1],X=O[0];return!X||!H?null:d?F.createElement(nb,{selected:c,fee:Ee,time:Y,tooltipContainer:_o(),steps:O,tags:ee,campaignTag:E?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:F.createElement(Vl,{quote:e,fullExpandedMode:!0,time:Y,fee:ce,feeWarning:Gt,timeWarning:be,showModalFee:p,steps:q}),percentageChange:b,warningLevel:L,outputPrice:{value:x,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(rg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:ig()},!l&&ee.length?F.createElement(F.Fragment,null,F.createElement(dg,null,ee.map((G,J)=>{let U=`${G.value}_${J}`;return F.createElement(F.Fragment,{key:U},G.value=="CAMPAIGN"&&E?.campaignTag?F.createElement(ob,{routeTag:G,...E.campaignTag}):F.createElement(rb,{label:G.label,value:G.value}),F.createElement(Mn,{size:4,direction:"horizontal"}))})),F.createElement(ta,null),!P&&F.createElement(Mn,{size:4})):null,F.createElement("div",{id:"portal-root",className:ag()},F.createElement(Vl,{quote:e,time:Y,fee:ce,feeWarning:Gt,timeWarning:be,showModalFee:p,steps:q}),P&&F.createElement(ng,{onClick:G=>{G.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Dn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Xo.t("See All Routes")))),s==="basic"&&F.createElement(ug,null,F.createElement(Ql,{ref:He,size:"small",variant:"body"},o.value),Xe&&F.createElement(Xl,{content:o.value,container:j,open:o.value?void 0:!1},F.createElement(jl,{size:12,color:"gray"})),F.createElement(Hl,{size:"small",variant:"body"},O[0]?.from.token.displayName),F.createElement(Dn,{size:"small",variant:"body"},"="),F.createElement(Ql,{ref:St,size:"small",variant:"body"},n.value),ct&&F.createElement(Xl,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(jl,{size:12,color:"gray"})),F.createElement(Hl,{size:"small",variant:"body"},H?.to.token.displayName),F.createElement(Mn,{size:2,direction:"horizontal"}),F.createElement(mg,{ref:B,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),V&&F.createElement(Xl,{content:n.usdValue,container:j},F.createElement(jl,{size:12,color:"gray"}))),s==="list-item"&&F.createElement(ab,{id:"widget-quote-token-amount-container",tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:H.to.token.displayName,image:H.to.token.image},chain:{image:H.to.chain.image},percentageChange:b,warningLevel:L}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(kr,{from:X.from,to:H.to,percentageChange:b,warningLevel:L}),F.createElement(Mn,{size:4}))),F.createElement(tg,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},F.createElement(Ig,{type:s,quoteRef:v,selected:c,setExpanded:w,container:j,expanded:k,steps:O}),F.createElement(cg,{open:k},F.createElement(pg,null),F.createElement("div",{className:og()},O.map((G,J)=>{let U=`item-${J}`;return F.createElement(ib,{type:"quote-details",className:"widget-quote-step-details-container",key:U,tooltipContainer:j,step:G,hasSeparator:J!==O.length-1,state:G.state})})))))}i(Jl,"Quote");import{Divider as ub,Skeleton as db}from"@rango-dev/ui";import oo from"react";import{darkTheme as lb,styled as da}from"@rango-dev/ui";var Ag=da("div",{$$color:"$colors$neutral100",[`.${lb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ng=da("div",{paddingTop:"$2"}),Wg=da("div",{paddingLeft:"$8"}),Pg=da("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as zg,Divider as Nt,Skeleton as ft}from"@rango-dev/ui";import K from"react";import{css as cb,styled as to}from"@rango-dev/ui";var Rl=to("div",{display:"flex"}),Lg=to("div",{padding:"$10 $0 $20"}),Bg=to("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),_g=to("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Mg=to("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Dg=to("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),$g=to("div",{width:"65%",display:"flex",justifyContent:"start"}),Fg=to("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Og=to("div",{padding:"$15 $0 $15 $0"}),Ug=cb({display:"flex",justifyContent:"space-between",alignItems:"center"});function Er(t){let{type:e,tagHidden:o=!0}=t,n=K.createElement(Mg,null,K.createElement($g,null,K.createElement(zg,{loading:!0,size:"medium"}),K.createElement(Nt,{size:8,direction:"horizontal"}),K.createElement(Fg,null,K.createElement(ft,{height:10,width:60,variant:"rounded"}),K.createElement(Nt,{size:4}),K.createElement(ft,{height:15,variant:"rounded"}))),K.createElement(ft,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return K.createElement("div",null,!o&&K.createElement(K.Fragment,null,K.createElement(Rl,null,K.createElement(ft,{width:65,height:20,variant:"rounded"}),K.createElement(Nt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:65,height:20,variant:"rounded"}),K.createElement(Nt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:65,height:20,variant:"rounded"})),K.createElement(ta,null),!r&&K.createElement(Nt,{size:4})),K.createElement("div",{className:Ug()},K.createElement(Rl,null,K.createElement(ft,{width:60,height:10,variant:"rounded"}),K.createElement(Nt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:60,height:10,variant:"rounded"}),K.createElement(Nt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:60,height:10,variant:"rounded"})),r&&K.createElement(ft,{width:85,height:24,variant:"rounded"})),e==="basic"&&K.createElement(Lg,null,K.createElement(ft,{height:15,width:148,variant:"rounded"})),e==="list-item"&&K.createElement(Bg,null,K.createElement(_g,null,K.createElement(zg,{loading:!0,size:"medium"}),K.createElement(Nt,{direction:"horizontal",size:4}),K.createElement(ft,{height:15,width:150,variant:"rounded"})),K.createElement(Nt,{size:10}),K.createElement(ft,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&K.createElement(K.Fragment,null,K.createElement(Nt,{size:4}),K.createElement(Og,null,n,K.createElement(Dg,null),n),K.createElement(Nt,{size:12})))}i(Er,"QuoteSummarySkeleton");import{ChainToken as Vg,Divider as tc,NextIcon as pb,Skeleton as ma}from"@rango-dev/ui";import Le from"react";import{styled as br}from"@rango-dev/ui";var Hg=br("div",{display:"flex",alignItems:"start"}),Qg=br("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ec=br("div",{display:"flex",alignItems:"center",flexGrow:1}),qg=br("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Gg=br("div",{display:"flex",alignItems:"center"});function Ot(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Gg,null,Le.createElement(ma,{height:22,width:22,variant:"circular"}),Le.createElement(tc,{direction:"horizontal",size:8}),Le.createElement(ma,{height:15,width:148,variant:"rounded"})),Le.createElement(Hg,null,Le.createElement(Pg,{hideSeparator:!e}),Le.createElement(Qg,{extraSpace:e},Le.createElement(ec,null,Le.createElement(Vg,{size:"small",loading:!0}),Le.createElement(tc,{direction:"horizontal",size:8}),Le.createElement(ma,{height:12,variant:"rounded"})),Le.createElement(qg,null,Le.createElement(pb,{color:"gray",size:16})),Le.createElement(ec,null,Le.createElement(Vg,{size:"small",loading:!0}),Le.createElement(tc,{direction:"horizontal",size:8}),Le.createElement(ma,{height:12,variant:"rounded"})))))}i(Ot,"StepSkeleton");function xr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return oo.createElement(Ag,{expanded:o,rounded:e!=="basic"},oo.createElement(Er,{type:e,tagHidden:n}),oo.createElement(Ng,null,oo.createElement(db,{height:15,variant:"rounded"})),o&&oo.createElement(Wg,null,oo.createElement(ub,{size:24}),oo.createElement(Ot,null),oo.createElement(Ot,null),oo.createElement(Ot,{separator:!1})))}i(xr,"QuoteSkeleton");function Yo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:S}=z()(),T=e?.outputAmount?new mb(e?.outputAmount):null,y=e?it(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?fa.createElement(Ol,null,fa.createElement(xr,{tagHidden:c,type:o,expanded:s})):w?fa.createElement(Ol,{onClick:()=>l?.(e),id:d},fa.createElement(Jl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:S?.toString()??""},output:{value:T?.toString()??"",usdValue:y?.toString()??""}})):null}i(Yo,"QuoteInfo");import{warn as yb}from"@rango-dev/logging-core";import{calculatePendingSwap as Sb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Tb}from"react";import{useRef as fb,useState as gb}from"react";var hb=2e3;function ga({request:t}){let[e,o]=gb(!1),n=fb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,hb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(ga,"useFetch");function Kg(){let{fetch:t,loading:e,cancelFetch:o}=ga({request:async(n,r)=>await dt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Kg,"useFetchConfirmQuote");function ha(t){if(!t.swaps)throw new Error(ie().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=oc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ha,"throwErrorIfResponseIsNotValid");function oc(t){if(Ud(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=zd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Gd(t);if(o){let n=Pi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(oc,"getQuoteError");function jg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=En({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=jd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(jg,"generateWarnings");function ya(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(ya,"handleQuoteErrors");function nc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=C(),u=C().getDisabledLiquiditySources(),d=C().blockchains(),f=C().tokens(),{findToken:h}=C(),{swapMode:g}=rt(),m=p||l,{fetch:S,cancelFetch:T,loading:y}=Kg();return Tb(()=>T,[]),{loading:y,fetch:i(async w=>{let v=w.selectedWallets,x=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((I,b)=>(I[b.chain]=b.address,I),{}),E={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await S(E,!0).then(I=>{let{result:b}=I;if(!b)throw new Error(I.error??"Error fetching updated quote");ha({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let L={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(L);let N={slippage:m.toString(),disabledSwappersGroups:u},O=jg({previousQuote:a??void 0,currentQuote:L,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:h});c();let q=!!O.balance,j=Sb({inputAmount:o.toString(),bestRoute:b,wallets:Kd(v),settings:N,validateBalanceOrFee:!q,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:L,swap:j,error:null,warnings:O}})}catch(I){let b=ya(I);return b.type!==2&&yb(new Error("confirm swap error"),{tags:{...b,type:Je[b.type],initialQuote:a,requestBody:E}}),{swap:null,error:b,warnings:null}}},"fetch"),cancelFetch:T}}i(nc,"useConfirmSwap");function Xg(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}i(Xg,"toNumberOrNull");function $n(t){let e=t.swaps[0],o=t.swaps[t.swaps.length-1],n=zo(t),r=it(t);return{routeId:t.requestId,sourceChain:e?.from.blockchain??"",destinationChain:o?.to.blockchain??"",sourceTokenSymbol:e?.from.symbol??"",sourceTokenAddress:e?.from.address??null,destinationTokenSymbol:o?.to.symbol??"",destinationTokenAddress:o?.to.address??null,sourceTokenAmount:Xg(t.requestAmount),destinationTokenAmount:Xg(t.outputAmount),inputAmountUsd:n?n.toNumber():null,outputAmountUsd:r?r.toNumber():null}}i($n,"buildSwapEstimatePayload");var Nb=vb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Yg}`]:{width:"$48",height:"$48"}}),Wb=ac({flexGrow:1,paddingRight:"$10"}),Pb=ac({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Lb=ac({display:"flex",justifyContent:"space-between",alignItems:"center"});function Zg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=Ab(),[c,l]=Ir(""),p=!n,[u,d]=Ir(!1),[f,h]=Ir(!1),{isActiveTab:g}=ne(),m=C().getDisabledLiquiditySources(),S=Ib(m),{manager:T}=Cb(),{fetch:y,loading:k,cancelFetch:w}=nc(),[v,x]=Ir({swap:null,error:null,warnings:null}),[A,E]=Ir(!1),I=i(async({selectedWallets:P,customDestination:Z})=>{let Y=await y?.({selectedWallets:P,customDestination:Z});return x(Y),Y},"onConfirmSwap"),b=i(async()=>{if(v.swap&&n)try{await T?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let P=`../${$.swaps}/${v.swap.requestId}`;s(P,{replace:!0}),setTimeout(()=>{e("")},0)}catch(P){l("Error: "+P?.message)}},"addNewSwap"),L=i(async()=>{h(!0),await b(),h(!1)},"onConfirm"),N=i(async()=>{v.warnings?.quote&&Ld(v.warnings.quote)&&!a?E(!0):(t&&te({type:"swapStarted",payload:{...$n(t),stepCount:t.swaps.length}}),await L())},"onStartConfirmSwap"),O=i(async()=>{x({error:null,swap:null,warnings:null}),y({selectedWallets:o,customDestination:r}).then(P=>{x(P)}).catch(P=>console.error(P))},"onRefresh");Sa(()=>{!!S.current.length&&!m.length&&O(),S.current=m},[m.length]),Sa(()=>{p&&w()},[p]),Sa(()=>{p&&d(p)},[p]),Sa(()=>{p||y({selectedWallets:o,customDestination:r}).then(P=>x(P)).catch(P=>console.error(P))},[]),xb(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=v.warnings?.quote??null,j=v.error,ee=[];if(c&&ee.push($e.createElement(kb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||j){let P=`../${$.settings}`;ee.push($e.createElement(Cr,{warning:q,error:j,couldChangeSettings:!1,refetchQuote:O,skipAlerts:j?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await b()},onChangeSettings:()=>s(P)}))}return $e.createElement(se,{header:{title:rc.t("Confirm Swap"),onWallet:()=>{let P=`../${$.wallets}`;s(P)}},footer:$e.createElement(Nb,null,$e.createElement("div",{className:Wb()},$e.createElement(wb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!v.error||!g,onClick:N},rc.t("Start Swap"))),$e.createElement(Yg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:d.bind(null,!0)},$e.createElement(bb,{size:24})))},u&&$e.createElement(Pf,{open:u,onClose:()=>d(!1),onCancel:w,loading:k,onCheckBalance:I}),$e.createElement(pe,null,$e.createElement("div",{className:Lb()},$e.createElement(Eb,{variant:"title",size:"small"},rc.t("You get")),$e.createElement("div",{className:Pb()},$e.createElement(Oi,{onClick:!k&&!u&&!A?O:void 0}))),$e.createElement(ic,{size:"12"}),Em(ee.map((P,Z)=>({element:P,key:`alert-${Z}`})),$e.createElement(ic,{size:10})),ee.length>0?$e.createElement(ic,{size:10}):null,$e.createElement(Yo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:v.error,loading:k,warning:v.warnings?.quote??null})))}i(Zg,"ConfirmSwapPage");import{i18n as ro}from"@lingui/core";import{Button as Sc,CustomTokensZeroStateDarkIcon as Jb,CustomTokensZeroStateIcon as Rb,DeleteIcon as ex,Divider as Lr,IconButton as tx,MessageBox as ox,NotFound as nx,styled as Cc}from"@rango-dev/ui";import Se,{useState as Tc}from"react";import{useNavigate as rx}from"react-router-dom";import{CloseIcon as Bb,IconButton as _b,SearchIcon as Mb,TextField as Db}from"@rango-dev/ui";import Fn from"react";import{styled as Jg}from"@rango-dev/ui";var Rg=Jg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),eh=Jg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function Wt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?Fn.createElement(_b,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Fn.createElement(Bb,{color:"gray",size:10})):null;return p&&(f=p),Fn.createElement(eh,null,Fn.createElement(Db,{prefix:Fn.createElement(Rg,null,Fn.createElement(Mb,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(Wt,"SearchInput");import{i18n as yc}from"@lingui/core";import{Button as Ub,CustomTokenWarning as zb,darkTheme as dh,Divider as no,ExternalLinkIcon as Hb,Image as Qb,ListItem as qb,NotFound as Gb,PinIcon as Vb,Skeleton as Zo,Typography as Wr,VirtualizedList as Kb}from"@rango-dev/ui";import _,{useState as jb}from"react";import{useTranslation as Xb}from"react-i18next";import{Divider as ph,ListItem as Ob,Skeleton as Nr}from"@rango-dev/ui";import Pt from"react";import{css as On,darkTheme as sc,ImageContainer as $b,ListItemButton as Fb,styled as st,Typography as th}from"@rango-dev/ui";var lc=On({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),cc=On({position:"relative",height:12,width:"30%",maxWidth:"150px"}),pc=On({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),uc=On({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${sc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),dc=On({}),mc=On(),oh=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),fc=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Ta=st("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${cc}`]:{[`& .${uc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${dc}`]:{bottom:"-15px"},[`& .${lc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${pc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),nh=st(Fb,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),gc=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),hc=st(th,{}),rh=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${mc}`]:{$$color:"$colors$neutral600",[`.${sc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ar=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),oV=st("div",{display:"flex",alignItems:"center"}),ih=st("div",{position:"relative",[`& ${$b}`]:{borderRadius:"$xm",overflow:"hidden"}}),ah=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),sh=st(th,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),lh=st("a",{"& svg:hover":{color:"$colors$info"}}),ch=st("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${sc} &`]:{color:"$foreground"}}}});function uh(t){return Pt.createElement(Ta,null,Array.from(Array(t.size),e=>Pt.createElement(Ob,{key:e,hasDivider:!0,start:Pt.createElement(Nr,{variant:"circular",width:35,height:35}),end:Pt.createElement(Ar,null,Pt.createElement(Nr,{variant:"text",size:"large",width:70}),Pt.createElement(ph,{size:4}),Pt.createElement(Nr,{variant:"text",size:"medium",width:50})),title:Pt.createElement("div",null,Pt.createElement(Nr,{variant:"text",size:"large",width:90}),Pt.createElement(ph,{size:4}),Pt.createElement(Nr,{variant:"text",size:"medium",width:90}))})))}i(uh,"LoadingTokenList");var Yb=20,Zb=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return _.createElement("div",{className:cc()},o?_.createElement("div",{className:lc()},o):_.createElement(fc,{className:pc()},_.createElement(Wr,{variant:"title",size:"xmedium"},r.symbol),_.createElement(no,{direction:"horizontal",size:4}),_.createElement(gc,{css:a},_.createElement(hc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&_.createElement("div",{className:`${uc()} ${!o&&dc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",_.createElement(no,{size:4,direction:"horizontal"}),_.createElement(lh,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},_.createElement(Hb,{size:12}))))},"renderDesc");function Pr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=C().fetchStatus,u=C().blockchains(),{getBalanceFor:d,fetchingWallets:f}=C(),{isTokenPinned:h}=C(),{setFromToken:g,setToToken:m}=z()(),{t:S}=Xb(),T=Ve(),[y,k]=jb(null),w=i(()=>{c==="source"?g({token:y,meta:{blockchains:u}}):m({token:y,meta:{blockchains:u}})},"updateToken"),v=i(()=>{w(),T()},"handleImportToken"),x=i(I=>{if(I.customToken){let{customToken:L,...N}=I;return _.createElement(Ub,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...N,warning:!0})},"handleClick")},_.createElement(Wr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let b=pi(d(I));return s?s(I):f?_.createElement(Ar,null,_.createElement(Zo,{variant:"text",size:"large",width:70}),_.createElement(no,{size:4}),_.createElement(Zo,{variant:"text",size:"medium",width:50})):b&&_.createElement(rh,null,_.createElement(sh,{variant:"title",size:"small"},b.amount),_.createElement("div",null),b.usdValue&&_.createElement(Wr,{variant:"body",className:mc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),A=i(()=>_.createElement(Kb,{style:{flexGrow:1,minHeight:0},itemContent:I=>{let b=e[I];if(b==="skeleton")return _.createElement(qb,{hasDivider:!0,start:_.createElement(Zo,{variant:"circular",width:35,height:35}),end:_.createElement(Ar,null,_.createElement(Zo,{variant:"text",size:"large",width:70}),_.createElement(no,{size:4}),_.createElement(Zo,{variant:"text",size:"medium",width:50})),title:_.createElement("div",null,_.createElement(Zo,{variant:"text",size:"large",width:90}),_.createElement(no,{size:4}),_.createElement(Zo,{variant:"text",size:"medium",width:90}))});let L=u.find(Z=>Z.name===b?.blockchain);if(!L||!b)return null;let N=b.address,O=il(L.color,"main"),q={$$color:O.main150,[`.${dh} &`]:{$$color:O.main750},backgroundColor:"$$color"},j={$$color:O.main750,[`.${dh} &`]:{$$color:O.main150},color:"$$color"},ee=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick"),P=N?ti({contractAddress:N,blockchainMeta:L}):void 0;return _.createElement(ch,null,_.createElement(nh,{"tab-index":I,key:`${b.symbol}${N}`,id:`${b.symbol}${N}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b?.customToken,onClick:ee,start:_.createElement(ih,null,_.createElement(Qb,{src:b.image===""?ni:b.image,size:30}),t.type!=="custom-token"&&b&&h(b,t.type)&&_.createElement(ah,null,_.createElement(Vb,{size:12,color:"gray"}))),title:b.name||!b.name&&!N?_.createElement(fc,null,_.createElement(Wr,{variant:"title",size:"xmedium"},b.symbol),_.createElement(no,{direction:"horizontal",size:4}),_.createElement(gc,{css:q},_.createElement(hc,{variant:"body",size:"xsmall",css:j},b.blockchain)),l&&b.warning&&_.createElement(_.Fragment,null,_.createElement(no,{direction:"horizontal",size:4}),_.createElement(zb,{container:W()}))):void 0,description:typeof b!="string"&&L.info&&N&&P?Zb({address:N,token:b,customCssForTag:q,customCssForTagTitle:j,name:b.name,url:P}):b.name||void 0,end:x(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=y?Po(y?.blockchain,u):null;return _.createElement(_.Fragment,null,a&&_.createElement(_.Fragment,null,_.createElement(Wr,{variant:"label",size:"large"},yc.t("Select Token")),_.createElement(no,{size:4})),_.createElement(oh,null,_.createElement(no,{size:4}),p==="loading"&&_.createElement(uh,{size:Yb}),p==="success"&&(e.length?_.createElement(_.Fragment,null,_.createElement(hr,{token:y,address:y?.address??"",blockchain:E??void 0,onImport:v,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),_.createElement(Ta,{as:"ul"},A())):!!o&&_.createElement(Gb,{title:yc.t("No results found"),description:yc.t("Try using different keywords")}))))}i(Pr,"TokenList");var ix=Cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),ax=Cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),sx=Cc(tx,{"&:hover":{"& svg":{color:"$secondary550"}}});function mh(){let[t,e]=Tc(""),{deleteCustomToken:o}=C(),n=C().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=go({}),p=rx(),[u,d]=Tc(!1),[f,h]=Tc(),g=i(y=>{let k=y.target.value;e(k)},"handleSearch"),m=l==="dark",S=n.filter(y=>pt(y.symbol,t)||pt(y.address||"",t)||pt(y.name||"",t)),T=i(()=>{if(f){let y=a?Ct(a):null,k=r?Ct(r):null,w=Ct(f);y===w?c({token:null}):k===w&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return Se.createElement(se,{header:{title:ro.t("Custom Tokens")}},Se.createElement(pe,null,Se.createElement(ix,null,n.length?Se.createElement(Se.Fragment,null,Se.createElement(Wt,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:ro.t("Search Token"),onChange:g}),Se.createElement(Lr,{size:16}),Se.createElement(Pr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:y=>Se.createElement(sx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(y)}},Se.createElement(ex,{size:12,color:"gray"}))})):Se.createElement(ax,null,Se.createElement(nx,{icon:m?Se.createElement(Jb,{size:200}):Se.createElement(Rb,{size:200}),title:ro.t("No custom tokens"),description:ro.t("press the button to add your custom token")})),Se.createElement(Lr,{size:20}),Se.createElement(Sc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p($.addCustomTokens)},ro.t("Add Custom Token"))),Se.createElement(re,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:W()},Se.createElement(ox,{title:ro.t("Delete Custom Token"),type:"error",description:ro.t("Are you sure you want to Delete this Token?")},Se.createElement(Lr,{size:40}),Se.createElement(Lr,{size:10}),Se.createElement(Sc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:T},ro.t("Yes, Delete it")),Se.createElement(Lr,{size:12}),Se.createElement(Sc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},ro.t("No, Continue"))))))}i(mh,"CustomTokensPage");import{i18n as Fe}from"@lingui/core";import{useManager as Ix}from"@rango-dev/queue-manager-react";import{Button as Ic,darkTheme as Ax,Divider as wo,MessageBox as Nx,NotFound as Wx,styled as Ac,Tabs as Px,Typography as wa}from"@rango-dev/ui";import{TransactionStatus as Mr}from"rango-types";import oe,{useMemo as Lh,useState as Dr}from"react";import{useNavigate as Lx}from"react-router-dom";import{FilterIcon as fx,Popover as gx}from"@rango-dev/ui";import Jo from"react";import{css as lx,darkTheme as Ca,IconButton as cx,styled as Br}from"@rango-dev/ui";var kc=Br("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ca} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),fh=Br(cx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ca} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ca} &`]:{backgroundColor:"$neutral"},[`& ${kc}::before`]:{backgroundColor:"$secondary100",[`.${Ca} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),gh=Br("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),hh=Br("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),yh=lx({display:"flex",justifyContent:"space-between",alignItems:"center"}),Sh=Br("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Th}from"@lingui/core";import{Button as px,Divider as Ch,ListItemButton as ux,Radio as dx,RadioRoot as mx,Typography as kh}from"@rango-dev/ui";import gt from"react";function wh(t){let{filterBy:e,onClickItem:o}=t;return gt.createElement(hh,null,gt.createElement("div",{className:yh()},gt.createElement(kh,{size:"small",variant:"body"},Th.t("Status")),gt.createElement(px,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Th.t("Reset"))),gt.createElement(Ch,{size:10}),gt.createElement(mx,{value:e},gt.createElement(Sh,null,t.list.map((n,r)=>gt.createElement(ux,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:gt.createElement(gt.Fragment,null,gt.createElement(Ch,{direction:"horizontal",size:4}),gt.createElement(kh,{size:"medium",variant:"body"},n.title)),start:gt.createElement(dx,{value:n.id}),onClick:o})))))}i(wh,"FilterSelectorContent");function wc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Jo.createElement("div",null,Jo.createElement(gx,{open:a,align:"end",onOpenChange:o,container:W(),content:Jo.createElement(wh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Jo.createElement(fh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Jo.createElement(kc,{isSelect:!!n},Jo.createElement(fx,{size:16,color:"black"}),!!n&&Jo.createElement(gh,null)))))}i(wc,"FilterSelector");import{i18n as Sx}from"@lingui/core";import{getCurrentStep as Tx}from"@rango-dev/queue-manager-rango-preset";import{Divider as Ih,GroupedVirtualizedList as Cx,Skeleton as kx,SwapListItem as Ah,Typography as wx}from"@rango-dev/ui";import et,{useCallback as Nh,useEffect as vx,useRef as Ex,useState as bx}from"react";function vh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(vh,"calculateGroupsSoFar");import{css as hx,darkTheme as yx,styled as _r}from"@rango-dev/ui";var vc=hx(),Eh=_r("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ec=_r("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${vc}`]:{$$color:"$colors$neutral600",[`.${yx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bc=_r("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bh=_r("div",{gap:"$10",display:"flex",flexDirection:"column"}),xh=_r("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var xx=10;function xc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=bx([]),c=Ex(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Nh(vh,[]),f=Nh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,xx),s(d(p,c.current)))},[e.length]);if(vx(()=>{r||f()},[r,f]),r){let h=[1,2];return et.createElement(et.Fragment,null,[h,h].map((m,S)=>et.createElement(Ec,{key:S},et.createElement(bc,null,et.createElement(kx,{variant:"text",width:60,size:"small"}),et.createElement(Ih,{size:16})),et.createElement(Ih,{size:4}),et.createElement(bh,null,m.map((y,k)=>et.createElement(Ah,{isLoading:!0,key:k}))))))}return et.createElement(Cx,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>et.createElement(Ec,null,et.createElement(bc,null,et.createElement(wx,{variant:"label",size:"medium",className:vc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let S=Tx(m),T=m.steps[0],y=m.steps[m.steps.length-1];return!T||!y?null:et.createElement(Eh,{key:m.requestId},et.createElement(Ah,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:S,tooltipContainer:W(),onlyShowTime:u[g]===Sx.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:M(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(xc,"HistoryGroupedList");import{i18n as ka}from"@lingui/core";import Wh from"dayjs";var Ph=i(t=>{let e=new Map([["today",{title:ka.t("Today"),swaps:[]}],["week",{title:ka.t("This week"),swaps:[]}],["month",{title:ka.t("This month"),swaps:[]}],["year",{title:ka.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=Wh();t.forEach(l=>{let p=Number(l.creationTime),u=Wh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let d=new Date(p).getFullYear().toString();o(d,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var Bx=Ac("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),_x=Ac("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Mx=Ac("div",{"._typography":{color:"$neutral700",[`.${Ax}&`]:{color:"$neutral900"}}}),Dx=i((t,e)=>t?.length?t.filter(o=>_t(o.fromBlockchain,e)||_t(o.toBlockchain,e)||_t(o.toSymbol,e)||_t(o.fromSymbol,e)).length:!1,"isStepContainsText");function Bh(){let t=Lx(),{manager:e,state:o}=Ix(),n=vt(e).map(({swap:E})=>E),[r,a]=Dr(""),[s,c]=Dr(!1),l=!o.loadedFromPersistor,[p,u]=Dr(""),[d,f]=Dr(!1),[h,g]=Dr("all"),m=i(E=>{let I=E.target.value;a(I)},"handleSearch"),{isMultiMode:S}=rt(),T=[{id:Mr.SUCCESS,title:Fe.t("Complete")},{id:Mr.RUNNING,title:Fe.t("Running")},{id:Mr.FAILED,title:Fe.t("Failed")}],y=[{id:"all",title:Fe.t("All")},{id:"swap",title:Fe.t("Swap")},{id:"refuel",title:Fe.t("Refuel")}],k=Lh(()=>!r&&!p&&h==="all"?n:n.filter(E=>{let{inputAmount:I,status:b,steps:L,requestId:N,mode:O}=E;return(!r||_t(I,r)||_t(b,r)||Dx(L,r)||_t(N,r))&&(!p||p===b)&&(h==="all"?!0:h==="swap"?!O||O==="swap":h==="refuel"?O==="refuel":!1)}),[n,r,p,h]),w=!k?.length&&!l,v=i(()=>f(!1),"onCloseModal"),x=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(E){console.log(E)}},"onClear"),A=Lh(()=>!n.some(E=>E.status===Mr.SUCCESS||E.status===Mr.FAILED),[n]);return oe.createElement(se,{header:{title:Fe.t("History"),suffix:oe.createElement(ho,null,oe.createElement(Ic,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},oe.createElement(wa,{size:"medium",variant:"label",color:"error"},Fe.t("Clear"))))}},oe.createElement(pe,null,oe.createElement(_x,null,oe.createElement(Wt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Fe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),oe.createElement(wo,{size:10,direction:"horizontal"}),oe.createElement(wc,{filterBy:p,open:s,onOpenChange:E=>c(E),onClickItem:E=>u(E),list:T})),oe.createElement(wo,{size:"16"}),S&&!l&&oe.createElement(oe.Fragment,null,oe.createElement(Px,{items:y,onChange:E=>g(E.id),value:h,type:"secondary"}),oe.createElement(wo,{size:"12"})),oe.createElement(Bx,null,w&&oe.createElement(xh,null,oe.createElement(wo,{size:32}),oe.createElement(Wx,{title:r?Fe.t("No results found"):Fe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Fe.t("Try using different keywords"):Fe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&oe.createElement(xc,{list:k,onSwapClick:t,groupBy:Ph,isLoading:l}))),oe.createElement(re,{open:d,onClose:v,id:"widget-history-clear-modal",container:W()},oe.createElement(wo,{size:20}),oe.createElement(Nx,{type:"warning",title:Fe.t("Clear Transaction History"),description:oe.createElement(Mx,null,oe.createElement(wa,{variant:"body",size:"medium"},Fe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),oe.createElement(wo,{size:"24"}),oe.createElement(wa,{variant:"body",size:"small"},Fe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),oe.createElement(wo,{size:30}),oe.createElement(Ic,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:x},Fe.t("Yes, Clear the history")),oe.createElement(wo,{size:10}),oe.createElement(Ic,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:v},oe.createElement(wa,{variant:"title",size:"medium",color:"primary"},Fe.t("No, Cancel")))))}i(Bh,"HistoryPage");import{i18n as ly}from"@lingui/core";import{Button as SI,Divider as Hc,styled as TI,WarningIcon as CI}from"@rango-dev/ui";import kI from"bignumber.js";import Ce,{useEffect as cy,useState as py}from"react";import{useNavigate as wI}from"react-router-dom";import{i18n as Mh}from"@lingui/core";import{Alert as Fx,Divider as Nc,NoRouteIcon as Ox,Typography as Ux}from"@rango-dev/ui";import Ro from"react";import{styled as $x}from"@rango-dev/ui";var _h=$x("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Wc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Vt(t,e)?Ro.createElement(_h,null,Ro.createElement(Nc,{size:10}),Ro.createElement(Ox,{size:24,color:"gray"}),Ro.createElement(Nc,{size:4}),Ro.createElement(Ux,{variant:"title",size:"small"},Mh.t("No Routes Found")),Ro.createElement(Nc,{size:4}),Ro.createElement(Fx,{title:Mh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Wc,"SameTokensWarning");import{Alert as zx,Button as Hx}from"@rango-dev/ui";import $h from"react";import{i18n as va}from"@lingui/core";function Dh(t){let e=null;return t===fi?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:va.t("Reset"),title:va.t("Slippage cannot be set lower than 0.01%.")},e):t>un?(e={alertType:"warning",action:"change-settings",actionButtonTitle:va.t("Change"),title:va.t("Caution, your slippage is high!")},e):null}i(Dh,"makeAlerts");function Fh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=C(),{onChangeSettings:a}=t,c=Dh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(mi),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?$h.createElement(zx,{title:c.title,type:c.alertType,variant:"alarm",action:$h.createElement(Hx,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(Fh,"SlippageWarningsAndErrors");import{i18n as Kx}from"@lingui/core";import{IconButton as jx,ReverseIcon as Xx,Skeleton as Yx,Tooltip as Zx,Typography as $r}from"@rango-dev/ui";import ht from"react";import Ea from"bignumber.js";function Uh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(Uh,"getSlippageColor");function zh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new Ea(e),r=new Ea(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(zh,"getUsdExchangeRate");function Hh(t,e){let o=new Ea(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,Ea.ROUND_DOWN).toFormat(2)}`}i(Hh,"formatTokenValueInUsd");import{darkTheme as Gx,styled as Lc,Typography as Vx}from"@rango-dev/ui";var Qh=Lc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),qh=Lc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${Gx} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Bc=Lc(Vx,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function _c(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=C(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=go({}),h=fn(d),g=f==="dark",m=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},T={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},y=p?.swaps[0]?.from||c,k=p?.swaps[p?.swaps.length-1]?.to||l,w=m?y:k,v=m?k:y,x=Number(m?p?.outputAmount:p?.requestAmount),A=Number(m?p?.requestAmount:p?.outputAmount),E=x||w.usdPrice,I=A||v.usdPrice,{rawValue:b,displayValue:L}=zh({toTokenUsdPrice:I,fromTokenUsdPrice:E});return ht.createElement(Qh,null,ht.createElement($r,{variant:S||T?"label":"body",size:S||T?"medium":"small",color:Uh({error:S,warning:T,isDarkTheme:g})},Kx.t("Slippage:")," ",d,"%"),u?ht.createElement(Yx,{height:16,width:104,variant:"rounded"}):E&&I&&ht.createElement(qh,null,ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},"1"),ht.createElement(Bc,{className:"rate-text",variant:"body",size:"small"},v.symbol),ht.createElement(jx,{id:"widget-home-page-change-rate-button",onClick:r},ht.createElement(Xx,{size:14,color:"secondary"})),ht.createElement(Zx,{container:W(),side:"top",sideOffset:4,content:ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},b)},ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},L)),ht.createElement(Bc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&ht.createElement($r,{color:"neutral600",variant:"body",size:"small"},"~",Hh(Number(b),w.usdPrice))))}i(_c,"SwapMetrics");import{i18n as nI}from"@lingui/core";import{Header as rI}from"@rango-dev/ui";import vo,{useEffect as iI,useState as aI}from"react";import{i18n as Rx}from"@lingui/core";import{Divider as Dc,FullExpandedQuote as eI,Typography as tI}from"@rango-dev/ui";import ve from"react";import{styled as Mc}from"@rango-dev/ui";var Gh=Mc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Vh=Mc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Kh=Mc("div",{width:"146px"});import{i18n as Fr}from"@lingui/core";import{Select as Jx}from"@rango-dev/ui";import jh from"react";function ba(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Fr.t("Smart Routing")},{value:"FEE",label:Fr.t("Lowest Fee")},{value:"SPEED",label:Fr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Fr.t("Maximum Return")},{value:"PRICE",label:Fr.t("Maximum Output")}];return jh.createElement(Kh,null,jh.createElement(Jx,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ba,"SelectStrategy");var Xh=3;function Or(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:f,sortStrategy:h,error:g}=z()(),{slippage:m,customSlippage:S}=C(),{findToken:T}=C(),y=c||W(),k=!!p&&p.results.length,w=S??m,{config:{__UNSTABLE_OR_INTERNAL__:v}}=C(),x=i(I=>{if(!d||!f||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...I};return En({currentQuote:b,userSlippage:w,findToken:T})},"getQuoteWarning"),A=g?.type===0||g?.type===1,E=p?.results?Ni(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Vh,null,ve.createElement(tI,{size:"xmedium",variant:"title"},Rx.t("Sort by")),ve.createElement(ba,{container:y})),ve.createElement(Dc,{size:"10"})),e&&Array.from({length:Xh},(I,b)=>ve.createElement(ve.Fragment,{key:b},s?ve.createElement(eI,{campaignTag:v?.campaignTag,loading:!0}):ve.createElement(xr,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Xh-1&&ve.createElement(Dc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?E.map((I,b)=>{let L=x(I),N=oc(I.swaps),O=E.length-1===b;return ve.createElement(ve.Fragment,{key:I.requestId},ve.createElement(Yo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:y,selected:l?.requestId===I.requestId,tagHidden:!1,quote:{...I,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:L,fullExpandedMode:s,onClick:q=>{N||u("warning",L),u("error",N?.options||null),o(q)},type:"list-item"}),!O&&ve.createElement(Dc,{size:16}))}):A&&ve.createElement(Gh,null,ve.createElement(Sr,{size:s?"large":"small",error:g,fetch:n}))))}i(Or,"Quotes");import{darkTheme as oI,styled as Yh}from"@rango-dev/ui";var Zh=Yh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${oI} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Jh=Yh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var sI=100;function $c(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=aI(!1),l=s?"":"is-hidden",{config:p}=C(),u=p?.variant==="full-expanded",d=_o();return iI(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},sI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),vo.createElement(Zh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Qi()} widget-expanded-quotes-container`,id:kt.EXPANDED_BOX_ID},vo.createElement(rI,{title:nI.t("Routes"),suffix:vo.createElement(vo.Fragment,null,vo.createElement(ba,{container:d}),vo.createElement(Go,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),vo.createElement(Jh,null,vo.createElement(Or,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:_o(),onClickOnQuote:n,fullExpandedMode:u})))}i($c,"ExpandedQuotes");import{i18n as iy}from"@lingui/core";import{SwapInput as ay}from"@rango-dev/ui";import uI from"bignumber.js";import Ur from"react";import{ReverseIcon as pI}from"@rango-dev/ui";import Oc from"react";import{keyframes as lI,styled as Rh}from"@rango-dev/ui";var Fc=450,cI=lI({"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)"}}),ey=Rh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),ty=Rh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${cI} ${Fc}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 Uc(){let t=z().use.switchFromAndTo();return Oc.createElement(ey,null,Oc.createElement(ty,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Fc),t()}},Oc.createElement(pI,{size:12})))}i(Uc,"SwitchFromAndToButton");import{styled as oy}from"@rango-dev/ui";var ny=oy("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),ry=oy("div",{position:"relative"});function zc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=z()(),{swapMode:S}=rt(),{connectedWallets:T,getBalanceFor:y}=C(),k=a?y(a):null,w=pi(k)?.amount??"0",v=k?new uI(k.amount).shiftedBy(-k.decimals):ue,x=!!s&&Iu(T,s.name),A=!Hs(m,d,f),E=!Hs(m,d,g),I=!f||!g||!g.gt(0)?null:Yt(f.toString(),g.toString());return Ur.createElement(ny,null,Ur.createElement(ry,null,Ur.createElement(ay,{label:iy.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:M(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?ie().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:W(),onSelectMaxBalance:()=>{let b=v.isGreaterThan(ue)?v.toFixed():"";p(b)},anyWalletConnected:T.length>0}),S==="swap"&&Ur.createElement(Uc,null)),Ur.createElement(ay,{selectionType:S==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:iy.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:M(Yt(f,g),2,2),warningLevel:Zt(I??0),price:{value:M(h,6,6),usdValue:E?void 0:M(g,4,4),realValue:h?.toString(),realUsdValue:E?void 0:g?.toString(),error:E?ie().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(zc,"Inputs");import{warn as dI}from"@rango-dev/logging-core";import{useCallback as mI,useEffect as fI,useRef as gI,useState as hI}from"react";function sy(){let{fetch:t,loading:e,cancelFetch:o}=ga({request:async(n,r)=>await dt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(sy,"useFetchAllQuotes");var yI=600;function xa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=sy(),{excludeLiquiditySources:n,routing:r}=C().config,{connectedWallets:a}=C(),c=a.some(be=>be.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:S,setSelectedQuote:T,updateQuotePartialState:y}=z()(),{slippage:k,customSlippage:w,affiliatePercent:v,affiliateRef:x,affiliateWallets:A,fetchStatus:E}=C(),I=C().getLiquiditySources(),b=C().getDisabledLiquiditySources(),L=C().excludeLiquiditySources(),{findToken:N}=C(),{swapMode:O}=rt(),[q,j]=hI(!0),ee=gI(u),P=w??k,Y=!l||!p||Vt(l,p)||!Yn(u),ce=i(be=>{j(be)},"resetState"),Ee=i(be=>{let{fromToken:He,toToken:Xe,inputAmount:St,liquiditySources:ct,excludeLiquiditySources:B,disabledLiquiditySources:V,slippage:H,affiliateRef:X,affiliatePercent:G,affiliateWallets:J}=be;if(q||ce(!0),!Y&&He&&Xe){g();let U=Vd({fromToken:He,toToken:Xe,inputAmount:St,liquiditySources:ct,excludeLiquiditySources:B,disabledLiquiditySources:V,wallets:a,slippage:H,affiliateRef:X,affiliatePercent:G,affiliateWallets:J,contractCall:c});mn("experimental",r)&&(U.experimental=!0),mn("avoidNativeFee",r)&&(U.avoidNativeFee=!0),mn("enableCentralizedSwappers",r)&&(U.enableCentralizedSwappers=!0),r?.maxLength&&(U.maxLength=r.maxLength),O==="refuel"&&(U.maxLength=1),e(U).then(de=>{let Qe=Ni(h,de.results),ot=_d(f,Qe,de.requestAmount);j(!1),y("quotes",de),T(ot),de.results?.length&&ot&&hn({type:"routeRequested",payload:{...$n(ot),routeCount:de.results.length}}),ha({diagnosisMessages:de.diagnosisMessages,requestId:ot?.requestId||"",swaps:ot?.swaps});let co=ot&&En({currentQuote:ot,userSlippage:P,findToken:N});y("warning",co)}).catch(de=>{let Qe=ya(de);Qe.type===0?hn({type:"routeNotFound",payload:{sourceChain:He.blockchain,destinationChain:Xe.blockchain,sourceTokenSymbol:He.symbol,sourceTokenAddress:He.address,destinationTokenSymbol:Xe.symbol,destinationTokenAddress:Xe.address,inputAmountUsd:d?d.toNumber():null}}):Qe.type===1&&hn({type:"routeFetchFailed",payload:{sourceChain:He.blockchain,destinationChain:Xe.blockchain,errorCode:String(de?.response?.status??"")}}),(Qe.type===0||Qe.type===1)&&g(),Qe.type!==2&&(y("error",Qe),j(!1),dI(new Error("quote error"),{tags:{...Qe,type:Je[Qe.type],requestBody:U}}))})}},"fetch"),Gt=mI(ri(be=>{Ee(be)},yI),[Y]);return fI(()=>{if(!t){j(!1);return}if(E!=="success")return;if(Y){j(!1),(f||m||S)&&g();return}if(!Yn(u)&&d?.eq(0)){ce(!1),o();return}g(),ce(!0);let be=Ee;return ee.current&&ee.current!=u&&(be=Gt),ee.current=u,be({inputAmount:u,fromToken:l,toToken:p,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:b,slippage:P,affiliateRef:x,affiliatePercent:v,affiliateWallets:A,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,I?.length,n,b.length,P,x,v,c,JSON.stringify(A)]),{fetch:()=>Ee({inputAmount:u,fromToken:l,toToken:p,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:b,slippage:P,affiliateRef:x,affiliatePercent:v,affiliateWallets:A,contractCall:c}),loading:q}}i(xa,"useSwapInput");var vI=TI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),EI=300;function uy(){let t=wI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=z()(),[h,g]=py(!1),{isLargeScreen:m,isExtraLargeScreen:S}=aa(),{fetch:T,loading:y}=xa({refetchQuote:a}),{config:k,fetchStatus:w,connectedWallets:v,customSlippage:x,slippage:A,setSlippage:E,setCustomSlippage:I}=C(),{isActiveTab:b}=ne(),[L,N]=py(!1),O=x!==null?x:A,{swapMode:q}=rt(),j=fn(O),P=Hd({fetchMetaStatus:w,fetchingQuote:y,inputAmount:n,quote:r,anyWalletConnected:v.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Z=Bu(m,S,k?.variant),Y=!!n&&!!e&&!!o&&new kI(n).gt(0)&&!Rd(e,o),ce=Y&&w==="success"&&y,Ee=j?.quoteValidation||c,He=(!Z||Z&&l?.results.length)&&(Ee||s),Xe=!!e&&!!o,St=Xe&&!!j,ct=(r||s)&&!L?T:void 0,B=i(J=>{Z&&h?(g(!1),setTimeout(()=>{t(J)},EI)):t(J)},"onHandleNavigation"),V=i(J=>{r?.requestId!==J.requestId&&(r&&hn({type:"routeChanged",payload:{sourceChain:J.swaps[0]?.from.blockchain??"",destinationChain:J.swaps[J.swaps.length-1]?.to.blockchain??"",fromRouteId:r.requestId,toRouteId:J.requestId}}),N(!1),p(J))},"onClickOnQuote"),H=i(J=>{if(J){if(di.includes(J)){E(J),I(null);return}I(J)}},"onChangeSlippage"),X=i(J=>{B(J==="from"?$.fromSwap:q==="swap"?$.toSwap:$.toSwap+"/"+$.blockchains)},"handleInputTokenClick");cy(()=>{u(),f("refetchQuote",!0)},[]),cy(()=>{g(Y)},[Y]);let G=i(()=>{P.action==="connect-wallet"?ju({type:"clickConnectWallet"},()=>{B($.wallets)}):P.action==="confirm-warning"?N(!0):r&&(te({type:"swapInitiated",payload:{...$n(r),walletConnected:v.length>0}}),B($.confirmSwap))},"handleSwapButtonClick");return Ce.createElement(vI,null,Ce.createElement(se,{height:"auto",footer:Ce.createElement(SI,{id:`widget-swap-${P.action}-btn`,type:"primary",size:"large",disabled:P.disabled||!b,prefix:P.action==="confirm-warning"&&Ce.createElement(CI,null),fullWidth:!0,onClick:G},P.title),header:{onWallet:()=>{B($.wallets)},hasBackButton:!1,title:k.title||(q==="swap"?ly.t("Swap"):ly.t("Refuel")),suffix:Ce.createElement(Go,{hidden:Z?["refresh"]:void 0,onClickRefresh:ct,onClickHistory:()=>B($.swaps),onClickSettings:()=>{B($.settings)}})}},Ce.createElement(pe,null,Ce.createElement(zc,{fetchingQuote:ce,fetchMetaStatus:w,isExpandable:Z,onClickToken:X}),Ce.createElement(Hc,{size:"2"}),Z?null:Ce.createElement(Yo,{quote:r,loading:ce,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Ee,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),B($.routes)}:void 0}),Xe&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Hc,{size:8}),Ce.createElement(_c,{quoteError:s,quoteWarning:Ee,fromToken:e,toToken:o,quote:r,loading:ce})),He?Ce.createElement(Ce.Fragment,null,Ce.createElement(Cr,{warning:Ee,error:s,skipAlerts:!!j,couldChangeSettings:!0,refetchQuote:T,showWarningModal:L,confirmationDisabled:!b,onOpenWarningModal:()=>N(!0),onCloseWarningModal:()=>N(!1),onChangeSlippage:H,onConfirmWarningModal:()=>{N(!1),d(!0),B($.confirmSwap)},onChangeSettings:()=>B($.settings)})):null,St&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Hc,{size:"10"}),Ce.createElement(Fh,{onChangeSettings:()=>B($.settings)})),Ce.createElement(Wc,null))),Z?Ce.createElement($c,{loading:ce,onClickOnQuote:V,fetch:T,onClickRefresh:ct,isVisible:h}):null)}i(uy,"Home");import{i18n as dy}from"@lingui/core";import{Alert as bI,Divider as xI,List as II,ListItemButton as AI,Radio as NI,RadioRoot as WI,Typography as PI}from"@rango-dev/ui";import Ut from"react";function Eo(){let{setLanguage:t,language:e,config:o}=C(),n=Ou,r=o?.language||gn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||gn),resetLanguage:()=>t(null)}}i(Eo,"useLanguage");function my(){let{activeLanguage:t,changeLanguage:e,languages:o}=Eo(),n=Ve(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ut.createElement(PI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ut.createElement(NI,{value:s}),start:Ut.createElement(l,null)}});return Ut.createElement(se,{header:{title:dy.t("Language")}},Ut.createElement(pe,null,Ut.createElement(bI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ut.createElement(xI,{size:"8"}),Ut.createElement(WI,{value:t},Ut.createElement(II,{type:Ut.createElement(AI,{title:dy.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(my,"LanguagePage");import{i18n as io}from"@lingui/core";import{Button as DI,Checkbox as $I,Image as FI,ListItemButton as OI,NotFound as UI,Typography as zI}from"@rango-dev/ui";import tt,{useState as HI}from"react";import{Checkbox as _I,Skeleton as gy}from"@rango-dev/ui";import Hr from"react";import{styled as Qc}from"@rango-dev/ui";var zr=Qc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),qc=Qc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Gc=Qc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as LI,styled as BI}from"@rango-dev/ui";var fy=BI(LI,{height:61});var MI=30;function Vc(){return Hr.createElement(zr,null,Array.from(Array(MI),(t,e)=>Hr.createElement(fy,{hasDivider:!0,key:e,start:Hr.createElement(gy,{variant:"circular",width:35,height:35}),title:Hr.createElement(gy,{variant:"text",size:"large",width:90}),end:Hr.createElement(_I,{checked:!1})})))}i(Vc,"LoadingLiquiditySourceList");function Kc({sourceType:t}){let e=C().fetchStatus,o=C().swappers(),n=C().getDisabledLiquiditySources(),[r,a]=HI(""),s=C().toggleLiquiditySource,c=C().isInCampaignMode(),l=hi(o,n),p={Exchanges:io.t("Exchanges"),Bridges:io.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),f=d.length===d.filter(y=>y.selected).length,h=t==="Exchanges"?"exchanges":"bridges",g=i(()=>{let y=!f;te({type:"settingsChanged",payload:{setting:"liquiditySource",sourceType:h,changeType:y?"selectAll":"deselectAll",previousSelectedCount:d.filter(k=>k.selected).length,totalCount:d.length}}),d.forEach(k=>{f?s(k.groupTitle):k.selected||s(k.groupTitle)})},"toggleAllSources"),m=d.map(y=>{let{selected:k,groupTitle:w,logo:v,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${gu(x.toLowerCase())}-item-btn`,start:tt.createElement(FI,{src:v,size:22,type:"circular"}),onClick:()=>{c||(te({type:"settingsChanged",payload:{setting:"liquiditySource",sourceType:h,changeType:"individual",sources:[{id:w,enabled:!k}]}}),s(w))},end:tt.createElement($I,{checked:k,disabled:c}),title:tt.createElement(zI,{variant:"title",size:"xmedium"},io.t(w)),selected:k,groupTitle:w,logo:v,...A}}),S=i(y=>{let k=y.target.value;a(k)},"handleSearch"),T=m;return r&&(T=m.filter(y=>_t(y.groupTitle,r))),tt.createElement(se,{header:{title:io.t(t),suffix:tt.createElement(qc,null,tt.createElement(DI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},f?io.t("Deselect all"):io.t("Select all")))}},tt.createElement(pe,{view:!0},tt.createElement(Wt,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:io.t("Search {sourceType}",{sourceType:p[t]}),onChange:S}),e==="loading"&&tt.createElement(Vc,null),!T.length&&r?tt.createElement(Gc,null,tt.createElement(UI,{title:io.t("No results found"),description:io.t("Try using different keywords")})):e==="success"&&tt.createElement(zr,{disabled:c,className:"widget-liquidity-source-list"},T.map(y=>{let{groupTitle:k,...w}=y;return tt.createElement(tt.Fragment,{key:y.id},tt.createElement(OI,{style:{height:"61px"},...w,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Kc,"LiquiditySourcePage");import{i18n as QI}from"@lingui/core";import Ia from"react";import{useNavigate as qI}from"react-router-dom";function hy(){let t=qI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=xa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${$.settings}`,d=`../${$.wallets}`;return Ia.createElement(se,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:QI.t("Routes"),suffix:Ia.createElement(Go,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ia.createElement(pe,null,Ia.createElement(Or,{fetch:c,loading:l,onClickOnQuote:p})))}i(hy,"RoutesPage");import{i18n as vy}from"@lingui/core";import{Divider as Ey,getCategoriesCount as eA,SelectableCategoryList as tA}from"@rango-dev/ui";import ao,{useMemo as oA,useState as by}from"react";import{useNavigate as nA}from"react-router-dom";import{i18n as jc}from"@lingui/core";import{Divider as jI,Image as XI,ListItemButton as YI,NotFound as ZI,Typography as wy}from"@rango-dev/ui";import yt,{useEffect as JI,useState as RI}from"react";var yy=i((t,e,o)=>t.filter(n=>ii(n.type,o)).filter(n=>pt(n.name,e)||pt(n.displayName,e)),"filterBlockchains");import{ImageContainer as GI,styled as Sy}from"@rango-dev/ui";var Ty=Sy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Aa=Sy(vl,{padding:0,margin:0,listStyle:"none",[`& ${GI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as VI,Skeleton as Cy}from"@rango-dev/ui";import Na from"react";var KI=20;function ky(){return Na.createElement(Aa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(KI),t=>Na.createElement(VI,{key:t,hasDivider:!0,start:Na.createElement(Cy,{variant:"circular",width:35,height:35}),title:Na.createElement(Cy,{variant:"text",size:"large",width:90})})))}i(ky,"LoadingBlockchainList");function Xc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=RI(e),{fetchStatus:l}=C();JI(()=>{c([...yy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?yt.createElement(ZI,{title:jc.t("No results found"),description:jc.t("Try using different keywords")}):yt.createElement(Aa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>yt.createElement(YI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:yt.createElement(XI,{src:u.logo,size:30}),title:yt.createElement(wy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return yt.createElement(yt.Fragment,null,a&&yt.createElement(yt.Fragment,null,yt.createElement(wy,{variant:"label",size:"large"},jc.t("Select Chain")),yt.createElement(jI,{size:4})),yt.createElement(Ty,null,l==="loading"&&yt.createElement(ky,null),l==="success"&&p()))}i(Xc,"BlockchainList");function Wa(t){let{type:e}=t,o=Ve(),[n,r]=by(""),[a,s]=by("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=C(),f=nA(),{swapMode:h}=rt(),g=C().blockchains({type:e}),m=C().tokens(),S=oA(()=>uu(g,m),[g.length,m.length]),T=eA(S),y=!t.hideCategory&&T!==1,k=i(w=>{if(e==="custom-token")f(`..?blockchain=${w.name}`,{replace:!0});else{if(te({type:"chainFilterApplied",payload:{side:e==="source"?"from":"to",chain:w.name,filterSource:"expanded"}}),e==="source")l(w);else if(h==="swap")c(w);else{let v=d(w);v&&p({token:v,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return ao.createElement(se,{header:{title:vy.t("Select Chain")}},ao.createElement(pe,{view:!0},y&&ao.createElement(ao.Fragment,null,ao.createElement(tA,{setCategory:s,category:a,blockchains:S,isLoading:u==="loading"}),ao.createElement(Ey,{size:24})),ao.createElement(Wt,{value:n,autoFocus:!0,placeholder:vy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:w=>r(w.target.value)}),ao.createElement(Ey,{size:16}),ao.createElement(Xc,{list:S,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:k})))}i(Wa,"SelectBlockchainPage");import{i18n as Ba}from"@lingui/core";import{Divider as By,Spinner as SA}from"@rango-dev/ui";import bo,{useEffect as TA,useState as CA}from"react";import{useNavigate as kA}from"react-router-dom";import{i18n as Jc}from"@lingui/core";import{BlockchainsChip as Pa,Divider as Ny,Image as Wy,Skeleton as cA,Tooltip as pA,Typography as Rc}from"@rango-dev/ui";import xe from"react";import{useEffect as aA}from"react";var xy=["ETH"];function Yc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(rA),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p?.name!==u)}}n.sort(iA(s)),r=n.splice(a)}return{list:n,more:r}}i(Yc,"prepare");function rA(t,e){let o=xy,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(rA,"sortByMostUsedBlockchains");function iA(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(iA,"generateSortByPreferredBlockchainsFor");function Iy(t,e){return!!e.list.find(o=>o.name===t)}i(Iy,"isInVisibleList");function Zc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=C();aA(()=>{if(e?.selected){let a=Yc(t,o,e);Iy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Yc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Zc,"usePrepareBlockchainList");import{styled as sA}from"@rango-dev/ui";var Ay=sA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var uA=6,dA=12;function ep(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=ne(),c=Zc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=C(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Ny,{size:12}),xe.createElement(Rc,{variant:"label",size:"large"},Jc.t("Select Chain"))),xe.createElement(Ny,{size:12}),xe.createElement(Ay,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?uA:dA),(m,S)=>xe.createElement(cA,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(Pa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Rc,{variant:"body",size:"xsmall",color:"secondary500"},Jc.t("All"))),c.list.map(m=>xe.createElement(pA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:W()},xe.createElement(Pa,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(Wy,{src:m.logo,size:30})))),h?xe.createElement(Pa,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(Wy,{src:f.logo,size:30})):null,g?xe.createElement(Pa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Rc,{variant:"body",size:"xsmall",color:"secondary500"},Jc._("More +{count}",{count:c.more.length}))):null)))}i(ep,"BlockchainsSection");import{useCallback as fA,useRef as gA,useState as tp}from"react";function op(){let t=C().blockchains(),e=gA(null),{customTokens:o}=C(),[n,r]=tp(!1),[a,s]=tp([]),[c,l]=tp(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await dt().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(y=>jt(y))),S=new Set(t.map(y=>y.name)),T=g.tokens.filter(y=>S.has(y.blockchain)&&!m.has(jt(y)));s(T),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=fA(ri((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(op,"useSearchCustomTokens");function Py(t){return t.trim()?"search":"default "}i(Py,"getTokenSelectionMethod");function La(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(La,"shouldSearchForCustomTokens");function Ly(t,e,o,n,r){let a=[...t];return La(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Ly,"prepareTokensList");function _a(t){let{type:e}=t,o=kA(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=C(),{fetch:d,loading:f,tokens:h,cancel:g}=op(),[m,S]=CA(""),T=e==="source"?r:a,y=T?.name??"",k=C().blockchains({type:e}),w=C().tokens({type:e,blockchain:y,searchFor:m,getBalanceFor:u}),v=Ly(w,h,m,f,T?.name),x=i(N=>{e==="source"?l(N):p(N)},"updateBlockchain"),A=i(N=>{e==="source"?s({token:N,meta:{blockchains:k}}):c({token:N,meta:{blockchains:k}})},"updateToken"),E=e==="source"?"from":"to",I=i(N=>{te({type:"chainFilterApplied",payload:{side:E,chain:N.name,filterSource:"featured"}})},"emitChainFilterApplied"),b=i(N=>{te({type:"tokenSelected",payload:{side:E,tokenName:N.name,tokenSymbol:N.symbol,tokenAddress:N.address,chain:N.blockchain,selectionMethod:Py(m),activeChainFilter:y||"all"}})},"emitTokenSelected"),L={source:Ba.t("Source"),destination:Ba.t("Destination")};return TA(()=>(La(w,m,T?.name)&&d(m,T?.name??void 0),()=>{g()}),[w.length,m,T?.name]),bo.createElement(se,{header:{title:Ba.t("Swap {type}",{type:L[e]})}},bo.createElement(pe,null,bo.createElement(ep,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o($.blockchains),onChange:N=>{I(N),x(N)}}),bo.createElement(By,{size:24}),bo.createElement(Wt,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ba.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:N=>S(N.target.value),suffix:La(w,m,T?.name)&&f?bo.createElement(SA,{size:12,color:"secondary"}):void 0}),bo.createElement(By,{size:16}),bo.createElement(Pr,{list:v,selectedBlockchain:y,searchedFor:m,type:e,onChange:N=>{b(N),A(N);let O=k.find(q=>N.blockchain===q.name);O&&x(O),n()}})))}i(_a,"SelectSwapItemsPage");import{i18n as ap}from"@lingui/core";import{Alert as jA,Button as XA,styled as YA}from"@rango-dev/ui";import en from"react";import{useInRouterContext as ZA,useSearchParams as JA}from"react-router-dom";import{i18n as Oy}from"@lingui/core";import{Alert as bA,Divider as rp,InfoIcon as xA,SlippageIcon as IA,TextField as AA,Tooltip as NA,Typography as Uy}from"@rango-dev/ui";import Ue from"react";import{Chip as wA,styled as Qr,TextField as vA}from"@rango-dev/ui";var _y=Qr("div",{paddingTop:"$5",padding:"$10 $5"}),My=Qr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${vA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Dy=Qr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ma=Qr("div",{maxWidth:"280px",padding:"$10"}),$y=Qr(wA,{width:"61px",flexShrink:0});import{i18n as np}from"@lingui/core";import{Typography as EA}from"@rango-dev/ui";import qr from"react";function Fy(){return qr.createElement(Ma,null,qr.createElement(EA,{variant:"label",size:"medium",color:"neutral700"},np.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),qr.createElement("br",null),qr.createElement("br",null),qr.createElement("b",null,np.t("Warning")),":\xA0",np.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(Fy,"SlippageTooltipContent");function ip(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=C(),r=o!==null?fn(o):null,a=o??t,s=i((u,d)=>{u!==d&&te({type:"settingsChanged",payload:{setting:"slippage",previousValue:u,newValue:d}})},"emitSlippageChanged"),c=i(u=>{let d=u.target.value,f=parseFloat(d);if(isNaN(f))return n(null);let h=f;f>er&&(h=er),s(a,h),n(h)},"onSlippageValueChange"),l=i(u=>{s(a,u),o!==null&&n(null),e(u)},"onClickSlippageChip"),p=i(u=>{let d=u.target,f=d.value;Su(f)||(d.value=f.slice(0,-1))},"onInput");return Ue.createElement(_y,null,Ue.createElement(Dy,null,Ue.createElement(IA,{size:16,color:"gray"}),Ue.createElement(rp,{direction:"horizontal",size:4}),Ue.createElement(Uy,{variant:"title",size:"xmedium"},Oy.t("Slippage tolerance per swap")),Ue.createElement(rp,{direction:"horizontal",size:4}),Ue.createElement(NA,{container:W(),side:"top",sideOffset:4,content:Ue.createElement(Fy,null)},Ue.createElement(xA,{color:"gray"}))),Ue.createElement(My,null,di.map((u,d)=>{let f=`slippage-${d}`;return Ue.createElement($y,{id:`widget-slippage-chip-${u.toString()}%-btn`,key:f,onClick:()=>l(u),selected:o===null&&u===t,label:`${u.toString()}%`})}),Ue.createElement(AA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:p,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:c,suffix:o&&Ue.createElement(Uy,{variant:"body",size:"small"},"%"),placeholder:Oy.t("Custom")})),r&&Ue.createElement(Ue.Fragment,null,Ue.createElement(rp,{size:10}),Ue.createElement(bA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(ip,"Slippage");import{i18n as Et}from"@lingui/core";import{AutoThemeIcon as zy,BridgesIcon as WA,ChevronRightIcon as Da,DarkModeIcon as Hy,Divider as Gr,ExchangeIcon as PA,InfinityIcon as LA,InfoIcon as BA,LanguageIcon as _A,LightModeIcon as Qy,List as MA,ListItem as DA,ListItemButton as $A,Skeleton as FA,styled as OA,Switch as UA,Tabs as zA,TargetIcon as HA,Tooltip as QA,Typography as lt}from"@rango-dev/ui";import D from"react";import{useNavigate as qA}from"react-router-dom";var GA=OA("div",{width:"202px",height:"$40"}),VA=[{id:"light",icon:D.createElement(Qy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Light"))},{id:"dark",icon:D.createElement(Hy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Dark"))},{id:"auto",icon:D.createElement(zy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Auto"))}],KA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(zy,{...e});case"dark":return D.createElement(Hy,{...e});default:return D.createElement(Qy,{...e})}},"getThemeIcon");function qy(){let t=qA(),{theme:e}=C().config,{setTheme:o,theme:n}=C(),{activeLanguage:r,languages:a}=Eo(),s=a.find(P=>P.local===r)?.label,c=C().fetchStatus,l=C().swappers(),p=C().getDisabledLiquiditySources(),{config:{features:u}}=C(),d=C().customTokens(),f=nt("theme",u),h=nt("liquiditySource",u),g=nt("language",u),m=nt("customTokens",u),S=C().infiniteApprove,T=C().toggleInfiniteApprove,y=hi(l,p),k=y.filter(P=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(P.type)),w=k.length,v=k.filter(P=>P.selected).length,x=y.filter(P=>P.type==="DEX"),A=x.length,E=x.filter(P=>P.selected).length,I=i((P,Z)=>{switch(c){case"loading":return D.createElement(FA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(lt,{variant:"body",size:"medium",color:"$error500"},Et.t("Loading failed"));default:return D.createElement(lt,{variant:"body",size:"medium"},`${P} / ${Z}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Bridges")),end:D.createElement(D.Fragment,null,I(v,w),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Da,{color:"black"})),onClick:()=>t($.bridges),start:D.createElement(WA,{color:"gray",size:16})},L={id:"widget-setting-exchange-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Exchanges")),end:D.createElement(D.Fragment,null,I(E,A),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Da,{color:"black"})),start:D.createElement(PA,{color:"gray",size:16}),onClick:()=>t($.exchanges)},N={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Da,{color:"black"})),start:D.createElement(HA,{color:"gray",size:16}),onClick:()=>t($.customTokens)},O={id:"widget-setting-language-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Language")),start:D.createElement(_A,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},s),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Da,{color:"black"})),onClick:()=>t($.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Infinite approval")),D.createElement(Gr,{direction:"horizontal",size:4}),D.createElement(QA,{side:"top",sideOffset:4,container:W(),content:D.createElement(Ma,null,D.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Et.t("Warning")),":\xA0",Et.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(BA,{color:"gray"}))),start:D.createElement(LA,{color:"gray",size:16}),end:D.createElement(UA,{checked:S}),onClick:()=>{te({type:"settingsChanged",payload:{setting:"infiniteApproval",previousValue:S,newValue:!S}}),T()}},j={id:"widget-setting-theme-item-btn",type:D.createElement(DA,null),title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Theme")),end:D.createElement(GA,null,D.createElement(zA,{container:W(),items:VA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:P=>o(P.id),type:"primary",borderRadius:"small"})),start:KA(n)},ee=h?[]:[b,L];return m||ee.push(N),g||ee.push(O),ee.push(q),!e?.singleTheme&&!f&&ee.push(j),D.createElement(MA,{type:D.createElement($A,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:ee})}i(qy,"SettingsLists");var RA=YA("div",{paddingLeft:"$8"});function Gy(){let{isInCampaignMode:t,updateCampaignMode:e}=C(),o=t(),[,n]=JA(),r=ZA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return en.createElement(se,{header:{title:ap.t("Settings")}},en.createElement(pe,null,o&&en.createElement(jA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:ap.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:en.createElement(RA,null,en.createElement(XA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},ap.t("Reset")))}),en.createElement(ip,null),en.createElement(qy,null)))}i(Gy,"SettingsPage");import{i18n as c0}from"@lingui/core";import{cancelSwap as p0}from"@rango-dev/queue-manager-rango-preset";import{useManager as u0}from"@rango-dev/queue-manager-react";import{Alert as d0}from"@rango-dev/ui";import vp from"react";import{useParams as m0}from"react-router-dom";import{i18n as Ht}from"@lingui/core";import{getCurrentNamespaceOfOrNull as XN,getCurrentStep as YN,getRelatedWalletOrNull as ZN}from"@rango-dev/queue-manager-rango-preset";import{Button as OS,Divider as JN,QuoteCost as RN,StepDetails as e0,Typography as yp}from"@rango-dev/ui";import{useWallets as t0}from"@rango-dev/wallets-react";import US from"bignumber.js";import{PendingSwapNetworkStatus as Hn}from"rango-types";import we,{useEffect as Sp,useRef as Tp,useState as Ga}from"react";import{useNavigate as o0}from"react-router-dom";import{i18n as xo}from"@lingui/core";var eN=[xo.t("Sunday"),xo.t("Monday"),xo.t("Tuesday"),xo.t("Wednesday"),xo.t("Thursday"),xo.t("Friday"),xo.t("Saturday")];function Vy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?xo.t("Today"):`${eN[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Vy,"timeSince");function Ky(t){return t.finishTime?Vy(parseInt(t.finishTime)):Vy(parseInt(t.creationTime))}i(Ky,"getSwapDate");import Vr from"react";import{i18n as $a}from"@lingui/core";import{Button as jy,Divider as sp,MessageBox as tN}from"@rango-dev/ui";import Io from"react";var Xy=i(({onCancel:t,onClose:e})=>Io.createElement(Io.Fragment,null,Io.createElement(sp,{size:20}),Io.createElement(tN,{type:"error",title:$a.t("Cancel Swap"),description:$a.t("Are you sure you want to cancel this swap?")}),Io.createElement(sp,{size:32}),Io.createElement(jy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},$a.t("Yes, Cancel it")),Io.createElement(sp,{size:12}),Io.createElement(jy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},$a.t("No, Continue"))),"CancelContent");import{i18n as Fa}from"@lingui/core";import{Button as Yy,Divider as lp,MessageBox as oN,Typography as nN}from"@rango-dev/ui";import so from"react";var Zy=i(({onDelete:t,onClose:e})=>so.createElement(so.Fragment,null,so.createElement(lp,{size:20}),so.createElement(oN,{type:"error",title:Fa.t("Delete Transaction"),description:Fa.t("Are you sure you want to delete this swap?")}),so.createElement(lp,{size:32}),so.createElement(Yy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Fa.t("Yes, Delete it")),so.createElement(lp,{size:12}),so.createElement(Yy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},so.createElement(nN,{variant:"title",size:"medium",color:"primary"},Fa.t("No, Cancel")))),"DeleteContent");import{i18n as rN}from"@lingui/core";import{Button as iN,Divider as aN,MessageBox as sN}from"@rango-dev/ui";import tn from"react";var Jy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return tn.createElement(tn.Fragment,null,tn.createElement(sN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&tn.createElement(tn.Fragment,null,tn.createElement(aN,{size:"30"}),tn.createElement(iN,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},rN.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as bN,getCurrentStep as xN,getRelatedWalletOrNull as IN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as AN}from"@rango-dev/ui";import{useWallets as NN}from"@rango-dev/wallets-react";import iS from"react";import{i18n as Un}from"@lingui/core";import{Alert as tS,Button as pN,Checkbox as uN,Divider as za,Image as dN,MessageBox as mN,Spinner as fN,WarningIcon as gN}from"@rango-dev/ui";import{useWallets as hN}from"@rango-dev/wallets-react";import Te,{useState as yN}from"react";import{css as lN,darkTheme as cN,styled as cp}from"@rango-dev/ui";var Ry=lN({wordWrap:"break-word",display:"block"}),eS=cp("img",{width:"100%"}),Oa=cp("div",{position:"relative"}),Ua=cp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${cN} &`]:{$$color:"$warning600"}});var oS=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=yN(null),{list:s}=bt(),c=ne.use.isActiveTab(),{state:l,connect:p}=hN(),u=s.find(v=>v.type===e.walletType),d=u?.needsNamespace?.data.find(v=>v.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,m=u.isHub?h?.connected:f.connected,S=i(()=>m?Un.t("Done"):r?Un.t("Try again"):Un.t("Connect"),"getButtonTitle"),T=i(()=>g?Te.createElement(fN,{color:"info"}):r||m?null:Te.createElement(uN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),y=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(v){a(v)}},"handleConnect"),k=i(async()=>{if(m){n();return}y()},"handleClickButton"),w=i(()=>{if(!m)return null;let v=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),x=v?.[v?.length-1];return x?po(x):null},"getAddress");return Te.createElement(Te.Fragment,null,Te.createElement(mN,{type:"warning",title:Un.t("Connect {wallet}",{wallet:u.title}),description:Un.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:Te.createElement(Oa,null,Te.createElement(dN,{src:u.image,size:45}),Te.createElement(Ua,null,Te.createElement(gN,{color:"warning",size:10})))}),m&&!d&&Te.createElement(Te.Fragment,null,Te.createElement(za,{size:10}),Te.createElement(tS,{type:"success",variant:"alarm",title:Un.t("Wallet connected successfully.")})),r&&!d&&Te.createElement(Te.Fragment,null,Te.createElement(za,{size:10}),Te.createElement(tS,{type:"error",title:r?.message,variant:"alarm"})),d&&Te.createElement(Te.Fragment,null,Te.createElement(za,{size:30}),Te.createElement(Fo,{namespace:d,suffix:T(),error:r?.message,connected:m,address:w()})),Te.createElement(za,{size:"40"}),Te.createElement(pN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},S()))},"ConnectWalletContent");import{i18n as nS}from"@lingui/core";import{Button as SN,Divider as TN,Image as CN,MessageBox as kN,WarningIcon as wN}from"@rango-dev/ui";import{useWallets as vN}from"@rango-dev/wallets-react";import{detectInstallLink as EN}from"@rango-dev/wallets-shared";import lo from"react";var rS=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=vN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(EN(n.installLink),"_blank"),"handleButtonClick");return lo.createElement(lo.Fragment,null,lo.createElement(kN,{type:"warning",title:nS.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:lo.createElement(Oa,null,lo.createElement(CN,{src:n.img,size:45}),lo.createElement(Ua,null,lo.createElement(wN,{color:"warning",size:10})))}),lo.createElement(TN,{size:"40"}),lo.createElement(SN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},nS.t("Install")))},"InstallWalletContent");var aS=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=NN(),a=xN(e),s=a?IN(e,a):null,c=s?.walletType,l=c?Zn(r(c),n(c)):null,p=a?bN(e,a):null;return c?l===AN.NOT_INSTALLED?iS.createElement(rS,{walletType:c}):iS.createElement(oS,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function pp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Vr.createElement(re,{open:e,onClose:r,container:W()},o==="connectWallet"&&Vr.createElement(aS,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Vr.createElement(Jy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Vr.createElement(Zy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Vr.createElement(Xy,{onClose:r,onCancel:()=>{r(),s()}}))}i(pp,"SwapDetailsModal");import{i18n as Kr}from"@lingui/core";import{Button as up,Divider as jr,MessageBox as cS,TokenAmount as WN,Typography as pS}from"@rango-dev/ui";import ke from"react";import{Link as PN,useNavigate as LN}from"react-router-dom";var sS="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",lS="/profile";function dp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=LN(),{showProfileBanner:g}=ne();return ke.createElement(re,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(kt.SWAP_BOX_ID)||document.body},n==="success"?ke.createElement(cS,{type:"success",title:Kr.t("Swap Successful")},ke.createElement(WN,{direction:"vertical",tooltipContainer:W(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ke.createElement(jr,{size:12}),ke.createElement(pS,{className:Ry(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):ke.createElement(cS,{type:"error",title:Kr.t("Transaction Failed"),description:d}),ke.createElement(jr,{size:30}),n==="success"&&ke.createElement(ke.Fragment,null,g&&ke.createElement(ke.Fragment,null,ke.createElement(PN,{to:lS},ke.createElement(eS,{src:sS,alt:"Profile Banner"})),ke.createElement(jr,{size:30})),ke.createElement(up,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Kr.t("Done"))),ke.createElement(jr,{size:12}),f&&ke.createElement(ke.Fragment,null,ke.createElement(up,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Kr.t("Diagnosis")),ke.createElement(jr,{size:12})),ke.createElement(up,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ke.createElement(pS,{variant:"title",size:"medium",color:"primary"},Kr.t("See Details"))))}i(dp,"SwapDetailsCompleteModal");import{i18n as qa}from"@lingui/core";import{CopyIcon as qN,DoneIcon as GN,IconButton as VN,RangoExplorerIcon as KN,Tooltip as BS,Typography as _S,useCopyToClipboard as jN}from"@rango-dev/ui";import Lt from"react";import QN from"react";import{i18n as ON}from"@lingui/core";import{Alert as NS,IconButton as UN,LinkIcon as zN}from"@rango-dev/ui";import Ao,{Fragment as HN}from"react";import{Alert as _N,ChevronDownIcon as MN,IconButton as DN}from"@rango-dev/ui";import zn,{useState as $N}from"react";import{css as Xr,darkTheme as uS,styled as zt,Typography as BN}from"@rango-dev/ui";var dS=zt(pe,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${uS} &`]:{color:"$secondary500"}}}}}),mS=zt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),fS=zt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),gS=zt("div",{padding:"$0 $20 $20 $20"}),gY=zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),hS=zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),hY=zt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),on=Xr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${uS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),yS=Xr({padding:"$5 0"}),Ha=Xr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),SS=Xr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),TS=Xr({width:"100%",padding:"0 $20 $10"}),CS=zt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),kS=zt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Qa=zt(BN,{wordBreak:"break-word"});import{styled as mp}from"@rango-dev/ui";var wS=mp("div",{display:"flex",flexDirection:"column",gap:"$10"}),vS=mp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),ES=mp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function bS(t){let{message:e}=t,[o,n]=$N(!1);return zn.createElement(_N,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&zn.createElement(DN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},zn.createElement(vS,{rotated:o},zn.createElement(MN,{size:12,color:"gray"}))),footer:zn.createElement(ES,{open:o},zn.createElement(Qa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(bS,"FailedAlert");import{i18n as xS}from"@lingui/core";import{Alert as fp,Button as IS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as FN}from"rango-types";import Yr from"react";function AS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Yr.createElement(fp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Yr.createElement(IS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},xS.t("Change"))}):a===FN.WaitingForConnectingWallet?Yr.createElement(fp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Yr.createElement(IS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},xS.t("Connect"))}):Yr.createElement(fp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(AS,"WarningAlert");function gp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=mr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return Ao.createElement(wS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,S=h===g.length-1,T=(S&&u||p)&&!d,y=S&&s.status==="failed";return Ao.createElement(HN,{key:m},Ao.createElement(NS,{id:"widget-swap-details-tx-alert",type:S&&(T&&"loading"||y&&"error")||"success",title:f.description?`${f.description} Tx`:ON.t("View transaction"),action:f.url&&Ao.createElement(UN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Ao.createElement(zN,{size:12}))}))}),d&&Ao.createElement(NS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&Ao.createElement(AS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&Ao.createElement(bS,{message:a}))}i(gp,"SwapDetailsAlerts");var WS=2e3;var PS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=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:Tt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Tt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Kn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:Tt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:Tt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Kn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:QN.createElement(gp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function LS(t){if(mr(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(LS,"getStepState");function MS(t){let{requestId:e}=t,[o,n]=jN(WS);return Lt.createElement(fS,{className:on()},Lt.createElement(_S,{variant:"label",size:"large",color:"neutral700"},qa.t("Request ID")),Lt.createElement("div",{className:Ha()},Lt.createElement(_S,{variant:"label",size:"small",color:"neutral700"},e),Lt.createElement(BS,{container:W(),content:o?qa.t("Copied To Clipboard"):qa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Lt.createElement(VN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Lt.createElement(GN,{size:16,color:"secondary"}):Lt.createElement(qN,{size:16,color:"gray"}))),Lt.createElement(CS,{target:"_blank",href:`${eu}/swap/${e}`},Lt.createElement(BS,{container:W(),content:qa.t("View on Rango Explorer"),side:"bottom"},Lt.createElement(KN,{size:20})))))}i(MS,"RequestIdRow");import{i18n as DS}from"@lingui/core";import{Typography as $S}from"@rango-dev/ui";import hp from"react";function FS(t){let{date:e,isFinished:o}=t;return hp.createElement("div",{className:on()},hp.createElement($S,{variant:"label",size:"large",color:"neutral700"},o?DS.t("Finished at"):DS.t("Created at")),hp.createElement($S,{variant:"label",size:"small",color:"neutral700"},e))}i(FS,"SwapDateRow");var n0=3e3;function Cp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=t0(),l=C().blockchains(),p=C().swappers(),{findToken:u}=C(),d=z().use.retry(),f=o0(),h=Tp(null),[g,m]=Ga(!1),[S,T]=Ga(null),[y,k]=Ga(null),[w,v]=Ga(null),x=Tp(S),A=Tp(y),E=We.use.getNotifications(),I=We.use.removeNotification(),b=E(),L=YN(e),N=L?.networkStatus,O=i(Be=>{m(!0),T(Be)},"handleChangeModalState"),q=i(()=>{m(!1)},"handleCloseModal"),j=i(()=>{k({type:"loading",title:Ht.t("Change Network"),description:`We\u2019re switching the connected network to ${Y?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),ee=i(()=>{k({type:"success",title:Ht.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),P=i(Be=>{k({type:"error",title:Ht.t("Network Switch Failed"),description:Be?.message||H.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Z=Yd(e),Y=L?XN(e,L):null,ce=L?ZN(e,L):null,Ee=Ky(e),Gt=Zd(e),be=i(Be=>!!c(Be)?.mobileWallet,"checkIsMobileWallet"),He=!!N&&[Hn.WaitingForNetworkChange,Hn.NetworkChangeFailed].includes(N),Xe=!!ce?.walletType&&be(ce.walletType),St=!!ce&&!!Y&&a(ce.walletType,Y.network,Y),ct=!!Y&&He&&(Xe||St),B=i(()=>{ct&&(j(),s(ce.walletType,[{namespace:Y.namespace,network:Y.network}]).then(()=>{ee()}).catch(Be=>{P(Be)}))},"handleSwitchNetwork"),V=i(()=>{O("switchNetwork"),B()},"handleSwitchNetworkClick"),H=Xd(e,L,c),X=PS({swap:e,switchNetworkIsAvailable:ct,handleSwitchNetworkClick:V,showNetworkModal:N,setNetworkModal:O,message:H,blockchains:l,swappers:p}),G=X.length,[J,U]=[e.steps[0],e.steps[G-1]],de=U?.outputAmount||U?.expectedOutputAmountHumanReadable,Qe=e.steps.reduce((Be,Bt)=>Be+parseFloat(Bt.feeInUsd||""),0),ot=e.steps.find(Be=>Be.diagnosisUrl)?.diagnosisUrl,co=M(parseFloat(de||"0")*(U?.toUsdPrice||0),4,4),Gn=M(parseFloat(e.inputAmount)*(J?.fromUsdPrice||0),4,4),No=de?new US(de).multipliedBy(U.toUsdPrice||0).toString():"",Rr=new US(e.inputAmount).multipliedBy(J?.fromUsdPrice||0).toString(),rn=Yt(Gn,co),os=H.detailedMessage.content||H.shortMessage,kT=e.status==="success"?Ht.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(de,6,6),token:X[G-1]?.to.token.displayName,conciseAddress:po(e.wallets[X[G-1]?.to.chain.displayName||""]?.address||""),chain:X[G-1]?.to.chain.displayName}}):we.createElement(kS,null,we.createElement(yp,{variant:"body",size:"medium",color:"neutral700",align:"center"},os?"":Ht.t("Transaction was not sent."),Z?`${Ht.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Z.outputAmount,symbol:Z.symbol,blockchain:Z.blockchain}})}`:""),os&&we.createElement(Qa,{align:"center",variant:"body",size:"medium",color:"neutral700"},we.createElement("b",null,"Reason:")," ",os));return Sp(()=>{b.find(Bt=>Bt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),I(e.requestId),q()):w&&v(null))},[e.status,e.requestId]),Sp(()=>{if(ct){if(O("switchNetwork"),N===Hn.WaitingForNetworkChange){j();return}if(N===Hn.NetworkChangeFailed){P();return}return}if(N===Hn.WaitingForConnectingWallet){O("connectWallet");return}if(N===Hn.NetworkChanged){O("switchNetwork"),ee();return}S&&["connectWallet","switchNetwork"].includes(S)&&q()},[N]),Sp(()=>{if(x.current=S,A.current=y,S==="switchNetwork"&&y?.type==="success"){let Be=setTimeout(()=>{x.current==="switchNetwork"&&A.current?.type==="success"&&q()},n0);return()=>clearTimeout(Be)}},[S,y]),we.createElement(se,{header:{title:Ht.t("Swap Details"),onCancel:e.status==="running"?()=>O("cancel"):void 0,suffix:e.status!=="running"&&we.createElement(ho,null,we.createElement(OS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>O("delete")},we.createElement(yp,{size:"medium",variant:"label",color:"error"},Ht.t("Delete"))))},footer:Gt&&!w&&we.createElement(OS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{te({type:"swapRetried",payload:{routeId:e.requestId}});let Be=Ai(e,l,u);d(Be),setTimeout(()=>{f("../../")},0)}},Ht.t("Try again"))},we.createElement(dS,{compact:!0,ref:h},we.createElement(MS,{requestId:o}),we.createElement(FS,{date:Ee,isFinished:!!e.finishTime}),we.createElement("div",{className:SS()},we.createElement(RN,{fee:M(String(Qe),2,2),time:Xn(si(e.steps)),steps:G}),we.createElement(kr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:Gn,realUsdValue:Rr,realValue:e.inputAmount},token:{displayName:X[0]?.from.token.displayName||"",image:X[0]?.from.token.image},chain:{image:X[0]?.from.chain.image,displayName:X[0]?.from.chain.displayName||""}},to:{price:{value:M(de,6,6),usdValue:co,realUsdValue:No,realValue:de||""},token:{displayName:X[G-1]?.to.token.displayName||"",image:X[G-1]?.to.token.image},chain:{image:X[G-1]?.to.chain.image,displayName:X[G-1]?.to.chain.displayName||""}},percentageChange:M(rn,2,2),warningLevel:Zt(rn??0)})),we.createElement("div",{className:TS()},we.createElement(yp,{variant:"title",size:"small"},Ht.t("Swaps steps"))),we.createElement(JN,{size:8}),we.createElement(gS,null,X.map((Be,Bt)=>{let Bp=Bt,Vn=e.steps[Bt]&&LS(e.steps[Bt]),wT=Vn==="error"||Vn==="in-progress"||Vn==="warning"||Vn==="completed"&&Bt===X.length-1;return we.createElement(e0,{className:"widget-swap-details-step-item-container",key:Bp,step:Be,type:"swap-progress",ref:h,state:Vn,hasSeparator:Bt!==0,tabIndex:Bp,isFocused:wT,tooltipContainer:W()})}))),we.createElement(pp,{isOpen:g,state:S,switchNetworkModalState:y,onClose:q,onCancel:r,onDelete:n,message:H.detailedMessage.content,swap:e,handleSwitchNetwork:V}),we.createElement(dp,{open:!!w,diagnosisUrl:ot,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(de,6,6),usdValue:co,realUsdValue:No,realValue:de||"",percentageChange:M(rn,2,2),token:{displayName:X[G-1]?.to.token.displayName||"",image:X[G-1]?.to.token.image},chain:{image:X[G-1]?.to.chain.image},description:kT}))}i(Cp,"SwapDetails");import{i18n as Ka}from"@lingui/core";import{Divider as QS,NotFound as l0,Skeleton as Jr,Typography as ja}from"@rango-dev/ui";import Ae from"react";import{i18n as r0}from"@lingui/core";import{Divider as i0,Skeleton as a0,Typography as s0}from"@rango-dev/ui";import Ie from"react";import{css as Qt,styled as kp}from"@rango-dev/ui";var zS=kp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Zr=kp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Va=kp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),G7=Qt({display:"flex",justifyContent:"space-between",alignItems:"center"}),V7=Qt({paddingTop:"$15",display:"flex"}),K7=Qt({padding:"$15 $0"}),j7=Qt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),X7=Qt({paddingBottom:"$10"}),Y7=Qt({display:"flex",justifyContent:"start",alignItems:"center"}),Z7=Qt({paddingTop:"$5",display:"flex",alignItems:"center"}),J7=Qt({display:"flex",alignItems:"center"}),R7=Qt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),HS=Qt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function wp(){return Ie.createElement(zS,null,Ie.createElement(Er,{type:"swap-preview"}),Ie.createElement("div",{className:"swaps-steps"},Ie.createElement(s0,{variant:"title",size:"small"},r0.t("Swaps steps"))),Ie.createElement(Ie.Fragment,null,Ie.createElement(Zr,null,Ie.createElement(Ot,{separator:!1}),Ie.createElement("div",{className:HS()},Ie.createElement(i0,{direction:"horizontal",size:20}),Ie.createElement(a0,{height:22,variant:"rectangular"}))),Ie.createElement(Va,null),Ie.createElement(Zr,null,Ie.createElement(Ot,{separator:!1})),Ie.createElement(Va,null),Ie.createElement(Zr,null,Ie.createElement(Ot,{separator:!1})),Ie.createElement(Va,null),Ie.createElement(Zr,null,Ie.createElement(Ot,{separator:!1}))))}i(wp,"LoadingSwapDetails");function qS(t){let{requestId:e,showSkeleton:o}=t;return Ae.createElement(se,{header:{title:Ka.t("Swap Details"),suffix:Ae.createElement(ho,null)}},o&&Ae.createElement(mS,null,Ae.createElement("div",{className:on()},Ae.createElement(ja,{variant:"label",size:"large",color:"neutral700"},`${Ka.t("Request ID")}`),Ae.createElement("div",{className:Ha()},Ae.createElement(ja,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ae.createElement(QS,{direction:"horizontal",size:4}),Ae.createElement(Jr,{width:16,height:16,variant:"rectangular"}),Ae.createElement(QS,{direction:"horizontal",size:4}),Ae.createElement(Jr,{width:16,height:16,variant:"rectangular"}))),Ae.createElement("div",{className:on()},Ae.createElement(ja,{className:yS(),variant:"label",size:"large",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ae.createElement(ja,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"}))),Ae.createElement(wp,null)),!o&&Ae.createElement(hS,null,Ae.createElement(l0,{title:Ka.t("Not found"),description:Ka.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(qS,"SwapDetailsPlaceholder");function GS(){let{manager:t,state:e}=u0(),o=!e.loadedFromPersistor,n=vt(t),{requestId:r}=m0(),a=Ve(),{fetchStatus:s}=C();if(!r)return vp.createElement(d0,{containerStyles:{margin:"20px"},type:"error",title:c0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&(te({type:"swapCancelled",payload:{routeId:r}}),p0(f))}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?vp.createElement(qS,{requestId:r,showSkeleton:c}):vp.createElement(Cp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(GS,"SwapDetailsPage");import{i18n as VS}from"@lingui/core";import{Divider as f0,getCategoriesCount as g0,SelectableCategoryList as h0,styled as jS,Typography as y0,Wallet as S0}from"@rango-dev/ui";import qt,{useState as KS}from"react";var T0=jS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),C0=jS(pe,{textAlign:"center"});function XS(){let{fetchStatus:t}=C(),[e,o]=KS("ALL"),n=C().blockchains(),{config:r}=C(),[a,s]=KS(),c=ne.use.isActiveTab(),{list:l}=bt(),p=Au(l,n),d=g0(p)!==1,f=Nu(l,e),h=i(g=>{cu(l,r.multiWallets)||s(g)},"handleWalletItemClick");return qt.createElement(se,{header:{title:VS.t("Connect Wallets")}},qt.createElement(C0,null,d&&qt.createElement(qt.Fragment,null,qt.createElement(h0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),qt.createElement(f0,{size:24})),qt.createElement(y0,{variant:"title",size:"xmedium",align:"center"},VS.t("Choose a wallet to connect.")),qt.createElement(T0,null,f.map((g,m)=>{let S=`wallet-${m}-${g.type}`;return qt.createElement(S0,{key:S,...g,state:g.state,container:W(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),qt.createElement(ur,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}i(XS,"WalletsPage");function YS(){return lm(),Xs(),k0([{path:$.home,element:ze.createElement(uy,null)},{path:$.routes,element:ze.createElement(hy,null)},{path:$.fromSwap,children:[{index:!0,element:ze.createElement(_a,{type:"source"})},{path:$.blockchains,element:ze.createElement(Wa,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:ze.createElement(_a,{type:"destination"})},{path:$.blockchains,element:ze.createElement(Wa,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:ze.createElement(Gy,null)},{path:$.languages,element:ze.createElement(my,null)},{path:$.exchanges,element:ze.createElement(Kc,{sourceType:"Exchanges"})},{path:$.bridges,element:ze.createElement(Kc,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:ze.createElement(mh,null)},{path:$.addCustomTokens,children:[{index:!0,element:ze.createElement(af,null)},{path:$.blockchains,element:ze.createElement(Wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:ze.createElement(Bh,null)},{path:$.swapDetails,element:ze.createElement(GS,null)}]},{path:$.wallets,element:ze.createElement(XS,null)},{path:$.confirmSwap,element:ze.createElement(Zg,null)}])}i(YS,"AppRoutes");import{useQueueManager as O0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as U0}from"rango-sdk";import{useContext as z0,useEffect as Ip,useState as cT}from"react";import{Provider as I0}from"@rango-dev/wallets-react";import{WalletTypes as tT}from"@rango-dev/wallets-shared";import Xa,{createContext as A0,useEffect as oT,useMemo as N0,useRef as nT}from"react";import{useEffect as v0}from"react";import{Provider as w0}from"@hub3js/core";function ZS(t){return t.map(e=>typeof e=="string"?e:e instanceof w0?e.id:e.config.type).join("-")}i(ZS,"hashProviders");function Ep(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=C(),a=n();return v0(()=>{o(),r()},[ZS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Ep,"useWalletProviders");import{legacyFormatAddressWithNetwork as E0,legacyReadAccountAddress as JS}from"@rango-dev/wallets-core/legacy";import{Events as Qn}from"@rango-dev/wallets-react";import{isEvmBlockchain as b0}from"rango-sdk";function RS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=C(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(b0).map(m=>m.name),u=i((m,S)=>{let[T,,y,k,w]=m,v={walletType:T,network:k.network??void 0,accounts:y};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let x=fs(T,y,p,S.supportedChainNames,w.isContractWallet);x.length&&e(x,w.namespace,k.derivationPath,{walletName:T})},"onAccountsEvent"),d=i((m,S,T,y,k)=>{if(S===Qn.ACCOUNTS){let w=Jn(k.supportedBlockchains);T&&u([m,S,T,y,k],{supportedChainNames:w})}S===Qn.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===Qn.NAMESPACE_DISCONNECTED&&n(m,T)},"handleUpdatesForHub"),f=i((m,S,T,y,k)=>{if(S===Qn.ACCOUNTS){let w=Jn(k.supportedBlockchains),v=[],x=[];if(T?.forEach(E=>{let{network:I}=JS(E);p.includes(I)?v.push(E):x.push(E)}),r.filter(E=>E.walletType===m).map(E=>E0(E.address,E.chain)).length>0){if(v.length>0){let E=fs(m,v,p,w,k.isContractWallet);a(m,{chains:E.map(I=>I.chain)})}x.length>0&&a(m,{chains:x.map(E=>{let{network:I}=JS(E);return I})})}T?u([m,S,T,y,k],{supportedChainNames:w}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,S,T,y,k)=>{if(S===Qn.CONNECTED&&T){let w={walletType:m,network:y.network??void 0,accounts:y.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===Qn.NETWORK&&T){let w={walletType:m,network:T,accounts:y.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,S,T,y,k)=>{k.isHub?d(m,S,T,y,k):f(m,S,T,y,k),h(m,S,T,y,k)},"handler")}}i(RS,"useUpdates");import{LegacyEvents as x0}from"@rango-dev/wallets-core/legacy";function eT(t,e){let[o,n,r,a,s]=e;n!==x0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(eT,"propagateEvents");var Ya=A0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function W0(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=C(),a=C().blockchains(),s=C().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=Ep(s.wallets,c),p=nT(),u=nT(),{handler:d}=RS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});oT(()=>{n().catch(console.log)},[]),oT(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=ne.use.isActiveTab(),h=N0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Xa.createElement(Ya.Provider,{value:h},Xa.createElement(I0,{allBlockChains:a,providers:l,onUpdateState:(g,m,S,T,y)=>{let k=[g,m,S,T,y];d(...k),t.onUpdateState&&eT(t.onUpdateState,k)},autoConnect:!!f,configs:{wallets:s.wallets,walletOptions:{[tT.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}},[tT.TREZOR]:{provider:{manifest:s.trezorManifest}}}}},t.children))}i(W0,"Main");function Za(t){let{config:e,...o}=t;return Xa.createElement(Ku,{config:e},Xa.createElement(W0,{...o,config:e}))}i(Za,"WidgetWallets");import{globalCss as P0}from"@rango-dev/ui";var rT=i(()=>P0({"@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");import{useWallets as L0}from"@rango-dev/wallets-react";import{useEffect as B0,useRef as _0}from"react";function iT(){let{connect:t,state:e}=L0(),o=_0({}),{fetchStatus:n}=C(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);B0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(iT,"useForceAutoConnect");import{isApprovalTX as M0,RouteEventType as aT,StepEventType as sT,StepExecutionEventStatus as D0,WidgetEvents as Ja}from"@rango-dev/queue-manager-rango-preset";import{useEffect as lT}from"react";function bp(){let t=We.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=C();lT(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===sT.TX_EXECUTION&&s.status===D0.TX_SENT&&!M0(c)||s.type===sT.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>f.some(S=>S.blockchain===m.blockchain&&S.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ge.on(Ja.StepEvent,r),()=>ge.off(Ja.StepEvent,r)},[ge,e]),lT(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===aT.FAILED||s.type===aT.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ge.on(Ja.RouteEvent,r),()=>ge.off(Ja.RouteEvent,r)},[ge])}i(bp,"useSubscribeToWidgetEvents");import{useManager as $0}from"@rango-dev/queue-manager-react";import{useEffect as F0}from"react";function xp(){let{isSynced:t,syncNotifications:e}=We(),{manager:o,state:n}=$0();F0(()=>{if(We.persist.hasHydrated()&&n.loadedFromPersistor&&!t){let a=vt(o);e(a),a.forEach(({swap:s})=>{if(!(s.status==="running"&&s.steps.length>1))return;let l=s.steps.findIndex(p=>p.status!=="success");l!==-1&&te({type:"swapResumed",payload:{routeId:s.requestId,stepCount:s.steps.length,stepNumber:l+1}})})}},[We.persist.hasHydrated(),n.loadedFromPersistor,t])}i(xp,"useSyncNotifications");function Ap(){iT(),rT(),bp(),xp();let t=C().blockchains(),{canSwitchNetworkTo:e}=pT(),[o,n]=cT(null),[r,a]=cT(),s=z0(Ya),c=t.filter(U0);Ip(()=>()=>am(),[]),Ip(()=>()=>sm(),[]),O0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),Ip(()=>($o.init(),We.persist.hasHydrated()||We.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),$o.destroy),[])}i(Ap,"useBootstrap");import{styled as H0}from"@rango-dev/ui";var uT=H0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function nn(){Ap();let{config:t}=C(),{activeTheme:e}=go(t?.theme||{}),{activeLanguage:o}=Eo();return Np.createElement(Q0,{language:o},Np.createElement(uT,{id:"swap-container",className:e()},Np.createElement(YS,null)))}i(nn,"Main");import{setSolanaSignerConfig as cW}from"@rango-dev/signer-solana";import Pp,{useEffect as Lp,useMemo as pW}from"react";function dT(){let{setWatermark:t,setShowProfileBanner:e}=ne();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Kt("BASE_URL")}/meta/dapp/config?apiKey=${Kt("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(dT,"useFetchApiConfig");import{useState as q0}from"react";var G0=i(()=>{let[t,e]=q0(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=lu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),mT=G0;import{checkWaitingForNetworkChange as V0,makeQueueDefinition as K0}from"@rango-dev/queue-manager-rango-preset";import{Provider as j0}from"@rango-dev/queue-manager-react";import{useWallets as X0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Y0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Z0}from"rango-types";import J0,{useMemo as R0}from"react";function eW(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s,hubProvider:c}=X0(),l=R0(()=>K0({API_KEY:t.apiKey||Kt("API_KEY"),BASE_URL:Kt("BASE_URL"),emitter:{emit:ge.emit}}),[t.apiKey]),{blockchains:p,connectedWallets:u}=C(),d=p(),f={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,x)=>a(v,x.network,x)?await r(v,[x]):void 0,"switchNetwork"),g=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=d.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),S=d.filter(Z0),T=i(v=>{let{supportedChains:x}=s(v);return Jn(x)},"getSupportedChainNames"),y=e(),k={meta:{blockchains:m,evmBasedChains:S,evmNetworkChainInfo:Y0(S),getSupportedChainNames:T},getSigners:o,wallets:f,providers:y,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g,hubProvider:c},w=ne.use.isActiveTab();return J0.createElement(j0,{queuesDefs:[l],context:k,onPersistedDataLoaded:v=>{V0(v)},isPaused:!w},t.children)}i(eW,"QueueManager");var fT=eW;import{useManager as iW}from"@rango-dev/queue-manager-react";import aW,{createContext as sW,useContext as lW}from"react";function gT(){let{findToken:t}=C(),e=C().blockchains(),o=C().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(T=>T.name===u)??null;n(S)}if(d!==void 0){let S=d?t(d)??null:null;r({meta:m,token:S})}if(f!==void 0){let S=e.find(T=>T.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:m,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(gT,"useUpdateQuoteInputs");import{cancelSwap as tW,getCurrentNamespaceOfOrNull as oW,getCurrentStep as nW,getRelatedWalletOrNull as rW}from"@rango-dev/queue-manager-rango-preset";var Ra=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return vt(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=Ai(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&tW(o)}getCurrentStepInfo(e){let o=nW(e);return{step:o,wallet:o?rW(e,o):null,network:o?oW(e,o)?.network:null}}};var hT=sW(void 0);function Wp(t){let{manager:e}=iW(),o=ne.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=C(),l=new Ra(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=C(),u=vu(a()),d=C().blockchains(),f=C().tokens(),h=C().swappers(),g=C().fetchStatus,m=Eo().resetLanguage,S=We().getNotifications(),T=We().clearNotifications,y=gT(),{fromBlockchain:k,toBlockchain:w,fromToken:v,toToken:x,inputAmount:A}=z()(),E={isActiveTab:o,setCurrentTabAsActive:$o.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async I=>c(I)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:S,clearAll:T},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:w?.name??null,toToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,requestAmount:A},updateQuoteInputs:y}};return aW.createElement(hT.Provider,{value:E},t.children)}i(Wp,"WidgetInfo");function yT(){let t=lW(hT);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(yT,"useWidget");function qn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=dT(),{handleLoadCustomFont:a}=mT();return Lp(()=>{r().catch(console.log)},[]),Lp(()=>{n&&a(n)},[n]),pW(()=>{Wu({API_KEY:o?.apiKey||Yp(),BASE_URL:o?.apiUrl||Rp})},[o.apiKey,o.apiUrl]),Lp(()=>{t.config?.signers?.customSolanaRPC&&cW("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Pp.createElement(Za,{config:o,onUpdateState:e},Pp.createElement(fT,{apiKey:o.apiKey},Pp.createElement(Wp,null,t.children)))}i(qn,"WidgetProvider");function ST(t){let e=t.config?.externalWallets;return es.createElement(xi,null,e?es.createElement(nn,null):es.createElement(qn,{config:t.config??ln},es.createElement(nn,null)))}i(ST,"Refuel");import ts from"react";function TT(t){let e=t.config?.externalWallets;return ts.createElement(xi,null,e?ts.createElement(nn,null):ts.createElement(qn,{config:t.config??ln},ts.createElement(nn,null)))}i(TT,"Widget");function CT(){let{on:t,off:e}=ge;return{on:t,off:e}}i(CT,"useWidgetEvents");var ete={DerivationPath:lr,Namespaces:ir,Detached:sr,isOnDerivationPath:pr,isOnNamespace:cr,isOnDetached:Wo};export{vee as EventSeverity,dn as MainEvents,Bee as Networks,Dee as PendingSwapNetworkStatus,tr as QuoteEventTypes,ST as Refuel,Eee as RouteEventType,ss as SUPPORTED_FONTS,ete as StatefulConnect,bee as StepEventType,xee as StepExecutionBlockedEventStatus,Iee as StepExecutionEventStatus,wd as SwapModeContext,kt as UI_ID,Re as UiEventTypes,gi as WalletEventTypes,Pee as WalletEvents,_ee as WalletTypes,TT as Widget,dn as WidgetEvents,qn as WidgetProvider,Za as WidgetWallets,cl as customizedThemeTokens,is as pickProviderVersionWithFallbackToLegacy,Nee as readAccountAddress,an as useStatefulConnect,bt as useWalletList,pT as useWallets,yT as useWidget,CT as useWidgetEvents,xC as widgetEventEmitter};
1
+ var QC=Object.defineProperty;var r=(t,e)=>QC(t,"name",{value:e,configurable:!0});import{Networks as Rte,readAccountAddress as Jte}from"@rango-dev/internal-blockchains";import{EventSeverity as toe,RouteEventType as ooe,StepEventType as noe,StepExecutionBlockedEventStatus as roe,StepExecutionEventStatus as ioe}from"@rango-dev/queue-manager-rango-preset";import{useWallets as NC,Events as soe}from"@rango-dev/wallets-react";import{PendingSwapNetworkStatus as coe}from"rango-types";import{Divider as _w}from"@rango-dev/ui";import ho,{useEffect as Bw,useRef as Mw,useState as qd}from"react";import{WalletState as lT}from"@rango-dev/ui";import{useWallets as cT}from"@rango-dev/wallets-react";import{useReducer as pT}from"react";import{i18n as Oe}from"@lingui/core";var Ye=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Ye||{});var Xn=(s=>(s.QUOTE_INPUT_UPDATE="quoteInputUpdate",s.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",s.ROUTE_REQUESTED="routeRequested",s.ROUTE_NOT_FOUND="routeNotFound",s.ROUTE_FETCH_FAILED="routeFetchFailed",s.ROUTE_CHANGED="routeChanged",s))(Xn||{}),ni=(n=>(n.CONNECT="connect",n.DISCONNECT="disconnect",n.DETECTED="detected",n))(ni||{}),Ze=(f=>(f.CLICK_CONNECT_WALLET="clickConnectWallet",f.TOKEN_SELECTED="tokenSelected",f.CHAIN_FILTER_APPLIED="chainFilterApplied",f.SETTINGS_CHANGED="settingsChanged",f.ROUTE_FEE_VIEWED="routeFeeViewed",f.DESTINATION_ADDRESS_SET="destinationAddressSet",f.GAS_WARNING_SHOWN="gasWarningShown",f.GAS_WARNING_BYPASSED="gasWarningBypassed",f.SWAP_INITIATED="swapInitiated",f.SWAP_WALLETS_MODAL_SHOWN="swapWalletsModalShown",f.SWAP_WALLETS_CONFIRMED="swapWalletsConfirmed",f.SWAP_STARTED="swapStarted",f.SWAP_RESUMED="swapResumed",f.SWAP_RETRIED="swapRetried",f.SWAP_CANCELLED="swapCancelled",f))(Ze||{}),cn=(a=>(a.RouteEvent="routeEvent",a.StepEvent="stepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(cn||{});var te=r(()=>({genericServerError:Oe.t("Failed Network, Please retry your swap."),moduleLoadError:Oe.t("A network error occurred while processing your request. Please check your internet connection or refresh the page and try again."),liquiditySourcesError:{title:Oe.t("Please reset your liquidity sources."),description:Oe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Oe.t("No Routes Found."),description:Oe.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:Oe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Oe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Oe.t("High Price Impact"),title:Oe.t("Price impact is too high!"),description:Oe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Oe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Oe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Oe.t("USD Price Unknown"),title:Oe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Oe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Oe.t("Confirm USD Price Unknown")}}),"errorMessages");function Up(t){return t.type===0?t.diagnosisMessage??te().noResultError.title:t.type===1?t.diagnosisMessage??te().genericServerError:""}r(Up,"getQuoteErrorMessage");var HC=["failed to fetch dynamically imported module","error loading dynamically imported module","importing a module script failed","failed to load module script","unable to preload css","loading chunk","loading css chunk","chunkloaderror"];function GC(t){return typeof t=="string"?t:t instanceof Error?`${t.name} ${t.message}`:""}r(GC,"toMessage");function VC(t){let e=GC(t).toLowerCase();return!!e&&HC.some(o=>e.includes(o))}r(VC,"isModuleLoadError");function Ct(t){return VC(t)?new Error(te().moduleLoadError,{cause:t}):null}r(Ct,"tryRefineError");function zp(t,e){return Ct(t)?.message??e}r(zp,"tryRefineErrorMessage");import{useWallets as sT}from"@rango-dev/wallets-react";import{USER_REJECTION_ERROR_CODE as jC,WALLET_LOCKED_ERROR_CODE as XC}from"@hub3js/std/utils";import{error as jp}from"@rango-dev/logging-core";import{AutoConnectionAttemptError as YC,WalletConnectionAttemptError as Xp}from"@rango-dev/wallets-react";var qp="Wallet connection still pending after 3 minutes",Qp="Failure could not be described",Hp="(unreadable)",Gp=["WalletConnectionAttemptError","AutoConnectionAttemptError"],Vp="WalletConnectionError";function ZC(t,e){try{return t()}catch{return e}}r(ZC,"readOrStandIn");function ri(t,e,o){return ZC(()=>typeof t=="object"&&t!==null?t[e]:void 0,o)}r(ri,"readField");function jt(t,e,o){let n=ri(t,e,o);return typeof n=="string"?n:o}r(jt,"readString");function Yp(t){let e=ri(t,"code");return typeof e=="number"||typeof e=="string"?e:void 0}r(Yp,"readCode");function RC(t){return typeof t=="string"}r(RC,"isString");function Zp(t){return jt(t,"name")===Vp}r(Zp,"isConnectionError");function JC(t,e){let o=Gp.includes(jt(t,"name")??"")?ri(t,"errors"):void 0;if(!Array.isArray(o))return{...e,errors:[t]};let n=ri(t,"requestedNamespaces");return{...e,errors:o,requestedNamespaces:Array.isArray(n)?n:e.requestedNamespaces}}r(JC,"readAttempt");function eT(t){if(!Zp(t))return"unknown";let e=Yp(t);return e===jC?"rejected":e===XC?"locked":"wallet"}r(eT,"classifyFailure");function tT(t){return t.includes("unknown")?"unknown":t.includes("wallet")?"wallet":null}r(tT,"resolveCategory");function Kp(t){let e=new Set(t.filter(o=>!!o));return e.size?[...e].sort().join(","):void 0}r(Kp,"joinSorted");function Rp(t){let{attempt:e,category:o,blamedFailures:n}=t,i=e.requestedNamespaces.map(p=>({namespace:jt(p,"namespace"),network:jt(p,"network")})),a=n?n.map(p=>jt(p,"namespace")):i.map(({namespace:p})=>p),s=i.filter(({namespace:p})=>!!p&&a.includes(p)).map(({network:p})=>p),c=Kp(a),l=Kp(s);return{walletType:e.walletType,...c?{namespaces:c}:{},...l?{network:l}:{},trigger:e.trigger,category:o}}r(Rp,"buildTags");function oT(t){let e=Zp(t)?jt(t,"namespace"):void 0,o=Yp(t);return{...e!==void 0?{namespace:e}:{},name:jt(t,"name",Hp),message:jt(t,"message",Qp),...o!==void 0?{code:o}:{}}}r(oT,"describeFailure");function Jp(t){return{failures:t.errors.map(oT),requestedNamespaces:t.requestedNamespaces.map(e=>jt(e,"namespace")).filter(RC)}}r(Jp,"buildContext");function nT(t,e){if(t instanceof Error)return t;let o=e.trigger==="auto-connect"?YC:Xp;return new o({errors:[t],requestedNamespaces:e.requestedNamespaces})}r(nT,"toLoggedError");function rT(t,e){let o=JC(t,e),n=o.errors.map(eT),i=tT(n);return i?{error:nT(t,e),tags:Rp({attempt:o,category:i,blamedFailures:i==="wallet"?o.errors.filter((a,s)=>n[s]==="wallet"):void 0}),context:Jp(o)}:null}r(rT,"buildConnectFailureEvent");function iT(t){return new Xp({errors:[],requestedNamespaces:t.map(({namespace:e,network:o})=>({namespace:e,network:o})),message:qp})}r(iT,"buildTimeoutError");function aT(t){let e=iT(t.requestedNamespaces),o={...t,errors:[],requestedNamespaces:e.requestedNamespaces};return{error:e,tags:Rp({attempt:o,category:"timeout"}),context:Jp(o)}}r(aT,"buildConnectTimeoutEvent");function eu(t){try{t()}catch{}}r(eu,"dropIfItThrows");function tu(t,e){eu(()=>{let o=rT(t,e);o&&jp(o.error,{tags:o.tags,context:o.context})})}r(tu,"logConnectFailure");function cs(t,e){tu(e,{walletType:t,trigger:"auto-connect",requestedNamespaces:[]})}r(cs,"logAutoConnectFailure");async function ps(t,e){let o=setTimeout(()=>eu(()=>{let{error:n,tags:i,context:a}=aT(t);jp(n,{tags:i,context:a})}),18e4);try{return await e()}catch(n){throw tu(n,t),n}finally{clearTimeout(o)}}r(ps,"runConnectWithLogging");function xt(){let{connect:t}=sT();return async(e,o,n)=>{let i=n?.trigger;return i?ps({walletType:e,trigger:i,requestedNamespaces:o??[]},async()=>t(e,o)):t(e,o)}}r(xt,"useConnectWithLogging");function ou(t){return!!t.derivationPath}r(ou,"isStateOnDerivationPathStep");function nu(t){return!!t.namespace}r(nu,"isStateOnNamespace");var ii={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function ru(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"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return ii;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ii;default:throw new Error("Action hasn't been defined.")}}r(ru,"reducer");function pn({trigger:t}={}){let{state:e,disconnect:o}=cT(),n=xt(),[i,a]=pT(ru,ii),s=r(async(d,h,g)=>{a({type:"reset"});try{let f=h?.map(y=>({...y,network:void 0}));return await n(d.type,f,{trigger:t}),{status:"connected"}}catch(f){let y=zp(f,f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.");if(g?.disconnectOnError)try{await m(d)}catch{console.warn("An error happened during disconnecting wallet after error on connecting.")}throw new Error(y,{cause:f})}},"runConnect"),c=r(async(d,h)=>{let g=d.state===lT.DISCONNECTED,f=h?.forceConnectToNamespaces;if(g){let y=d.properties?.find(S=>S.name==="namespaces")?.value,k=d.properties?.find(S=>S.name==="derivationPath")?.value;if(f){let S=f.find(T=>!y?.data?.map(v=>v.value).includes(T));if(S)throw new Error(`One of the forced namespaces is not available in the wallet. Forced namespace: ${S}`);if(f.length>1&&k)throw new Error("Derivation path is not supported when multiple namespaces are selected.");return f.length===1&&f[0]&&k?(a({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:f[0]}}),{status:"derivation-path"}):await s(d,f.map(T=>({namespace:T})),{...h,disconnectOnError:!0})}if(!y?.data?.length)return await s(d,void 0,h);if(y?.data.length&&y.data.length>1)return a({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:h?.defaultSelectedChains}}),{status:"namespace"};if(y?.data.length===1&&y.data[0]){if(k){let S=y.data[0];return a({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:S.value}}),{status:"derivation-path"}}return await s(d,y?.data?.map(S=>({namespace:S.value})),h)}}if(!h?.forceConnectToNamespaces){let y=d.properties?.find(k=>k.name==="namespaces")?.value;if(y?.data.length&&y.data.length>1)return a({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return h?.disconnectIfConnected?(await m(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=r(async(d,h)=>{let g=d.properties?.find(T=>T.name==="namespaces")?.value,f=d.properties?.find(T=>T.name==="derivationPath")?.value,y=g?.selection==="single",k=h[0];if(!k)throw new Error("To confirm a namespace, you should select at least one namespace.");if(y&&f)return a({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:k}}),{status:"derivation-path"};if(!nu(i))throw new Error("Something went wrong on handling namespace. Please retry.");let S=h.map(T=>({namespace:T}));return a({type:"detached",payload:{targetWallet:d,selectedNamespaces:S??null}}),{status:"Detached"}},"handleNamespace"),p=r(async(d,h,g)=>{if(!h)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!ou(i))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let y=[{namespace:i.derivationPath.namespace,derivationPath:h}],k=d.properties?.find(v=>v.name==="namespaces")?.value,S=!!k?.data&&k.data.length>1,T=!!g?.forceConnectToNamespaces;return S&&!T?(a({type:"detached",payload:{targetWallet:d,selectedNamespaces:y??null,derivationPath:h}}),{status:"Detached"}):await s(d,y)},"handleDerivationPath"),u=r(()=>i,"getState"),m=r(async d=>{let h=e(d.type);return h.connected||h.connecting?(await o(d.type),_o(u)?(a({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:c,handleDisconnect:m,handleNamespace:l,handleDerivationPath:p,getState:u,resetState:d=>{a(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}r(pn,"useStatefulConnect");import{WalletTypes as Ft}from"@rango-dev/provider-all";import{WalletState as vi}from"@rango-dev/ui";import{useWallets as xk}from"@rango-dev/wallets-react";import{useCallback as Ik,useEffect as hd}from"react";import kk,{createContext as wk,useContext as vk,useEffect as Ek,useRef as bk}from"react";import{create as Ck}from"zustand";import{persist as Tk}from"zustand/middleware";import{allProviders as fT,WalletTypes as gT}from"@rango-dev/provider-all";var us=class{static{r(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()}},un=new us;import{Provider as uT}from"@hub3js/core";import{defineVersions as dT,pickVersion as mT}from"@hub3js/core/utils";function au({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let i=t.find(a=>ds(a).id===n);i?o.push(i):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else{if(!(n instanceof uT))throw new Error("Legacy providers aren't supported anymore. Pass a hub 'Provider' instance in 'wallets' instead.");o.push(dT().version("1.0.0",n).build())}}),o}return t}r(au,"matchAndGenerateProviders");function ds(t){return mT(t,"1.0.0")[1]}r(ds,"pickProviderVersion");function ai(t){return t.map(e=>ds(e).id)}r(ai,"configWalletsToWalletName");function su(t,e){return e.find(o=>o.name===t)?.displayName}r(su,"getBlockchainDisplayNameFor");function Tt(t,e){return e.find(o=>o.name===t)?.shortName}r(Tt,"getBlockchainShortNameFor");function lu(t,e){return e.find(o=>o.name===t)?.logo}r(lu,"getBlockchainImage");function Yn(t,e){return e.find(o=>o.id===t)?.title}r(Yn,"getSwapperDisplayName");function Bo(t,e){return e.find(o=>o.name===t)??null}r(Bo,"findBlockchain");function ms(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}r(ms,"isTokenNative");function kt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}r(kt,"createTokenHash");function Mo(t,e){return t.addressPatterns.filter(i=>new RegExp(i).test(e)).length>0}r(Mo,"isValidTokenAddress");function si(t){let{contractAddress:e,blockchainMeta:o}=t;return o.info?.tokenUrl?o.info.tokenUrl.replace("{address}",e):o.info?.addressUrl.replace("{wallet}",e)}r(si,"createTokenExplorerUrl");function Zn(t){let{config:e,meta:o}=t,n={},i=e.tokens,a=r(c=>{c.forEach(l=>{typeof l!="string"&&(l=kt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(i))return i.length>0?(a(i),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!i)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(i);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=i[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=kt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}r(Zn,"matchTokensFromConfigWithMeta");function li(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let i=[...o,...n],a=new Set(i);return Array.from(a)}r(li,"getSupportedBlockchainsFromConfig");function hT(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}r(hT,"makeProvidersOptionsFromConfig");var Rn={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/assets/refs/heads/main/manifests/tonconnect/manifest.json"}},yT={clientUrl:void 0},ST={liquiditySources:void 0};function cu(t){let o=fT().map(a=>a()),n=ai(o);return o.filter((a,s)=>!(n[s]===gT.LEDGER_WALLET&&(!t.ledgerWallet?.apiKey||!t.ledgerWallet?.dAppIdentifier)))}r(cu,"generateProviders");var pu=r((t,e,o)=>{let n={...Rn,...t},i=cu(n);return{config:n,iframe:yT,campaignMode:ST,allProviders:i,getLiquiditySources:()=>{let{config:a,campaignMode:s}=o();return s.liquiditySources?.length?s.liquiditySources:a.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:a,campaignMode:s}=o();return s.liquiditySources?.length?[]:a},excludeLiquiditySources:()=>{let{config:a,campaignMode:s}=o();return s.liquiditySources?.length?!1:!!a.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:a}=o();return!!a.liquiditySources?.length},updateConfig:a=>{let s=o().config,{_tokensMapByTokenHash:c,_tokensMapByBlockchainName:l}=o(),p=Zn({type:"source",config:{blockchains:a.from?.blockchains,tokens:a.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:c}}),u=Zn({type:"destination",config:{blockchains:a.to?.blockchains,tokens:a.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:c}});un.set("supportedSourceTokens",p),un.set("supportedDestinationTokens",u),e({config:{...s,...a}})},updateCampaignMode:(a,s)=>{let c=o().campaignMode;e({campaignMode:{...c,[a]:s}})},updateIframe:(a,s)=>{let c=o().iframe;e({iframe:{...c,[a]:s}})},buildAndSetProviders:()=>{let{config:a}=o(),s=cu(a);e({allProviders:s})},getAvailableProviders:()=>{let{allProviders:a,config:s}=o(),c=hT(s);return au({allProviders:a,configWallets:s.wallets,options:c})}}},"createConfigSlice");import{TransactionType as uu}from"rango-types";var du=[uu.EVM,uu.SOLANA],ci="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as BT}from"rango-sdk";function mu(){return process.env.REACT_APP_RANGO_API_KEY}r(mu,"getApiKeyFromEnv");function fu(){let t=mu();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}r(fu,"getApiKeyFromEnvOrThrow");function gu(){return mu()||"NOT_SET"}r(gu,"getApiKeyFromEnvOrNotSet");import{getBlockChainNameFromId as bT,HYPERLIQUID_SIGN_NETWORK as xT,Networks as Cs,readAccountAddress as IT}from"@rango-dev/internal-blockchains";import{BlockchainCategories as AT,detectInstallLink as NT,WalletState as ut}from"@rango-dev/ui";import mn from"bignumber.js";import{isAddress as WT}from"ethers";import CT from"bignumber.js";var pe=new CT(0);var Do="~",hu=[];import{BlockchainCategories as gs,WalletState as ET}from"@rango-dev/ui";import{TransactionType as hs}from"rango-sdk";import{UI_ID as TT}from"@rango-dev/ui";var yu="https://api.rango.exchange",Su="https://explorer.rango.exchange",wt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...TT};var Cu="Roboto",fs=[{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 dn(t){return Array.from(new Set(t))}r(dn,"removeDuplicateFrom");function pi(t,e){let o;return n;function n(...i){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...i)},e)}}r(pi,"debounce");function pt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}r(pt,"containsText");function wu(t,e){return t.toLowerCase()===e.toLowerCase()}r(wu,"exactText");function vu(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}r(vu,"startWithText");var W=r(()=>document.getElementById(wt.SWAP_BOX_ID),"getContainer"),Fo=r(()=>document.getElementById(wt.EXPANDED_BOX_ID),"getExpanded");function Eu(t,e,o){let n=!!e&&wu(e,t),i=!!o&&wu(o,t);return n!==i?n?-1:1:0}r(Eu,"compareExactMatchText");function ys(t,e,o){let n=!!e&&pt(e,t),i=!!o&&pt(o,t);return n!==i?n?-1:1:n&&i&&e?.length!==o?.length?e?.length-o?.length:0}r(ys,"compareContainsText");function Ss(t,e,o){let n=!!e&&vu(e,t),i=!!o&&vu(o,t);return n!==i?n?-1:1:n&&i&&e?.length!==o?.length?e?.length-o?.length:0}r(Ss,"compareStartWithText");function bu(t,e,o){if(!o)return 0;let n=Eu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let i=Eu(o,t.name,e.name);if(i)return i}if(o.length>=2){let i=Ss(o,t.symbol,e.symbol);if(i)return i}if(o.length>=3){let i=ys(o,t.symbol,e.symbol);if(i)return i}if(o.length>=3){let i=Ss(o,t.name,e.name);if(i)return i}if(o.length>=3){let i=ys(o,t.name,e.name);if(i!==0)return i}if(o.length>=4){let i=Ss(o,t.address,e.address);if(i)return i}if(o.length>=4){let i=ys(o,t.address,e.address);if(i!==0)return i}return 0}r(bu,"compareWithSearchFor");var ui=r((t,e)=>{switch(e){case gs.ALL:return!0;case gs.UTXO:return t===hs.TRANSFER;case gs.OTHER:return t!==hs.TRANSFER&&t!==hs.EVM;default:return t===e}},"isBlockchainTypeInCategory"),xu=r(t=>fs.find(o=>o.value===t)?.url,"getFontUrlByName");function Iu(t,e){let o=!!t.find(n=>n.state===ET.CONNECTED);return e===!1&&o}r(Iu,"isSingleWalletActive");function Au(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}r(Au,"memoizedResult");function Nu(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}r(Nu,"filterBlockchainsWithAtLeastOneToken");function Wu(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}r(Wu,"detectMobileScreens");import{BigNumber as Ou}from"bignumber.js";function Lu(t){return t.replace(/^0+(?=\d)/g,"")}r(Lu,"removeLeadingZeros");function Pu(t){return t.replace(/^\.(\d+)/,"0.$1")}r(Pu,"ensureLeadingZeroForDecimal");function _u(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}r(_u,"formatThousandsWithCommas");function Bu(t){return t.replace(/\s+/g,"-")}r(Bu,"replaceSpacesWithDash");function Mu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}r(Mu,"stripTrailingZeros");function Du(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}r(Du,"parseNumericValue");function di(t){return/^0+(?:\.0+)?$/.test(t)}r(di,"isZeroValue");function Fu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}r(Fu,"isValidCurrencyFormat");function $u(t){return/\d+$/.test(t)}r($u,"isColorKeyOverridden");var Jn=r(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=r((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ou(t),i=1,a=1e3;for(let s=0;s<60;s++)if(new Ou(n.toFixed(s,i)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,i);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),i);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),i);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),i);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))),i);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),i)},"numberToString");var mi=r(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Dt=r((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),er=r(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Uu(t){return di(t)?"0":t.endsWith(".")?t.slice(0,-1):Mu(t)}r(Uu,"sanitizeInputAmount");function LT(t,e){let o=t?.get("EVM");return o?.network?bT(o.network,e)??o.network:null}r(LT,"getConnectedEvmChainName");function tr(t,e){return _T(t,e)?ut.PARTIALLY_CONNECTED:e.connected?ut.CONNECTED:e.connecting?ut.CONNECTING:e.installed?ut.DISCONNECTED:ut.NOT_INSTALLED}r(tr,"getWalletConnectionStatus");function zu(t,e,o,n){return o.filter(i=>!hu.includes(i)).filter(i=>{let{supportedChains:a,isContractWallet:s}=e(i),{installed:c,namespaces:l}=t(i);return s&&(!c||!!n&&LT(l,a)!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(i=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:m,properties:d,isHub:h}=e(i),g=dn(u.map(y=>y.type)),f=tr(e(i),t(i));return{title:a,image:s,link:NT(c),state:f,type:i,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:m,properties:d,isHub:h}})}r(zu,"mapWalletTypesToWalletInfo");function hi(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}r(hi,"walletAndSupportedChainsNames");function qu(t,e,o,n,i){let a=[];function s(l,p,u){if(!!!a.find(d=>d.chain===l)){let d={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(d)}}r(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=IT(l),m=c.length>0,d=c.includes(u),h=u===Cs.Unknown;if(m&&!d&&!h)return;let f=u===Cs.Unknown&&WT(p);if(h&&!f)return;if(o.includes(u)||f)if(i)s(u,p.toLowerCase(),i);else{let k=c.filter(T=>o.includes(T));k.forEach(T=>{s(T,p.toLowerCase())}),k.includes(xT)&&s(Cs.HYPERLIQUID,p.toLowerCase())}else s(u,p)}),a}r(qu,"prepareAccountsForWalletStore");function $o(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((i,a)=>{let s=i.from.blockchain,c=i.to.blockchain;if(n.add(s),i.internalSwaps){let{internalSwaps:l}=i;l.forEach((p,u)=>{let m=p.from.blockchain,d=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==m||e==="all")&&n.add(m),e==="all"&&n.add(d)})}e==="all"&&n.add(c)}),Array.from(n)}r($o,"getQuoteChains");function or(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}r(or,"isAccountAndWalletMatched");var Qu=r(t=>{let e=Object.values(t).reduce((o,n)=>{let i=n.usdValue?Ts(n.usdValue,n.decimals):pe.toFixed();return o.plus(i)},new mn(pe));return PT(e.toString())},"calculateWalletUsdValue");function PT(t){let e=t.toString().split(".");return e[0]&&(e[0]=_u(e[0])),e.join(".")}r(PT,"numberWithThousandSeparator");function Ts(t,e){return new mn(t).shiftedBy(-e).toFixed()}r(Ts,"representAmountInNumber");function yi(t){if(!t)return null;let e=Ts(t.amount,t.decimals),o=t.usdValue?Ts(t.usdValue,t.decimals):null,n=M(e,8,8),i=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:i}:null}r(yi,"formatBalance");function Hu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new mn(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new mn(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new mn(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new mn(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}r(Hu,"compareTokenBalance");function Xt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}r(Xt,"areTokensEqual");function Gu(t){return t.sort((e,o)=>+(o.state===ut.CONNECTED)-+(e.state===ut.CONNECTED)||+(o.state===ut.PARTIALLY_CONNECTED)-+(e.state===ut.PARTIALLY_CONNECTED)||+(o.state===ut.DISCONNECTED||o.state===ut.CONNECTING)-+(e.state===ut.DISCONNECTED||e.state===ut.CONNECTING))}r(Gu,"sortWalletsBasedOnConnectionState");function fo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),i=t.slice(-e);return`${n}${".".repeat(o)}${i}`}r(fo,"getConciseAddress");function Vu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}r(Vu,"getAddress");var Ku=r((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function ks(t){return t.map(e=>e.state).join("-")}r(ks,"hashWalletsState");function ju(t,e){let o=new Set;return t.forEach(i=>{i.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(i=>o.has(i.type))}r(ju,"filterBlockchainsByWalletTypes");function Xu(t,e){return e===AT.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ui(n,e))return!0;return!1})}r(Xu,"filterWalletsByCategory");function _T(t,e){if(!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(i=>!i.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(i=>!e.namespaces?.get(i.value)?.connected)}r(_T,"checkIsWalletPartiallyConnected");var ws={API_KEY:gu()};function Yt(t){return ws[t]||""}r(Yt,"getConfig");function Yu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ws=e,ws}r(Yu,"initConfig");var Zu=20,Ru=25,vs="theme-widget",Es=r((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Xt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Xt(a,t));let i=n.isExcluded;return!i&&!o||i&&o}}}return o},"isTokenExcludedInConfig"),bs=r((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Ju=r((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Si,dt=r(()=>Si||(Si=new BT(Yt("API_KEY"),Yt("BASE_URL")),Si),"httpService");import{i18n as ed}from"@lingui/core";var Ci=[.5,1,3],Ti=1,fn=5,nr=30,ki=0;function wi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return dn(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}r(wi,"getUniqueSwappersGroups");function td(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}r(td,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}r(nt,"isFeatureHidden");function gn(t,e){return e?.[t]==="enabled"}r(gn,"isRoutingEnabled");var od=r((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function hn(t){return t==ki?{type:"error",message:ed.t("Slippage must be greater than or equal to 0.01")}:t>fn&&t<=nr?{type:"warning",message:ed.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}r(hn,"getSlippageValidation");var nd=r((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,i=Array.from(n?.values()||[]);if(!o||!o?.type)return i;let a=e().config;if(o.type==="custom-token"){let l=li({config:a}),p=i;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>du.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return i.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:i,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=un.get(u);m?.length||(m=Zn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:i}}),un.set(u,m)),m=od(m,s,a.features);let d=e().blockchains({type:o.type});return m.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!d.some(f=>f.name===g.blockchain)?!1:o.searchFor?!!(pt(g.symbol,o.searchFor)||pt(g.address||"",o.searchFor)||pt(g.name||"",o.searchFor)):!0).sort((g,f)=>{let y=e().isTokenPinned(g,o.type),k=e().isTokenPinned(f,o.type);if(y!==k)return y?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),I=o.getBalanceFor(f),b=Hu(A,I);if(b!==0)return b}let S=l.get(g.blockchain),T=l.get(f.blockchain),v=ms(g,S),w=ms(f,T);if(v!==w)return v?-1:1;if(g.isPopular!==f.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=bu(g,f,o.searchFor);if(A)return A}return g.isSecondaryCoin!==f.isSecondaryCoin?g.isSecondaryCoin?1:-1:S&&T?S.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,i=e().customTokens(),a=kt(o),s=n.get(a);return s||(s=i.find(c=>kt(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Xt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),i=n.liquiditySources?.length?n.liquiditySources:null,a=i??o.liquiditySources,s=i?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(td)},fetch:async()=>{try{let{routing:o}=e().config,n=gn("enableCentralizedSwappers",o),i=await dt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=i.popularTokens,p=i.swappers.filter(m=>m.enabled);i.blockchains.sort((m,d)=>m.sort-d.sort).forEach(m=>{m.enabled&&a.set(m.name,m)}),i.tokens.forEach(m=>{let d=kt(m);c[m.blockchain]||(c[m.blockchain]=[]),s.set(d,m),c[m.blockchain]?.push(d)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as MT,Catalonia as DT,Chinese as rd,Denmark as FT,English as $T,Finland as OT,French as UT,German as zT,Greece as qT,Hungary as QT,India as HT,Indonesian as GT,Italian as VT,Japanese as KT,Korea as jT,Lithuania as XT,Malay as YT,Netherlands as ZT,Pakistan as RT,Philippines as JT,Poland as ek,Portuguese as tk,Russian as ok,SaudiArabia as nk,Serbia as rk,Slovakia as ik,SouthAfrica as ak,Spanish as sk,Swahili as lk,Swedish as ck,Thai as pk,Turkish as uk,Ukrainian as dk,Vietnamese as mk}from"@rango-dev/ui";var id=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:ak},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:nk},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:MT},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:DT},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:rd},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:rd},{title:"Danish",label:"Dansk",local:"da",SVGFlag:FT},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:ZT},{title:"English",label:"English",local:"en",SVGFlag:$T},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:JT},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:OT},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:UT},{title:"German",label:"Deutsch",local:"de",SVGFlag:zT},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:qT},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:HT},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:QT},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:GT},{title:"Italian",label:"Italiana",local:"it",SVGFlag:VT},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:KT},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:jT},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:XT},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:YT},{title:"Polish",label:"Polski",local:"pl",SVGFlag:ek},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:tk},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:ok},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:rk},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:ik},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:sk},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:lk},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:ck},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:pk},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:uk},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:dk},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:RT},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:mk}],yn="en";var ad=r((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Ti,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))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(i=>{if(n)return{disabledLiquiditySources:[]};let a=dn(o.map(s=>s.swapperGroup));return a.length===i.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(i=>i!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:i}=o,a=nt("theme",n),s=nt("language",n),c=nt("liquiditySource",n),l=i?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||yn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||yn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(i=>i.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,i=li({config:o});return i.length?n.filter(a=>i.includes(a.blockchain)):n}}),"createSettingsSlice");import Ls from"bignumber.js";import fk from"mitt";var ge=fk(),gk={on:ge.on,off:ge.off};var sd=r(t=>(e,o,n)=>t(r((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import ld from"bignumber.js";function Zt(t){return`${t.blockchain}${Do}${t.address}${Do}${t.symbol}`}r(Zt,"createAssetKey");function cd(t,e){return`${Zt(e)}${Do}${t}`}r(cd,"createBalanceKey");function rr(t){let[e,o,n]=t.split(Do);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}r(rr,"extractAssetFromBalanceKey");function Is(t,e,o){return e.balances?.forEach(n=>{let i=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Zt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:i?new ld(i??pe).multipliedBy(o[s].amount).toString():""})})}),o}r(Is,"computeNextBalancesWithNewPrices");function As(t,e){let o={};return t.balances?.forEach(n=>{let i=cd(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new ld(c??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[i]=p}),o}r(As,"createBalanceStateForNewAccount");function Ns(t,e){for(let o in e){let n=rr(o);if(n){let i=Zt(n);t[i]||(t[i]=[]),t[i].includes(o)||(t[i]=[...t[i],o])}}return t}r(Ns,"updateAggregatedBalanceStateForNewAccount");function hk(t,e){let o=rr(e);if(!o)return t;let n=Zt(o);return t[n]&&(t[n]=t[n].filter(i=>i!==e)),t}r(hk,"removeBalanceFromAggregatedBalance");function Ws(t,e,o){let n=t.connectedWallets.filter(l=>e.includes(l.walletType));t.connectedWallets.forEach(l=>{e.includes(l.walletType)||(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let i={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=rr(l);if(!p)return;!!n.find(m=>cd(m.address,{address:p.address,blockchain:m.chain,symbol:p.symbol})===l)?a=hk(a,l):s[l]&&(i[l]=s[l])}),{_balances:i,_aggregatedBalances:a}}r(Ws,"computeNextStateAfterWalletBalanceRemoval");function yk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}r(yk,"matchWalletDetailsWithConnectedWallet");var Sk=Au(),pd=sd((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(i=>o.find(a=>or(a,i))?{...i,loading:!0,error:!1}:i)}))},setConnectedWalletRetrievedData:(o,n)=>{t(i=>({fetchingWallets:!1,connectedWallets:i.connectedWallets.map(a=>o.find(s=>or(s,a))?{...a,loading:!1,error:!1,explorerUrl:yk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(i=>o.find(a=>or(a,i))?{...i,loading:!1,error:!0}:i)}))},addConnectedWallet:(o,n,i)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>or(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:i,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(m=>m.walletType===u.walletType&&m.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:i}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=i.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await dt().getMultipleTokenBalance({assets:p.map(({symbol:m,address:d,blockchain:h})=>({symbol:m,address:d,blockchain:h})),walletAddress:l});if(u){let m=e()._balances,d=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},f={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};Is(f,g,m);let y=As(g,e);d=Ns(d,y),m={...m,...y}}),t(h=>({_balances:{...h._balances,...m},_aggregatedBalances:d}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(i=>{let a=!!o.find(c=>c.chain===i.chain&&c.walletType!==i.walletType&&i.selected),s=!!o.find(c=>c.chain===i.chain&&c.walletType===i.walletType&&!i.selected);return a?{...i,selected:!1}:s?{...i,selected:!0}:i});t({connectedWallets:n})},newWalletConnected:async(o,n,i,a)=>{let s=o[0];s&&(ge.emit("walletEvent",{type:"connect",payload:{walletType:s.walletType,accounts:o,chain:s.chain??null,walletName:a?.walletName??s.walletType}}),e().addConnectedWallet(o,n,i),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let i={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=Ws(i,[o],n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(i=>i.walletType===o);if(ge.emit("walletEvent",{type:"disconnect",payload:{walletType:o,walletName:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let i=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:i})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let i=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(i=i.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=i.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:i=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),i&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let i=[...new Set(o.map(l=>l.walletType))];e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await dt().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(m=>{if(m.failed)return;let d={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};Is(d,m,l);let{_balances:h,_aggregatedBalances:g}=Ws(d,i,{chains:[m.blockChain]});if(p=g,l=h,!e().connectedWallets.find(y=>i.includes(y.walletType)&&y.address===m.address&&y.chain===m.blockChain))return;let f=As(m,e);p=Ns(p,f),l={...l,...f}}),t(m=>({_balances:{...m._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let m=c.filter(d=>d.failed).map(d=>{let h=e().connectedWallets.find(g=>g.chain===d.blockChain&&g.address)?.walletType;return h?{chain:d.blockChain,walletType:h,address:d.address}:null}).filter(d=>!!d);m.length>0&&await e().fetchMainTokensBalances(m,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.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(),i=Zt(o),a=e()._aggregatedBalances[i]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let m=new Ls(u.amount),d=new Ls(l.amount);m.isGreaterThan(d)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Do);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>Sk(()=>e().connectedWallets.map(n=>{let i=e().getBalancesForWalletAddress(n.address),a=Object.keys(i);return{...n,balances:a.reduce((s,c)=>{let l=i[c],p=rr(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),m=l?.amount?new Ls(l.amount).shiftedBy(-l.decimals):pe;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:m.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function ud(t){return Ck()(Tk((...e)=>({...pd(...e),...nd(...e),...ad(...e),...pu(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,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(i=>({...i,warning:!0}))),n}}))}r(ud,"createAppStore");var dd=wk(null);function C(){let t=vk(dd);if(Ek(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}r(C,"useAppStore");function md(t){let e=bk();return e.current||(e.current=ud(t.config)),kk.createElement(dd.Provider,{value:e.current},t.children)}r(md,"AppStoreProvider");function oe(t){ge.emit("uiEvent",t)}r(oe,"emitUiEvent");function fd(t,e){let o=!1,n={...t.payload,preventDefault(){o=!0}};oe({type:t.type,payload:n}),o||e()}r(fd,"emitPreventableEvent");function Sn(t){ge.emit("quoteEvent",t)}r(Sn,"emitQuoteEvent");function gd(t){ge.emit("walletEvent",{type:"detected",payload:t})}r(gd,"emitWalletDetected");var yd=new Set,Ak=new Set([Ft.LEDGER,Ft.TREZOR,Ft.WALLET_CONNECT_2,Ft.TON_CONNECT,Ft.DEFAULT]),Nk=new Set([Ft.DEFAULT,Ft.WALLET_CONNECT_2,Ft.LEDGER]);function It(t){let{chain:e}=t||{},{getAvailableProviders:o}=C(),{state:n,getWalletInfo:i}=xk(),{handleDisconnect:a}=pn(),s=ai(o()),c=zu(n,i,s,e);c=Wu()?c.filter(d=>d.showOnMobile!==!1&&n(d.type).installed):c;let l=Gu(c);hd(()=>{c.forEach(d=>{if(Ak.has(d.type))return;d.state!==vi.NOT_INSTALLED&&!yd.has(d.type)&&(yd.add(d.type),gd({walletName:d.type}))})},[ks(c)]);let p=Ik(()=>{let d=c?.filter(h=>h.state===vi.CONNECTING)||[];for(let h of d)a(h)},[ks(c)]);hd(()=>()=>{p()},[]);let u=r(d=>{let h=d.find(f=>f.type===Ft.DEFAULT);return!h||h.state===vi.NOT_INSTALLED?!1:d.filter(f=>f.state!=vi.NOT_INSTALLED&&!Nk.has(f.type)&&i(f.type).supportedChains.filter(y=>y.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=r(d=>d==Ft.DEFAULT&&!u(c),"shouldExcludeWallet");return{list:l.filter(d=>!m(d.type)),terminateConnectingWallets:p}}r(It,"useWalletList");import{Modal as _k}from"@rango-dev/ui";import Bk from"react";import{create as Pk}from"zustand";var Sd="rango-widget";var ir=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(Sd),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{r(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 Lk=r(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),go=Lk;var re=go(Pk()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:i}=e();!i&&n?t({showActivateTabModal:!0}):(i||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Uo=new ir({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});function ie(t){let{watermark:e}=re();return Bk.createElement(_k,{hasWatermark:e==="FULL",...t},t.children)}r(ie,"WatermarkedModal");import{i18n as kn}from"@lingui/core";import{getSupportedChainsFromNamespace as Xk}from"@rango-dev/internal-blockchains";import{Alert as Yk,Button as Zk,Divider as wn,Image as Rk,MessageBox as Jk,RadioRoot as ew,WalletImageContainer as tw}from"@rango-dev/ui";import le,{useEffect as ow,useMemo as nw,useState as rw}from"react";import{i18n as $k}from"@lingui/core";import{Typography as xd}from"@rango-dev/ui";import Cn from"react";function Ei(t,e){return t.find(o=>o.name===e)?.logo}r(Ei,"getBlockchainLogo");import{darkTheme as Mk,Image as Dk,styled as Rt,Typography as Fk}from"@rango-dev/ui";var bi=Rt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${Mk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),xi=Rt("div",{display:"flex",gap:"$8",alignItems:"center"}),Td=Rt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),kd=Rt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),wd=Rt("div",{display:"flex",gap:"$6",alignItems:"center"}),vd=Rt("div",{paddingLeft:"48px"}),Ed=Rt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),bd=Rt(Fk,{maxWidth:"100px",whiteSpace:"nowrap"}),Ii=Rt(Dk,{variants:{disabled:{true:{opacity:"0.5"}}}});function Ai(t){let{namespace:e}=t,o=C().blockchains();return Cn.createElement(bi,{unsupported:!0},Cn.createElement(xi,null,Cn.createElement(Ii,{src:Ei(o,e.id),size:40,disabled:!0}),Cn.createElement(kd,null,Cn.createElement(xd,{variant:"label",size:"large"},e.label),Cn.createElement(xd,{variant:"body",size:"xsmall"},$k.t("(Currently not supported)")))))}r(Ai,"NamespaceUnsupportedItem");import{Checkbox as Vk,Radio as Kk}from"@rango-dev/ui";import Ms from"react";import{i18n as Bs}from"@lingui/core";import{getSupportedChainsFromNamespace as Uk}from"@rango-dev/internal-blockchains";import{ChevronDownIcon as zk,ChevronUpIcon as qk,Divider as Qk,Typography as ar}from"@rango-dev/ui";import We,{useEffect as Hk,useState as Gk}from"react";import{Image as Ad,Tooltip as Nd,Typography as Ok}from"@rango-dev/ui";import $t from"react";import{styled as Id}from"@rango-dev/ui";var Ps=Id("div",{display:"flex",alignItems:"center",padding:0,margin:0}),Ni=Id("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var _s=3;function Wd(t){let{chains:e}=t;return $t.createElement(Ps,{id:"widget-supported-chains-container"},e.slice(0,_s).map((o,n)=>$t.createElement(Nd,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},$t.createElement(Ni,{firstItem:n===0},$t.createElement(Ad,{src:o.logo,size:15})))),e.length>_s&&$t.createElement(Nd,{container:W(),side:"bottom",align:"start",sideOffset:4,content:$t.createElement(Ps,null,e.map((o,n)=>$t.createElement(Ni,{key:o.name,firstItem:n===0},$t.createElement(Ad,{src:o.logo,size:15}))))},$t.createElement(Ni,null,$t.createElement(Ok,{variant:"body",size:"xsmall"},"+",e.length-_s))))}r(Wd,"SupportedChainsList");function zo(t){let{namespace:e,error:o,suffix:n,connected:i,address:a,onClick:s}=t,[c,l]=Gk(!1),p=C().blockchains();Hk(()=>l(!1),[o]);let u=Uk(e,p),m=!o&&!i&&u.length>1;return We.createElement(bi,{hasError:!!o,clickable:!!s,onClick:s},We.createElement(xi,null,We.createElement(Ii,{src:Ei(p,e.id),size:40}),We.createElement(Td,{showSupportedChains:m||i||!!o},We.createElement(wd,null,We.createElement(ar,{variant:"label",size:"large"},e.label),i&&We.createElement(ar,{variant:"body",size:"small",color:"success500"},Bs.t("Connected")),!!o&&We.createElement(ar,{variant:"body",size:"small",color:"error500"},Bs.t("Connection failed"))),m&&We.createElement(Wd,{chains:u}),i&&We.createElement(bd,{variant:"body",size:"small",color:"neutral700"},a),o&&We.createElement(Ed,{onClick:()=>l(d=>!d)},We.createElement(ar,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Bs.t("See why")),c?We.createElement(qk,{size:12,color:"gray"}):We.createElement(zk,{size:12,color:"gray"}))),n),!!o&&c&&We.createElement(We.Fragment,null,We.createElement(Qk,{size:4}),We.createElement(vd,null,We.createElement(ar,{variant:"body",size:"small",color:"neutral700"},o))))}r(zo,"NamespaceItem");function Ld(t){let{onClick:e,type:o,namespace:n}=t;return Ms.createElement(zo,{namespace:n,onClick:e,suffix:o==="radio"?Ms.createElement(Kk,{value:n.value}):Ms.createElement(Vk,{checked:t.value})})}r(Ld,"NamespaceListItem");import{Button as jk,styled as Pd}from"@rango-dev/ui";var Wi=Pd("ul",{padding:0,paddingBottom:"$20",margin:0}),Tn=Pd(jk,{minHeight:"$40"});function sr(t){let{targetWallet:e}=t.value,o=e.properties?.find(g=>g.name==="namespaces"),n=o?.value.selection==="single",i=o?.value,a=e.image,s=C().blockchains(),[c,l]=rw([]),p=nw(()=>i?.data.filter(g=>!g.unsupported),[e?.type]),u=r(g=>{l(n?[g]:f=>f.includes(g)?f.filter(y=>y!==g):f.concat(g))},"onSelect"),m=p?.length===c.length,d=r(()=>{if(n)throw new Error("onSelectAll should not be called on single selection mode.");m?l([]):p&&l(p.map(g=>g.value))},"onSelectAll"),h=r(g=>n?le.createElement(ew,{value:c?.[0]},g):le.createElement(le.Fragment,null,g),"wrapRadioRoot");return ow(()=>{if(!n&&p)if(t.value.defaultSelectedChains?.length){let g=p.filter(f=>Xk(f,s).some(y=>t.value.defaultSelectedChains?.includes(y.name)));l(g.map(f=>f.value))}else l(p.map(g=>g.value))},[]),le.createElement(le.Fragment,null,le.createElement(Jk,{type:"info",title:kn.t("Connect {wallet}",{wallet:e.title}),description:kn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:le.createElement(tw,null,le.createElement(Rk,{src:a,size:45}))}),n?le.createElement(le.Fragment,null,le.createElement(wn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),le.createElement(Yk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:kn.t("This wallet can only connect to one chain at a time. ")}),le.createElement(wn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):le.createElement(le.Fragment,null,le.createElement(wn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),le.createElement(Zk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:d},m?kn.t("Deselect all"):kn.t("Select all")),le.createElement(wn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),le.createElement(Wi,null,h(le.createElement(le.Fragment,null,i?.data.map((g,f,y)=>le.createElement(le.Fragment,{key:g.id},g.unsupported?le.createElement(Ai,{namespace:g}):le.createElement(Ld,{value:c.includes(g.value),namespace:g,type:n?"radio":"checkbox",onClick:()=>u(g.value)}),f!==y.length-1&&le.createElement(wn,{size:10})))))),le.createElement(wn,{size:20}),le.createElement(Tn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!c.length,onClick:()=>t.onConfirm(c)},kn.t("Connect")))}r(sr,"Namespaces");import{i18n as lr}from"@lingui/core";import{Alert as uw,Button as dw,Divider as vn,Image as mw,MessageBox as fw,WalletImageContainer as gw}from"@rango-dev/ui";import{useWallets as hw}from"@rango-dev/wallets-react";import me from"react";import{styled as iw}from"@rango-dev/ui";var _d=iw("div",{display:"flex",justifyContent:"end"});import{i18n as Ds}from"@lingui/core";import{Button as aw,Spinner as sw}from"@rango-dev/ui";import Fs,{useLayoutEffect as lw,useRef as cw,useState as pw}from"react";function Bd(t){let{namespace:e,initialConnect:o,disabled:n,state:i,handleConnect:a,handleDisconnect:s}=t,[c,l]=pw(null),p=cw(!1);lw(()=>{o&&!p.current&&u()},[]);let u=r(async g=>{try{p.current=!0,await a(g)}catch(f){l(Ct(f)??f)}finally{p.current=!1}},"handleConnectNamespace"),m=r(async()=>{l(null),i.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),d=r(()=>{let g=i.accounts?.[0]?.split(":"),f=g?.[g.length-1];return!i.connected||!f?null:fo(f)},"getConnectedAddress"),h=r(()=>i.connected?Ds.t("Disconnect"):c?Ds.t("Try again"):Ds.t("Connect"),"getButtonText");return Fs.createElement(zo,{namespace:e,connected:i.connected,error:c?.message,address:d(),suffix:i.connecting?Fs.createElement(sw,{color:"info"}):Fs.createElement(aw,{id:"widget-name-space-connect-btn",variant:"ghost",type:i.connected?"error":"primary",size:"xsmall",onClick:async()=>m(),disabled:n},h())})}r(Bd,"NamespaceDetachedItem");function cr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:i=lr.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s,trigger:c}=t,{targetWallet:l}=e,{disconnect:p,state:u}=hw(),m=xt(),d=l.type,h=u(d),g=l.properties?.find(w=>w.name==="namespaces"),f=l.properties?.find(w=>w.name==="derivationPath"),y=g?.value.selection==="single",k=r(async(w,A)=>{y&&await p(d),f&&A?.shouldAskForDerivationPath?s(w):await m(d,[{namespace:w,network:"",derivationPath:A?.derivationPath??void 0}],{trigger:c})},"handleConnectNamespace"),S=r(async w=>{await p(d,[w])},"handleDisconnectNamespace"),T=r(()=>y?me.createElement(me.Fragment,null,me.createElement(vn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),me.createElement(uw,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:lr.t("This wallet can only connect to one chain at a time.")}),me.createElement(vn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):me.createElement(me.Fragment,null,me.createElement(vn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),me.createElement(_d,null,me.createElement(dw,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:h.connecting||!h.connected,onClick:a},lr.t("Disconnect wallet"))),me.createElement(vn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),v=r(w=>{if(w.unsupported)return me.createElement(Ai,{namespace:w});let A=o?.find(x=>x.namespace===w.value),I=h.namespaces?.get(w.value);if(!I)throw new Error(`State for ${w.value} was not found!`);let b=y&&h.connecting;return me.createElement(Bd,{namespace:w,initialConnect:!!A,disabled:b,state:I,handleConnect:async x=>k(w.value,{derivationPath:A?.derivationPath,shouldAskForDerivationPath:x?.shouldAskForDerivationPath}),handleDisconnect:async()=>S(w.value)})},"renderNamespaceItem");return me.createElement(me.Fragment,null,me.createElement(fw,{type:"info",title:lr.t("Connect {wallet}",{wallet:l.title}),description:lr.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:me.createElement(gw,null,me.createElement(mw,{src:l.image,size:45}))}),T(),me.createElement(Wi,{id:"widget-detached-namespace-list"},l.needsNamespace?.data.map((w,A,I)=>me.createElement(me.Fragment,{key:w.id},v(w),A!==I.length-1&&me.createElement(vn,{size:10})))),me.createElement(vn,{size:20}),me.createElement(Tn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},i))}r(cr,"Detached");import{i18n as En}from"@lingui/core";import{Divider as Cw,Image as Tw,MessageBox as kw,Select as ww,TextField as vw}from"@rango-dev/ui";import{useWallets as Ew}from"@rango-dev/wallets-react";import At,{useEffect as bw,useMemo as xw,useState as Fd}from"react";var Li={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Md(t,e){let o=t.filter(n=>n.namespace===e);return o.length?[...o,Li]:[]}r(Md,"getDerivationPaths");import{Button as yw,styled as $s,Typography as Sw}from"@rango-dev/ui";var Dd=$s("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Os=$s(Sw,{paddingLeft:"$10"}),Us={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},CD=$s(yw,{minHeight:"$40"});var $d="0";function pr(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:i}=t.value,{getWalletInfo:a}=Ew(),[s,c]=Fd(null),[l,p]=Fd($d),u=s===Li.id,m=xw(()=>Md(a(i).needsDerivationPath?.data??[],o),[i,o]),d=r(({value:g})=>{let f=m?.find(y=>y.id===g);f&&(s===Li.id&&Number.isNaN(Number(l))&&p($d),c(f.id))},"handleDerivationPathItemClick"),h=r(()=>{let g=m.find(f=>f.id===s);if(g)e(g.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return bw(()=>{c(m[0]?.id||null)},[m]),At.createElement(At.Fragment,null,At.createElement(kw,{type:"info",title:En.t("Select Derivation Path"),description:En.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:i}}),icon:At.createElement(Tw,{src:n,size:45})}),At.createElement(Dd,{className:"_derivation_path_inputs_container"},At.createElement(Os,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},En.t("Choose Derivation Path Template")),At.createElement(ww,{id:"widget-derivation-path-template-select",value:s||"",options:m.map(g=>({value:g.id,label:g.label})),variant:"filled",handleItemClick:d,styles:{trigger:Us}}),At.createElement(Cw,{size:20}),At.createElement(Os,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},u?En.t("Enter Path"):En.t("Enter Index")),At.createElement(vw,{id:"widget-derivation-path-template-input",type:u?"text":"number",variant:"contained",value:l,onChange:g=>p(g.target.value),style:Us})),At.createElement(Tn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!m||!s||!l},En.t("Confirm")))}r(pr,"DerivationPath");import{i18n as bn}from"@lingui/core";import{Image as Nw,MessageBox as qs,WalletImageContainer as Ww,WalletState as Lw}from"@rango-dev/ui";import{useWallets as Pw}from"@rango-dev/wallets-react";import qo from"react";import{keyframes as Iw,styled as zs}from"@rango-dev/ui";var LD=zs("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Od=zs("div",{position:"relative"}),Aw=Iw({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ud=zs("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Aw} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Qs(t){let{wallet:e,error:o}=t,{type:n,image:i}=e,{state:a,getWalletInfo:s}=Pw();return tr(s(n),a(n))===Lw.CONNECTED?qo.createElement(qs,{type:"success",title:bn.t("Wallet Connected"),description:bn.t("Your wallet is connected, you can use it to swap.")}):o?qo.createElement(qs,{type:"error",title:bn.t("Failed to Connect"),description:o||bn.t("Your wallet is not connected. Please try again.")}):qo.createElement(qs,{type:"loading",title:bn.t("Connecting to your wallet"),description:bn.t("Click connect in your wallet popup."),icon:qo.createElement(Od,null,qo.createElement(Ww,null,qo.createElement(Nw,{src:i,size:45})),qo.createElement(Ud,null))})}r(Qs,"ConnectStatus");function zd(t,e){return t().status==="init"&&!!e}r(zd,"isOnStatus");function ur(t){return t().status==="namespace"}r(ur,"isOnNamespace");function dr(t){return t().status==="derivationPath"}r(dr,"isOnDerivationPath");function _o(t){return t().status==="detached"}r(_o,"isOnDetached");var Dw=3e3,Fw=300;function mr(t){let e=Mw(),[o,n]=qd(!1),[i,a]=qd(),s=r(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=It(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:d,handleDisconnect:h}=pn(t),g=r(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),f=r(()=>{k()},"handleDetachedConfirm"),y=r(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,w).then(T).catch(s)},"handleDerivationPathConfirm"),k=r(()=>{n(!1)},"handleClosingModal"),S=r(()=>{a(void 0),d(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=r((w,A)=>{let I=w.status==="connected",b=["disconnected","disconnected-unhandled"].includes(w.status);I?(t.onConnect?.(),A||(e.current=setTimeout(k,Dw))):b&&k()},"afterConnected"),v=r(w=>{t.wallet?.needsDerivationPath&&u(t.wallet,[w])},"handleNavigateToDerivationPath");return Bw(()=>{if(t.wallet){S();let w=!1,A=!0;r(()=>{setTimeout(()=>{A=!1,w||n(!0)},Fw)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(w=!0),T(b,A)}).catch(s)}},[t.wallet]),ho.createElement(ie,{id:t.id,open:o,onClose:k,onExit:()=>{S(),c(),t.onClose&&t.onClose()},container:W()},zd(m,t.wallet)&&ho.createElement(ho.Fragment,null,ho.createElement(Qs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:i}),ho.createElement(_w,{direction:"vertical",size:32})),ur(m)&&ho.createElement(sr,{onConfirm:g,value:m().namespace}),dr(m)&&ho.createElement(pr,{onConfirm:y,value:m().derivationPath}),_o(m)&&ho.createElement(cr,{onConfirm:f,onDisconnectWallet:()=>void h(m().namespace.targetWallet),value:m().namespace,selectedNamespaces:m().selectedNamespaces,navigateToDerivationPath:v,trigger:t.trigger}))}r(mr,"StatefulConnectModal");import as from"react";import $w,{Fragment as Ow}from"react";import{MemoryRouter as Uw,useInRouterContext as zw}from"react-router";function Pi({children:t}){let o=zw()?Ow:Uw;return $w.createElement(o,null,t)}r(Pi,"AppRouter");import{I18nManager as BW}from"@rango-dev/ui";import Mp from"react";import qe from"react";import{useRoutes as fW}from"react-router-dom";var F={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 In,useRef as Oi}from"react";import at from"bignumber.js";import{create as Cm}from"zustand";import{subscribeWithSelector as Tm}from"zustand/middleware";import{createContext as qw,useContext as Qw}from"react";var Qd=qw({swapMode:"swap",isMultiMode:!1});function rt(){let{swapMode:t,isMultiMode:e}=Qw(Qd);return{swapMode:t,isMultiMode:e}}r(rt,"useSwapMode");import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as Vw,RouteEventType as $F}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as fr}from"rango-types";import{i18n as _i}from"@lingui/core";var Qo=r(()=>({connectWallet:_i.t("Connect Wallet"),swap:_i.t("Swap"),swapAnyway:_i.t("Swap anyway"),ethWarning:_i.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Hs(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]}r(Hs,"getFeeLabel");var Gs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Hd=100,Gd=30,Vd=15,Kd=60;var jd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Xd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Gw}from"@rango-dev/queue-manager-rango-preset";import EF from"bignumber.js";function Zd(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}r(Zd,"getRequiredBalanceOfWallet");function eo(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}r(eo,"getPriceImpactLevel");function Bi(t,e,o){let n=t.steps[0],i=t.steps[t.steps.length-1],a=Gw(t.steps);if(!i||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:i.toBlockchain,symbol:i.toSymbol,address:i.toSymbolAddress},c=Bo(a?a.toBlockchain:n.fromBlockchain,e),l=Bo(i.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:m}}r(Bi,"createRetryQuote");function xn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:i}=t,a=Ho(o),s=it(o);if(o&&a&&s){let p=Jt(a.toString(),s.toString());if(!!p&&om(a,p)){let m=Di(o?.swaps,n),d=eo(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:d}}}if(e&&im(e,o))return{type:4,usdValueChange:M(it(o)?.minus(it(e)??0).toString()??"0",null,2),percentageChange:M(Jt(it(e)??"1",it(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Fi(o.swaps),l=i>fn;if(rm(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<i)return{type:3,slippage:i.toString()}}else return{type:2,recommendedSlippages:nm(o,i),minRequiredSlippage:c};return null}r(xn,"generateQuoteWarnings");function Rd(t){return![4].includes(t.type)}r(Rd,"isQuoteWarningConfirmationRequired");function Jt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Vs(t.toString(),e.toString());return n&&n<0?n:null}r(Jt,"getPriceImpact");var Jd=r(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"),Mi=r((t,e)=>e.sort((o,n)=>{let i=r(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=i(o),s=i(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),em=r((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let i=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(i).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),tm=r(t=>{let e=r((o,n)=>{let i=Gs.indexOf(o.value),a=Gs.indexOf(n.value);return i!==-1&&a!==-1?i-a:i!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function om(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return jd.some(({threshold:n,minInput:i})=>o<=n&&t.gte(new Ge(i)))}r(om,"hasHighValueLoss");function am(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(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}r(am,"hasLimitError");function sm(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,i=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!i&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):i&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!i&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):i&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}r(sm,"getLimitErrorMessage");function lm(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:i,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Qo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!i||i==="0"?{title:Qo().swap,action:"confirm-swap",disabled:!0}:s?{title:Qo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Qo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Qo().swap,action:"confirm-swap",disabled:!1}:{title:Qo().connectWallet,action:"connect-wallet",disabled:!1}}r(lm,"getSwapButtonState");function Ks(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}r(Ks,"canComputePriceImpact");function js(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let i=t.fee[n];if(!i||i.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(i.asset)?.usdPrice||null;o=o.plus(new Ge(i.amount).multipliedBy(a||0))}return o}r(js,"getUsdFeeOfStep");function Di(t,e){return t.reduce((o,n)=>o.plus(js(n,e)),pe)}r(Di,"getTotalFeeInUsd");function Xs(t){let e=pe,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}r(Xs,"getUsdFee");function Ys(t){return t.reduce((e,o)=>e.plus(Xs(o)),pe)}r(Ys,"getTotalFeesInUsd");function cm(t){return t.reduce((e,o)=>{for(let n of o.fee){let i=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[i]=[...a[i]||[],n]}return e},{payable:{},nonePayable:{}})}r(cm,"getFeesGroup");function pm(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}r(pm,"checkSlippageErrors");function nm(t,e){let o=new Map;return t?.swaps.forEach((n,i)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(i,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}r(nm,"checkSlippageWarnings");function Fi(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}r(Fi,"getMinRequiredSlippage");function rm(t,e){return e?parseFloat(t)>=parseFloat(e):!0}r(rm,"hasProperSlippage");function um(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:i,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:d,destination:h,contractCall:g}=t,f=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),y=[];return i?.forEach(S=>{y.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:f??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}r(um,"createQuoteRequestBody");function dm(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}r(dm,"getWalletsForNewSwap");function Ho(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}r(Ho,"getUsdInputFrom");function it(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}r(it,"getUsdOutputFrom");function Vs(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(Hd).toNumber()}r(Vs,"getPercentageChange");function im(t,e){let o=Ho(t),n=it(t),i=it(e);if(!o||!n||!i)return!1;let a=Vs(n.toString(),i.toString());return Xd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}r(im,"isOutputAmountChangedExcessively");function mm(t,e,o){let n=t.validationStatus,i=$o({filter:"required",quote:t});return e.sort((s,c)=>i.indexOf(s.chain)-i.indexOf(c.chain)).flatMap(s=>Zd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=M(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=M(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:Tt(s.asset.blockchain,o)}})})}r(mm,"generateBalanceWarnings");function gr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==fr.NetworkChanged}r(gr,"isNetworkStatusInWarningState");function fm(t,e,o){let n="bellow button or",i=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),gr(e)){i=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let u=(e?Vw(t,e):null)?.walletType,m=u?o?.(u)?.name:null;switch(e?.networkStatus){case fr.WaitingForConnectingWallet:i=m?vt.t("Connect {wallet}",{wallet:m}):i;break;case fr.WaitingForQueue:i=i||vt.t("Waiting for other running tasks to be finished");break;case fr.WaitingForNetworkChange:i=i||vt.t("Waiting for changing wallet network");break;case fr.NetworkChangeFailed:i=i||vt.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:i=i||"";break}}a=a||"",i=i||"";let c=Ct(i)??Ct(a);c&&(a=[i,a].filter(Boolean).join(`
2
+ `),i=c.message);let l=i?.indexOf("code")!==-1&&i?.indexOf("reason")!==-1;return{shortMessage:i,detailedMessage:{content:a,long:l}}}r(fm,"getSwapMessages");function gm(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}r(gm,"getLastConvertedTokenInFailedSwap");function hm(t){return t.status==="failed"}r(hm,"shouldRetrySwap");function ym(t,e,o,n,i,a){if(!n||t)return!0;let s=$o({filter:"all",quote:n}),c=$o({filter:"required",quote:n}),l=s.every(m=>i.some(d=>d.chain===m)),p=c.every(m=>i.some(d=>d.chain===m)),u=o&&a?Mo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}r(ym,"isConfirmSwapDisabled");function Sm(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}r(Sm,"isTokensIdentical");var $i=r((t,e)=>t?.usdPrice?new at(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),km=r(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new at(0),outputUsdValue:new at(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,i=pe,a=o.inputUsdValue;return er(o.inputAmount)?(e&&(n=e?.outputAmount?new at(e?.outputAmount):null,a=Ho(e)??pe,i=it(e)??pe),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:i,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new at(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new at(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new at(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:$i(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 at(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=Uu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=Du(e);di(e)||(o=Lu(o),o=Pu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new at(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:$i(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:i,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:$i(n??null,s),outputUsdValue:new at(0),toBlockchain:i,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?$i(e.toToken,e.outputAmount?.toString()||""):new at(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new at(0),inputUsdValue:new at(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new at(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})}),"initializer"),wm=Cm()(Tm(km)),vm=Cm()(Tm(km)),Kw=go(wm),jw=go(vm);function z(){let{swapMode:t}=rt();return go(t==="refuel"?vm:wm)}r(z,"useQuoteStore");var Em=r((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ge.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&&ge.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})},"subscribeCallback"),bm=Kw.subscribe(Em),xm=jw.subscribe(Em);function Im(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:i,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=C().config,m=C().fetchStatus,d=C().blockchains(),{findToken:h}=C(),{setAffiliateRef:g,setAffiliatePercent:f,setAffiliateWallets:y}=C(),k=u?.from?.tokens,S=u?.from?.blockchains,T=u?.to?.tokens,v=u?.to?.blockchains,w=Oi(void 0),A=Oi(void 0),I=Oi(void 0),b=Oi(void 0);In(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),In(()=>{if(m==="success"){i();let x=d.find(N=>N.name===u?.from?.blockchain),E=u?.from?.token,P=E&&h(E);(x||!x&&I.current)&&n(x??null),P?a({token:P,meta:{blockchains:d}}):!P&&w.current&&a({token:null}),I.current=u?.from?.blockchain,w.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),In(()=>{Es(s,k)&&a({token:null}),bs(l,S)&&n(null)},[k,S]),In(()=>{Es(c,T)&&a({token:null}),bs(p,v)&&o(null)},[T,v]),In(()=>{if(m==="success"){i();let x=d.find(N=>N.name===u?.to?.blockchain),E=u?.to?.token,P=E&&h(E);(x||!x&&b.current)&&o(x??null),P?e({token:P,meta:{blockchains:d}}):!P&&A.current&&e({token:null}),b.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),In(()=>{g(u?.affiliate?.ref??null),f(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}r(Im,"useSyncStoresWithConfig");import{useEffect as Js,useRef as Xw}from"react";import{useInRouterContext as Yw,useLocation as Zw,useSearchParams as Rw}from"react-router-dom";function Zs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}r(Zs,"convertTokenSearchParamToAsset");function Rs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}r(Rs,"tokenToSearchParam");function tl(){let t=Zw(),[e,o]=Rw(),{fromBlockchain:n,toBlockchain:i,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:d}=z()(),h=C().fetchStatus,g=C().blockchains(),f=Yw(),{updateIframe:y,updateCampaignMode:k}=C(),S=C().isInCampaignMode(),T=Xw(),{findToken:v}=C(),w=r(()=>{let I={};for(let[L,Z]of e.entries())(L.startsWith("utm_")||L.startsWith("privy_"))&&(I[L]=Z);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),E=e.get("fromToken"),P=e.get("toBlockchain"),N=e.get("toToken"),O=e.get("autoConnect"),H=e.get("clientUrl"),j=e.get("liquiditySources"),ee=e.get("blockchain");return{fromAmount:b,fromBlockchain:x,fromToken:E,toBlockchain:P,toToken:N,autoConnect:O,clientUrl:H,liquiditySources:j,extraQueryParams:I,blockchain:ee}},"getUrlSearchParams"),A=r(I=>{for(let b in I)I[b]||delete I[b];o(I,{replace:!0})},"updateUrlSearchParams");Js(()=>{let{autoConnect:I,clientUrl:b,extraQueryParams:x,blockchain:E}=w();f&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Rs(a),toBlockchain:i?.name,toToken:Rs(s),fromAmount:c,autoConnect:I??void 0,clientUrl:b??void 0,blockchain:E??void 0,liquiditySources:S?T.current:void 0,...x})},[t.pathname,c,n,a,i,s,S,h]),Js(()=>{if(!f)return;let I=w();if(!T.current&&I.liquiditySources&&(T.current=I.liquiditySources),I.fromAmount&&d(I.fromAmount),h==="success"){let b=g.find(H=>H.name===I.fromBlockchain),x=I.fromToken&&b&&Zs(I.fromToken,b),E=x?v(x):void 0,P=g.find(H=>H.name===I.toBlockchain),N=I.toToken&&P&&Zs(I.toToken,P),O=N?v(N):void 0;b&&(l(b),E&&u({token:E,meta:{blockchains:g}})),P&&(p(P),O&&m({token:O,meta:{blockchains:g}}))}},[h]),Js(()=>{let{clientUrl:I,liquiditySources:b}=w();y("clientUrl",I||void 0),k("liquiditySources",b?.split(",")??void 0)},[])}r(tl,"useSyncUrlAndStore");import{i18n as Wn}from"@lingui/core";import{Alert as CE,Button as TE,darkTheme as kE,Divider as Ll,DoneIcon as wE,styled as vE,TextField as EE,Typography as bE}from"@rango-dev/ui";import Ke,{useState as xE}from"react";import{useNavigate as IE,useSearchParams as AE}from"react-router-dom";import{ChevronRightIcon as Jw,Divider as Pm,Image as ev,Typography as _m}from"@rango-dev/ui";import Nt from"react";import{darkTheme as Am,styled as ol}from"@rango-dev/ui";var Nm=ol("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Am} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Am} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Wm=ol("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Lm=ol("div",{display:"flex"});function nl(t){let{onClick:e,value:o,title:n,hasLogo:i,placeholder:a,disabled:s}=t;return Nt.createElement(Wm,null,Nt.createElement(_m,{size:"large",variant:"label"},n),Nt.createElement(Pm,{size:10}),Nt.createElement(Nm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},Nt.createElement(Lm,null,i&&Nt.createElement(Nt.Fragment,null,Nt.createElement(ev,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),Nt.createElement(Pm,{size:4,direction:"horizontal"})),Nt.createElement(_m,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),Nt.createElement(Jw,{size:12,color:"black"})))}r(nl,"BlockchainSelectorButton");import{i18n as sl}from"@lingui/core";import{Button as lv,Divider as $m,MessageBox as cv}from"@rango-dev/ui";import yo,{useEffect as Om,useState as ll}from"react";import{i18n as Ui}from"@lingui/core";import{Divider as Go,ExternalLinkIcon as nv,Image as rv,InfoIcon as iv,Tooltip as av,Typography as yr}from"@rango-dev/ui";import fe from"react";var Bm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";import{Button as tv,darkTheme as An,styled as hr,Typography as ov}from"@rango-dev/ui";var rl=hr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${An} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${An} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${An} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${An} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Mm=hr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${An} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${An} &`]:{color:"$colors$neutral900"}}}),il=hr(tv,{minHeight:"$40"}),Dm=hr(ov,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),Fm=hr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var sv=9;function al(t){let{open:e,onClose:o,token:n,onExit:i,onSubmitClick:a,blockchain:s}=t,c=n.address?si({contractAddress:n.address,blockchainMeta:s}):void 0,l=r(()=>window.open(Bm,"_blank"),"onClickLearnMore");return fe.createElement(ie,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:i,container:W()},fe.createElement(Mm,null,fe.createElement(rv,{src:n.image===""?ci:n.image,size:45,type:"circular"}),fe.createElement(Go,{size:4}),fe.createElement(Fm,null,fe.createElement(Dm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>sv&&fe.createElement(av,{content:n.symbol,container:W()},fe.createElement(iv,{size:12,color:"gray"}))),fe.createElement(yr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),fe.createElement(Go,{size:4}),fe.createElement(yr,{variant:"body",size:"medium"},c?fe.createElement(rl,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,fe.createElement(nv,{size:12,color:"gray"})):fe.createElement(rl,null,n.address)),fe.createElement(Go,{size:4}),n.coinSource&&fe.createElement(yr,{className:"_coin-source",variant:"body",size:"xsmall"},Ui.t("via")," ",fe.createElement(yr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),fe.createElement(Go,{size:"32"}),fe.createElement(yr,{size:"medium",variant:"body",className:"_custom-token-description"},Ui.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),fe.createElement(Go,{size:40}),fe.createElement(Go,{size:10}),fe.createElement(il,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ui.t("Import Anyway")),fe.createElement(Go,{size:10}),fe.createElement(il,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ui.t("Learn More")))}r(al,"CustomTokenModal");function Sr(t){let{token:e,blockchain:o,error:n,address:i,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=C(),[m,d]=ll(!1),[h,g]=ll(!1),[f,y]=ll(!1),k=r(()=>{o&&a?.({blockchain:o.name,tokenAddress:i})},"getCustomToken"),S=r(()=>{n?.type!=="network-error"&&s?.(),d(!1)},"closeErrorModal"),T=r(()=>{y(!0),S()},"handleErrorModalButtonClick"),v=r(()=>{f&&n?.type==="network-error"&&(y(!1),k()),l()},"handleExit"),w=r(()=>{e&&(u(e),c())},"handleSubmit");return Om(()=>{n&&d(!0)},[n]),Om(()=>{o&&e&&g(!0)},[o,e]),yo.createElement(yo.Fragment,null,yo.createElement(ie,{open:m,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:v,container:W()},yo.createElement(cv,{title:n?.title??"",type:"error",description:n?.message||sl.t("Failed Network, Please retry.")},yo.createElement($m,{size:40}),yo.createElement($m,{size:10}),yo.createElement(lv,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?sl.t("Retry"):sl.t("Add another custom token")))),o&&e&&yo.createElement(al,{blockchain:o,token:e,onSubmitClick:w,onClose:()=>g(!1),open:h,onExit:p}))}r(Sr,"ImportCustomToken");import{useManager as mE}from"@rango-dev/queue-manager-react";import{BottomLogo as fE,Divider as Tf,Header as gE}from"@rango-dev/ui";import Pe,{useEffect as Yi,useLayoutEffect as hE,useRef as kf,useState as wf}from"react";import{useRef as pv}from"react";function zi(){return window.self!==window.top}r(zi,"isAppLoadedIntoIframe");function cl(){let t=pv(null),{iframe:e}=C(),o=zi()&&e.clientUrl,n=r(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:r(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:r(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}r(cl,"useIframe");import{useNavigate as uv}from"react-router-dom";function Ve(){let t=uv();return()=>t(-1)}r(Ve,"useNavigateBack");import{createTheme as hl,darkTheme as Ev,lightTheme as bv}from"@rango-dev/ui";import{useEffect as xv,useState as Iv}from"react";import{theme as wv,darkColors as vv}from"@rango-dev/ui";import fl from"react";var qi=16,Qi=255,Um=.11;function dv(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,i){return n+i+i},"")}`:`#${t}`}r(dv,"expandShortHexColor");function mv(t,e){return t.padStart(e,"0")}r(mv,"pad");function pl(t){let e=Math.min(Math.max(Math.round(t),0),Qi);return mv(e.toString(qi),2)}r(pl,"intToHex");function fv(t){return`#${pl(t.red)}${pl(t.green)}${pl(t.blue)}`}r(fv,"rgbToHex");function gv(t){let e=parseInt(t.slice(1,3),qi),o=parseInt(t.slice(3,5),qi),n=parseInt(t.slice(5,7),qi);return{red:e,green:o,blue:n}}r(gv,"hexToRGB");function hv(t,e){let o=1-Um*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}r(hv,"generateShade");function yv(t,e){let o=Um*e;return{red:t.red+(Qi-t.red)*o,green:t.green+(Qi-t.green)*o,blue:t.blue+(Qi-t.blue)*o}}r(yv,"generateTint");function Sv(t){return zm(t,hv)}r(Sv,"calculateShades");function Cv(t){return zm(t,yv)}r(Cv,"calculateTints");function zm(t,e){let o=gv(t),n=[];for(let i=1;i<9;i++)n.push(fv(e(o,i)));return n}r(zm,"calculateColors");function ul(t,e,o){let a=Cv(t).reverse().concat(t),s=Sv(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50,d=c[u];d&&(l[`${e}${m}`]=d)}return l}r(ul,"createTintsAndShades");function dl(t,e,o){let n={...t};for(let i in e){let a=e[i],s=i==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(i)&&!$u(i)){let l=dv(a);Object.assign(n,ul(l,i,s))}}return{...n,...e}}r(dl,"expandToGenerateThemeColors");var qm=r(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Tv=r(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=qm(o%52)+e;return qm(o%52)+e},"toAlphabeticName"),kv=r((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ml=r(t=>Tv(kv(5381,JSON.stringify(t))>>>0),"toHash");function gl(t){let e=wv.colors,o={...e,...vv},n,i;if(t?.light){let s={colors:dl(e,t.light)};n={id:`${vs}-light-${ml(s)}`,tokens:s}}if(t?.dark){let s={colors:dl(o,t.dark,{reverseNeutralRange:!0})};i={id:`${vs}-dark-${ml(s)}`,tokens:s}}return{light:n,dark:i}}r(gl,"customizedThemeTokens");function Qm(t,e){if(t.length<=1)return t.map(({element:n,key:i})=>fl.cloneElement(n,{key:i}));let o=[];return t.forEach((n,i)=>{let{element:a,key:s}=n;if(o.push(fl.cloneElement(a,{key:s})),i<t.length-1){let c=`divider-${i}`;o.push(fl.cloneElement(e,{key:c}))}}),o}r(Qm,"joinList");function Hm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}r(Hm,"doesWindowPreferDarkColorScheme");function So(t){let{colors:e,fontFamily:o=Cu,borderRadius:n=Zu,secondaryBorderRadius:i=Ru}=t,[a,s]=Iv(Hm()?"dark":"light"),{theme:c}=C(),{dark:l,light:p}=gl(e),u=hl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${i}px`},fonts:{widget:o}}),m=[u.className,bv.className],d=[u.className,Ev.className];if(p){let g=hl(p.id,p.tokens);m.push(g.className)}if(l){let g=hl(l.id,l.tokens);d.push(g.className)}return xv(()=>{let g=r(f=>{f.matches?s("dark"):s("light")},"switchThemeListener");return Hm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:r(()=>{let g=m.join(" "),f=d.join(" ");return c==="auto"?a==="dark"?f:g:c==="dark"?f:g},"getActiveTheme"),mode:c==="auto"?a:c}}r(So,"useTheme");var Et=r(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let i=o.list.getStorage();i?.swapDetails&&e.push({id:n,swap:i?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Gm}from"@lingui/core";import{Alert as Av,Button as Nv}from"@rango-dev/ui";import Vm from"react";function yl(t){return Vm.createElement(Av,{action:Vm.createElement(Nv,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Gm.t("Activate this tab")),type:"warning",variant:"alarm",title:Gm.t("Another tab is open and handles transactions.")})}r(yl,"ActivateTabAlert");import{i18n as Sl}from"@lingui/core";import{Button as Wv,Divider as Lv,MessageBox as Pv}from"@rango-dev/ui";import Hi from"react";function Cl(t){let{open:e,onClose:o,onConfirm:n}=t;return Hi.createElement(ie,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},Hi.createElement(Pv,{title:Sl.t("Activate current tab"),type:"warning",description:Sl.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.")},Hi.createElement(Lv,{size:20}),Hi.createElement(Wv,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Sl.t("Confirm"))))}r(Cl,"ActivateTabModal");import{ChevronLeftIcon as Mv}from"@rango-dev/ui";import ef from"react";import{css as _v,darkTheme as Km,IconButton as Bv,styled as Vo}from"@rango-dev/ui";var Ot=Vo(Bv,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Km} &`]:{backgroundColor:"$neutral"}}}),jm=Vo("div",{position:"absolute",background:"$secondary500",[`.${Km} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Co=Vo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Xm=Vo("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"}}}}),Ym=Vo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Zm=Vo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Rm=_v({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Jm=Vo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Tl(t){return ef.createElement(Ot,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},ef.createElement(Mv,{color:"black",size:16}))}r(Tl,"BackButton");import{i18n as Dv}from"@lingui/core";import{Button as Fv,Typography as $v}from"@rango-dev/ui";import kl from"react";function wl(t){return kl.createElement(Co,null,kl.createElement(Fv,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},kl.createElement($v,{variant:"label",size:"medium",color:"error500"},Dv.t("Cancel"))))}r(wl,"CancelButton");import{i18n as Ov}from"@lingui/core";import{Image as Uv,Tooltip as zv,WalletIcon as qv,WalletState as tf}from"@rango-dev/ui";import Ko from"react";function vl(t){let{list:e}=It(),o=e.filter(i=>i.state===tf.CONNECTED||i.state===tf.PARTIALLY_CONNECTED),n=o.length?Ko.createElement("div",{className:Rm()},o.map(i=>Ko.createElement(Jm,{key:i.title},Ko.createElement(Uv,{src:i.image,size:14})))):Ov.t("Connect Wallet");return Ko.createElement(zv,{container:t.container,side:"bottom",content:n},Ko.createElement(Ot,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Ko.createElement(jm,null),Ko.createElement(qv,{size:18,color:"black"})))}r(vl,"WalletButton");import{i18n as Vi}from"@lingui/core";import{NotificationsIcon as rE,Popover as iE,SettingsIcon as aE,Tooltip as Ki,TransactionIcon as sE}from"@rango-dev/ui";import Be from"react";import{Notifications as Vv}from"@rango-dev/ui";import Kv from"react";import{useNavigate as jv}from"react-router-dom";import{create as Qv}from"zustand";import{persist as Hv,subscribeWithSelector as Gv}from"zustand/middleware";var Le=go(Qv()(Hv(Gv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let i=n.steps[0],a=n.steps[n.steps.length-1];if(!i||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:i.fromBlockchain,address:i.fromSymbolAddress,symbol:i.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(i=>i.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((i,a)=>i.route.creationTime&&!a.route.creationTime?-1:!i.route.creationTime&&a.route.creationTime?1:!i.route.creationTime&&!a.route.creationTime?a.creationTime-i.creationTime:a.route.creationTime-i.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:i}=e();if(!n){let a=[];i.forEach(s=>{o.some(l=>l.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,...i})=>i)}return t}})));function El(){let t=jv(),{getNotifications:e,clearNotifications:o}=Le(),n=e(),i=C().blockchains(),{findToken:a}=C();return Kv.createElement(Vv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>lu(c,i),getTokenImage:c=>a(c)?.image,onClickItem:r(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}r(El,"NotificationContent");import{useManager as Xv}from"@rango-dev/queue-manager-react";import{InProgressIcon as Yv}from"@rango-dev/ui";import of from"react";var Zv=r(()=>{let{manager:t}=Xv();return Et(t).map(({swap:o})=>o).find(o=>o.status==="running")?of.createElement(Zm,{id:"widget-header-history-badge-container"},of.createElement(Yv,{color:"info",size:6})):null},"InProgressTransactionBadge"),nf=Zv;import{EventSeverity as Rv}from"@rango-dev/queue-manager-rango-preset";import{Typography as Jv}from"@rango-dev/ui";import rf from"react";function af(){let{getNotifications:t}=Le(),e=t(),o=e.length,n=!!e.find(i=>i.event.messageSeverity===Rv.WARNING);return o?rf.createElement(Xm,{isSever:n},rf.createElement(Jv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}r(af,"NotificationsBadge");import{RefreshProgressButton as eE}from"@rango-dev/ui";import bl,{useEffect as tE,useState as sf}from"react";var oE=1e3,lf=60,nE=100;function Gi({onClick:t}){let[e,o]=sf(0),[n,i]=sf(!1),a=r(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");tE(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===lf&&c()},oE):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=r(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=r(()=>{t?.(),o(0),i(!0)},"handleRefreshClick");return bl.createElement(Ot,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},bl.createElement(Ym,{onTransitionEnd:()=>i(!1),isRefetched:n},bl.createElement(eE,{size:22,color:t?"black":"gray",progress:e/lf*nE})))}r(Gi,"RefreshButton");function jo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:i=[],container:a}=t,{config:{features:s}}=C(),c=nt("notification",s)||i.includes("notifications");return Be.createElement(Be.Fragment,null,!i.includes("refresh")&&Be.createElement(Ki,{container:a||W(),side:"top",content:Vi.t("Refresh")},Be.createElement(Gi,{onClick:e})),!c&&Be.createElement(iE,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:Be.createElement(El,null)},Be.createElement("div",null,Be.createElement(Ki,{container:W(),side:"top",content:Vi.t("Notifications")},Be.createElement(Ot,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Be.createElement(rE,{size:18,color:"black"}),Be.createElement(af,null))))),!i.includes("settings")&&Be.createElement(Ki,{container:W(),side:"top",content:Vi.t("Settings")},Be.createElement(Ot,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Be.createElement(aE,{size:18,color:"black"}))),!i.includes("history")&&Be.createElement(Ki,{container:W(),side:"top",content:Vi.t("History")},Be.createElement(Ot,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Be.createElement(sE,{size:18,color:"black"}),Be.createElement(nf,null))))}r(jo,"HeaderButtons");import{i18n as xl}from"@lingui/core";import{Divider as pf,MessageBox as pE,RefreshIcon as uE}from"@rango-dev/ui";import Nn from"react";import{Button as lE,styled as cE}from"@rango-dev/ui";var cf=cE(lE,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Il(t){let{open:e,onClose:o}=t;return Nn.createElement(ie,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},Nn.createElement(pE,{title:xl.t("Something went wrong"),type:"error",description:xl.t("Something went wrong. Please refresh the app.")},Nn.createElement(pf,{size:30}),Nn.createElement(cf,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Nn.createElement(uE,{size:20,color:"primary"}),Nn.createElement(pf,{size:4,direction:"horizontal"}),xl.t("Refresh"))))}r(Il,"RefreshModal");var uf="700px",df="425px",mf="550px",ff="640px",gf="800px";function Al(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")}}r(Al,"onScrollContentAttachStatusToContainer");import{css as dE,styled as ji}from"@rango-dev/ui";var Xi=dE({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),hf=ji("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:uf,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:df,[`@media screen and (min-height: ${gf})`]:{minHeight:mf}}},showBanner:{true:{overflow:"visible"}}}}),yf=ji("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Sf=ji("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"}}}),Cf=ji("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function se(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=cl(),{children:n,header:i,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=C(),[u,m]=wf(!1),{config:{features:d,theme:h}}=C(),{watermark:g}=re(),f=g==="FULL",{activeTheme:y}=So(h||{}),[k,S]=wf(!1),T=nt("connectWalletButton",d),{isActiveTab:v,tabManagerInitiated:w,showActivateTabModal:A,setShowActivateTabModal:I,activateCurrentTab:b,setShowCompactTokenSelector:x}=re(),E=Ve(),{manager:P}=mE(),O=Et(P).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),H=r(()=>b(Uo.forceClaim,O),"onActivateTab"),j=r(()=>{i.onWallet?.()},"onConnectWallet"),ee=typeof i.hasBackButton>"u"||i.hasBackButton,L=kf(null),Z=kf(null);return Yi(()=>{let Y=(p?.swapBoxBanner?.routes?.length??0)===0,ue=!!p?.swapBoxBanner?.routes?.some(Ee=>location.pathname.endsWith(Ee));S(!!p?.swapBoxBanner&&(Y||ue))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Yi(()=>(zi()&&Z.current&&e(Z.current),()=>{o()}),[]),Yi(()=>(L.current?.addEventListener("scroll",Al),()=>{L.current?.removeEventListener("scroll",Al)}),[]),Yi(()=>{m(c==="failed")},[c]),hE(()=>{if(!Z.current)return;let Y=new ResizeObserver(ue=>{for(let Ee of ue)Ee.contentRect&&x(Ee.contentRect.height<parseInt(ff))});return Y.observe(Z.current),()=>Y.disconnect()},[]),Pe.createElement(hf,{height:s,id:wt.SWAP_BOX_ID,className:`${y()} ${Xi()}`,ref:Z,showBanner:k},Pe.createElement(gE,{prefix:ee?Pe.createElement(Tl,{onClick:()=>{E(),i.onBack?.()}}):null,title:i.title,suffix:Pe.createElement(Pe.Fragment,null,i.suffix,i.onWallet&&!T&&Pe.createElement(vl,{container:W(),onClick:j,isConnected:!!l?.length}),i.onCancel&&Pe.createElement(wl,{onClick:i.onCancel}))}),Pe.createElement(yf,{ref:L},n),Pe.createElement(Cl,{open:A,onClose:()=>I(!1),onConfirm:H}),Pe.createElement(Sf,null,Pe.createElement("div",{className:"footer__content"},w&&!v&&Pe.createElement("div",{className:"footer__alert"},Pe.createElement(yl,{onActivateTab:H}),Pe.createElement(Tf,{size:10})),a),Pe.createElement(Tf,{size:12}),Pe.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},Pe.createElement(fE,null))),k&&Pe.createElement(Cf,null,p?.swapBoxBanner?.element),Pe.createElement(Il,{open:u,onClose:()=>m(!1)}))}r(se,"Layout");import{styled as yE}from"@rango-dev/ui";var vf="$20 $20 $10 $20",Nl=yE("div",{padding:vf,overflowY:"auto",flexGrow:1});import{styled as SE}from"@rango-dev/ui";var ce=SE("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 To}from"@lingui/core";import{useState as Wl}from"react";function Ef(){let[t,e]=Wl(!1),[o,n]=Wl(null),[i,a]=Wl(null),{findToken:s}=C(),c=C().customTokens(),l=r(()=>{a(null),e(!1),n(null)},"resetState");function p(m,d){switch(m){case"duplicated":return{type:m,title:To.t("Duplicate Token"),message:To.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:To.t("Token Already Exists"),message:To.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:To.t("Token Not Found"),message:To.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:d}})};case"network-error":return{type:m,title:To.t("Network error"),message:To.t("An error occurred while retrieving token data.")}}}return r(p,"produceErrorMessage"),{fetchCustomToken:r(async({blockchain:m,tokenAddress:d})=>{e(!0);try{if(c.some(k=>k.address?.toLowerCase()===d.toLowerCase())){let k=p("duplicated");n(k);return}let g=await dt().getCustomToken({blockchain:m,address:d});if(!g||!g.token||g.error){let k=p("not-found",m);n(k);return}let f=g.token;if(s({blockchain:f.blockchain,address:f.address,symbol:f.symbol})){let k=p("token-exist");n(k);return}return a({...f,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",m);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:i,loading:t,error:o,resetState:l}}r(Ef,"useFetchCustomToken");var NE=vE("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${kE} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function bf(){let t=IE(),[e]=AE(),o=Ve(),n=C().blockchains(),i=e.get("blockchain")||"",a=Bo(i,n),[s,c]=xE(""),{fetchCustomToken:l,token:p,loading:u,error:m,resetState:d}=Ef(),h=!!a&&Mo(a,s),g=!a||!s||!h,f=r(()=>{a&&l({blockchain:i,tokenAddress:s})},"getCustomToken");return Ke.createElement(se,{header:{title:Wn.t("Add Custom Token")}},Ke.createElement(ce,null,Ke.createElement(NE,null,Ke.createElement("div",null,Ke.createElement(nl,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:Wn.t("Select chain"),placeholder:Wn.t("Select chain")}),Ke.createElement(Ll,{size:"24"}),Ke.createElement(bE,{size:"large",variant:"label"},Wn.t("Enter Address")),Ke.createElement(Ll,{size:10}),Ke.createElement(EE,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:Wn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(wE,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(Ll,{size:4}),Ke.createElement(CE,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(TE,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:f},Wn.t("Import"))),Ke.createElement(Sr,{token:p,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{m?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:d,onExitImportModal:d})))}r(bf,"AddCustomTokenPage");import{i18n as pc}from"@lingui/core";import{useManager as mx}from"@rango-dev/queue-manager-react";import{Alert as fx,Button as gx,css as dc,Divider as uc,IconButton as gh,styled as hx,Typography as yx,WalletIcon as Sx}from"@rango-dev/ui";import Fe,{useEffect as Ea,useLayoutEffect as Cx,useRef as Tx,useState as Nr}from"react";import{useNavigate as kx}from"react-router-dom";import{i18n as Yo}from"@lingui/core";import{Alert as jE,BalanceErrors as XE,Button as Xf,ChevronLeftIcon as YE,Divider as Fl,MessageBox as ZE,Typography as $l}from"@rango-dev/ui";import ae,{useCallback as RE,useEffect as oa,useMemo as JE,useState as Pn}from"react";import{useNavigate as eb}from"react-router-dom";import{i18n as Ml}from"@lingui/core";import{Alert as BE,ChevronDownIcon as ME,CloseIcon as DE,Divider as Pf,IconButton as _f,PasteIcon as FE,Typography as $E,WalletIcon as OE}from"@rango-dev/ui";import Me,{useEffect as Bf,useRef as Mf}from"react";import ea,{useRef as PE}from"react";import*as Ln from"@radix-ui/react-collapsible";import{keyframes as xf,styled as Zi}from"@rango-dev/ui";var Pl=300,WE=xf({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),LE=xf({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),If=Zi(Ln.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),_l=Zi(Ln.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Ri=Zi(Ln.Content,{overflow:"hidden",variants:{open:{true:{animation:`${WE} ${Pl}ms ease-out`},false:{animation:`${LE} ${Pl}ms ease-out`}}}}),Ji=Zi("div",{transition:`all ${Pl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ta(t){let{open:e,hasSelected:o,onOpenChange:n,children:i,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=PE(null);return ea.createElement(If,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&ea.createElement(_l,{className:"collapsible_trigger",onClick:a},s),ea.createElement(Ri,{className:"collapsible_content",open:e},i),c==="bottom"&&ea.createElement(_l,{className:"collapsible_trigger",onClick:a},s))}r(ta,"CustomCollapsible");import{darkTheme as Af,styled as Bl,TextField as _E}from"@rango-dev/ui";var Nf=Bl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),Wf=Bl(_E,{backgroundColor:"$neutral100"}),Lf=Bl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Af} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Af} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Df(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:i,setCustomDestination:a}=z()(),{config:s}=C(),c=C().blockchains(),l=su(e.name,c),p=Mf(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),h=n&&!!i&&e&&!Mo(e,i),g=r(()=>{a("")},"handleClear"),f=r(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),p?.current?.focus()}},"handlePaste"),y=r(()=>i?Me.createElement(_f,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Me.createElement(DE,{size:12,color:"gray"})):m?null:Me.createElement(_f,{id:"widget-custom-destination-paste-icon-btn",onClick:f,variant:"ghost"},Me.createElement(FE,{size:16})),"renderSuffix");Bf(()=>{!!u&&i===null&&(a(u),o(!0))},[u]);let k=Mf(null);return Bf(()=>{if(!i){k.current=null;return}n&&Mo(e,i)&&k.current!==i&&(k.current=i,oe({type:"destinationAddressSet",payload:{destinationChain:e.name}}))},[i,n,e]),Me.createElement(Nf,null,Me.createElement(ta,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(Lf,{id:"widget-custom-destination-collapsible-btn"},Me.createElement("div",{className:"button__content"},Me.createElement(OE,{size:18,color:"info"}),Me.createElement(Pf,{size:4,direction:"horizontal"}),Me.createElement($E,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Ml.t("Send to a different address"))),Me.createElement(Ji,{orientation:n?"up":"down"},Me.createElement(ME,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(Wf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:i?"8px":"5px"},autoFocus:!i,placeholder:Ml.t("Enter {blockchainName} address",{blockchainName:l}),value:i||"",suffix:y(),onChange:S=>{let T=S.target.value;a(T)}})),h&&Me.createElement(Me.Fragment,null,Me.createElement(Pf,{size:4}),Me.createElement(BE,{variant:"alarm",type:"error",title:Ml.t({values:{destination:i},id:"Address {destination} doesn't match the blockchain address pattern."})})))}r(Df,"CustomDestination");import{css as UE,IconButton as zE,SelectableWalletButton as qE,styled as ko}from"@rango-dev/ui";var Ff=ko("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),$f=ko("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Of=ko(qE,{justifyContent:"center"}),Uf=ko("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zf=ko(zE,{position:"absolute",left:"$20"}),qf=ko("div",{paddingTop:"$20"}),Qf=UE({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Hf=ko("div",{display:"flex"}),Gf=ko("div",{overflow:"visible",width:"100%"});import{i18n as Vf}from"@lingui/core";import{warn as QE}from"@rango-dev/logging-core";import{makeInfo as HE,SelectableWallet as GE,Typography as Kf,WalletState as Cr}from"@rango-dev/ui";import Xo,{useEffect as VE,useState as jf}from"react";var KE=7;function Dl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:i,limit:a,onShowMore:s}=t,c=re.use.isActiveTab(),{connectedWallets:l}=C(),[p,u]=jf(),{list:m}=It({chain:e}),[d,h]=jf(m),g=m.length,f=a&&g-a>0;return VE(()=>{h(y=>{let k=m.findIndex(S=>n(S.type,e));return f&&k>1?[m[k]].concat(m.filter((S,T)=>T!==k)):y.map(S=>m.find(T=>T.type===S.type)??S)})},[JSON.stringify(m)]),Xo.createElement(Xo.Fragment,null,d.slice(0,a).map(y=>{let k=Vu({connectedWallets:l,walletType:y.type,chain:e}),S=y.state===Cr.CONNECTED||y.state===Cr.PARTIALLY_CONNECTED,T=k?fo(k,KE):"",v=S&&!!y.needsNamespace&&!T,w=r(async()=>{y.state===Cr.DISCONNECTED||v?u(y):i({walletType:y.type,chain:e,address:k??""})},"onSelectableWalletClick"),A=HE(y.state),I=r(()=>v?Vf.t("Chain not connected"):T||A.description,"getWalletDescription"),b=r(()=>y.state===Cr.CONNECTED||y.state===Cr.PARTIALLY_CONNECTED?v?"neutral600":"neutral700":A.color,"getWalletDescriptionColor");return Xo.createElement(GE,{key:y.type,id:"widget-wallets-list-selectable-wallet-btn",description:I(),descriptionColor:b(),onClick:w,selected:n(y.type,e),disabled:!c,...y})}),Xo.createElement(mr,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,trigger:"confirm-wallets-modal",options:{defaultSelectedChains:o||[e]},onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):QE(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),f&&Xo.createElement(Of,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},Xo.createElement(Kf,{variant:"label",size:"medium"},Vf.t("Show more wallets"),Xo.createElement(Kf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",g-(a??0)))))}r(Dl,"WalletList");var tb=2;function Yf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:i,loading:a}=t,s=eb(),c=C().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:d,setCustomDestination:h}=z()(),{config:g,connectedWallets:f,setWalletsAsSelected:y}=C(),[k,S]=Pn(""),[T,v]=Pn([]),[w,A]=Pn(""),[I,b]=Pn(!!d),x=JE(()=>$o({filter:"all",quote:l}),[l]),E=$o({filter:"required",quote:l}),P=c.find(_=>_.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),N=r(_=>E.includes(_),"isWalletRequiredFor"),O=RE(()=>f.filter(_=>_.selected&&x.includes(_.chain)),[f,x]),[H,j]=Pn(O()),[ee,L]=Pn([]),Z=r((_,V)=>L(q=>q.concat({blockchain:_,walletType:V})),"addNextSelectedWallets"),Y=T.length>0,ue=r((_,V)=>!!H.find(q=>q.walletType===_&&q.chain===V&&q.selected&&(N(V)||!N(V)&&!d)),"isSelected"),Ee=r((_,V,q)=>{let X=!1;return _.map(G=>{if(G.chain===V){let R=G.selected;return!X&&q?(X=!0,R=!0):q||(R=!1),{...G,selected:R}}return G})},"updateSelectableWallets"),Kt=r(_=>{b(_),_?N(P?.name??"")||j(V=>Ee(V,P?.name||"",!1)):(h(""),j(V=>Ee(V,P?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),be=r(_=>{if(k&&S(""),ue(_.walletType,_.chain))return;let q=f.find(X=>X.walletType===_.walletType&&X.chain===_.chain);q&&(n(),_.chain===P?.name&&I&&!N(P.name)&&(b(!1),h(null)),j(X=>X.filter(G=>G.chain!==_.chain).concat({...q,selected:!0})))},"onChange"),Qe=r(()=>{let _=H.filter(V=>V.selected);oe({type:"swapWalletsConfirmed",payload:{routeId:l?.requestId??""}}),y(_),p(_),m(!0),o()},"onConfirmBalance"),Xe=r(async()=>{v([]),A("");let _=await i?.({selectedWallets:H.filter(q=>q.selected),customDestination:d}),V=_.warnings;V?.balance?.messages&&v(V.balance.messages),_.error&&A(Up(_.error)),!_.error&&!V?.balance?.messages.length?Qe():v(V?.balance?.messages??[])},"onConfirmWallets");oa(()=>{j(_=>{let V=[];return _.forEach(q=>{!f.some(G=>G.chain===q.chain&&G.walletType===q.walletType&&G.address===q.address)||V.push(q)}),V=V.concat(f.filter(q=>!!!V.find(G=>G.chain===q.chain)&&q.selected&&x.includes(q.chain))),V})},[f,x]),oa(()=>{let _=[];ee.length>0&&(ee.forEach(V=>{let q=f.find(X=>X.chain===V.blockchain&&X.walletType===V.walletType);q?be(q):_.push(V)}),L(_))},[f,ee]);let St=l?.requestId??"";oa(()=>{if(!e)return;let _=E.filter(V=>!f.some(q=>q.chain===V));oe({type:"swapWalletsModalShown",payload:{chainsRequired:E.length,chainsPending:_.length}})},[e]),oa(()=>{Y&&oe({type:"gasWarningShown",payload:{routeId:St}})},[Y,St]);let ct=document.getElementById(wt.SWAP_BOX_ID);return ae.createElement(ie,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!k,container:ct,...!k&&{styles:{container:{height:"100%"}},footer:ae.createElement(Hf,null,ae.createElement(Xf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:ym(a,I,d,l,H,P),onClick:Xe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Yo.t("Confirm")))},...k&&{styles:{container:{height:"100%",padding:"$0"}},header:ae.createElement(Uf,null,ae.createElement(zf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},ae.createElement(YE,{size:16})),ae.createElement($l,{variant:"headline",size:"small"},Yo.t({id:"Your {blockchainName} wallets",values:{blockchainName:Tt(k,c)}})))},anchor:"center"},ae.createElement(ie,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Y,onClose:v.bind(null,[]),container:ct},ae.createElement(ZE,{title:Yo.t("Insufficient account balance"),type:"error",description:ae.createElement(XE,{messages:T??[]})},ae.createElement(Xf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>{oe({type:"gasWarningBypassed",payload:{routeId:St}}),Qe()}},Yo.t("Proceed anyway")))),k&&ae.createElement(qf,null,ae.createElement("div",{className:Qf()},ae.createElement(Dl,{chain:k,quoteChains:x,isSelected:ue,selectWallet:be,onShowMore:()=>S(k),onConnect:_=>{Z(k,_)}}))),!k&&ae.createElement(ae.Fragment,null,w&&ae.createElement(ae.Fragment,null,ae.createElement(jE,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Yo.t(w)}),ae.createElement(Fl,{size:12})),ae.createElement(Gf,null,x.map((_,V)=>{let q=c.find(U=>U.name===_),X=`wallet-${V}`,G=V===x.length-1,R=G&&P&&g?.customDestination!==!1;return ae.createElement("div",{key:X},ae.createElement(Ff,null,ae.createElement($l,{variant:"title",size:"xmedium"},Yo.t({id:"Your {blockchainName} wallets",values:{blockchainName:q?.shortName}})),ae.createElement($l,{variant:"label",color:"$neutral700",size:"medium"},Yo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:q?.shortName}}))),ae.createElement(Fl,{size:24}),ae.createElement($f,null,ae.createElement(Dl,{chain:_,quoteChains:x,isSelected:ue,selectWallet:be,limit:tb,onShowMore:()=>S(q?.name??""),onConnect:U=>{Z(_,U)}})),!G&&ae.createElement(Fl,{size:32}),R&&ae.createElement(Df,{blockchain:P,open:I,handleOpenChange:Kt}))}))))}r(Yf,"ConfirmWalletsModal");import{i18n as Ib}from"@lingui/core";import{Alert as Ab,Button as Nb,Divider as hg,InfoIcon as Wb}from"@rango-dev/ui";import Ue from"react";import{Alert as rb,Button as ib,Divider as zl,NoRouteIcon as ab,RefreshIcon as sb,Typography as ng}from"@rango-dev/ui";import mt from"react";import{i18n as Zf}from"@lingui/core";var ob=24,nb=60;function Rf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:Zf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Zf.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}}r(Rf,"makeInfo");var Ol=(o=>(o[o.small=ob]="small",o[o.large=nb]="large",o))(Ol||{}),Ul=(o=>(o.small="small",o.large="medium",o))(Ul||{});import{styled as na}from"@rango-dev/ui";var Jf=na("div",{display:"flex",flexDirection:"column",alignItems:"center"}),eg=na("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),tg=na("div",{variants:{size:{small:{width:"100%"},large:{}}}}),og=na("div",{padding:"$6 $0"});function Tr(t){let{fetch:e,error:o,size:n="small",skipAlerts:i}=t,a=C().getDisabledLiquiditySources(),s=C().toggleAllLiquiditySources,c=C().swappers(),l=Rf(o,a,()=>s(c,!0),e);return i&&(l.alert=null),mt.createElement(Jf,{id:"widget-no-result-container"},mt.createElement(ab,{size:Ol[n],color:"gray"}),mt.createElement(zl,{size:4}),mt.createElement(ng,{variant:"title",size:Ul[n]},te().noResultError.title),n==="large"&&mt.createElement(zl,{size:4}),!!l.description&&mt.createElement(eg,{size:n},mt.createElement(ng,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),mt.createElement(zl,{size:n==="large"?"24":"4"}),!!l.alert&&mt.createElement(tg,{size:n},mt.createElement(rb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&mt.createElement(ib,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:mt.createElement(og,null,mt.createElement(sb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}r(Tr,"NoResult");import{i18n as kr}from"@lingui/core";import{Button as gb,Divider as hb,MessageBox as yb,Typography as Sb,WarningIcon as Cb}from"@rango-dev/ui";import to from"react";import{InfoIcon as ub,Tooltip as db,Typography as mb}from"@rango-dev/ui";import _n from"react";import{Button as lb,darkTheme as cb,styled as Zo,Typography as pb}from"@rango-dev/ui";var rg=Zo("div",{width:"100%"}),ql=Zo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),ig=Zo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${cb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ag=Zo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),sg=Zo(pb,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),lg=Zo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),cg=Zo(lb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var fb=35;function pg(t){let{title:e,value:o,valueColor:n}=t,i=W();return _n.createElement(ig,null,_n.createElement(mb,{size:"medium",variant:"label",className:"_title"},e),_n.createElement(ag,null,_n.createElement(sg,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>fb&&_n.createElement(db,{content:o,container:i},_n.createElement(ub,{size:12,color:"gray"}))))}r(pg,"QuoteErrorsModalItem");function ug(t){let{open:e,onClose:o,onConfirm:n,warning:i,confirmationDisabled:a}=t,s=i.warningLevel==="high"?"error":"warning",c=[{title:kr.t("Swapping"),value:M(i.inputUsdValue)},{title:kr.t("Gas cost"),value:M(i.totalFee,2,2)},{title:kr.t("Receiving"),value:M(i.outputUsdValue)},{title:kr.t("Price impact"),value:M(i.priceImpact,2,2),valueColor:`${s}500`}];return to.createElement(ie,{id:"widget-high-value-loss-warning-modal",footer:to.createElement(gb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:to.createElement(Cb,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},to.createElement(yb,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),to.createElement(ql,null,to.createElement(hb,{size:"4"}),to.createElement(Sb,{size:"small",variant:"title"},kr.t("Details")),to.createElement(ql,null,c.map((l,p)=>to.createElement(pg,{key:p,...l})))))}r(ug,"HighValueLossWarningModal");import{i18n as Bn}from"@lingui/core";function dg(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Bn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Bn.t("Increase")),o;if(t){switch(t.type){case 0:{eo(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=te().highValueLossError.title;break}case 4:{o.title=Bn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=te().unknownPriceError.title;break}case 2:{o.title=Bn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Bn.t("Increase");break}case 3:{o.title=Bn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}r(dg,"makeAlerts");function mg(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}r(mg,"getRequiredSlippage");import{i18n as Mn}from"@lingui/core";import{Button as Tb,Divider as Ql,MessageBox as kb,WarningIcon as wb}from"@rango-dev/ui";import Eo from"react";import{useNavigate as vb}from"react-router-dom";function fg(t){let{open:e,onClose:o,onConfirm:n,warning:i,confirmationDisabled:a}=t,s=vb();return Eo.createElement(ie,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},Eo.createElement(kb,{type:"warning",title:i.type===3?Mn.t("High slippage"):Mn.t("Low slippage"),description:i.type===3?Mn.t("Caution, your slippage is high. Your trade may be front run."):Mn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:i.minRequiredSlippage}})},Eo.createElement(Ql,{size:18}),Eo.createElement(Ql,{size:32}),Eo.createElement(cg,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},Eo.createElement(wb,{color:"white",size:16}),Mn.t("Swap anyway")),Eo.createElement(Ql,{size:10}),Eo.createElement(Tb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Mn.t("Change Slippage"))))}r(fg,"SlippageWarningModal");import{Button as Eb,MessageBox as bb,WarningIcon as xb}from"@rango-dev/ui";import ra from"react";function gg(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:i}=t;return ra.createElement(ie,{id:"widget-unknown-price-warning-modal",footer:ra.createElement(Eb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ra.createElement(xb,null),fullWidth:!0,disabled:i,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},ra.createElement(bb,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}r(gg,"UnknownPriceWarningModal");function wr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:i,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:m,onChangeSlippage:d}=t,h={confirmationDisabled:a,open:i,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,f=dg(e,o?.type===3||o?.type===4?o:null);f&&!n&&(f.action=null);let y=!!f&&!s,k=r(S=>{if(S==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,v=mg(e,T);d?.(v)}else S==="change-settings"&&m()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,g&&Ue.createElement(Ue.Fragment,null,Ue.createElement(hg,{size:10}),Ue.createElement(Tr,{skipAlerts:s,error:o,fetch:c})),y&&Ue.createElement(rg,null,Ue.createElement(hg,{size:10}),Ue.createElement(Ab,{id:"widget-quote-warning-and-errors-alert",title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Ue.createElement(lg,{onClick:l},Ue.createElement(Wb,{size:12,color:"gray"}))},...(f.action==="change-settings"||f.action==="change-slippage")&&{action:Ue.createElement(Nb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:()=>k(f.action)},f.actionButtonTitle||Ib.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(ug,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(fg,{...h,warning:e}),e.type===1&&Ue.createElement(gg,{...h,warning:e})))}r(wr,"QuoteWarningsAndErrors");import ax from"bignumber.js";import Ta from"react";import{i18n as Ro}from"@lingui/core";import{Alert as jb,CampaignQuoteTag as Xb,Divider as Fn,FullExpandedQuote as Yb,InfoIcon as ec,NumericTooltip as tc,QuoteTag as Zb,StepDetails as Rb,TokenAmount as Jb,Typography as $n,useIsTruncated as oc}from"@rango-dev/ui";import nc from"bignumber.js";import $,{useRef as ya,useState as ex}from"react";import{styled as Hl}from"@rango-dev/ui";var Gl=Hl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),yg=Hl("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),Sg=Hl("div",{width:"100%",display:"flex"});import*as ia from"@radix-ui/react-collapsible";import{Button as Lb,css as aa,darkTheme as De,Image as Cg,styled as je,Typography as Vl}from"@rango-dev/ui";var Pb=300,Tg=je(ia.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),kg=aa({padding:"$10 $15"}),wg=je(Lb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${De} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${De} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${De} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),vg=je("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",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${De} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}}}}]}),Eg=aa({width:"100%",padding:"$15 $15 $10 $15"}),bg=aa({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Dn=aa({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),xg=je(ia.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:{[`& ${Cg}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Cg}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Ig=je("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"}}}}),Ag=je(Ri,{width:"100%",background:"inherit"}),Kl=je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Pb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),gH=je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Ng=je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${De} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Wg=je("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),jl=je(Vl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Xl=je(Vl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Yl=je("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"}}}}),Lg=je("div",{display:"flex"}),sa=je("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${De} &`]:{borderTopColor:"$neutral800"}}),Pg=je(Vl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as Ut}from"@lingui/core";import{ChevronDownIcon as Bb,CloseIcon as Mb,Divider as pa,IconButton as Db,NumericTooltip as Fb,QuoteCost as $b,Typography as Wt}from"@rango-dev/ui";import Ob from"bignumber.js";import J,{useState as Dg}from"react";import{css as _b,styled as la}from"@rango-dev/ui";var ca=la("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Zl=la("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),_g=la("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Bg=la("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Mg=_b({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Ub=r(t=>t.fee.isZero()?null:J.createElement(ca,null,J.createElement(Wt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(Wt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Rl(t){let[e,o]=Dg(!1),[n,i]=Dg(!1),{steps:a,quote:s,time:c,feeWarning:l,timeWarning:p,showModalFee:u,fullExpandedMode:m=!1}=t,d=s?.swaps??[],h=m?Fo():W(),g=cm(d),f=Object.values(g.payable).reduce((k,S)=>k.plus(Ys(S)),new Ob(0)),y=M(f,2,2);return J.createElement(J.Fragment,null,J.createElement($b,{onClickFee:u?k=>{k.stopPropagation(),!e&&s&&oe({type:"routeFeeViewed",payload:{routeId:s.requestId}}),o(!e)}:void 0,fee:y,feeWarning:l,timeWarning:p,time:c,steps:a,tooltipGas:u?Ut.t("View more info"):void 0,tooltipContainer:h}),J.createElement(ie,{id:"widget-quote-cost-explanation-modal",container:h,open:e,anchor:m?"center":"bottom",styles:{container:{maxWidth:m?"484px":"unset"}},header:J.createElement(Bg,{style:{textAlign:m?"left":"center"}},J.createElement(Wt,{variant:"title",size:"medium"},Ut.t("Gas & Fee Explanation")),J.createElement(Db,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement(Mb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(_g,null,J.createElement(Wt,{variant:"title",size:"small"},Ut.t("Details")),J.createElement(pa,{size:10}),Object.entries(g.payable).flatMap(([k,S])=>S.map((T,v)=>{let w=`payable-fee-${v}`,A=Xs(T);return J.createElement(ca,{key:w},J.createElement(Wt,{variant:"label",size:"medium",color:"neutral600"},Hs(k,Ut.t)),J.createElement(Fb,{content:T.amount,container:h},J.createElement(Wt,{variant:"label",size:"medium"},M(T.amount,2,2),T.asset.symbol," ($",M(A,4,4),")")))})),J.createElement(ca,{className:"total_payable_fee"},J.createElement(Wt,{variant:"label",size:"medium"},Ut.t("Total Payable Fee")),J.createElement(Wt,{variant:"label",size:"medium"},"$",M(f,4,4))),J.createElement(Zl,null),!!Object.keys(g.nonePayable).length&&J.createElement(ta,{triggerAnchor:"bottom",onClickTrigger:()=>i(k=>!k),trigger:J.createElement("div",{className:Mg()},J.createElement(Wt,{size:"small",variant:"body",color:"neutral700"},n?Ut.t("Hide non-payable fees"):Ut.t("Show non-payable fees")),J.createElement(pa,{size:4,direction:"horizontal"}),J.createElement(Ji,{orientation:n?"up":"down"},J.createElement(Bb,{size:12,color:"gray"}))),open:n},J.createElement(Wt,{size:"small",variant:"title"},Ut.t("Description")),J.createElement(pa,{size:4}),J.createElement(Wt,{size:"small",variant:"body",color:"neutral700"},Ut.t(`The following fees are considered in the transaction output and
3
+ you won\u2019t need to pay extra gas for them.`)),J.createElement(pa,{size:10}),Object.entries(g.nonePayable).map(([k,S],T)=>{let v=Ys(S),w=Hs(k,Ut.t),A=`non-payable-fee-${T}`;return J.createElement(Ub,{key:A,fee:v,label:w})}),J.createElement(Zl,null)))))}r(Rl,"QuoteCostDetails");import{i18n as Og}from"@lingui/core";import{TokenAmount as Ug}from"@rango-dev/ui";import ua from"react";import{css as zb,styled as qb}from"@rango-dev/ui";var Fg=qb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),$g=zb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function vr(t){let{from:e,to:o,percentageChange:n,warningLevel:i}=t;return ua.createElement(Fg,null,ua.createElement(Ug,{direction:"horizontal",label:Og.t("Swap input"),id:"widget-quote-summary-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}}),ua.createElement("div",{className:$g()}),ua.createElement(Ug,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:Og.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:i}))}r(vr,"QuoteSummary");import{i18n as Gg}from"@lingui/core";import{ChevronDownIcon as Gb,ChevronRightIcon as Vb,Divider as Jl,Image as Kb,Tooltip as ha,Typography as ma}from"@rango-dev/ui";import Q from"react";import{useLayoutEffect as Qb,useState as Er}from"react";var zg=480,qg=768,Qg=1024,Hg=1200,Hb=r(()=>{let[t,e]=Er(!1),[o,n]=Er(!1),[i,a]=Er(!1),[s,c]=Er(!1),[l,p]=Er(!1),u=r(()=>{e(window.innerWidth<=zg),n(window.innerWidth>zg&&window.innerWidth<=qg),a(window.innerWidth>qg&&window.innerWidth<=Qg),c(window.innerWidth>Qg&&window.innerWidth<=Hg),p(window.innerWidth>Hg)},"handleResize");return Qb(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:i,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),da=Hb;var fa=4,ga=6,br=r(t=>{let{content:e,src:o,className:n,open:i,state:a,container:s}=t,c=s||W();return Q.createElement(ha,{container:c,side:"bottom",sideOffset:4,open:i,content:e},Q.createElement(Ig,{className:n,state:a},Q.createElement(Kb,{src:o,size:16})))},"ImageComponent");function Vg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:i,expanded:a,type:s,container:c}=t,l=c||W(),p=i.length,u=Jd(i),{isTablet:m,isMobile:d}=da();return Q.createElement(xg,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},Q.createElement("div",{className:Dn()},Q.createElement(ma,{variant:"body",size:"xsmall"},Gg.t("Via:")),Q.createElement(Jl,{direction:"horizontal",size:4}),i.map((h,g)=>{let f=`item-${g}`,y=Q.createElement(Kl,null,Q.createElement(Vb,{size:12,color:"black"}));return d||m?Q.createElement(Q.Fragment,{key:f},Q.createElement(br,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,y)):Q.createElement(Q.Fragment,{key:f},p<=fa||p>fa&&g<fa-1?Q.createElement(Q.Fragment,null,Q.createElement(br,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,y)):g===fa-1&&Q.createElement(ha,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:Dn()},y,i.map((k,S)=>{let T=`image-${S}`;return S>=g&&Q.createElement(Q.Fragment,{key:T},Q.createElement(br,{content:k.swapper.displayName,src:k.swapper.image??"",state:k.state,open:!1}),S!==p-1&&Q.createElement(Q.Fragment,null,y))}))},Q.createElement(Yl,{state:i.find((k,S)=>S>=g&&(k.state==="error"||k.state==="warning"))?.state},Q.createElement(ma,{size:"xsmall",variant:"body"},"+",p-g))))})),Q.createElement("div",{className:Dn()},Q.createElement("div",{className:"blockchains_section"},Q.createElement("div",{className:Dn()},Q.createElement(ma,{variant:"body",size:"xsmall"},Gg.t("Chains:")),Q.createElement(Jl,{direction:"horizontal",size:4}),u.map((h,g)=>Q.createElement(Q.Fragment,{key:h.displayName},u.length<=ga||u.length>ga&&g<ga-1?Q.createElement(ha,{container:l,side:"bottom",content:h.displayName,sideOffset:4},Q.createElement(br,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ga-1&&Q.createElement(ha,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:Dn()},u.map((f,y)=>y>=g&&Q.createElement(br,{key:f.displayName,content:"",src:f.image??"",open:!1,className:y>g?"blockchainImage":"",container:c})))},Q.createElement(Yl,{className:"blockchainImage"},Q.createElement(ma,{size:"xsmall",variant:"body"},"+",u.length-g))))),Q.createElement(Jl,{direction:"horizontal",size:32}))),Q.createElement(Kl,{orientation:a?"up":"down"},Q.createElement(Gb,{size:12,color:"black"}))))}r(Vg,"QuoteTrigger");function rc(t){let{quote:e,input:o,output:n,error:i,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:d}=t,h=C().blockchains(),{findToken:g}=C(),f=C().swappers(),{customSlippage:y,slippage:k}=C(),S=y||k,[T,v]=ex(t.expanded),w=ya(null),A=M(n.value,6,6),I=n.usdValue?M(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:b}}=C(),x=Jt(o.usdValue,n.usdValue??null),E=M(x,2,2),P=eo(x??0),N=r((G,R)=>G.map((U,de)=>{let He,ot=i?.type===3&&i.swap.swapperId===U.swapperId,mo=i?.type===4&&!!i.recommendedSlippages?.[de],Kn=a?.type===2&&!!a.recommendedSlippages?.[de],Po=ot||mo,oi=Kn;Po?He="error":oi&&(He="warning");let ln=Po?Ro.t("Slippage Error"):Ro.t("Slippage Warning");return ot&&(ln=Ro.t("Bridge Limit Error")),{swapper:{displayName:Yn(U.swapperId,f)??"",image:U.swapperLogo},from:{token:{displayName:U.from.symbol,image:U.from.logo},chain:{displayName:Tt(U.from.blockchain,h)??"",image:U.from.blockchainLogo},price:{value:de===0&&!R?M(o.value,6,6):M(U.fromAmount,6,6),usdValue:M((U.from.usdPrice??0)*parseFloat(U.fromAmount),4,4),realValue:de===0?o.value:U.fromAmount,realUsdValue:new nc(U.from.usdPrice??0).multipliedBy(U.fromAmount).toString()}},to:{token:{displayName:U.to.symbol,image:U.to.logo},chain:{displayName:Tt(U.to.blockchain,h)||"",image:U.to.blockchainLogo},price:{value:M(U.toAmount,6,6),usdValue:M((U.to.usdPrice??0)*parseFloat(U.toAmount),4,4),realValue:U.toAmount,realUsdValue:new nc(U.to.usdPrice??0).multipliedBy(U.toAmount).toString()}},state:He,alerts:Po||oi?$.createElement(yg,{dense:m},$.createElement(jb,{variant:"alarm",type:Po?"error":"warning",title:ln,id:"widget-quote-footer-step-alarm-alert",footer:$.createElement(Sg,null,ot&&$.createElement("div",null,$.createElement($n,{size:"xsmall",variant:"body",color:"neutral900"},i.fromAmountRangeError),$.createElement(Fn,{direction:"vertical",size:2}),$.createElement($n,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},Ro.t({id:"Yours: {amount} {symbol}",values:{amount:M(U.fromAmount,6,6),symbol:U?.from.symbol}}))),(mo||Kn)&&!ot&&$.createElement("div",null,$.createElement($n,{size:"xsmall",variant:"body",color:"neutral900"},Ro.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...i?.type===4&&{minRequiredSlippage:i.recommendedSlippages?.[de]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[de]}}})),$.createElement(Fn,{direction:"vertical",size:2}),$.createElement($n,{size:"xsmall",variant:"body",color:"neutral900"},Ro.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Jn(U.estimatedTimeInSeconds),fee:M(js(U,g),2,2),internalSwaps:U.internalSwaps?N(U.internalSwaps):void 0}}),"getQuoteSteps"),O=N(e?.swaps??[]),H=O.length,j=d||W(),ee=tm(t.quote.tags||[]),L=!!u,Z=mi(e?.swaps),Y=Jn(Z),ue=Di(e?.swaps??[],g),Ee=M(ue,2,2),Kt=ue.gte(new nc(Gd)),be=Z/Kd>=Vd,Qe=ya(null),Xe=oc(o.value,Qe),St=ya(null),ct=oc(n.value,St),_=ya(null),V=oc(I,_),q=O[H-1],X=O[0];return!X||!q?null:m?$.createElement(Yb,{selected:c,fee:Ee,time:Y,tooltipContainer:Fo(),steps:O,tags:ee,campaignTag:b?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:$.createElement(Rl,{quote:e,fullExpandedMode:!0,time:Y,feeWarning:Kt,timeWarning:be,showModalFee:p,steps:H}),percentageChange:E,warningLevel:P,outputPrice:{value:A,usdValue:I,realValue:n.value,realUsdValue:n.usdValue}}):$.createElement(vg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:Eg()},!l&&ee.length?$.createElement($.Fragment,null,$.createElement(Lg,null,ee.map((G,R)=>{let U=`${G.value}_${R}`;return $.createElement($.Fragment,{key:U},G.value=="CAMPAIGN"&&b?.campaignTag?$.createElement(Xb,{routeTag:G,...b.campaignTag}):$.createElement(Zb,{label:G.label,value:G.value}),$.createElement(Fn,{size:4,direction:"horizontal"}))})),$.createElement(sa,null),!L&&$.createElement(Fn,{size:4})):null,$.createElement("div",{id:"portal-root",className:bg()},$.createElement(Rl,{quote:e,time:Y,feeWarning:Kt,timeWarning:be,showModalFee:p,steps:H}),L&&$.createElement(wg,{onClick:G=>{G.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement($n,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Ro.t("See All Routes")))),s==="basic"&&$.createElement(Wg,null,$.createElement(Xl,{ref:Qe,size:"small",variant:"body"},o.value),Xe&&$.createElement(tc,{content:o.value,container:j,open:o.value?void 0:!1},$.createElement(ec,{size:12,color:"gray"})),$.createElement(jl,{size:"small",variant:"body"},O[0]?.from.token.displayName),$.createElement($n,{size:"small",variant:"body"},"="),$.createElement(Xl,{ref:St,size:"small",variant:"body"},n.value),ct&&$.createElement(tc,{content:n.value,container:j,open:n.value?void 0:!1},$.createElement(ec,{size:12,color:"gray"})),$.createElement(jl,{size:"small",variant:"body"},q?.to.token.displayName),$.createElement(Fn,{size:2,direction:"horizontal"}),$.createElement(Pg,{ref:_,color:"$neutral600",size:"xsmall",variant:"body"},`($${I})`),V&&$.createElement(tc,{content:n.usdValue,container:j},$.createElement(ec,{size:12,color:"gray"}))),s==="list-item"&&$.createElement(Jb,{id:"widget-quote-token-amount-container",tooltipContainer:j,type:"output",direction:"vertical",price:{value:A,usdValue:I,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:q.to.token.displayName,image:q.to.token.image},chain:{image:q.to.chain.image},percentageChange:E,warningLevel:P}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(vr,{from:X.from,to:q.to,percentageChange:E,warningLevel:P}),$.createElement(Fn,{size:4}))),$.createElement(Tg,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},$.createElement(Vg,{type:s,quoteRef:w,selected:c,setExpanded:v,container:j,expanded:T,steps:O}),$.createElement(Ag,{open:T},$.createElement(Ng,null),$.createElement("div",{className:kg()},O.map((G,R)=>{let U=`item-${R}`;return $.createElement(Rb,{type:"quote-details",className:"widget-quote-step-details-container",key:U,tooltipContainer:j,step:G,hasSeparator:R!==O.length-1,state:G.state})})))))}r(rc,"Quote");import{Divider as rx,Skeleton as ix}from"@rango-dev/ui";import io from"react";import{darkTheme as tx,styled as Sa}from"@rango-dev/ui";var Kg=Sa("div",{$$color:"$colors$neutral100",[`.${tx} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),jg=Sa("div",{paddingTop:"$2"}),Xg=Sa("div",{paddingLeft:"$8"}),Yg=Sa("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as ah,Divider as Lt,Skeleton as ft}from"@rango-dev/ui";import K from"react";import{css as ox,styled as ro}from"@rango-dev/ui";var ic=ro("div",{display:"flex"}),Zg=ro("div",{padding:"$10 $0 $20"}),Rg=ro("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Jg=ro("div",{display:"flex",justifyContent:"start",alignItems:"center"}),eh=ro("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),th=ro("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),oh=ro("div",{width:"65%",display:"flex",justifyContent:"start"}),nh=ro("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),rh=ro("div",{padding:"$15 $0 $15 $0"}),ih=ox({display:"flex",justifyContent:"space-between",alignItems:"center"});function xr(t){let{type:e,tagHidden:o=!0}=t,n=K.createElement(eh,null,K.createElement(oh,null,K.createElement(ah,{loading:!0,size:"medium"}),K.createElement(Lt,{size:8,direction:"horizontal"}),K.createElement(nh,null,K.createElement(ft,{height:10,width:60,variant:"rounded"}),K.createElement(Lt,{size:4}),K.createElement(ft,{height:15,variant:"rounded"}))),K.createElement(ft,{height:12,width:64,variant:"rounded"})),i=e==="basic"&&!o;return K.createElement("div",null,!o&&K.createElement(K.Fragment,null,K.createElement(ic,null,K.createElement(ft,{width:65,height:20,variant:"rounded"}),K.createElement(Lt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:65,height:20,variant:"rounded"}),K.createElement(Lt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:65,height:20,variant:"rounded"})),K.createElement(sa,null),!i&&K.createElement(Lt,{size:4})),K.createElement("div",{className:ih()},K.createElement(ic,null,K.createElement(ft,{width:60,height:10,variant:"rounded"}),K.createElement(Lt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:60,height:10,variant:"rounded"}),K.createElement(Lt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:60,height:10,variant:"rounded"})),i&&K.createElement(ft,{width:85,height:24,variant:"rounded"})),e==="basic"&&K.createElement(Zg,null,K.createElement(ft,{height:15,width:148,variant:"rounded"})),e==="list-item"&&K.createElement(Rg,null,K.createElement(Jg,null,K.createElement(ah,{loading:!0,size:"medium"}),K.createElement(Lt,{direction:"horizontal",size:4}),K.createElement(ft,{height:15,width:150,variant:"rounded"})),K.createElement(Lt,{size:10}),K.createElement(ft,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&K.createElement(K.Fragment,null,K.createElement(Lt,{size:4}),K.createElement(rh,null,n,K.createElement(th,null),n),K.createElement(Lt,{size:12})))}r(xr,"QuoteSummarySkeleton");import{ChainToken as uh,Divider as sc,NextIcon as nx,Skeleton as Ca}from"@rango-dev/ui";import _e from"react";import{styled as Ir}from"@rango-dev/ui";var sh=Ir("div",{display:"flex",alignItems:"start"}),lh=Ir("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ac=Ir("div",{display:"flex",alignItems:"center",flexGrow:1}),ch=Ir("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),ph=Ir("div",{display:"flex",alignItems:"center"});function zt(t){let{separator:e=!0}=t;return _e.createElement(_e.Fragment,null,_e.createElement(ph,null,_e.createElement(Ca,{height:22,width:22,variant:"circular"}),_e.createElement(sc,{direction:"horizontal",size:8}),_e.createElement(Ca,{height:15,width:148,variant:"rounded"})),_e.createElement(sh,null,_e.createElement(Yg,{hideSeparator:!e}),_e.createElement(lh,{extraSpace:e},_e.createElement(ac,null,_e.createElement(uh,{size:"small",loading:!0}),_e.createElement(sc,{direction:"horizontal",size:8}),_e.createElement(Ca,{height:12,variant:"rounded"})),_e.createElement(ch,null,_e.createElement(nx,{color:"gray",size:16})),_e.createElement(ac,null,_e.createElement(uh,{size:"small",loading:!0}),_e.createElement(sc,{direction:"horizontal",size:8}),_e.createElement(Ca,{height:12,variant:"rounded"})))))}r(zt,"StepSkeleton");function Ar(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return io.createElement(Kg,{expanded:o,rounded:e!=="basic"},io.createElement(xr,{type:e,tagHidden:n}),io.createElement(jg,null,io.createElement(ix,{height:15,variant:"rounded"})),o&&io.createElement(Xg,null,io.createElement(rx,{size:24}),io.createElement(zt,null),io.createElement(zt,null),io.createElement(zt,{separator:!1})))}r(Ar,"QuoteSkeleton");function Jo(t){let{quote:e,type:o,loading:n,error:i,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:m,onClickAllRoutes:d,fullExpandedMode:h=!1,container:g}=t,{inputAmount:f,inputUsdValue:y}=z()(),k=e?.outputAmount?new ax(e?.outputAmount):null,S=e?it(e):null,v=!(i&&(i.type===0||i.type===1))&&e&&!n;return n?Ta.createElement(Gl,null,Ta.createElement(Ar,{tagHidden:c,type:o,expanded:s})):v?Ta.createElement(Gl,{onClick:()=>l?.(e),id:m},Ta.createElement(rc,{quote:e,error:i,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:h,input:{value:f,usdValue:y?.toString()??""},output:{value:k?.toString()??"",usdValue:S?.toString()??""}})):null}r(Jo,"QuoteInfo");import{warn as px}from"@rango-dev/logging-core";import{calculatePendingSwap as ux}from"@rango-dev/queue-manager-rango-preset";import{useEffect as dx}from"react";import{useRef as sx,useState as lx}from"react";var cx=2e3;function ka({request:t}){let[e,o]=lx(!1),n=sx(null),i=r(()=>n.current?.abort(),"cancelFetch"),a=r(async c=>(await new Promise(l=>setTimeout(l,cx)),await s(c,!1)),"retryFetch"),s=r(async(c,l=!1)=>{i(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:i}}r(ka,"useFetch");function dh(){let{fetch:t,loading:e,cancelFetch:o}=ka({request:async(n,i)=>await dt().confirmRoute(n,i)});return{fetch:t,loading:e,cancelFetch:o}}r(dh,"useFetchConfirmQuote");function wa(t){if(!t.swaps)throw new Error(te().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=lc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}r(wa,"throwErrorIfResponseIsNotValid");function lc(t){if(am(t)){let{swap:n,fromAmountRangeError:i,recommendation:a}=sm(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:i}}:null}let o=pm(t);if(o){let n=Fi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}r(lc,"getQuoteError");function mh(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:i,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=xn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=mm(e,i,n.blockchains);return p.length===0||(c.balance={messages:p}),c}r(mh,"generateWarnings");function va(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}r(va,"handleQuoteErrors");function cc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:i,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=C(),u=C().getDisabledLiquiditySources(),m=C().blockchains(),d=C().tokens(),{findToken:h}=C(),{swapMode:g}=rt(),f=p||l,{fetch:y,cancelFetch:k,loading:S}=dh();return dx(()=>k,[]),{loading:S,fetch:r(async v=>{let w=v.selectedWallets,A=v?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=w.reduce((x,E)=>(x[E.chain]=E.address,x),{}),b={requestId:a?.requestId||"",selectedWallets:I,destination:A||void 0};try{return await y(b,!0).then(x=>{let{result:E}=x;if(!E)throw new Error(x.error??"Error fetching updated quote");wa({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let P={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};i(P);let N={slippage:f.toString(),disabledSwappersGroups:u},O=mh({previousQuote:a??void 0,currentQuote:P,meta:{blockchains:m},selectedWallets:w,userSlippage:f,inputUsdValue:n,findToken:h});c();let H=!!O.balance,j=ux({inputAmount:o.toString(),bestRoute:E,wallets:dm(w),settings:N,validateBalanceOrFee:!H,meta:{blockchains:m,tokens:d},swapMode:g});return{quote:P,swap:j,error:null,warnings:O}})}catch(x){let E=va(x);return E.type!==2&&px(new Error("confirm swap error"),{tags:{...E,type:Ye[E.type],initialQuote:a,requestBody:b}}),{swap:null,error:E,warnings:null}}},"fetch"),cancelFetch:k}}r(cc,"useConfirmSwap");function fh(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}r(fh,"toNumberOrNull");function On(t){let e=t.swaps[0],o=t.swaps[t.swaps.length-1],n=Ho(t),i=it(t);return{routeId:t.requestId,sourceChain:e?.from.blockchain??"",destinationChain:o?.to.blockchain??"",sourceTokenSymbol:e?.from.symbol??"",sourceTokenAddress:e?.from.address??null,destinationTokenSymbol:o?.to.symbol??"",destinationTokenAddress:o?.to.address??null,sourceTokenAmount:fh(t.requestAmount),destinationTokenAmount:fh(t.outputAmount),inputAmountUsd:n?n.toNumber():null,outputAmountUsd:i?i.toNumber():null}}r(On,"buildSwapEstimatePayload");var wx=hx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${gh}`]:{width:"$48",height:"$48"}}),vx=dc({flexGrow:1,paddingRight:"$10"}),Ex=dc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),bx=dc({display:"flex",justifyContent:"space-between",alignItems:"center"});function hh(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:i,quoteWarningsConfirmed:a}=z()(),s=kx(),[c,l]=Nr(""),p=!n,[u,m]=Nr(!1),[d,h]=Nr(!1),{isActiveTab:g}=re(),f=C().getDisabledLiquiditySources(),y=Tx(f),{manager:k}=mx(),{fetch:S,loading:T,cancelFetch:v}=cc(),[w,A]=Nr({swap:null,error:null,warnings:null}),[I,b]=Nr(!1),x=r(async({selectedWallets:L,customDestination:Z})=>{let Y=await S?.({selectedWallets:L,customDestination:Z});return A(Y),Y},"onConfirmSwap"),E=r(async()=>{if(w.swap&&n)try{await k?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let L=`../${F.swaps}/${w.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),P=r(async()=>{h(!0),await E(),h(!1)},"onConfirm"),N=r(async()=>{w.warnings?.quote&&Rd(w.warnings.quote)&&!a?b(!0):(t&&oe({type:"swapStarted",payload:{...On(t),stepCount:t.swaps.length}}),await P())},"onStartConfirmSwap"),O=r(async()=>{A({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:i}).then(L=>{A(L)}).catch(L=>console.error(L))},"onRefresh");Ea(()=>{!!y.current.length&&!f.length&&O(),y.current=f},[f.length]),Ea(()=>{p&&v()},[p]),Ea(()=>{p&&m(p)},[p]),Ea(()=>{p||S({selectedWallets:o,customDestination:i}).then(L=>A(L)).catch(L=>console.error(L))},[]),Cx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=w.warnings?.quote??null,j=w.error,ee=[];if(c&&ee.push(Fe.createElement(fx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),H||j){let L=`../${F.settings}`;ee.push(Fe.createElement(wr,{warning:H,error:j,couldChangeSettings:!1,refetchQuote:O,skipAlerts:j?.type===4||H?.type===2,showWarningModal:I,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await E()},onChangeSettings:()=>s(L)}))}return Fe.createElement(se,{header:{title:pc.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:Fe.createElement(wx,null,Fe.createElement("div",{className:vx()},Fe.createElement(gx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||d,disabled:!!w.error||!g,onClick:N},pc.t("Start Swap"))),Fe.createElement(gh,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||d,disabled:!g,onClick:m.bind(null,!0)},Fe.createElement(Sx,{size:24})))},u&&Fe.createElement(Yf,{open:u,onClose:()=>m(!1),onCancel:v,loading:T,onCheckBalance:x}),Fe.createElement(ce,null,Fe.createElement("div",{className:bx()},Fe.createElement(yx,{variant:"title",size:"small"},pc.t("You get")),Fe.createElement("div",{className:Ex()},Fe.createElement(Gi,{onClick:!T&&!u&&!I?O:void 0}))),Fe.createElement(uc,{size:"12"}),Qm(ee.map((L,Z)=>({element:L,key:`alert-${Z}`})),Fe.createElement(uc,{size:10})),ee.length>0?Fe.createElement(uc,{size:10}):null,Fe.createElement(Jo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:w.error,loading:T,warning:w.warnings?.quote??null})))}r(hh,"ConfirmSwapPage");import{i18n as so}from"@lingui/core";import{Button as Ec,CustomTokensZeroStateDarkIcon as Gx,CustomTokensZeroStateIcon as Vx,DeleteIcon as Kx,Divider as Br,IconButton as jx,MessageBox as Xx,NotFound as Yx,styled as xc}from"@rango-dev/ui";import Se,{useState as bc}from"react";import{useNavigate as Zx}from"react-router-dom";import{CloseIcon as xx,IconButton as Ix,SearchIcon as Ax,TextField as Nx}from"@rango-dev/ui";import Un from"react";import{styled as yh}from"@rango-dev/ui";var Sh=yh("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Ch=yh("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function Pt(t){let{variant:e,fullWidth:o,color:n,size:i,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...m}=t,d=s.length?Un.createElement(Ix,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Un.createElement(xx,{color:"gray",size:10})):null;return p&&(d=p),Un.createElement(Ch,null,Un.createElement(Nx,{prefix:Un.createElement(Sh,null,Un.createElement(Ax,{color:"black"})),id:u,suffix:d,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:i,value:s,onChange:a,...m}))}r(Pt,"SearchInput");import{i18n as vc}from"@lingui/core";import{Button as _x,CustomTokenWarning as Bx,darkTheme as Lh,Divider as ao,ExternalLinkIcon as Mx,Image as Dx,ListItem as Fx,NotFound as $x,PinIcon as Ox,Skeleton as en,Typography as Pr,VirtualizedList as Ux}from"@rango-dev/ui";import B,{useState as zx}from"react";import{useTranslation as qx}from"react-i18next";import{Divider as Nh,ListItem as Px,Skeleton as Lr}from"@rango-dev/ui";import _t from"react";import{css as zn,darkTheme as mc,ImageContainer as Wx,ListItemButton as Lx,styled as st,Typography as Th}from"@rango-dev/ui";var fc=zn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),gc=zn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),hc=zn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),yc=zn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${mc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Sc=zn({}),Cc=zn(),kh=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Tc=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ba=st("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${gc}`]:{[`& .${yc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Sc}`]:{bottom:"-15px"},[`& .${fc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${hc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),wh=st(Lx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),kc=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),wc=st(Th,{}),vh=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Cc}`]:{$$color:"$colors$neutral600",[`.${mc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wr=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),k2=st("div",{display:"flex",alignItems:"center"}),Eh=st("div",{position:"relative",[`& ${Wx}`]:{borderRadius:"$xm",overflow:"hidden"}}),bh=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),xh=st(Th,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Ih=st("a",{"& svg:hover":{color:"$colors$info"}}),Ah=st("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${mc} &`]:{color:"$foreground"}}}});function Wh(t){return _t.createElement(ba,null,Array.from(Array(t.size),(e,o)=>_t.createElement(Px,{key:o,hasDivider:!0,start:_t.createElement(Lr,{variant:"circular",width:35,height:35}),end:_t.createElement(Wr,null,_t.createElement(Lr,{variant:"text",size:"large",width:70}),_t.createElement(Nh,{size:4}),_t.createElement(Lr,{variant:"text",size:"medium",width:50})),title:_t.createElement("div",null,_t.createElement(Lr,{variant:"text",size:"large",width:90}),_t.createElement(Nh,{size:4}),_t.createElement(Lr,{variant:"text",size:"medium",width:90}))})))}r(Wh,"LoadingTokenList");var Qx=20,Hx=r(t=>{let{address:e,name:o,url:n,token:i,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return B.createElement("div",{className:gc()},o?B.createElement("div",{className:fc()},o):B.createElement(Tc,{className:hc()},B.createElement(Pr,{variant:"title",size:"xmedium"},i.symbol),B.createElement(ao,{direction:"horizontal",size:4}),B.createElement(kc,{css:a},B.createElement(wc,{variant:"body",size:"xsmall",css:s},i.blockchain))),!!e&&B.createElement("div",{className:`${yc()} ${!o&&Sc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",B.createElement(ao,{size:4,direction:"horizontal"}),B.createElement(Ih,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},B.createElement(Mx,{size:12}))))},"renderDesc");function _r(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:i,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=C().fetchStatus,u=C().blockchains(),{getBalanceFor:m,fetchingWallets:d}=C(),{isTokenPinned:h}=C(),{setFromToken:g,setToToken:f}=z()(),{t:y}=qx(),k=Ve(),[S,T]=zx(null),v=r(()=>{c==="source"?g({token:S,meta:{blockchains:u}}):f({token:S,meta:{blockchains:u}})},"updateToken"),w=r(()=>{v(),k()},"handleImportToken"),A=r(x=>{if(x.customToken){let{customToken:P,...N}=x;return B.createElement(_x,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:r(H=>{H.stopPropagation(),T({...N,warning:!0})},"handleClick")},B.createElement(Pr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let E=yi(m(x));return s?s(x):d?B.createElement(Wr,null,B.createElement(en,{variant:"text",size:"large",width:70}),B.createElement(ao,{size:4}),B.createElement(en,{variant:"text",size:"medium",width:50})):E&&B.createElement(vh,null,B.createElement(xh,{variant:"title",size:"small"},E.amount),B.createElement("div",null),E.usdValue&&B.createElement(Pr,{variant:"body",className:Cc(),size:"xsmall"},`$${E.usdValue}`))},"endRenderer"),I=r(()=>B.createElement(Ux,{style:{flexGrow:1,minHeight:0},itemContent:x=>{let E=e[x];if(E==="skeleton")return B.createElement(Fx,{hasDivider:!0,start:B.createElement(en,{variant:"circular",width:35,height:35}),end:B.createElement(Wr,null,B.createElement(en,{variant:"text",size:"large",width:70}),B.createElement(ao,{size:4}),B.createElement(en,{variant:"text",size:"medium",width:50})),title:B.createElement("div",null,B.createElement(en,{variant:"text",size:"large",width:90}),B.createElement(ao,{size:4}),B.createElement(en,{variant:"text",size:"medium",width:90}))});let P=u.find(Z=>Z.name===E?.blockchain);if(!P||!E)return null;let N=E.address,O=ul(P.color,"main"),H={$$color:O.main150,[`.${Lh} &`]:{$$color:O.main750},backgroundColor:"$$color"},j={$$color:O.main750,[`.${Lh} &`]:{$$color:O.main150},color:"$$color"},ee=r(()=>{typeof E!="string"&&!E.customToken&&n?.(E)},"handleClick"),L=N?si({contractAddress:N,blockchainMeta:P}):void 0;return B.createElement(Ah,null,B.createElement(wh,{"tab-index":x,key:`${E.symbol}${N}`,id:`${E.symbol}${N}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:E?.customToken,onClick:ee,start:B.createElement(Eh,null,B.createElement(Dx,{src:E.image===""?ci:E.image,size:30}),t.type!=="custom-token"&&E&&h(E,t.type)&&B.createElement(bh,null,B.createElement(Ox,{size:12,color:"gray"}))),title:E.name||!E.name&&!N?B.createElement(Tc,null,B.createElement(Pr,{variant:"title",size:"xmedium"},E.symbol),B.createElement(ao,{direction:"horizontal",size:4}),B.createElement(kc,{css:H},B.createElement(wc,{variant:"body",size:"xsmall",css:j},E.blockchain)),l&&E.warning&&B.createElement(B.Fragment,null,B.createElement(ao,{direction:"horizontal",size:4}),B.createElement(Bx,{container:W()}))):void 0,description:typeof E!="string"&&P.info&&N&&L?Hx({address:N,token:E,customCssForTag:H,customCssForTagTitle:j,name:E.name,url:L}):E.name||void 0,end:A(E)}))},totalCount:e.length,key:`${i}-${o}`}),"renderList"),b=S?Bo(S?.blockchain,u):null;return B.createElement(B.Fragment,null,a&&B.createElement(B.Fragment,null,B.createElement(Pr,{variant:"label",size:"large"},vc.t("Select Token")),B.createElement(ao,{size:4})),B.createElement(kh,null,B.createElement(ao,{size:4}),p==="loading"&&B.createElement(Wh,{size:Qx}),p==="success"&&(e.length?B.createElement(B.Fragment,null,B.createElement(Sr,{token:S,address:S?.address??"",blockchain:b??void 0,onImport:w,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),B.createElement(ba,{as:"ul"},I())):!!o&&B.createElement($x,{title:vc.t("No results found"),description:vc.t("Try using different keywords")}))))}r(_r,"TokenList");var Rx=xc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Jx=xc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),eI=xc(jx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Ph(){let[t,e]=bc(""),{deleteCustomToken:o}=C(),n=C().customTokens(),{fromToken:i,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=So({}),p=Zx(),[u,m]=bc(!1),[d,h]=bc(),g=r(S=>{let T=S.target.value;e(T)},"handleSearch"),f=l==="dark",y=n.filter(S=>pt(S.symbol,t)||pt(S.address||"",t)||pt(S.name||"",t)),k=r(()=>{if(d){let S=a?kt(a):null,T=i?kt(i):null,v=kt(d);S===v?c({token:null}):T===v&&s({token:null}),o(d)}m(!1)},"handleDeleteCustomToken");return Se.createElement(se,{header:{title:so.t("Custom Tokens")}},Se.createElement(ce,null,Se.createElement(Rx,null,n.length?Se.createElement(Se.Fragment,null,Se.createElement(Pt,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:so.t("Search Token"),onChange:g}),Se.createElement(Br,{size:16}),Se.createElement(_r,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>Se.createElement(eI,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),h(S)}},Se.createElement(Kx,{size:12,color:"gray"}))})):Se.createElement(Jx,null,Se.createElement(Yx,{icon:f?Se.createElement(Gx,{size:200}):Se.createElement(Vx,{size:200}),title:so.t("No custom tokens"),description:so.t("press the button to add your custom token")})),Se.createElement(Br,{size:20}),Se.createElement(Ec,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},so.t("Add Custom Token"))),Se.createElement(ie,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>m(!1),container:W()},Se.createElement(Xx,{title:so.t("Delete Custom Token"),type:"error",description:so.t("Are you sure you want to Delete this Token?")},Se.createElement(Br,{size:40}),Se.createElement(Br,{size:10}),Se.createElement(Ec,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:k},so.t("Yes, Delete it")),Se.createElement(Br,{size:12}),Se.createElement(Ec,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},so.t("No, Continue"))))))}r(Ph,"CustomTokensPage");import{i18n as $e}from"@lingui/core";import{useManager as TI}from"@rango-dev/queue-manager-react";import{Button as _c,darkTheme as kI,Divider as bo,MessageBox as wI,NotFound as vI,styled as Bc,Tabs as EI,Typography as Aa}from"@rango-dev/ui";import{TransactionStatus as Fr}from"rango-types";import ne,{useMemo as Zh,useState as $r}from"react";import{useNavigate as bI}from"react-router-dom";import{FilterIcon as sI,Popover as lI}from"@rango-dev/ui";import tn from"react";import{css as tI,darkTheme as xa,IconButton as oI,styled as Mr}from"@rango-dev/ui";var Ic=Mr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${xa} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),_h=Mr(oI,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${xa} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${xa} &`]:{backgroundColor:"$neutral"},[`& ${Ic}::before`]:{backgroundColor:"$secondary100",[`.${xa} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Bh=Mr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Mh=Mr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Dh=tI({display:"flex",justifyContent:"space-between",alignItems:"center"}),Fh=Mr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as $h}from"@lingui/core";import{Button as nI,Divider as Oh,ListItemButton as rI,Radio as iI,RadioRoot as aI,Typography as Uh}from"@rango-dev/ui";import gt from"react";function zh(t){let{filterBy:e,onClickItem:o}=t;return gt.createElement(Mh,null,gt.createElement("div",{className:Dh()},gt.createElement(Uh,{size:"small",variant:"body"},$h.t("Status")),gt.createElement(nI,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},$h.t("Reset"))),gt.createElement(Oh,{size:10}),gt.createElement(aI,{value:e},gt.createElement(Fh,null,t.list.map((n,i)=>gt.createElement(rI,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=i,id:n.id,title:gt.createElement(gt.Fragment,null,gt.createElement(Oh,{direction:"horizontal",size:4}),gt.createElement(Uh,{size:"medium",variant:"body"},n.title)),start:gt.createElement(iI,{value:n.id}),onClick:o})))))}r(zh,"FilterSelectorContent");function Ac(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:i,open:a}=t;return tn.createElement("div",null,tn.createElement(lI,{open:a,align:"end",onOpenChange:o,container:W(),content:tn.createElement(zh,{list:i,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},tn.createElement(_h,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},tn.createElement(Ic,{isSelect:!!n},tn.createElement(sI,{size:16,color:"black"}),!!n&&tn.createElement(Bh,null)))))}r(Ac,"FilterSelector");import{i18n as uI}from"@lingui/core";import{getCurrentStep as dI}from"@rango-dev/queue-manager-rango-preset";import{Divider as Vh,GroupedVirtualizedList as mI,Skeleton as fI,SwapListItem as Kh,Typography as gI}from"@rango-dev/ui";import et,{useCallback as jh,useEffect as hI,useRef as yI,useState as SI}from"react";function qh(t,e){let o=[],n=0;do{let i=t[n];i&&(o.push(Math.min(i,e)),e-=i),n++}while(e>0&&n<=t.length);return o}r(qh,"calculateGroupsSoFar");import{css as cI,darkTheme as pI,styled as Dr}from"@rango-dev/ui";var Nc=cI(),Qh=Dr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Wc=Dr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Nc}`]:{$$color:"$colors$neutral600",[`.${pI} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Lc=Dr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Hh=Dr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Gh=Dr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var CI=10;function Pc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:i}=t,[a,s]=SI([]),c=yI(0),{swaps:l,groupCounts:p,groups:u}=n(e),m=jh(qh,[]),d=jh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,CI),s(m(p,c.current)))},[e.length]);if(hI(()=>{i||d()},[i,d]),i){let h=[1,2];return et.createElement(et.Fragment,null,[h,h].map((f,y)=>et.createElement(Wc,{key:y},et.createElement(Lc,null,et.createElement(fI,{variant:"text",width:60,size:"small"}),et.createElement(Vh,{size:16})),et.createElement(Vh,{size:4}),et.createElement(Hh,null,f.map((S,T)=>et.createElement(Kh,{isLoading:!0,key:T}))))))}return et.createElement(mI,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&d()},groupCounts:a,groupContent:h=>et.createElement(Wc,null,et.createElement(Lc,null,et.createElement(gI,{variant:"label",size:"medium",className:Nc()},u[h]))),itemContent:(h,g)=>{let f=l[h];if(!f)return null;let y=dI(f),k=f.steps[0],S=f.steps[f.steps.length-1];return!k||!S?null:et.createElement(Qh,{key:f.requestId},et.createElement(Kh,{className:"widget-history-group-list-swap-item-btn",requestId:f.requestId,creationTime:f.creationTime,status:f.status,onClick:o,currentStep:y,tooltipContainer:W(),onlyShowTime:u[g]===uI.t("Today"),swapTokenData:{from:{token:{image:k.fromLogo,displayName:k.fromSymbol},blockchain:{image:k.fromBlockchainLogo||""},amount:M(f.inputAmount,6,6),realAmount:f.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:M(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}r(Pc,"HistoryGroupedList");import{i18n as Ia}from"@lingui/core";import Xh from"dayjs";var Yh=r(t=>{let e=new Map([["today",{title:Ia.t("Today"),swaps:[]}],["week",{title:Ia.t("This week"),swaps:[]}],["month",{title:Ia.t("This month"),swaps:[]}],["year",{title:Ia.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}r(o,"addYearsToOutput");let n=Xh();t.forEach(l=>{let p=Number(l.creationTime),u=Xh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let m=new Date(p).getFullYear().toString();o(m,l)}});let i=Array.from(e.values()).filter(l=>l.swaps.length>0),a=i.flatMap(l=>l.swaps),s=i.map(l=>l.swaps.length),c=i.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var xI=Bc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),II=Bc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),AI=Bc("div",{"._typography":{color:"$neutral700",[`.${kI}&`]:{color:"$neutral900"}}}),NI=r((t,e)=>t?.length?t.filter(o=>Dt(o.fromBlockchain,e)||Dt(o.toBlockchain,e)||Dt(o.toSymbol,e)||Dt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Rh(){let t=bI(),{manager:e,state:o}=TI(),n=Et(e).map(({swap:b})=>b),[i,a]=$r(""),[s,c]=$r(!1),l=!o.loadedFromPersistor,[p,u]=$r(""),[m,d]=$r(!1),[h,g]=$r("all"),f=r(b=>{let x=b.target.value;a(x)},"handleSearch"),{isMultiMode:y}=rt(),k=[{id:Fr.SUCCESS,title:$e.t("Complete")},{id:Fr.RUNNING,title:$e.t("Running")},{id:Fr.FAILED,title:$e.t("Failed")}],S=[{id:"all",title:$e.t("All")},{id:"swap",title:$e.t("Swap")},{id:"refuel",title:$e.t("Refuel")}],T=Zh(()=>!i&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:x,status:E,steps:P,requestId:N,mode:O}=b;return(!i||Dt(x,i)||Dt(E,i)||NI(P,i)||Dt(N,i))&&(!p||p===E)&&(h==="all"?!0:h==="swap"?!O||O==="swap":h==="refuel"?O==="refuel":!1)}),[n,i,p,h]),v=!T?.length&&!l,w=r(()=>d(!1),"onCloseModal"),A=r(async()=>{try{await e?.clearQueue(),d(!1)}catch(b){console.log(b)}},"onClear"),I=Zh(()=>!n.some(b=>b.status===Fr.SUCCESS||b.status===Fr.FAILED),[n]);return ne.createElement(se,{header:{title:$e.t("History"),suffix:ne.createElement(Co,null,ne.createElement(_c,{id:"widget-history-clear-btn",disabled:I,variant:"ghost",size:"xsmall",onClick:()=>d(!0)},ne.createElement(Aa,{size:"medium",variant:"label",color:"error"},$e.t("Clear"))))}},ne.createElement(ce,null,ne.createElement(II,null,ne.createElement(Pt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:$e.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:f,style:{height:36},value:i}),ne.createElement(bo,{size:10,direction:"horizontal"}),ne.createElement(Ac,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:k})),ne.createElement(bo,{size:"16"}),y&&!l&&ne.createElement(ne.Fragment,null,ne.createElement(EI,{items:S,onChange:b=>g(b.id),value:h,type:"secondary"}),ne.createElement(bo,{size:"12"})),ne.createElement(xI,null,v&&ne.createElement(Gh,null,ne.createElement(bo,{size:32}),ne.createElement(vI,{title:i?$e.t("No results found"):$e.t("No transactions"),titleColor:i?void 0:"$info",hasIcon:!!i,description:i?$e.t("Try using different keywords"):$e.t("Your transaction history is stored locally and will appear here after you start a swap")})),!v&&ne.createElement(Pc,{list:T,onSwapClick:t,groupBy:Yh,isLoading:l}))),ne.createElement(ie,{open:m,onClose:w,id:"widget-history-clear-modal",container:W()},ne.createElement(bo,{size:20}),ne.createElement(wI,{type:"warning",title:$e.t("Clear Transaction History"),description:ne.createElement(AI,null,ne.createElement(Aa,{variant:"body",size:"medium"},$e.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ne.createElement(bo,{size:"24"}),ne.createElement(Aa,{variant:"body",size:"small"},$e.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ne.createElement(bo,{size:30}),ne.createElement(_c,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:A},$e.t("Yes, Clear the history")),ne.createElement(bo,{size:10}),ne.createElement(_c,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:w},ne.createElement(Aa,{variant:"title",size:"medium",color:"primary"},$e.t("No, Cancel")))))}r(Rh,"HistoryPage");import{i18n as Iy}from"@lingui/core";import{Button as uA,Divider as jc,styled as dA,WarningIcon as mA}from"@rango-dev/ui";import fA from"bignumber.js";import Te,{useEffect as Ay,useState as Ny}from"react";import{useNavigate as gA}from"react-router-dom";import{i18n as ey}from"@lingui/core";import{Alert as LI,Divider as Mc,NoRouteIcon as PI,Typography as _I}from"@rango-dev/ui";import on from"react";import{styled as WI}from"@rango-dev/ui";var Jh=WI("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Dc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Xt(t,e)?on.createElement(Jh,null,on.createElement(Mc,{size:10}),on.createElement(PI,{size:24,color:"gray"}),on.createElement(Mc,{size:4}),on.createElement(_I,{variant:"title",size:"small"},ey.t("No Routes Found")),on.createElement(Mc,{size:4}),on.createElement(LI,{title:ey.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}r(Dc,"SameTokensWarning");import{Alert as BI,Button as MI}from"@rango-dev/ui";import oy from"react";import{i18n as Na}from"@lingui/core";function ty(t){let e=null;return t===ki?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:Na.t("Reset"),title:Na.t("Slippage cannot be set lower than 0.01%.")},e):t>fn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:Na.t("Change"),title:Na.t("Caution, your slippage is high!")},e):null}r(ty,"makeAlerts");function ny(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:i}=C(),{onChangeSettings:a}=t,c=ty(o!==null?o:e),l=r(p=>{p==="reset-slippage"?(n(Ti),i(null)):p==="change-settings"&&a()},"onClickActionButton");return c?oy.createElement(BI,{title:c.title,type:c.alertType,variant:"alarm",action:oy.createElement(MI,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}r(ny,"SlippageWarningsAndErrors");import{i18n as UI}from"@lingui/core";import{IconButton as zI,ReverseIcon as qI,Skeleton as QI,Tooltip as HI,Typography as Or}from"@rango-dev/ui";import ht from"react";import Wa from"bignumber.js";function iy(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:i,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||i?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}r(iy,"getSlippageColor");function ay(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new Wa(e),i=new Wa(o),a=n.dividedBy(i),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}r(ay,"getUsdExchangeRate");function sy(t,e){let o=new Wa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,Wa.ROUND_DOWN).toFormat(2)}`}r(sy,"formatTokenValueInUsd");import{darkTheme as $I,styled as $c,Typography as OI}from"@rango-dev/ui";var ly=$c("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),cy=$c("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${$I} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Oc=$c(OI,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Uc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:i}=C(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,m=o!==null?o:e,{mode:d}=So({}),h=hn(m),g=d==="dark",f=n==="default",y={quoteError:a,slippageError:h?.type==="error"?h.message:null},k={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},S=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,v=f?S:T,w=f?T:S,A=Number(f?p?.outputAmount:p?.requestAmount),I=Number(f?p?.requestAmount:p?.outputAmount),b=A||v.usdPrice,x=I||w.usdPrice,{rawValue:E,displayValue:P}=ay({toTokenUsdPrice:x,fromTokenUsdPrice:b});return ht.createElement(ly,null,ht.createElement(Or,{variant:y||k?"label":"body",size:y||k?"medium":"small",color:iy({error:y,warning:k,isDarkTheme:g})},UI.t("Slippage:")," ",m,"%"),u?ht.createElement(QI,{height:16,width:104,variant:"rounded"}):b&&x&&ht.createElement(cy,null,ht.createElement(Or,{className:"rate-text",variant:"body",size:"small"},"1"),ht.createElement(Oc,{className:"rate-text",variant:"body",size:"small"},w.symbol),ht.createElement(zI,{id:"widget-home-page-change-rate-button",onClick:i},ht.createElement(qI,{size:14,color:"secondary"})),ht.createElement(HI,{container:W(),side:"top",sideOffset:4,content:ht.createElement(Or,{className:"rate-text",variant:"body",size:"small"},E)},ht.createElement(Or,{className:"rate-text",variant:"body",size:"small"},P)),ht.createElement(Oc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&ht.createElement(Or,{color:"neutral600",variant:"body",size:"small"},"~",sy(Number(E),v.usdPrice))))}r(Uc,"SwapMetrics");import{i18n as YI}from"@lingui/core";import{Header as ZI}from"@rango-dev/ui";import xo,{useEffect as RI,useState as JI}from"react";import{i18n as VI}from"@lingui/core";import{Divider as qc,FullExpandedQuote as KI,Typography as jI}from"@rango-dev/ui";import ve from"react";import{styled as zc}from"@rango-dev/ui";var py=zc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),uy=zc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),dy=zc("div",{width:"146px"});import{i18n as Ur}from"@lingui/core";import{Select as GI}from"@rango-dev/ui";import my from"react";function La(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Ur.t("Smart Routing")},{value:"FEE",label:Ur.t("Lowest Fee")},{value:"SPEED",label:Ur.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Ur.t("Maximum Return")},{value:"PRICE",label:Ur.t("Maximum Output")}];return my.createElement(dy,null,my.createElement(GI,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:i=>{e("sortStrategy",i.value)},variant:"filled"}))}r(La,"SelectStrategy");var fy=3;function zr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:i,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:m,toToken:d,sortStrategy:h,error:g}=z()(),{slippage:f,customSlippage:y}=C(),{findToken:k}=C(),S=c||W(),T=!!p&&p.results.length,v=y??f,{config:{__UNSTABLE_OR_INTERNAL__:w}}=C(),A=r(x=>{if(!m||!d||!p)return null;let E={requestAmount:p.requestAmount,validationStatus:null,...x};return xn({currentQuote:E,userSlippage:v,findToken:k})},"getQuoteWarning"),I=g?.type===0||g?.type===1,b=p?.results?Mi(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(uy,null,ve.createElement(jI,{size:"xmedium",variant:"title"},VI.t("Sort by")),ve.createElement(La,{container:S})),ve.createElement(qc,{size:"10"})),e&&Array.from({length:fy},(x,E)=>ve.createElement(ve.Fragment,{key:E},s?ve.createElement(KI,{campaignTag:w?.campaignTag,loading:!0}):ve.createElement(Ar,{tagHidden:!1,type:"list-item",expanded:!1}),E!==fy-1&&ve.createElement(qc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,T?b.map((x,E)=>{let P=A(x),N=lc(x.swaps),O=b.length-1===E;return ve.createElement(ve.Fragment,{key:x.requestId},ve.createElement(Jo,{id:"widget-quotes-quote-info-container",showModalFee:i,container:S,selected:l?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:P,fullExpandedMode:s,onClick:H=>{N||u("warning",P),u("error",N?.options||null),o(H)},type:"list-item"}),!O&&ve.createElement(qc,{size:16}))}):I&&ve.createElement(py,null,ve.createElement(Tr,{size:s?"large":"small",error:g,fetch:n}))))}r(zr,"Quotes");import{darkTheme as XI,styled as gy}from"@rango-dev/ui";var hy=gy("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${XI} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),yy=gy("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var eA=100;function Qc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:i,isVisible:a}=t,[s,c]=JI(!1),l=s?"":"is-hidden",{config:p}=C(),u=p?.variant==="full-expanded",m=Fo();return RI(()=>{let d=null;return a?d=setTimeout(()=>{c(!0)},eA):(c(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),xo.createElement(hy,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Xi()} widget-expanded-quotes-container`,id:wt.EXPANDED_BOX_ID},xo.createElement(ZI,{title:YI.t("Routes"),suffix:xo.createElement(xo.Fragment,null,xo.createElement(La,{container:m}),xo.createElement(jo,{container:m,onClickRefresh:i,hidden:["history","notifications","settings"]}))}),xo.createElement(yy,null,xo.createElement(zr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Fo(),onClickOnQuote:n,fullExpandedMode:u})))}r(Qc,"ExpandedQuotes");import{i18n as Ey}from"@lingui/core";import{SwapInput as by}from"@rango-dev/ui";import rA from"bignumber.js";import qr from"react";import{ReverseIcon as nA}from"@rango-dev/ui";import Gc from"react";import{keyframes as tA,styled as Sy}from"@rango-dev/ui";var Hc=450,oA=tA({"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)"}}),Cy=Sy("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ty=Sy("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${oA} ${Hc}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 Vc(){let t=z().use.switchFromAndTo();return Gc.createElement(Cy,null,Gc.createElement(Ty,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Hc),t()}},Gc.createElement(nA,{size:12})))}r(Vc,"SwitchFromAndToButton");import{styled as ky}from"@rango-dev/ui";var wy=ky("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),vy=ky("div",{position:"relative"});function Kc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:i}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:m,inputUsdValue:d,outputAmount:h,outputUsdValue:g,selectedQuote:f}=z()(),{swapMode:y}=rt(),{connectedWallets:k,getBalanceFor:S}=C(),T=a?S(a):null,v=yi(T)?.amount??"0",w=T?new rA(T.amount).shiftedBy(-T.decimals):pe,A=!!s&&Ku(k,s.name),I=!Ks(f,m,d),b=!Ks(f,m,g),x=!d||!g||!g.gt(0)?null:Jt(d.toString(),g.toString());return qr.createElement(wy,null,qr.createElement(vy,null,qr.createElement(by,{label:Ey.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:v,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:m,usdValue:I?void 0:M(d,4,4),realUsdValue:I?void 0:d?.toString(),error:I?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:A,tooltipContainer:W(),onSelectMaxBalance:()=>{let E=w.isGreaterThan(pe)?w.toFixed():"";p(E)},anyWalletConnected:k.length>0}),y==="swap"&&qr.createElement(Vc,null)),qr.createElement(by,{selectionType:y==="swap"?"token":"chain",sharpBottomStyle:!i&&(!!f||e),label:Ey.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:M(Jt(d,g),2,2),warningLevel:eo(x??0),price:{value:M(h,6,6),usdValue:b?void 0:M(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}r(Kc,"Inputs");import{warn as iA}from"@rango-dev/logging-core";import{useCallback as aA,useEffect as sA,useRef as lA,useState as cA}from"react";function xy(){let{fetch:t,loading:e,cancelFetch:o}=ka({request:async(n,i)=>await dt().getAllRoutes(n,i)});return{fetch:t,loading:e,cancelFetch:o}}r(xy,"useFetchAllQuotes");var pA=600;function Pa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=xy(),{excludeLiquiditySources:n,routing:i}=C().config,{connectedWallets:a}=C(),c=a.some(be=>be.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:d,sortStrategy:h,resetQuote:g,error:f,warning:y,setSelectedQuote:k,updateQuotePartialState:S}=z()(),{slippage:T,customSlippage:v,affiliatePercent:w,affiliateRef:A,affiliateWallets:I,fetchStatus:b}=C(),x=C().getLiquiditySources(),E=C().getDisabledLiquiditySources(),P=C().excludeLiquiditySources(),{findToken:N}=C(),{swapMode:O}=rt(),[H,j]=cA(!0),ee=lA(u),L=v??T,Y=!l||!p||Xt(l,p)||!er(u),ue=r(be=>{j(be)},"resetState"),Ee=r(be=>{let{fromToken:Qe,toToken:Xe,inputAmount:St,liquiditySources:ct,excludeLiquiditySources:_,disabledLiquiditySources:V,slippage:q,affiliateRef:X,affiliatePercent:G,affiliateWallets:R}=be;if(H||ue(!0),!Y&&Qe&&Xe){g();let U=um({fromToken:Qe,toToken:Xe,inputAmount:St,liquiditySources:ct,excludeLiquiditySources:_,disabledLiquiditySources:V,wallets:a,slippage:q,affiliateRef:X,affiliatePercent:G,affiliateWallets:R,contractCall:c});gn("experimental",i)&&(U.experimental=!0),gn("avoidNativeFee",i)&&(U.avoidNativeFee=!0),gn("enableCentralizedSwappers",i)&&(U.enableCentralizedSwappers=!0),i?.maxLength&&(U.maxLength=i.maxLength),O==="refuel"&&(U.maxLength=1),e(U).then(de=>{let He=Mi(h,de.results),ot=em(d,He,de.requestAmount);j(!1),S("quotes",de),k(ot),de.results?.length&&ot&&Sn({type:"routeRequested",payload:{...On(ot),routeCount:de.results.length}}),wa({diagnosisMessages:de.diagnosisMessages,requestId:ot?.requestId||"",swaps:ot?.swaps});let mo=ot&&xn({currentQuote:ot,userSlippage:L,findToken:N});S("warning",mo)}).catch(de=>{let He=va(de);He.type===0?Sn({type:"routeNotFound",payload:{sourceChain:Qe.blockchain,destinationChain:Xe.blockchain,sourceTokenSymbol:Qe.symbol,sourceTokenAddress:Qe.address,destinationTokenSymbol:Xe.symbol,destinationTokenAddress:Xe.address,inputAmountUsd:m?m.toNumber():null}}):He.type===1&&Sn({type:"routeFetchFailed",payload:{sourceChain:Qe.blockchain,destinationChain:Xe.blockchain,errorCode:String(de?.response?.status??"")}}),(He.type===0||He.type===1)&&g(),He.type!==2&&(S("error",He),j(!1),iA(new Error("quote error"),{tags:{...He,type:Ye[He.type],requestBody:U}}))})}},"fetch"),Kt=aA(pi(be=>{Ee(be)},pA),[Y]);return sA(()=>{if(!t){j(!1);return}if(b!=="success")return;if(Y){j(!1),(d||f||y)&&g();return}if(!er(u)&&m?.eq(0)){ue(!1),o();return}g(),ue(!0);let be=Ee;return ee.current&&ee.current!=u&&(be=Kt),ee.current=u,be({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:P,disabledLiquiditySources:E,slippage:L,affiliateRef:A,affiliatePercent:w,affiliateWallets:I,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,x?.length,n,E.length,L,A,w,c,JSON.stringify(I)]),{fetch:()=>Ee({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:P,disabledLiquiditySources:E,slippage:L,affiliateRef:A,affiliatePercent:w,affiliateWallets:I,contractCall:c}),loading:H}}r(Pa,"useSwapInput");var hA=dA("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),yA=300;function Wy(){let t=gA(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:i,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:d}=z()(),[h,g]=Ny(!1),{isLargeScreen:f,isExtraLargeScreen:y}=da(),{fetch:k,loading:S}=Pa({refetchQuote:a}),{config:T,fetchStatus:v,connectedWallets:w,customSlippage:A,slippage:I,setSlippage:b,setCustomSlippage:x}=C(),{isActiveTab:E}=re(),[P,N]=Ny(!1),O=A!==null?A:I,{swapMode:H}=rt(),j=hn(O),L=lm({fetchMetaStatus:v,fetchingQuote:S,inputAmount:n,quote:i,anyWalletConnected:w.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Z=Ju(f,y,T?.variant),Y=!!n&&!!e&&!!o&&new fA(n).gt(0)&&!Sm(e,o),ue=Y&&v==="success"&&S,Ee=j?.quoteValidation||c,Qe=(!Z||Z&&l?.results.length)&&(Ee||s),Xe=!!e&&!!o,St=Xe&&!!j,ct=(i||s)&&!P?k:void 0,_=r(R=>{Z&&h?(g(!1),setTimeout(()=>{t(R)},yA)):t(R)},"onHandleNavigation"),V=r(R=>{i?.requestId!==R.requestId&&(i&&Sn({type:"routeChanged",payload:{sourceChain:R.swaps[0]?.from.blockchain??"",destinationChain:R.swaps[R.swaps.length-1]?.to.blockchain??"",fromRouteId:i.requestId,toRouteId:R.requestId}}),N(!1),p(R))},"onClickOnQuote"),q=r(R=>{if(R){if(Ci.includes(R)){b(R),x(null);return}x(R)}},"onChangeSlippage"),X=r(R=>{_(R==="from"?F.fromSwap:H==="swap"?F.toSwap:F.toSwap+"/"+F.blockchains)},"handleInputTokenClick");Ay(()=>{u(),d("refetchQuote",!0)},[]),Ay(()=>{g(Y)},[Y]);let G=r(()=>{L.action==="connect-wallet"?fd({type:"clickConnectWallet"},()=>{_(F.wallets)}):L.action==="confirm-warning"?N(!0):i&&(oe({type:"swapInitiated",payload:{...On(i),walletConnected:w.length>0}}),_(F.confirmSwap))},"handleSwapButtonClick");return Te.createElement(hA,null,Te.createElement(se,{height:"auto",footer:Te.createElement(uA,{id:`widget-swap-${L.action}-btn`,type:"primary",size:"large",disabled:L.disabled||!E,prefix:L.action==="confirm-warning"&&Te.createElement(mA,null),fullWidth:!0,onClick:G},L.title),header:{onWallet:()=>{_(F.wallets)},hasBackButton:!1,title:T.title||(H==="swap"?Iy.t("Swap"):Iy.t("Refuel")),suffix:Te.createElement(jo,{hidden:Z?["refresh"]:void 0,onClickRefresh:ct,onClickHistory:()=>_(F.swaps),onClickSettings:()=>{_(F.settings)}})}},Te.createElement(ce,null,Te.createElement(Kc,{fetchingQuote:ue,fetchMetaStatus:v,isExpandable:Z,onClickToken:X}),Te.createElement(jc,{size:"2"}),Z?null:Te.createElement(Jo,{quote:i,loading:ue,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Ee,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{d("refetchQuote",!1),_(F.routes)}:void 0}),Xe&&Te.createElement(Te.Fragment,null,Te.createElement(jc,{size:8}),Te.createElement(Uc,{quoteError:s,quoteWarning:Ee,fromToken:e,toToken:o,quote:i,loading:ue})),Qe?Te.createElement(Te.Fragment,null,Te.createElement(wr,{warning:Ee,error:s,skipAlerts:!!j,couldChangeSettings:!0,refetchQuote:k,showWarningModal:P,confirmationDisabled:!E,onOpenWarningModal:()=>N(!0),onCloseWarningModal:()=>N(!1),onChangeSlippage:q,onConfirmWarningModal:()=>{N(!1),m(!0),_(F.confirmSwap)},onChangeSettings:()=>_(F.settings)})):null,St&&Te.createElement(Te.Fragment,null,Te.createElement(jc,{size:"10"}),Te.createElement(ny,{onChangeSettings:()=>_(F.settings)})),Te.createElement(Dc,null))),Z?Te.createElement(Qc,{loading:ue,onClickOnQuote:V,fetch:k,onClickRefresh:ct,isVisible:h}):null)}r(Wy,"Home");import{i18n as Ly}from"@lingui/core";import{Alert as SA,Divider as CA,List as TA,ListItemButton as kA,Radio as wA,RadioRoot as vA,Typography as EA}from"@rango-dev/ui";import qt from"react";function Io(){let{setLanguage:t,language:e,config:o}=C(),n=id,i=o?.language||yn;return{activeLanguage:e||i,languages:n,defaultLanguage:i,changeLanguage:a=>t(a||yn),resetLanguage:()=>t(null)}}r(Io,"useLanguage");function Py(){let{activeLanguage:t,changeLanguage:e,languages:o}=Io(),n=Ve(),i=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:qt.createElement(EA,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:qt.createElement(wA,{value:s}),start:qt.createElement(l,null)}});return qt.createElement(se,{header:{title:Ly.t("Language")}},qt.createElement(ce,null,qt.createElement(SA,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),qt.createElement(CA,{size:"8"}),qt.createElement(vA,{value:t},qt.createElement(TA,{type:qt.createElement(kA,{title:Ly.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:i}))))}r(Py,"LanguagePage");import{i18n as lo}from"@lingui/core";import{Button as NA,Checkbox as WA,Image as LA,ListItemButton as PA,NotFound as _A,Typography as BA}from"@rango-dev/ui";import tt,{useState as MA}from"react";import{Checkbox as IA,Skeleton as By}from"@rango-dev/ui";import Hr from"react";import{styled as Xc}from"@rango-dev/ui";var Qr=Xc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Yc=Xc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Zc=Xc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as bA,styled as xA}from"@rango-dev/ui";var _y=xA(bA,{height:61});var AA=30;function Rc(){return Hr.createElement(Qr,null,Array.from(Array(AA),(t,e)=>Hr.createElement(_y,{hasDivider:!0,key:e,start:Hr.createElement(By,{variant:"circular",width:35,height:35}),title:Hr.createElement(By,{variant:"text",size:"large",width:90}),end:Hr.createElement(IA,{checked:!1})})))}r(Rc,"LoadingLiquiditySourceList");function Jc({sourceType:t}){let e=C().fetchStatus,o=C().swappers(),n=C().getDisabledLiquiditySources(),[i,a]=MA(""),s=C().toggleLiquiditySource,c=C().isInCampaignMode(),l=wi(o,n),p={Exchanges:lo.t("Exchanges"),Bridges:lo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=l.filter(S=>u.includes(S.type)),d=m.length===m.filter(S=>S.selected).length,h=t==="Exchanges"?"exchanges":"bridges",g=r(()=>{let S=!d;oe({type:"settingsChanged",payload:{setting:"liquiditySource",sourceType:h,changeType:S?"selectAll":"deselectAll",previousSelectedCount:m.filter(T=>T.selected).length,totalCount:m.length}}),m.forEach(T=>{d?s(T.groupTitle):T.selected||s(T.groupTitle)})},"toggleAllSources"),f=m.map(S=>{let{selected:T,groupTitle:v,logo:w,id:A,...I}=S;return{id:`widget-setting-liquidity-source-${Bu(A.toLowerCase())}-item-btn`,start:tt.createElement(LA,{src:w,size:22,type:"circular"}),onClick:()=>{c||(oe({type:"settingsChanged",payload:{setting:"liquiditySource",sourceType:h,changeType:"individual",sources:[{id:v,enabled:!T}]}}),s(v))},end:tt.createElement(WA,{checked:T,disabled:c}),title:tt.createElement(BA,{variant:"title",size:"xmedium"},lo.t(v)),selected:T,groupTitle:v,logo:w,...I}}),y=r(S=>{let T=S.target.value;a(T)},"handleSearch"),k=f;return i&&(k=f.filter(S=>Dt(S.groupTitle,i))),tt.createElement(se,{header:{title:lo.t(t),suffix:tt.createElement(Yc,null,tt.createElement(NA,{id:`widget-liquidity-source-${d?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},d?lo.t("Deselect all"):lo.t("Select all")))}},tt.createElement(ce,{view:!0},tt.createElement(Pt,{value:i,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:lo.t("Search {sourceType}",{sourceType:p[t]}),onChange:y}),e==="loading"&&tt.createElement(Rc,null),!k.length&&i?tt.createElement(Zc,null,tt.createElement(_A,{title:lo.t("No results found"),description:lo.t("Try using different keywords")})):e==="success"&&tt.createElement(Qr,{disabled:c,className:"widget-liquidity-source-list"},k.map(S=>{let{groupTitle:T,...v}=S;return tt.createElement(tt.Fragment,{key:S.id},tt.createElement(PA,{style:{height:"61px"},...v,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}r(Jc,"LiquiditySourcePage");import{i18n as DA}from"@lingui/core";import _a from"react";import{useNavigate as FA}from"react-router-dom";function My(){let t=FA(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:i,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=Pa({refetchQuote:n}),p=r(d=>{i(d),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,m=`../${F.wallets}`;return _a.createElement(se,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:DA.t("Routes"),suffix:_a.createElement(jo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},_a.createElement(ce,null,_a.createElement(zr,{fetch:c,loading:l,onClickOnQuote:p})))}r(My,"RoutesPage");import{i18n as qy}from"@lingui/core";import{Divider as Qy,getCategoriesCount as KA,SelectableCategoryList as jA}from"@rango-dev/ui";import co,{useMemo as XA,useState as Hy}from"react";import{useNavigate as YA}from"react-router-dom";import{i18n as ep}from"@lingui/core";import{Divider as zA,Image as qA,ListItemButton as QA,NotFound as HA,Typography as zy}from"@rango-dev/ui";import yt,{useEffect as GA,useState as VA}from"react";var Dy=r((t,e,o)=>t.filter(n=>ui(n.type,o)).filter(n=>pt(n.name,e)||pt(n.displayName,e)),"filterBlockchains");import{ImageContainer as $A,styled as Fy}from"@rango-dev/ui";var $y=Fy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ba=Fy(Nl,{padding:0,margin:0,listStyle:"none",[`& ${$A}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as OA,Skeleton as Oy}from"@rango-dev/ui";import Ma from"react";var UA=20;function Uy(){return Ma.createElement(Ba,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(UA),t=>Ma.createElement(OA,{key:t,hasDivider:!0,start:Ma.createElement(Oy,{variant:"circular",width:35,height:35}),title:Ma.createElement(Oy,{variant:"text",size:"large",width:90})})))}r(Uy,"LoadingBlockchainList");function tp(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:i,showTitle:a=!0}=t,[s,c]=VA(e),{fetchStatus:l}=C();GA(()=>{c([...Dy(e,o,i)])},[e,o,i]);let p=r(()=>!s.length&&o?yt.createElement(HA,{title:ep.t("No results found"),description:ep.t("Try using different keywords")}):yt.createElement(Ba,{as:"ul",key:`${i}-${o}`,id:"widget-blockchain-list"},s.map(u=>yt.createElement(QA,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:yt.createElement(qA,{src:u.logo,size:30}),title:yt.createElement(zy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return yt.createElement(yt.Fragment,null,a&&yt.createElement(yt.Fragment,null,yt.createElement(zy,{variant:"label",size:"large"},ep.t("Select Chain")),yt.createElement(zA,{size:4})),yt.createElement($y,null,l==="loading"&&yt.createElement(Uy,null),l==="success"&&p()))}r(tp,"BlockchainList");function Da(t){let{type:e}=t,o=Ve(),[n,i]=Hy(""),[a,s]=Hy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:m}=C(),d=YA(),{swapMode:h}=rt(),g=C().blockchains({type:e}),f=C().tokens(),y=XA(()=>Nu(g,f),[g.length,f.length]),k=KA(y),S=!t.hideCategory&&k!==1,T=r(v=>{if(e==="custom-token")d(`..?blockchain=${v.name}`,{replace:!0});else{if(oe({type:"chainFilterApplied",payload:{side:e==="source"?"from":"to",chain:v.name,filterSource:"expanded"}}),e==="source")l(v);else if(h==="swap")c(v);else{let w=m(v);w&&p({token:w,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return co.createElement(se,{header:{title:qy.t("Select Chain")}},co.createElement(ce,{view:!0},S&&co.createElement(co.Fragment,null,co.createElement(jA,{setCategory:s,category:a,blockchains:y,isLoading:u==="loading"}),co.createElement(Qy,{size:24})),co.createElement(Pt,{value:n,autoFocus:!0,placeholder:qy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>i(""),onChange:v=>i(v.target.value)}),co.createElement(Qy,{size:16}),co.createElement(tp,{list:y,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:T})))}r(Da,"SelectBlockchainPage");import{i18n as Oa}from"@lingui/core";import{Divider as Ry,Spinner as uN}from"@rango-dev/ui";import Ao,{useEffect as dN,useState as mN}from"react";import{useNavigate as fN}from"react-router-dom";import{i18n as rp}from"@lingui/core";import{BlockchainsChip as Fa,Divider as jy,Image as Xy,Skeleton as oN,Tooltip as nN,Typography as ip}from"@rango-dev/ui";import xe from"react";import{useEffect as JA}from"react";var Gy=["ETH"];function op(t,e,o){let n=JSON.parse(JSON.stringify(t)),i=[];if(n.sort(ZA),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p?.name!==u)}}n.sort(RA(s)),i=n.splice(a)}return{list:n,more:i}}r(op,"prepare");function ZA(t,e){let o=Gy,n=o.findIndex(c=>c===t.name),i=o.findIndex(c=>c===e.name),a=n>-1,s=i>-1;return a&&s?n>i?1:-1:a?-1:s?1:0}r(ZA,"sortByMostUsedBlockchains");function RA(t){return r(function(o,n){let i=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=i>-1,c=a>-1;return s&&c?i>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}r(RA,"generateSortByPreferredBlockchainsFor");function Vy(t,e){return!!e.list.find(o=>o.name===t)}r(Vy,"isInVisibleList");function np(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=C();JA(()=>{if(e?.selected){let a=op(t,o,e);Vy(e.selected,a)||n(e?.selected)}},[e?.selected]);let i=op(t,o,e);return{list:i.list,more:i.more,history:[]}}r(np,"usePrepareBlockchainList");import{styled as eN}from"@rango-dev/ui";var Ky=eN("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var rN=6,iN=12;function ap(t){let{blockchains:e,type:o,blockchain:n,onChange:i,onMoreClick:a}=t,{showCompactTokenSelector:s}=re(),c=np(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=C(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),m=c.more.length>0,d=c.more[0],h=c.more.length===1&&d,g=!h&&m;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(jy,{size:12}),xe.createElement(ip,{variant:"label",size:"large"},rp.t("Select Chain"))),xe.createElement(jy,{size:12}),xe.createElement(Ky,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?rN:iN),(f,y)=>xe.createElement(oN,{key:y,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(Fa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(ip,{variant:"body",size:"xsmall",color:"secondary500"},rp.t("All"))),c.list.map(f=>xe.createElement(nN,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:W()},xe.createElement(Fa,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>i(f)},xe.createElement(Xy,{src:f.logo,size:30})))),h?xe.createElement(Fa,{className:"widget-blockchains-section-only-item-btn",key:d.name,selected:!!n&&n.name===d.name,onClick:()=>i(d)},xe.createElement(Xy,{src:d.logo,size:30})):null,g?xe.createElement(Fa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(ip,{variant:"body",size:"xsmall",color:"secondary500"},rp._("More +{count}",{count:c.more.length}))):null)))}r(ap,"BlockchainsSection");import{useCallback as sN,useRef as lN,useState as sp}from"react";function lp(){let t=C().blockchains(),e=lN(null),{customTokens:o}=C(),[n,i]=sp(!1),[a,s]=sp([]),[c,l]=sp(null),p=r(async(d,h)=>{l(null),i(!0),s([]);try{let g=await dt().searchCustomTokens({query:d,blockchain:h},{signal:e.current?.signal}),f=new Set(o().map(S=>Zt(S))),y=new Set(t.map(S=>S.name)),k=g.tokens.filter(S=>y.has(S.blockchain)&&!f.has(Zt(S)));s(k),i(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&i(!1)}},"fetch"),u=sN(pi((d,h)=>{e.current?.signal.aborted||p(d,h)},600),[t.length]);return{fetch:(d,h)=>{e.current=new AbortController,s([]),i(!0),u(d,h)},cancel:r(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}r(lp,"useSearchCustomTokens");function Yy(t){return t.trim()?"search":"default "}r(Yy,"getTokenSelectionMethod");function $a(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}r($a,"shouldSearchForCustomTokens");function Zy(t,e,o,n,i){let a=[...t];return $a(t,o,i)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}r(Zy,"prepareTokensList");function Ua(t){let{type:e}=t,o=fN(),n=Ve(),{fromBlockchain:i,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=C(),{fetch:m,loading:d,tokens:h,cancel:g}=lp(),[f,y]=mN(""),k=e==="source"?i:a,S=k?.name??"",T=C().blockchains({type:e}),v=C().tokens({type:e,blockchain:S,searchFor:f,getBalanceFor:u}),w=Zy(v,h,f,d,k?.name),A=r(N=>{e==="source"?l(N):p(N)},"updateBlockchain"),I=r(N=>{e==="source"?s({token:N,meta:{blockchains:T}}):c({token:N,meta:{blockchains:T}})},"updateToken"),b=e==="source"?"from":"to",x=r(N=>{oe({type:"chainFilterApplied",payload:{side:b,chain:N.name,filterSource:"featured"}})},"emitChainFilterApplied"),E=r(N=>{oe({type:"tokenSelected",payload:{side:b,tokenName:N.name,tokenSymbol:N.symbol,tokenAddress:N.address,chain:N.blockchain,selectionMethod:Yy(f),activeChainFilter:S||"all"}})},"emitTokenSelected"),P={source:Oa.t("Source"),destination:Oa.t("Destination")};return dN(()=>($a(v,f,k?.name)&&m(f,k?.name??void 0),()=>{g()}),[v.length,f,k?.name]),Ao.createElement(se,{header:{title:Oa.t("Swap {type}",{type:P[e]})}},Ao.createElement(ce,null,Ao.createElement(ap,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?i:a,onMoreClick:()=>o(F.blockchains),onChange:N=>{x(N),A(N)}}),Ao.createElement(Ry,{size:24}),Ao.createElement(Pt,{value:f,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Oa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:N=>y(N.target.value),suffix:$a(v,f,k?.name)&&d?Ao.createElement(uN,{size:12,color:"secondary"}):void 0}),Ao.createElement(Ry,{size:16}),Ao.createElement(_r,{list:w,selectedBlockchain:S,searchedFor:f,type:e,onChange:N=>{E(N),I(N);let O=T.find(H=>N.blockchain===H.name);O&&A(O),n()}})))}r(Ua,"SelectSwapItemsPage");import{i18n as dp}from"@lingui/core";import{Alert as zN,Button as qN,styled as QN}from"@rango-dev/ui";import nn from"react";import{useInRouterContext as HN,useSearchParams as GN}from"react-router-dom";import{i18n as rS}from"@lingui/core";import{Alert as SN,Divider as pp,InfoIcon as CN,SlippageIcon as TN,TextField as kN,Tooltip as wN,Typography as iS}from"@rango-dev/ui";import ze from"react";import{Chip as gN,styled as Gr,TextField as hN}from"@rango-dev/ui";var Jy=Gr("div",{paddingTop:"$5",padding:"$10 $5"}),eS=Gr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${hN}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),tS=Gr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),za=Gr("div",{maxWidth:"280px",padding:"$10"}),oS=Gr(gN,{width:"61px",flexShrink:0});import{i18n as cp}from"@lingui/core";import{Typography as yN}from"@rango-dev/ui";import Vr from"react";function nS(){return Vr.createElement(za,null,Vr.createElement(yN,{variant:"label",size:"medium",color:"neutral700"},cp.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Vr.createElement("br",null),Vr.createElement("br",null),Vr.createElement("b",null,cp.t("Warning")),":\xA0",cp.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.")))}r(nS,"SlippageTooltipContent");function up(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=C(),i=o!==null?hn(o):null,a=o??t,s=r((u,m)=>{u!==m&&oe({type:"settingsChanged",payload:{setting:"slippage",previousValue:u,newValue:m}})},"emitSlippageChanged"),c=r(u=>{let m=u.target.value,d=parseFloat(m);if(isNaN(d))return n(null);let h=d;d>nr&&(h=nr),s(a,h),n(h)},"onSlippageValueChange"),l=r(u=>{s(a,u),o!==null&&n(null),e(u)},"onClickSlippageChip"),p=r(u=>{let m=u.target,d=m.value;Fu(d)||(m.value=d.slice(0,-1))},"onInput");return ze.createElement(Jy,null,ze.createElement(tS,null,ze.createElement(TN,{size:16,color:"gray"}),ze.createElement(pp,{direction:"horizontal",size:4}),ze.createElement(iS,{variant:"title",size:"xmedium"},rS.t("Slippage tolerance per swap")),ze.createElement(pp,{direction:"horizontal",size:4}),ze.createElement(wN,{container:W(),side:"top",sideOffset:4,content:ze.createElement(nS,null)},ze.createElement(CN,{color:"gray"}))),ze.createElement(eS,null,Ci.map((u,m)=>{let d=`slippage-${m}`;return ze.createElement(oS,{id:`widget-slippage-chip-${u.toString()}%-btn`,key:d,onClick:()=>l(u),selected:o===null&&u===t,label:`${u.toString()}%`})}),ze.createElement(kN,{type:"number",min:"0.01",max:"30",step:"0.01",status:i?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:p,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:c,suffix:o&&ze.createElement(iS,{variant:"body",size:"small"},"%"),placeholder:rS.t("Custom")})),i&&ze.createElement(ze.Fragment,null,ze.createElement(pp,{size:10}),ze.createElement(SN,{id:"widget-slippage-alert",variant:"alarm",type:i.type,title:i.message})))}r(up,"Slippage");import{i18n as bt}from"@lingui/core";import{AutoThemeIcon as aS,BridgesIcon as vN,ChevronRightIcon as qa,DarkModeIcon as sS,Divider as Kr,ExchangeIcon as EN,InfinityIcon as bN,InfoIcon as xN,LanguageIcon as IN,LightModeIcon as lS,List as AN,ListItem as NN,ListItemButton as WN,Skeleton as LN,styled as PN,Switch as _N,Tabs as BN,TargetIcon as MN,Tooltip as DN,Typography as lt}from"@rango-dev/ui";import D from"react";import{useNavigate as FN}from"react-router-dom";var $N=PN("div",{width:"202px",height:"$40"}),ON=[{id:"light",icon:D.createElement(lS,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Light"))},{id:"dark",icon:D.createElement(sS,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Dark"))},{id:"auto",icon:D.createElement(aS,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Auto"))}],UN=r(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(aS,{...e});case"dark":return D.createElement(sS,{...e});default:return D.createElement(lS,{...e})}},"getThemeIcon");function cS(){let t=FN(),{theme:e}=C().config,{setTheme:o,theme:n}=C(),{activeLanguage:i,languages:a}=Io(),s=a.find(L=>L.local===i)?.label,c=C().fetchStatus,l=C().swappers(),p=C().getDisabledLiquiditySources(),{config:{features:u}}=C(),m=C().customTokens(),d=nt("theme",u),h=nt("liquiditySource",u),g=nt("language",u),f=nt("customTokens",u),y=C().infiniteApprove,k=C().toggleInfiniteApprove,S=wi(l,p),T=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=T.length,w=T.filter(L=>L.selected).length,A=S.filter(L=>L.type==="DEX"),I=A.length,b=A.filter(L=>L.selected).length,x=r((L,Z)=>{switch(c){case"loading":return D.createElement(LN,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(lt,{variant:"body",size:"medium",color:"$error500"},bt.t("Loading failed"));default:return D.createElement(lt,{variant:"body",size:"medium"},`${L} / ${Z}`)}},"handleSwapperEndItem"),E={id:"widget-setting-bridge-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Bridges")),end:D.createElement(D.Fragment,null,x(w,v),D.createElement(Kr,{direction:"horizontal",size:8}),D.createElement(qa,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(vN,{color:"gray",size:16})},P={id:"widget-setting-exchange-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Exchanges")),end:D.createElement(D.Fragment,null,x(b,I),D.createElement(Kr,{direction:"horizontal",size:8}),D.createElement(qa,{color:"black"})),start:D.createElement(EN,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},N={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},`${m.length}`),D.createElement(Kr,{direction:"horizontal",size:8}),D.createElement(qa,{color:"black"})),start:D.createElement(MN,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},O={id:"widget-setting-language-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Language")),start:D.createElement(IN,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},s),D.createElement(Kr,{direction:"horizontal",size:8}),D.createElement(qa,{color:"black"})),onClick:()=>t(F.languages)},H={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Infinite approval")),D.createElement(Kr,{direction:"horizontal",size:4}),D.createElement(DN,{side:"top",sideOffset:4,container:W(),content:D.createElement(za,null,D.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,bt.t("Warning")),":\xA0",bt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(xN,{color:"gray"}))),start:D.createElement(bN,{color:"gray",size:16}),end:D.createElement(_N,{checked:y}),onClick:()=>{oe({type:"settingsChanged",payload:{setting:"infiniteApproval",previousValue:y,newValue:!y}}),k()}},j={id:"widget-setting-theme-item-btn",type:D.createElement(NN,null),title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Theme")),end:D.createElement($N,null,D.createElement(BN,{container:W(),items:ON,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:UN(n)},ee=h?[]:[E,P];return f||ee.push(N),g||ee.push(O),ee.push(H),!e?.singleTheme&&!d&&ee.push(j),D.createElement(AN,{type:D.createElement(WN,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:ee})}r(cS,"SettingsLists");var VN=QN("div",{paddingLeft:"$8"});function pS(){let{isInCampaignMode:t,updateCampaignMode:e}=C(),o=t(),[,n]=GN(),i=HN(),a=r(()=>{i&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return nn.createElement(se,{header:{title:dp.t("Settings")}},nn.createElement(ce,null,o&&nn.createElement(zN,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:dp.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:nn.createElement(VN,null,nn.createElement(qN,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},dp.t("Reset")))}),nn.createElement(up,null),nn.createElement(cS,null)))}r(pS,"SettingsPage");import{i18n as oW}from"@lingui/core";import{cancelSwap as nW}from"@rango-dev/queue-manager-rango-preset";import{useManager as rW}from"@rango-dev/queue-manager-react";import{Alert as iW}from"@rango-dev/ui";import Np from"react";import{useParams as aW}from"react-router-dom";import{i18n as Ht}from"@lingui/core";import{getCurrentNamespaceOfOrNull as q0,getCurrentStep as Q0,getRelatedWalletOrNull as H0}from"@rango-dev/queue-manager-rango-preset";import{Button as rC,Divider as G0,QuoteCost as V0,StepDetails as K0,Typography as vp}from"@rango-dev/ui";import{useWallets as j0}from"@rango-dev/wallets-react";import iC from"bignumber.js";import{PendingSwapNetworkStatus as Hn}from"rango-types";import we,{useEffect as Ep,useRef as bp,useState as Za}from"react";import{useNavigate as X0}from"react-router-dom";import{i18n as No}from"@lingui/core";var KN=[No.t("Sunday"),No.t("Monday"),No.t("Tuesday"),No.t("Wednesday"),No.t("Thursday"),No.t("Friday"),No.t("Saturday")];function uS(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),i=e.getFullYear();return`${e.getDay()===new Date().getDay()?No.t("Today"):`${KN[e.getDay()]} ${o} ${n} ${i}`}, ${new Date(t).toLocaleTimeString()}`}r(uS,"timeSince");function dS(t){return t.finishTime?uS(parseInt(t.finishTime)):uS(parseInt(t.creationTime))}r(dS,"getSwapDate");import jr from"react";import{i18n as Qa}from"@lingui/core";import{Button as mS,Divider as mp,MessageBox as jN}from"@rango-dev/ui";import Wo from"react";var fS=r(({onCancel:t,onClose:e})=>Wo.createElement(Wo.Fragment,null,Wo.createElement(mp,{size:20}),Wo.createElement(jN,{type:"error",title:Qa.t("Cancel Swap"),description:Qa.t("Are you sure you want to cancel this swap?")}),Wo.createElement(mp,{size:32}),Wo.createElement(mS,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Qa.t("Yes, Cancel it")),Wo.createElement(mp,{size:12}),Wo.createElement(mS,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Qa.t("No, Continue"))),"CancelContent");import{i18n as Ha}from"@lingui/core";import{Button as gS,Divider as fp,MessageBox as XN,Typography as YN}from"@rango-dev/ui";import po from"react";var hS=r(({onDelete:t,onClose:e})=>po.createElement(po.Fragment,null,po.createElement(fp,{size:20}),po.createElement(XN,{type:"error",title:Ha.t("Delete Transaction"),description:Ha.t("Are you sure you want to delete this swap?")}),po.createElement(fp,{size:32}),po.createElement(gS,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ha.t("Yes, Delete it")),po.createElement(fp,{size:12}),po.createElement(gS,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},po.createElement(YN,{variant:"title",size:"medium",color:"primary"},Ha.t("No, Cancel")))),"DeleteContent");import{i18n as ZN}from"@lingui/core";import{Button as RN,Divider as JN,MessageBox as e0}from"@rango-dev/ui";import rn from"react";var yS=r(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return rn.createElement(rn.Fragment,null,rn.createElement(e0,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&rn.createElement(rn.Fragment,null,rn.createElement(JN,{size:"30"}),rn.createElement(RN,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},ZN.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as S0,getCurrentStep as C0,getRelatedWalletOrNull as T0}from"@rango-dev/queue-manager-rango-preset";import{WalletState as k0}from"@rango-dev/ui";import{useWallets as w0}from"@rango-dev/wallets-react";import ES from"react";import{i18n as qn}from"@lingui/core";import{Alert as TS,Button as n0,Checkbox as r0,Divider as Ka,Image as i0,MessageBox as a0,Spinner as s0,WarningIcon as l0}from"@rango-dev/ui";import{useWallets as c0}from"@rango-dev/wallets-react";import Ce,{useState as p0}from"react";import{css as t0,darkTheme as o0,styled as gp}from"@rango-dev/ui";var SS=t0({wordWrap:"break-word",display:"block"}),CS=gp("img",{width:"100%"}),Ga=gp("div",{position:"relative"}),Va=gp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${o0} &`]:{$$color:"$warning600"}});var kS=r(t=>{let{wallet:e,namespace:o,onClose:n}=t,[i,a]=p0(null),{list:s}=It(),c=re.use.isActiveTab(),{state:l}=c0(),p=xt(),u=s.find(w=>w.type===e.walletType),m=u?.needsNamespace?.data.find(w=>w.value===o?.namespace);if(!u)return null;let d=l(e.walletType),h=o?.namespace?d.namespaces?.get(o.namespace):null,g=d.connecting||h?.connecting,f=h?.connected,y=r(()=>f?qn.t("Done"):i?qn.t("Try again"):qn.t("Connect"),"getButtonTitle"),k=r(()=>g?Ce.createElement(s0,{color:"info"}):i||f?null:Ce.createElement(r0,{checked:!0,disabled:!0}),"getNamespaceSuffix"),S=r(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0,{trigger:"swap-details-reconnect"})}catch(w){a(Ct(w)??w)}},"handleConnect"),T=r(async()=>{if(f){n();return}S()},"handleClickButton"),v=r(()=>{if(!f)return null;let w=h?.accounts?.[0]?.split(":"),A=w?.[w?.length-1];return A?fo(A):null},"getAddress");return Ce.createElement(Ce.Fragment,null,Ce.createElement(a0,{type:"warning",title:qn.t("Connect {wallet}",{wallet:u.title}),description:qn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:Ce.createElement(Ga,null,Ce.createElement(i0,{src:u.image,size:45}),Ce.createElement(Va,null,Ce.createElement(l0,{color:"warning",size:10})))}),f&&!m&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Ka,{size:10}),Ce.createElement(TS,{type:"success",variant:"alarm",title:qn.t("Wallet connected successfully.")})),i&&!m&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Ka,{size:10}),Ce.createElement(TS,{type:"error",title:i?.message,variant:"alarm"})),m&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Ka,{size:30}),Ce.createElement(zo,{namespace:m,suffix:k(),error:i?.message,connected:f,address:v()})),Ce.createElement(Ka,{size:"40"}),Ce.createElement(n0,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},y()))},"ConnectWalletContent");import{i18n as wS}from"@lingui/core";import{Button as u0,detectInstallLink as d0,Divider as m0,Image as f0,MessageBox as g0,WarningIcon as h0}from"@rango-dev/ui";import{useWallets as y0}from"@rango-dev/wallets-react";import uo from"react";var vS=r(t=>{let{walletType:e}=t,{getWalletInfo:o}=y0(),n=e?o(e):null;if(!n)return null;let i=r(()=>window.open(d0(n.installLink),"_blank"),"handleButtonClick");return uo.createElement(uo.Fragment,null,uo.createElement(g0,{type:"warning",title:wS.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:uo.createElement(Ga,null,uo.createElement(f0,{src:n.img,size:45}),uo.createElement(Va,null,uo.createElement(h0,{color:"warning",size:10})))}),uo.createElement(m0,{size:"40"}),uo.createElement(u0,{type:"primary",id:"widget-install-wallet-btn",onClick:i},wS.t("Install")))},"InstallWalletContent");var bS=r(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:i}=w0(),a=C0(e),s=a?T0(e,a):null,c=s?.walletType,l=c?tr(i(c),n(c)):null,p=a?S0(e,a):null;return c?l===k0.NOT_INSTALLED?ES.createElement(vS,{walletType:c}):ES.createElement(kS,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function hp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:i,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return jr.createElement(ie,{open:e,onClose:i,container:W()},o==="connectWallet"&&jr.createElement(bS,{swap:c,message:l,onClose:i}),o==="switchNetwork"&&n&&jr.createElement(yS,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&jr.createElement(hS,{onClose:i,onDelete:()=>{i(),a()}}),o==="cancel"&&jr.createElement(fS,{onClose:i,onCancel:()=>{i(),s()}}))}r(hp,"SwapDetailsModal");import{i18n as Xr}from"@lingui/core";import{Button as yp,Divider as Yr,MessageBox as AS,TokenAmount as v0,Typography as NS}from"@rango-dev/ui";import ke from"react";import{Link as E0,useNavigate as b0}from"react-router-dom";var xS="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",IS="/profile";function Sp(t){let{open:e,onClose:o,status:n,priceValue:i,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:m,diagnosisUrl:d}=t,h=b0(),{showProfileBanner:g}=re();return ke.createElement(ie,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(wt.SWAP_BOX_ID)||document.body},n==="success"?ke.createElement(AS,{type:"success",title:Xr.t("Swap Successful")},ke.createElement(v0,{direction:"vertical",tooltipContainer:W(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:i,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ke.createElement(Yr,{size:12}),ke.createElement(NS,{className:SS(),variant:"body",size:"medium",color:"neutral700",align:"center"},m)):ke.createElement(AS,{type:"error",title:Xr.t("Transaction Failed"),description:m}),ke.createElement(Yr,{size:30}),n==="success"&&ke.createElement(ke.Fragment,null,g&&ke.createElement(ke.Fragment,null,ke.createElement(E0,{to:IS},ke.createElement(CS,{src:xS,alt:"Profile Banner"})),ke.createElement(Yr,{size:30})),ke.createElement(yp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Xr.t("Done"))),ke.createElement(Yr,{size:12}),d&&ke.createElement(ke.Fragment,null,ke.createElement(yp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Xr.t("Diagnosis")),ke.createElement(Yr,{size:12})),ke.createElement(yp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ke.createElement(NS,{variant:"title",size:"medium",color:"primary"},Xr.t("See Details"))))}r(Sp,"SwapDetailsCompleteModal");import{i18n as Ya}from"@lingui/core";import{CopyIcon as F0,DoneIcon as $0,IconButton as O0,RangoExplorerIcon as U0,Tooltip as RS,Typography as JS,useCopyToClipboard as z0}from"@rango-dev/ui";import Bt from"react";import D0 from"react";import{i18n as P0}from"@lingui/core";import{Alert as jS,IconButton as _0,LinkIcon as B0}from"@rango-dev/ui";import Lo,{Fragment as M0}from"react";import{Alert as I0,ChevronDownIcon as A0,IconButton as N0}from"@rango-dev/ui";import Qn,{useState as W0}from"react";import{css as Zr,darkTheme as WS,styled as Qt,Typography as x0}from"@rango-dev/ui";var LS=Qt(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${WS} &`]:{color:"$secondary500"}}}}}),PS=Qt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),_S=Qt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),BS=Qt("div",{padding:"$0 $20 $20 $20"}),M7=Qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),MS=Qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),D7=Qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),an=Zr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${WS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),DS=Zr({padding:"$5 0"}),ja=Zr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),FS=Zr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),$S=Zr({width:"100%",padding:"0 $20 $10"}),OS=Qt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),US=Qt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Xa=Qt(x0,{wordBreak:"break-word"});import{styled as Cp}from"@rango-dev/ui";var zS=Cp("div",{display:"flex",flexDirection:"column",gap:"$10"}),qS=Cp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),QS=Cp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function HS(t){let{message:e}=t,[o,n]=W0(!1);return Qn.createElement(I0,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qn.createElement(N0,{id:"widget-swap-details-failed-btn",onClick:()=>n(i=>!i),variant:"ghost",size:"xsmall"},Qn.createElement(qS,{rotated:o},Qn.createElement(A0,{size:12,color:"gray"}))),footer:Qn.createElement(QS,{open:o},Qn.createElement(Xa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}r(HS,"FailedAlert");import{i18n as GS}from"@lingui/core";import{Alert as Tp,Button as VS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as L0}from"rango-types";import Rr from"react";function KS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:i,showNetworkModal:a}=t;return e?Rr.createElement(Tp,{type:"warning",id:"widget-swap-details-change-network-alert",title:i.shortMessage,action:Rr.createElement(VS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},GS.t("Change"))}):a===L0.WaitingForConnectingWallet?Rr.createElement(Tp,{type:"warning",title:i.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Rr.createElement(VS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},GS.t("Connect"))}):Rr.createElement(Tp,{id:"widget-swap-details-short-alert",type:"warning",title:i.shortMessage})}r(KS,"WarningAlert");function kp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:i,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=gr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,m=u&&!c||p&&!s.explorerUrl?.length;return Lo.createElement(zS,null,s.explorerUrl?.map((d,h,g)=>{let f=h+d.url,y=h===g.length-1,k=(y&&u||p)&&!m,S=y&&s.status==="failed";return Lo.createElement(M0,{key:f},Lo.createElement(jS,{id:"widget-swap-details-tx-alert",type:y&&(k&&"loading"||S&&"error")||"success",title:d.description?`${d.description} Tx`:P0.t("View transaction"),action:d.url&&Lo.createElement(_0,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Lo.createElement(B0,{size:12}))}))}),m&&Lo.createElement(jS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&Lo.createElement(KS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:i,message:a}),s.status==="failed"&&Lo.createElement(HS,{message:a}))}r(kp,"SwapDetailsAlerts");var XS=2e3;var YS=r(({swap:t,blockchains:e,swappers:o,...n})=>{let i=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=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:Tt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Tt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Yn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:Tt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:Tt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Yn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:D0.createElement(kp,{step:a,hasAlreadyProceededToSign:i,...n})}})},"getSteps");function ZS(t){if(gr(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"}}r(ZS,"getStepState");function eC(t){let{requestId:e}=t,[o,n]=z0(XS);return Bt.createElement(_S,{className:an()},Bt.createElement(JS,{variant:"label",size:"large",color:"neutral700"},Ya.t("Request ID")),Bt.createElement("div",{className:ja()},Bt.createElement(JS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(RS,{container:W(),content:o?Ya.t("Copied To Clipboard"):Ya.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(O0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement($0,{size:16,color:"secondary"}):Bt.createElement(F0,{size:16,color:"gray"}))),Bt.createElement(OS,{target:"_blank",href:`${Su}/swap/${e}`},Bt.createElement(RS,{container:W(),content:Ya.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(U0,{size:20})))))}r(eC,"RequestIdRow");import{i18n as tC}from"@lingui/core";import{Typography as oC}from"@rango-dev/ui";import wp from"react";function nC(t){let{date:e,isFinished:o}=t;return wp.createElement("div",{className:an()},wp.createElement(oC,{variant:"label",size:"large",color:"neutral700"},o?tC.t("Finished at"):tC.t("Created at")),wp.createElement(oC,{variant:"label",size:"small",color:"neutral700"},e))}r(nC,"SwapDateRow");var Y0=3e3;function xp(t){let{swap:e,requestId:o,onDelete:n,onCancel:i}=t,{canSwitchNetworkTo:a,getWalletInfo:s}=j0(),c=xt(),l=C().blockchains(),p=C().swappers(),{findToken:u}=C(),m=z().use.retry(),d=X0(),h=bp(null),[g,f]=Za(!1),[y,k]=Za(null),[S,T]=Za(null),[v,w]=Za(null),A=bp(y),I=bp(S),b=Le.use.getNotifications(),x=Le.use.removeNotification(),E=b(),P=Q0(e),N=P?.networkStatus,O=r(Ne=>{f(!0),k(Ne)},"handleChangeModalState"),H=r(()=>{f(!1)},"handleCloseModal"),j=r(()=>{T({type:"loading",title:Ht.t("Change Network"),description:`We\u2019re switching the connected network to ${Y?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),ee=r(()=>{T({type:"success",title:Ht.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),L=r(Ne=>{T({type:"error",title:Ht.t("Network Switch Failed"),description:Ne?.message||q.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Z=gm(e),Y=P?q0(e,P):null,ue=P?H0(e,P):null,Ee=dS(e),Kt=hm(e),be=r(Ne=>!!s(Ne)?.mobileWallet,"checkIsMobileWallet"),Qe=!!N&&[Hn.WaitingForNetworkChange,Hn.NetworkChangeFailed].includes(N),Xe=!!ue?.walletType&&be(ue.walletType),St=!!ue&&!!Y&&a(ue.walletType,Y.network,Y),ct=!!Y&&Qe&&(Xe||St),_=r(()=>{ct&&(j(),c(ue.walletType,[{namespace:Y.namespace,network:Y.network}],{trigger:"swap-details-switch-network"}).then(()=>{ee()}).catch(Ne=>{L(Ct(Ne)??Ne)}))},"handleSwitchNetwork"),V=r(()=>{O("switchNetwork"),_()},"handleSwitchNetworkClick"),q=fm(e,P,s),X=YS({swap:e,switchNetworkIsAvailable:ct,handleSwitchNetworkClick:V,showNetworkModal:N,setNetworkModal:O,message:q,blockchains:l,swappers:p}),G=X.length,[R,U]=[e.steps[0],e.steps[G-1]],de=U?.outputAmount||U?.expectedOutputAmountHumanReadable,He=e.steps.reduce((Ne,Mt)=>Ne+parseFloat(Mt.feeInUsd||""),0),ot=e.steps.find(Ne=>Ne.diagnosisUrl)?.diagnosisUrl,mo=M(parseFloat(de||"0")*(U?.toUsdPrice||0),4,4),Kn=M(parseFloat(e.inputAmount)*(R?.fromUsdPrice||0),4,4),Po=de?new iC(de).multipliedBy(U.toUsdPrice||0).toString():"",oi=new iC(e.inputAmount).multipliedBy(R?.fromUsdPrice||0).toString(),ln=Jt(Kn,mo),ls=q.detailedMessage.content||q.shortMessage,zC=e.status==="success"?Ht.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(de,6,6),token:X[G-1]?.to.token.displayName,conciseAddress:fo(e.wallets[X[G-1]?.to.chain.displayName||""]?.address||""),chain:X[G-1]?.to.chain.displayName}}):we.createElement(US,null,we.createElement(vp,{variant:"body",size:"medium",color:"neutral700",align:"center"},ls?"":Ht.t("Transaction was not sent."),Z?`${Ht.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Z.outputAmount,symbol:Z.symbol,blockchain:Z.blockchain}})}`:""),ls&&we.createElement(Xa,{align:"center",variant:"body",size:"medium",color:"neutral700"},we.createElement("b",null,"Reason:")," ",ls));return Ep(()=>{E.find(Mt=>Mt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),x(e.requestId),H()):v&&w(null))},[e.status,e.requestId]),Ep(()=>{if(ct){if(O("switchNetwork"),N===Hn.WaitingForNetworkChange){j();return}if(N===Hn.NetworkChangeFailed){L();return}return}if(N===Hn.WaitingForConnectingWallet){O("connectWallet");return}if(N===Hn.NetworkChanged){O("switchNetwork"),ee();return}y&&["connectWallet","switchNetwork"].includes(y)&&H()},[N]),Ep(()=>{if(A.current=y,I.current=S,y==="switchNetwork"&&S?.type==="success"){let Ne=setTimeout(()=>{A.current==="switchNetwork"&&I.current?.type==="success"&&H()},Y0);return()=>clearTimeout(Ne)}},[y,S]),we.createElement(se,{header:{title:Ht.t("Swap Details"),onCancel:e.status==="running"?()=>O("cancel"):void 0,suffix:e.status!=="running"&&we.createElement(Co,null,we.createElement(rC,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>O("delete")},we.createElement(vp,{size:"medium",variant:"label",color:"error"},Ht.t("Delete"))))},footer:Kt&&!v&&we.createElement(rC,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{oe({type:"swapRetried",payload:{routeId:e.requestId}});let Ne=Bi(e,l,u);m(Ne),setTimeout(()=>{d("../../")},0)}},Ht.t("Try again"))},we.createElement(LS,{compact:!0,ref:h},we.createElement(eC,{requestId:o}),we.createElement(nC,{date:Ee,isFinished:!!e.finishTime}),we.createElement("div",{className:FS()},we.createElement(V0,{fee:M(String(He),2,2),time:Jn(mi(e.steps)),steps:G}),we.createElement(vr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:Kn,realUsdValue:oi,realValue:e.inputAmount},token:{displayName:X[0]?.from.token.displayName||"",image:X[0]?.from.token.image},chain:{image:X[0]?.from.chain.image,displayName:X[0]?.from.chain.displayName||""}},to:{price:{value:M(de,6,6),usdValue:mo,realUsdValue:Po,realValue:de||""},token:{displayName:X[G-1]?.to.token.displayName||"",image:X[G-1]?.to.token.image},chain:{image:X[G-1]?.to.chain.image,displayName:X[G-1]?.to.chain.displayName||""}},percentageChange:M(ln,2,2),warningLevel:eo(ln??0)})),we.createElement("div",{className:$S()},we.createElement(vp,{variant:"title",size:"small"},Ht.t("Swaps steps"))),we.createElement(G0,{size:8}),we.createElement(BS,null,X.map((Ne,Mt)=>{let Op=Mt,jn=e.steps[Mt]&&ZS(e.steps[Mt]),qC=jn==="error"||jn==="in-progress"||jn==="warning"||jn==="completed"&&Mt===X.length-1;return we.createElement(K0,{className:"widget-swap-details-step-item-container",key:Op,step:Ne,type:"swap-progress",ref:h,state:jn,hasSeparator:Mt!==0,tabIndex:Op,isFocused:qC,tooltipContainer:W()})}))),we.createElement(hp,{isOpen:g,state:y,switchNetworkModalState:S,onClose:H,onCancel:i,onDelete:n,message:q.detailedMessage.content,swap:e,handleSwitchNetwork:V}),we.createElement(Sp,{open:!!v,diagnosisUrl:ot,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(de,6,6),usdValue:mo,realUsdValue:Po,realValue:de||"",percentageChange:M(ln,2,2),token:{displayName:X[G-1]?.to.token.displayName||"",image:X[G-1]?.to.token.image},chain:{image:X[G-1]?.to.chain.image},description:zC}))}r(xp,"SwapDetails");import{i18n as Ja}from"@lingui/core";import{Divider as lC,NotFound as tW,Skeleton as ei,Typography as es}from"@rango-dev/ui";import Ae from"react";import{i18n as Z0}from"@lingui/core";import{Divider as R0,Skeleton as J0,Typography as eW}from"@rango-dev/ui";import Ie from"react";import{css as Gt,styled as Ip}from"@rango-dev/ui";var aC=Ip("div",{width:"100%",height:"100%",padding:"$10 $20"}),Jr=Ip("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ra=Ip("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),mZ=Gt({display:"flex",justifyContent:"space-between",alignItems:"center"}),fZ=Gt({paddingTop:"$15",display:"flex"}),gZ=Gt({padding:"$15 $0"}),hZ=Gt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),yZ=Gt({paddingBottom:"$10"}),SZ=Gt({display:"flex",justifyContent:"start",alignItems:"center"}),CZ=Gt({paddingTop:"$5",display:"flex",alignItems:"center"}),TZ=Gt({display:"flex",alignItems:"center"}),kZ=Gt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),sC=Gt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Ap(){return Ie.createElement(aC,null,Ie.createElement(xr,{type:"swap-preview"}),Ie.createElement("div",{className:"swaps-steps"},Ie.createElement(eW,{variant:"title",size:"small"},Z0.t("Swaps steps"))),Ie.createElement(Ie.Fragment,null,Ie.createElement(Jr,null,Ie.createElement(zt,{separator:!1}),Ie.createElement("div",{className:sC()},Ie.createElement(R0,{direction:"horizontal",size:20}),Ie.createElement(J0,{height:22,variant:"rectangular"}))),Ie.createElement(Ra,null),Ie.createElement(Jr,null,Ie.createElement(zt,{separator:!1})),Ie.createElement(Ra,null),Ie.createElement(Jr,null,Ie.createElement(zt,{separator:!1})),Ie.createElement(Ra,null),Ie.createElement(Jr,null,Ie.createElement(zt,{separator:!1}))))}r(Ap,"LoadingSwapDetails");function cC(t){let{requestId:e,showSkeleton:o}=t;return Ae.createElement(se,{header:{title:Ja.t("Swap Details"),suffix:Ae.createElement(Co,null)}},o&&Ae.createElement(PS,null,Ae.createElement("div",{className:an()},Ae.createElement(es,{variant:"label",size:"large",color:"neutral700"},`${Ja.t("Request ID")}`),Ae.createElement("div",{className:ja()},Ae.createElement(es,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(ei,{width:60,height:10,variant:"rounded"})),Ae.createElement(lC,{direction:"horizontal",size:4}),Ae.createElement(ei,{width:16,height:16,variant:"rectangular"}),Ae.createElement(lC,{direction:"horizontal",size:4}),Ae.createElement(ei,{width:16,height:16,variant:"rectangular"}))),Ae.createElement("div",{className:an()},Ae.createElement(es,{className:DS(),variant:"label",size:"large",color:"neutral700"},Ae.createElement(ei,{width:60,height:10,variant:"rounded"})),Ae.createElement(es,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(ei,{width:60,height:10,variant:"rounded"}))),Ae.createElement(Ap,null)),!o&&Ae.createElement(MS,null,Ae.createElement(tW,{title:Ja.t("Not found"),description:Ja.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}r(cC,"SwapDetailsPlaceholder");function pC(){let{manager:t,state:e}=rW(),o=!e.loadedFromPersistor,n=Et(t),{requestId:i}=aW(),a=Ve(),{fetchStatus:s}=C();if(!i)return Np.createElement(iW,{containerStyles:{margin:"20px"},type:"error",title:oW.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=i?n.find(({swap:d})=>d.requestId===i):void 0,p=r(()=>{if(l?.id){let d=t?.get(l.id);d&&(oe({type:"swapCancelled",payload:{routeId:i}}),nW(d))}},"onCancel"),u=r(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(d){console.log(d)}},"onDelete"),m=l?.swap;return!m||c?Np.createElement(cC,{requestId:i,showSkeleton:c}):Np.createElement(xp,{swap:m,requestId:i,onCancel:p,onDelete:u})}r(pC,"SwapDetailsPage");import{i18n as uC}from"@lingui/core";import{Divider as sW,getCategoriesCount as lW,SelectableCategoryList as cW,styled as mC,Typography as pW,Wallet as uW}from"@rango-dev/ui";import Vt,{useState as dC}from"react";var dW=mC("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),mW=mC(ce,{textAlign:"center"});function fC(){let{fetchStatus:t}=C(),[e,o]=dC("ALL"),n=C().blockchains(),{config:i}=C(),[a,s]=dC(),c=re.use.isActiveTab(),{list:l}=It(),p=ju(l,n),m=lW(p)!==1,d=Xu(l,e),h=r(g=>{Iu(l,i.multiWallets)||s(g)},"handleWalletItemClick");return Vt.createElement(se,{header:{title:uC.t("Connect Wallets")}},Vt.createElement(mW,null,m&&Vt.createElement(Vt.Fragment,null,Vt.createElement(cW,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Vt.createElement(sW,{size:24})),Vt.createElement(pW,{variant:"title",size:"xmedium",align:"center"},uC.t("Choose a wallet to connect.")),Vt.createElement(dW,null,d.map((g,f)=>{let y=`wallet-${f}-${g.type}`;return Vt.createElement(uW,{key:y,...g,state:g.state,container:W(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),Vt.createElement(mr,{id:"widget-state-full-connect-modal",wallet:a,trigger:"wallets-page",onClose:()=>{s(void 0)}}))))}r(fC,"WalletsPage");function gC(){return Im(),tl(),fW([{path:F.home,element:qe.createElement(Wy,null)},{path:F.routes,element:qe.createElement(My,null)},{path:F.fromSwap,children:[{index:!0,element:qe.createElement(Ua,{type:"source"})},{path:F.blockchains,element:qe.createElement(Da,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:qe.createElement(Ua,{type:"destination"})},{path:F.blockchains,element:qe.createElement(Da,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:qe.createElement(pS,null)},{path:F.languages,element:qe.createElement(Py,null)},{path:F.exchanges,element:qe.createElement(Jc,{sourceType:"Exchanges"})},{path:F.bridges,element:qe.createElement(Jc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:qe.createElement(Ph,null)},{path:F.addCustomTokens,children:[{index:!0,element:qe.createElement(bf,null)},{path:F.blockchains,element:qe.createElement(Da,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:qe.createElement(Rh,null)},{path:F.swapDetails,element:qe.createElement(pC,null)}]},{path:F.wallets,element:qe.createElement(fC,null)},{path:F.confirmSwap,element:qe.createElement(hh,null)}])}r(gC,"AppRoutes");import{useQueueManager as WW}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as LW}from"rango-sdk";import{useContext as PW,useEffect as _p,useState as AC}from"react";import{WalletTypes as ti}from"@rango-dev/provider-all";import{Provider as SW}from"@rango-dev/wallets-react";import ts,{createContext as CW,useEffect as kC,useMemo as TW,useRef as wC}from"react";import{useEffect as gW}from"react";function hC(t){return t.map(e=>typeof e=="string"?e:e.id).join("-")}r(hC,"hashProviders");function Wp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:i}=C(),a=n();return gW(()=>{o(),i()},[hC(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}r(Wp,"useWalletProviders");import{Events as Gn}from"@rango-dev/wallets-react";import{isEvmBlockchain as hW}from"rango-sdk";function yC(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,blockchains:i}=C(),{onConnectWalletHandler:a,onDisconnectWalletHandler:s}=t,c=i().filter(hW).map(u=>u.name),l=r((u,m)=>{let[d,,h,g,f]=u,y={walletType:d,network:g.network??void 0,accounts:h};a.current?a.current(y):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let k=qu(d,h,c,m.supportedChainNames,f.isContractWallet);k.length&&e(k,f.namespace,g.derivationPath,{walletName:d})},"onAccountsEvent");return{handler:r((u,m,d,h,g)=>{if(m===Gn.ACCOUNTS){let f=hi(g.supportedBlockchains);d&&l([u,m,d,h,g],{supportedChainNames:f})}if(m===Gn.PROVIDER_DISCONNECTED&&(o(u),s.current?s.current(u):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),m===Gn.NAMESPACE_DISCONNECTED&&n(u,d),m===Gn.AUTO_CONNECT_FAILED&&cs(u,d),m===Gn.CONNECTED&&d){let f={walletType:u,network:h.network??void 0,accounts:h.accounts??void 0};a.current?a.current(f):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(m===Gn.NETWORK&&d){let f={walletType:u,network:d,accounts:h.accounts??void 0};a.current?a.current(f):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handler")}}r(yC,"useUpdates");import{Events as SC}from"@rango-dev/wallets-react";var CC=[SC.PROVIDER_DISCONNECTED,SC.AUTO_CONNECT_FAILED];function yW(t){return CC.includes(t)}r(yW,"isInternalEvent");function TC(t,e){let[o,n,i,a,s]=e;yW(n)||t(o,n,i,a,s)}r(TC,"propagateEvents");var os=CW({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function kW(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:i}=C(),a=C().blockchains(),s=C().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=Wp(s.wallets,c),p=wC(),u=wC(),{handler:m}=yC({onConnectWalletHandler:p,onDisconnectWalletHandler:u});kC(()=>{n().catch(console.log)},[]),kC(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,i]);let d=re.use.isActiveTab(),h=TW(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return ts.createElement(os.Provider,{value:h},ts.createElement(SW,{allBlockChains:a,providers:l,onUpdateState:(g,f,y,k,S)=>{let T=[g,f,y,k,S];m(...T),t.onUpdateState&&TC(t.onUpdateState,T)},autoConnect:!!d,configs:{wallets:s.wallets,walletOptions:{[ti.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}},[ti.OKX]:{provider:{tonConnectManifestUrl:s.tonConnect?.manifestUrl}},[ti.TREZOR]:{provider:{manifest:s.trezorManifest}},[ti.WALLET_CONNECT_2]:{provider:{WC_PROJECT_ID:s.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:s.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,meta:a}},[ti.LEDGER_WALLET]:{provider:s.ledgerWallet}}}},t.children))}r(kW,"Main");function ns(t){let{config:e,...o}=t;return ts.createElement(md,{config:e},ts.createElement(kW,{...o,config:e}))}r(ns,"WidgetWallets");import{globalCss as wW}from"@rango-dev/ui";var vC=r(()=>wW({"@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");import{useWallets as vW}from"@rango-dev/wallets-react";import{useEffect as EW,useRef as bW}from"react";function EC(){let{connect:t,state:e}=vW(),o=bW({}),{fetchStatus:n}=C(),i=new URLSearchParams(location.search).get("autoConnect")||"",a=e(i);EW(()=>{n==="success"&&i&&a.installed&&!a.connecting&&!a.connected&&!o.current[i]&&(o.current[i]=!0,t(i))},[a,n])}r(EC,"useForceAutoConnect");import{isApprovalTX as xW,RouteEventType as bC,StepEventType as xC,StepExecutionEventStatus as IW,WidgetEvents as rs}from"@rango-dev/queue-manager-rango-preset";import{useEffect as IC}from"react";function Lp(){let t=Le.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=C();IC(()=>{let i=r(a=>{let{event:s,step:c,route:l}=a;if(s.type===xC.TX_EXECUTION&&s.status===IW.TX_SENT&&!xW(c)||s.type===xC.SUCCEEDED){let u=[],m=l.wallets[c?.fromBlockchain];if(m){let d=e.find(h=>h.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&h.walletType===m.walletType&&h.chain===c?.fromBlockchain);d&&u.push(d)}if(c?.fromBlockchain!==c?.toBlockchain){let d=l.wallets[c?.toBlockchain];if(d){let h=e.find(g=>g.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&g.walletType===d.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let d=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(f=>d.some(y=>y.blockchain===f.blockchain&&y.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===f.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ge.on(rs.StepEvent,i),()=>ge.off(rs.StepEvent,i)},[ge,e]),IC(()=>{let i=r(a=>{let{event:s,route:c}=a;(s.type===bC.FAILED||s.type===bC.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ge.on(rs.RouteEvent,i),()=>ge.off(rs.RouteEvent,i)},[ge])}r(Lp,"useSubscribeToWidgetEvents");import{useManager as AW}from"@rango-dev/queue-manager-react";import{useEffect as NW}from"react";function Pp(){let{isSynced:t,syncNotifications:e}=Le(),{manager:o,state:n}=AW();NW(()=>{if(Le.persist.hasHydrated()&&n.loadedFromPersistor&&!t){let a=Et(o);e(a),a.forEach(({swap:s})=>{if(!(s.status==="running"&&s.steps.length>1))return;let l=s.steps.findIndex(p=>p.status!=="success");l!==-1&&oe({type:"swapResumed",payload:{routeId:s.requestId,stepCount:s.steps.length,stepNumber:l+1}})})}},[Le.persist.hasHydrated(),n.loadedFromPersistor,t])}r(Pp,"useSyncNotifications");function Bp(){EC(),vC(),Lp(),Pp();let t=C().blockchains(),{canSwitchNetworkTo:e}=NC(),[o,n]=AC(null),[i,a]=AC(),s=PW(os),c=t.filter(LW);_p(()=>()=>bm(),[]),_p(()=>()=>xm(),[]),WW({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:i,evmChains:c,canSwitchNetworkTo:e}),_p(()=>(Uo.init(),Le.persist.hasHydrated()||Le.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Uo.destroy),[])}r(Bp,"useBootstrap");import{styled as _W}from"@rango-dev/ui";var WC=_W("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function sn(){Bp();let{config:t}=C(),{activeTheme:e}=So(t?.theme||{}),{activeLanguage:o}=Io();return Mp.createElement(BW,{language:o},Mp.createElement(WC,{id:"swap-container",className:e()},Mp.createElement(gC,null)))}r(sn,"Main");import{setSolanaSignerConfig as tL}from"@rango-dev/signer-solana";import Fp,{useEffect as $p,useMemo as oL}from"react";function LC(){let{setWatermark:t,setShowProfileBanner:e}=re();return{fetchApiConfig:r(async()=>{let n=await fetch(`${Yt("BASE_URL")}/meta/dapp/config?apiKey=${Yt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let i=await n.json();t(i.config.watermark),e(i.config.banners.profile)},"fetchApiConfig")}}r(LC,"useFetchApiConfig");import{useState as MW}from"react";var DW=r(()=>{let[t,e]=MW(null),o=r(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=r(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:r(a=>{n();let s=xu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),PC=DW;import{convertEvmBlockchainMetaToEvmChainInfo as FW}from"@rango-dev/internal-blockchains";import{checkWaitingForNetworkChange as $W,makeQueueDefinition as OW}from"@rango-dev/queue-manager-rango-preset";import{Provider as UW}from"@rango-dev/queue-manager-react";import{useWallets as zW}from"@rango-dev/wallets-react";import{isEvmBlockchain as qW}from"rango-types";import QW,{useMemo as HW}from"react";function GW(t){let{getSigners:e,state:o,canSwitchNetworkTo:n,getWalletInfo:i,hubProvider:a}=zW(),s=xt(),c=HW(()=>OW({API_KEY:t.apiKey||Yt("API_KEY"),BASE_URL:Yt("BASE_URL"),emitter:{emit:ge.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=C(),u=l(),m={blockchains:p.map(T=>({accounts:[T],name:T.chain}))},d=r(async(T,v)=>n(T,v.network,v)?await s(T,[v],{trigger:"queue-switch-network"}):void 0,"switchNetwork"),h=r(T=>!!i(T).mobileWallet,"isMobileWallet"),g=u.filter(T=>T.enabled).reduce((T,v)=>(T[v.name]=v,T),{}),f=u.filter(qW),y=r(T=>{let{supportedChains:v}=i(T);return hi(v)},"getSupportedChainNames"),k={meta:{blockchains:g,evmBasedChains:f,evmNetworkChainInfo:FW(f),getSupportedChainNames:y},getSigners:async T=>{try{return await e(T)}catch(v){throw Ct(v)??v}},wallets:m,switchNetwork:d,canSwitchNetworkTo:n,state:o,isMobileWallet:h,hubProvider:a},S=re.use.isActiveTab();return QW.createElement(UW,{queuesDefs:[c],context:k,onPersistedDataLoaded:T=>{$W(T)},isPaused:!S},t.children)}r(GW,"QueueManager");var _C=GW;import{useManager as YW}from"@rango-dev/queue-manager-react";import ZW,{createContext as RW,useContext as JW}from"react";function BC(){let{findToken:t}=C(),e=C().blockchains(),o=C().tokens(),{setFromBlockchain:n,setFromToken:i,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return r(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:d,toToken:h,requestAmount:g}=p,f={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(k=>k.name===u)??null;n(y)}if(m!==void 0){let y=m?t(m)??null:null;i({meta:f,token:y})}if(d!==void 0){let y=e.find(k=>k.name===d)??null;a(y)}if(h!==void 0){let y=h?t(h)??null:null;s({meta:f,token:y})}g!==void 0&&c(g)},"updateQuoteInputs")}r(BC,"useUpdateQuoteInputs");import{cancelSwap as VW,getCurrentNamespaceOfOrNull as KW,getCurrentStep as jW,getRelatedWalletOrNull as XW}from"@rango-dev/queue-manager-rango-preset";var is=class{static{r(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Et(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=Bi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&VW(o)}getCurrentStepInfo(e){let o=jW(e);return{step:o,wallet:o?XW(e,o):null,network:o?KW(e,o)?.network:null}}};var MC=RW(void 0);function Dp(t){let{manager:e}=YW(),o=re.use.isActiveTab(),n=z().use.retry(),{findToken:i,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=C(),l=new is(e,{retrySwap:n,findToken:i}),{fetchingWallets:p}=C(),u=Qu(a()),m=C().blockchains(),d=C().tokens(),h=C().swappers(),g=C().fetchStatus,f=Io().resetLanguage,y=Le().getNotifications(),k=Le().clearNotifications,S=BC(),{fromBlockchain:T,toBlockchain:v,fromToken:w,toToken:A,inputAmount:I}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Uo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async x=>c(x)},meta:{blockchains:m,tokens:d,swappers:h,loadingStatus:g,findToken:i},resetLanguage:f,notifications:{list:y,clearAll:k},quote:{quoteInputs:{fromBlockchain:T?.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:I},updateQuoteInputs:S}};return ZW.createElement(MC.Provider,{value:b},t.children)}r(Dp,"WidgetInfo");function DC(){let t=JW(MC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}r(DC,"useWidget");import{Provider as eL}from"@hub3js/core";function FC(t){return typeof t=="string"||t instanceof eL}r(FC,"isHubWallet");function Vn(t){let{onUpdateState:e,config:o}=t,n=o?.wallets;if(n&&!n.every(FC))throw new Error("Legacy providers aren't supported anymore. Expected a provider with version '1.0.0'.");let i=t.config?.theme?.fontFamily,{fetchApiConfig:a}=LC(),{handleLoadCustomFont:s}=PC();return $p(()=>{a().catch(console.log)},[]),$p(()=>{i&&s(i)},[i]),oL(()=>{Yu({API_KEY:o?.apiKey||fu(),BASE_URL:o?.apiUrl||yu})},[o.apiKey,o.apiUrl]),$p(()=>{t.config?.signers?.customSolanaRPC&&tL("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Fp.createElement(ns,{config:{...o,wallets:n},onUpdateState:e},Fp.createElement(_C,{apiKey:o.apiKey},Fp.createElement(Dp,null,t.children)))}r(Vn,"WidgetProvider");function $C(t){let e=t.config?.externalWallets;return as.createElement(Pi,null,e?as.createElement(sn,null):as.createElement(Vn,{config:t.config??Rn},as.createElement(sn,null)))}r($C,"Refuel");import ss from"react";function OC(t){let e=t.config?.externalWallets;return ss.createElement(Pi,null,e?ss.createElement(sn,null):ss.createElement(Vn,{config:t.config??Rn},ss.createElement(sn,null)))}r(OC,"Widget");function UC(){let{on:t,off:e}=ge;return{on:t,off:e}}r(UC,"useWidgetEvents");var Ioe={DerivationPath:pr,Namespaces:sr,Detached:cr,isOnDerivationPath:dr,isOnNamespace:ur,isOnDetached:_o};export{toe as EventSeverity,cn as MainEvents,Rte as Networks,coe as PendingSwapNetworkStatus,Xn as QuoteEventTypes,$C as Refuel,ooe as RouteEventType,fs as SUPPORTED_FONTS,Ioe as StatefulConnect,noe as StepEventType,roe as StepExecutionBlockedEventStatus,ioe as StepExecutionEventStatus,Qd as SwapModeContext,wt as UI_ID,Ze as UiEventTypes,ni as WalletEventTypes,soe as WalletEvents,OC as Widget,cn as WidgetEvents,Vn as WidgetProvider,ns as WidgetWallets,gl as customizedThemeTokens,ds as pickProviderVersion,Jte as readAccountAddress,pn as useStatefulConnect,It as useWalletList,NC as useWallets,DC as useWidget,UC as useWidgetEvents,gk as widgetEventEmitter};
3
4
  //# sourceMappingURL=index.js.map