@rango-dev/widget-embedded 0.17.1-next.2 → 0.17.1-next.21

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 (374) hide show
  1. package/dist/QueueManager.d.ts +5 -2
  2. package/dist/QueueManager.d.ts.map +1 -1
  3. package/dist/components/AppRouter.d.ts +0 -2
  4. package/dist/components/AppRouter.d.ts.map +1 -1
  5. package/dist/components/AppRoutes.d.ts +1 -6
  6. package/dist/components/AppRoutes.d.ts.map +1 -1
  7. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts +1 -3
  8. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts.map +1 -1
  9. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +1 -1
  10. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  11. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts +1 -3
  12. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts.map +1 -1
  13. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  14. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +1 -4
  15. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -1
  16. package/dist/components/Layout/Layout.d.ts.map +1 -1
  17. package/dist/components/Layout/Layout.types.d.ts +2 -2
  18. package/dist/components/Layout/Layout.types.d.ts.map +1 -1
  19. package/dist/components/NoResult/NoResult.d.ts +4 -0
  20. package/dist/components/NoResult/NoResult.d.ts.map +1 -0
  21. package/dist/components/NoResult/NoResult.helpers.d.ts +4 -0
  22. package/dist/components/NoResult/NoResult.helpers.d.ts.map +1 -0
  23. package/dist/components/{NoRoutes/NoRoutes.styles.d.ts → NoResult/NoResult.styles.d.ts} +1 -1
  24. package/dist/components/{NoRoutes/NoRoutes.styles.d.ts.map → NoResult/NoResult.styles.d.ts.map} +1 -1
  25. package/dist/components/{NoRoutes/NoRoutes.types.d.ts → NoResult/NoResult.types.d.ts} +3 -3
  26. package/dist/components/NoResult/NoResult.types.d.ts.map +1 -0
  27. package/dist/components/NoResult/index.d.ts +2 -0
  28. package/dist/components/NoResult/index.d.ts.map +1 -0
  29. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  30. package/dist/components/Quote/Quote.d.ts +4 -0
  31. package/dist/components/Quote/Quote.d.ts.map +1 -0
  32. package/dist/components/Quote/Quote.styles.d.ts +1588 -0
  33. package/dist/components/Quote/Quote.styles.d.ts.map +1 -0
  34. package/dist/components/Quote/Quote.types.d.ts +21 -0
  35. package/dist/components/Quote/Quote.types.d.ts.map +1 -0
  36. package/dist/components/Quote/QuoteSkeleton.d.ts +4 -0
  37. package/dist/components/Quote/QuoteSkeleton.d.ts.map +1 -0
  38. package/dist/components/Quote/QuoteSkeleton.styles.d.ts +319 -0
  39. package/dist/components/Quote/QuoteSkeleton.styles.d.ts.map +1 -0
  40. package/dist/components/Quote/QuoteSkeleton.types.d.ts +6 -0
  41. package/dist/components/Quote/QuoteSkeleton.types.d.ts.map +1 -0
  42. package/dist/components/Quote/QuoteSummary.d.ts +11 -0
  43. package/dist/components/Quote/QuoteSummary.d.ts.map +1 -0
  44. package/dist/components/Quote/QuoteSummary.styles.d.ts +158 -0
  45. package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -0
  46. package/dist/components/Quote/index.d.ts +4 -0
  47. package/dist/components/Quote/index.d.ts.map +1 -0
  48. package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts +11 -0
  49. package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts.map +1 -0
  50. package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts +4 -0
  51. package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts.map +1 -0
  52. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts +4 -0
  53. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -0
  54. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts +9 -0
  55. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -0
  56. package/dist/components/{RouteErrors/RouteErrors.styles.d.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts} +1 -1
  57. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -0
  58. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +23 -0
  59. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -0
  60. package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts +11 -0
  61. package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts.map +1 -0
  62. package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts +11 -0
  63. package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts.map +1 -0
  64. package/dist/components/QuoteWarningsAndErrors/index.d.ts +2 -0
  65. package/dist/components/QuoteWarningsAndErrors/index.d.ts.map +1 -0
  66. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
  67. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  68. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  69. package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
  70. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -1
  71. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  72. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
  73. package/dist/components/UpdateUrl.d.ts +1 -6
  74. package/dist/components/UpdateUrl.d.ts.map +1 -1
  75. package/dist/components/WidgetEvents.d.ts.map +1 -1
  76. package/dist/constants/errors.d.ts +4 -4
  77. package/dist/constants/errors.d.ts.map +1 -1
  78. package/dist/constants/index.d.ts +1 -0
  79. package/dist/constants/index.d.ts.map +1 -1
  80. package/dist/constants/messages.d.ts +1 -1
  81. package/dist/constants/navigationRoutes.d.ts +1 -2
  82. package/dist/constants/navigationRoutes.d.ts.map +1 -1
  83. package/dist/constants/searchParams.d.ts +2 -1
  84. package/dist/constants/searchParams.d.ts.map +1 -1
  85. package/dist/constants/warnings.d.ts +2 -2
  86. package/dist/constants/warnings.d.ts.map +1 -1
  87. package/dist/containers/App/App.d.ts +3 -0
  88. package/dist/containers/App/App.d.ts.map +1 -0
  89. package/dist/containers/App/App.styles.d.ts +158 -0
  90. package/dist/containers/App/App.styles.d.ts.map +1 -0
  91. package/dist/containers/App/index.d.ts +2 -0
  92. package/dist/containers/App/index.d.ts.map +1 -0
  93. package/dist/containers/QuoteInfo/QuoteInfo.d.ts +4 -0
  94. package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -0
  95. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +788 -0
  96. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -0
  97. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +20 -0
  98. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -0
  99. package/dist/containers/QuoteInfo/index.d.ts +2 -0
  100. package/dist/containers/QuoteInfo/index.d.ts.map +1 -0
  101. package/dist/containers/Wallets/Wallets.d.ts +6 -0
  102. package/dist/containers/Wallets/Wallets.d.ts.map +1 -0
  103. package/dist/containers/Wallets/Wallets.types.d.ts +11 -0
  104. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -0
  105. package/dist/containers/Wallets/index.d.ts +2 -0
  106. package/dist/containers/Wallets/index.d.ts.map +1 -0
  107. package/dist/containers/Widget/Widget.d.ts +5 -0
  108. package/dist/containers/Widget/Widget.d.ts.map +1 -0
  109. package/dist/containers/Widget/Widget.types.d.ts +5 -0
  110. package/dist/containers/Widget/Widget.types.d.ts.map +1 -0
  111. package/dist/containers/Widget/index.d.ts +3 -0
  112. package/dist/containers/Widget/index.d.ts.map +1 -0
  113. package/dist/containers/WidgetInfo/WidgetInfo.d.ts +6 -0
  114. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -0
  115. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +14 -0
  116. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -0
  117. package/dist/containers/WidgetInfo/index.d.ts +2 -0
  118. package/dist/containers/WidgetInfo/index.d.ts.map +1 -0
  119. package/dist/containers/WidgetProvider/WidgetProvider.d.ts +5 -0
  120. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -0
  121. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +7 -0
  122. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -0
  123. package/dist/containers/WidgetProvider/index.d.ts +2 -0
  124. package/dist/containers/WidgetProvider/index.d.ts.map +1 -0
  125. package/dist/hooks/useConfirmSwap/index.d.ts +2 -0
  126. package/dist/hooks/useConfirmSwap/index.d.ts.map +1 -0
  127. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts +3 -0
  128. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -0
  129. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +19 -0
  130. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -0
  131. package/dist/hooks/{useConfirmSwap.d.ts → useConfirmSwap/useConfirmSwap.types.d.ts} +5 -7
  132. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -0
  133. package/dist/hooks/{useFetchBestRoute.d.ts → useFetchQuote.d.ts} +3 -3
  134. package/dist/hooks/useFetchQuote.d.ts.map +1 -0
  135. package/dist/hooks/useForceAutoConnect.d.ts +2 -0
  136. package/dist/hooks/useForceAutoConnect.d.ts.map +1 -0
  137. package/dist/hooks/useLanguage.d.ts +1 -1
  138. package/dist/hooks/useLanguage.d.ts.map +1 -1
  139. package/dist/hooks/useNavigateBack.d.ts +1 -3
  140. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  141. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.d.ts +1 -1
  142. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts +2 -2
  143. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts.map +1 -1
  144. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +5 -7
  145. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts.map +1 -1
  146. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts +1 -0
  147. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts.map +1 -1
  148. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts +5 -1
  149. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts.map +1 -1
  150. package/dist/hooks/useSwapInput.d.ts +4 -2
  151. package/dist/hooks/useSwapInput.d.ts.map +1 -1
  152. package/dist/hooks/useSyncStoresWithConfig.d.ts +1 -2
  153. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  154. package/dist/hooks/useWalletList.d.ts.map +1 -1
  155. package/dist/index.d.ts +13 -5
  156. package/dist/index.d.ts.map +1 -1
  157. package/dist/index.js +1 -1
  158. package/dist/index.js.map +4 -4
  159. package/dist/pages/ConfirmSwapPage.d.ts +1 -6
  160. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  161. package/dist/pages/HistoryPage.d.ts.map +1 -1
  162. package/dist/pages/Home.d.ts.map +1 -1
  163. package/dist/pages/LanguagePage.d.ts.map +1 -1
  164. package/dist/pages/LiquiditySourcePage.d.ts +1 -2
  165. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
  166. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
  167. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  168. package/dist/pages/SettingsPage.d.ts +1 -6
  169. package/dist/pages/SettingsPage.d.ts.map +1 -1
  170. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  171. package/dist/pages/ThemePage.d.ts.map +1 -1
  172. package/dist/pages/WalletsPage.d.ts +1 -8
  173. package/dist/pages/WalletsPage.d.ts.map +1 -1
  174. package/dist/store/AppStore.d.ts +11 -0
  175. package/dist/store/AppStore.d.ts.map +1 -0
  176. package/dist/store/app.d.ts +5 -23
  177. package/dist/store/app.d.ts.map +1 -1
  178. package/dist/store/{bestRoute.d.ts → quote.d.ts} +39 -27
  179. package/dist/store/quote.d.ts.map +1 -0
  180. package/dist/store/settings.d.ts +3 -2
  181. package/dist/store/settings.d.ts.map +1 -1
  182. package/dist/store/slices/config.d.ts +3 -2
  183. package/dist/store/slices/config.d.ts.map +1 -1
  184. package/dist/store/slices/data.d.ts +3 -0
  185. package/dist/store/slices/data.d.ts.map +1 -1
  186. package/dist/store/wallets.d.ts +5 -4
  187. package/dist/store/wallets.d.ts.map +1 -1
  188. package/dist/types/config.d.ts +19 -5
  189. package/dist/types/config.d.ts.map +1 -1
  190. package/dist/types/index.d.ts +1 -1
  191. package/dist/types/index.d.ts.map +1 -1
  192. package/dist/types/quote.d.ts +82 -0
  193. package/dist/types/quote.d.ts.map +1 -0
  194. package/dist/types/swap.d.ts +3 -13
  195. package/dist/types/swap.d.ts.map +1 -1
  196. package/dist/utils/colors.d.ts.map +1 -1
  197. package/dist/utils/configs.d.ts +1 -0
  198. package/dist/utils/configs.d.ts.map +1 -1
  199. package/dist/utils/meta.d.ts +2 -1
  200. package/dist/utils/meta.d.ts.map +1 -1
  201. package/dist/utils/numbers.d.ts +1 -1
  202. package/dist/utils/numbers.d.ts.map +1 -1
  203. package/dist/utils/{routing.d.ts → quote.d.ts} +16 -12
  204. package/dist/utils/quote.d.ts.map +1 -0
  205. package/dist/utils/settings.d.ts +3 -2
  206. package/dist/utils/settings.d.ts.map +1 -1
  207. package/dist/utils/swap.d.ts +34 -23
  208. package/dist/utils/swap.d.ts.map +1 -1
  209. package/dist/utils/wallets.d.ts +2 -2
  210. package/dist/utils/wallets.d.ts.map +1 -1
  211. package/package.json +6 -6
  212. package/src/QueueManager.tsx +18 -17
  213. package/src/components/AppRouter.tsx +8 -32
  214. package/src/components/AppRoutes.tsx +57 -69
  215. package/src/components/BlockchainList/BlockchainList.tsx +4 -4
  216. package/src/components/BlockchainsSection/BlockchainsSection.tsx +7 -7
  217. package/src/components/ConfirmWalletsModal/ConfirmWallets.helpers.ts +2 -64
  218. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +39 -45
  219. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.types.ts +1 -3
  220. package/src/components/ConfirmWalletsModal/WalletList.tsx +6 -5
  221. package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -4
  222. package/src/components/Layout/Layout.tsx +10 -7
  223. package/src/components/Layout/Layout.types.ts +2 -2
  224. package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +3 -3
  225. package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +6 -6
  226. package/src/components/{NoRoutes/NoRoutes.helper.ts → NoResult/NoResult.helpers.ts} +23 -16
  227. package/src/components/{NoRoutes/NoRoutes.styles.ts → NoResult/NoResult.styles.ts} +2 -0
  228. package/src/components/{NoRoutes/NoRoutes.tsx → NoResult/NoResult.tsx} +10 -12
  229. package/src/components/{NoRoutes/NoRoutes.types.ts → NoResult/NoResult.types.ts} +3 -2
  230. package/src/components/NoResult/index.ts +1 -0
  231. package/src/components/NotificationContent/NotificationContent.tsx +5 -3
  232. package/src/components/Quote/Quote.styles.ts +239 -0
  233. package/src/components/Quote/Quote.tsx +413 -0
  234. package/src/components/Quote/Quote.types.ts +15 -0
  235. package/src/components/Quote/QuoteSkeleton.styles.ts +110 -0
  236. package/src/components/Quote/QuoteSkeleton.tsx +108 -0
  237. package/src/components/Quote/QuoteSkeleton.types.ts +5 -0
  238. package/src/components/Quote/QuoteSummary.styles.ts +15 -0
  239. package/src/components/Quote/QuoteSummary.tsx +46 -0
  240. package/src/components/Quote/index.ts +3 -0
  241. package/src/components/QuoteWarningsAndErrors/HighValueLossWarningModal.tsx +107 -0
  242. package/src/components/{RouteErrors/RouteErrorsModalItem.tsx → QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx} +4 -4
  243. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +74 -0
  244. package/src/components/{RouteErrors/RouteErrors.styles.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts} +8 -1
  245. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +103 -0
  246. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +25 -0
  247. package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +77 -0
  248. package/src/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.tsx +38 -0
  249. package/src/components/QuoteWarningsAndErrors/index.ts +1 -0
  250. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +0 -4
  251. package/src/components/SwapDetails/SwapDetails.tsx +17 -24
  252. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
  253. package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
  254. package/src/components/SwapsGroup/SwapsGroup.styles.ts +8 -1
  255. package/src/components/SwapsGroup/SwapsGroup.tsx +0 -2
  256. package/src/components/SwitchFromAndTo.tsx +2 -2
  257. package/src/components/TokenList/TokenList.styles.ts +14 -2
  258. package/src/components/TokenList/TokenList.tsx +6 -7
  259. package/src/components/UpdateUrl.tsx +36 -29
  260. package/src/components/WidgetEvents.tsx +4 -2
  261. package/src/constants/errors.ts +17 -15
  262. package/src/constants/index.ts +1 -0
  263. package/src/constants/messages.ts +1 -1
  264. package/src/constants/navigationRoutes.ts +7 -8
  265. package/src/constants/searchParams.ts +1 -0
  266. package/src/constants/warnings.ts +7 -7
  267. package/src/containers/App/App.styles.ts +18 -0
  268. package/src/containers/App/App.tsx +55 -0
  269. package/src/containers/App/index.ts +1 -0
  270. package/src/containers/QuoteInfo/QuoteInfo.styles.ts +31 -0
  271. package/src/containers/QuoteInfo/QuoteInfo.tsx +98 -0
  272. package/src/containers/QuoteInfo/QuoteInfo.types.ts +20 -0
  273. package/src/containers/QuoteInfo/index.ts +1 -0
  274. package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +40 -32
  275. package/src/containers/Wallets/Wallets.types.ts +12 -0
  276. package/src/containers/Wallets/index.ts +1 -0
  277. package/src/containers/Widget/Widget.tsx +19 -0
  278. package/src/containers/Widget/Widget.types.ts +5 -0
  279. package/src/containers/Widget/index.ts +2 -0
  280. package/src/containers/WidgetInfo/WidgetInfo.tsx +47 -0
  281. package/src/containers/WidgetInfo/WidgetInfo.types.ts +14 -0
  282. package/src/containers/WidgetInfo/index.ts +1 -0
  283. package/src/containers/WidgetProvider/WidgetProvider.tsx +28 -0
  284. package/src/containers/WidgetProvider/WidgetProvider.types.ts +7 -0
  285. package/src/containers/WidgetProvider/index.ts +1 -0
  286. package/src/hooks/useConfirmSwap/index.ts +1 -0
  287. package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +172 -0
  288. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +137 -0
  289. package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +19 -0
  290. package/src/hooks/{useFetchBestRoute.ts → useFetchQuote.ts} +3 -3
  291. package/src/hooks/useForceAutoConnect.ts +27 -0
  292. package/src/hooks/useLanguage.ts +2 -2
  293. package/src/hooks/useNavigateBack.ts +3 -52
  294. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.ts +1 -1
  295. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +37 -7
  296. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.ts +60 -0
  297. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +78 -3
  298. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +13 -4
  299. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
  300. package/src/hooks/useSwapInput.ts +139 -46
  301. package/src/hooks/useSyncStoresWithConfig.ts +22 -19
  302. package/src/hooks/useWalletList.ts +3 -5
  303. package/src/index.ts +14 -3
  304. package/src/pages/ConfirmSwapPage.tsx +95 -248
  305. package/src/pages/HistoryPage.tsx +1 -5
  306. package/src/pages/Home.tsx +75 -270
  307. package/src/pages/LanguagePage.tsx +0 -5
  308. package/src/pages/LiquiditySourcePage.tsx +22 -35
  309. package/src/pages/SelectBlockchainPage.tsx +31 -24
  310. package/src/pages/SelectSwapItemsPage.tsx +9 -23
  311. package/src/pages/SettingsPage.tsx +8 -15
  312. package/src/pages/SwapDetailsPage.tsx +6 -7
  313. package/src/pages/ThemePage.tsx +0 -4
  314. package/src/pages/WalletsPage.tsx +4 -15
  315. package/src/services/httpService.ts +1 -1
  316. package/src/store/AppStore.tsx +35 -0
  317. package/src/store/app.ts +18 -6
  318. package/src/store/{bestRoute.ts → quote.ts} +68 -60
  319. package/src/store/settings.ts +7 -4
  320. package/src/store/slices/config.ts +25 -15
  321. package/src/store/slices/data.ts +64 -29
  322. package/src/store/wallets.ts +12 -8
  323. package/src/types/config.ts +20 -5
  324. package/src/types/index.ts +1 -1
  325. package/src/types/quote.ts +107 -0
  326. package/src/types/swap.ts +3 -12
  327. package/src/utils/colors.ts +2 -1
  328. package/src/utils/configs.ts +2 -1
  329. package/src/utils/meta.ts +8 -1
  330. package/src/utils/numbers.ts +1 -1
  331. package/src/utils/quote.ts +338 -0
  332. package/src/utils/settings.ts +8 -7
  333. package/src/utils/swap.ts +153 -116
  334. package/src/utils/wallets.ts +29 -17
  335. package/dist/Wallets.d.ts +0 -17
  336. package/dist/Wallets.d.ts.map +0 -1
  337. package/dist/Widget.d.ts +0 -9
  338. package/dist/Widget.d.ts.map +0 -1
  339. package/dist/components/NoRoutes/NoRoutes.d.ts +0 -4
  340. package/dist/components/NoRoutes/NoRoutes.d.ts.map +0 -1
  341. package/dist/components/NoRoutes/NoRoutes.helper.d.ts +0 -3
  342. package/dist/components/NoRoutes/NoRoutes.helper.d.ts.map +0 -1
  343. package/dist/components/NoRoutes/NoRoutes.types.d.ts.map +0 -1
  344. package/dist/components/NoRoutes/index.d.ts +0 -2
  345. package/dist/components/NoRoutes/index.d.ts.map +0 -1
  346. package/dist/components/RouteErrors/RouteErrors.d.ts +0 -4
  347. package/dist/components/RouteErrors/RouteErrors.d.ts.map +0 -1
  348. package/dist/components/RouteErrors/RouteErrors.styles.d.ts.map +0 -1
  349. package/dist/components/RouteErrors/RouteErrors.types.d.ts +0 -24
  350. package/dist/components/RouteErrors/RouteErrors.types.d.ts.map +0 -1
  351. package/dist/components/RouteErrors/RouteErrorsModal.d.ts +0 -4
  352. package/dist/components/RouteErrors/RouteErrorsModal.d.ts.map +0 -1
  353. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts +0 -4
  354. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts.map +0 -1
  355. package/dist/components/RouteErrors/index.d.ts +0 -2
  356. package/dist/components/RouteErrors/index.d.ts.map +0 -1
  357. package/dist/hooks/useConfirmSwap.d.ts.map +0 -1
  358. package/dist/hooks/useFetchBestRoute.d.ts.map +0 -1
  359. package/dist/store/bestRoute.d.ts.map +0 -1
  360. package/dist/store/meta.d.ts +0 -23
  361. package/dist/store/meta.d.ts.map +0 -1
  362. package/dist/types/routing.d.ts +0 -65
  363. package/dist/types/routing.d.ts.map +0 -1
  364. package/dist/utils/routing.d.ts.map +0 -1
  365. package/src/Widget.tsx +0 -119
  366. package/src/components/NoRoutes/index.ts +0 -1
  367. package/src/components/RouteErrors/RouteErrors.tsx +0 -79
  368. package/src/components/RouteErrors/RouteErrors.types.ts +0 -29
  369. package/src/components/RouteErrors/RouteErrorsModal.tsx +0 -129
  370. package/src/components/RouteErrors/index.ts +0 -1
  371. package/src/hooks/useConfirmSwap.ts +0 -303
  372. package/src/store/meta.ts +0 -39
  373. package/src/types/routing.ts +0 -77
  374. package/src/utils/routing.ts +0 -321
package/src/utils/swap.ts CHANGED
@@ -1,7 +1,13 @@
1
1
  /* eslint-disable @typescript-eslint/no-magic-numbers */
2
- import type { LoadingStatus } from '../store/meta';
3
- import type { ConnectedWallet } from '../store/wallets';
4
- import type { ConvertedToken, SwapButtonState, Wallet } from '../types';
2
+ import type { FetchStatus } from '../store/slices/data';
3
+ import type {
4
+ ConvertedToken,
5
+ QuoteError,
6
+ QuoteWarning,
7
+ RecommendedSlippages,
8
+ SwapButtonState,
9
+ Wallet,
10
+ } from '../types';
5
11
  import type {
6
12
  PendingSwap,
7
13
  PendingSwapStep,
@@ -30,12 +36,11 @@ import {
30
36
  TOKEN_AMOUNT_MAX_DECIMALS,
31
37
  TOKEN_AMOUNT_MIN_DECIMALS,
32
38
  } from '../constants/routing';
33
- import { useMetaStore } from '../store/meta';
34
- import { ButtonState } from '../types';
35
39
 
36
40
  import { removeDuplicateFrom } from './common';
41
+ import { getBlockchainShortNameFor } from './meta';
37
42
  import { numberToString } from './numbers';
38
- import { getRequiredBalanceOfWallet } from './routing';
43
+ import { getPriceImpact, getRequiredBalanceOfWallet } from './quote';
39
44
  import { getRequiredChains } from './wallets';
40
45
 
41
46
  export function getOutputRatio(
@@ -50,25 +55,29 @@ export function getOutputRatio(
50
55
  ) {
51
56
  return 0;
52
57
  }
53
- return outputUsdValue.div(inputUsdValue).minus(1).multipliedBy(100);
58
+ return outputUsdValue
59
+ .div(inputUsdValue)
60
+ .minus(1)
61
+ .multipliedBy(100)
62
+ .toNumber();
54
63
  }
55
64
 
56
- export function outputRatioHasWarning(
65
+ export function hasHighValueLoss(
57
66
  inputUsdValue: BigNumber | null,
58
- outputRatio: BigNumber | 0
67
+ priceImpact: number
59
68
  ): boolean {
60
69
  return (
61
- ((parseInt(outputRatio.toFixed(2) || '0') <= -10 &&
70
+ ((parseInt(priceImpact.toFixed(2) || '0') <= -10 &&
62
71
  inputUsdValue?.gte(new BigNumber(400))) ||
63
- (parseInt(outputRatio.toFixed(2) || '0') <= -5 &&
72
+ (parseInt(priceImpact.toFixed(2) || '0') <= -5 &&
64
73
  inputUsdValue?.gte(new BigNumber(1000)))) ??
65
74
  false
66
75
  );
67
76
  }
68
77
 
69
- export function hasLimitError(bestRoute: BestRouteResponse | null): boolean {
78
+ export function hasLimitError(quote: BestRouteResponse | null): boolean {
70
79
  return (
71
- (bestRoute?.result?.swaps || []).filter((swap) => {
80
+ (quote?.result?.swaps || []).filter((swap) => {
72
81
  const minimum = !!swap.fromAmountMinValue
73
82
  ? new BigNumber(swap.fromAmountMinValue)
74
83
  : null;
@@ -83,16 +92,12 @@ export function hasLimitError(bestRoute: BestRouteResponse | null): boolean {
83
92
  }).length > 0
84
93
  );
85
94
  }
86
-
87
- export function LimitErrorMessage(bestRoute: BestRouteResponse | null): {
88
- swap: SwapResult | null;
95
+ export function getLimitErrorMessage(quote: BestRouteResponse): {
96
+ swap: SwapResult;
89
97
  fromAmountRangeError: string;
90
98
  recommendation: string;
91
99
  } {
92
- if (!bestRoute) {
93
- return { swap: null, fromAmountRangeError: '', recommendation: '' };
94
- }
95
- const swap = (bestRoute?.result?.swaps || []).filter((swap) => {
100
+ const swap = (quote.result?.swaps || []).filter((swap) => {
96
101
  const minimum = !!swap.fromAmountMinValue
97
102
  ? new BigNumber(swap.fromAmountMinValue)
98
103
  : null;
@@ -105,9 +110,7 @@ export function LimitErrorMessage(bestRoute: BestRouteResponse | null): {
105
110
  }
106
111
  return minimum?.gt(swap.fromAmount) || maximum?.lt(swap.fromAmount);
107
112
  })[0];
108
- if (!swap) {
109
- return { swap: null, fromAmountRangeError: '', recommendation: '' };
110
- }
113
+
111
114
  const minimum = !!swap.fromAmountMinValue
112
115
  ? new BigNumber(swap.fromAmountMinValue)
113
116
  : null;
@@ -177,85 +180,92 @@ export function LimitErrorMessage(bestRoute: BestRouteResponse | null): {
177
180
  return { swap, fromAmountRangeError, recommendation };
178
181
  }
179
182
 
180
- export function getSwapButtonState(
181
- loadingMetaStatus: LoadingStatus,
182
- connectedWallets: ConnectedWallet[],
183
- loading: boolean,
184
- bestRoute: BestRouteResponse | null,
185
- hasLimitError: boolean,
186
- highValueLoss: boolean,
187
- priceImpactCanNotBeComputed: boolean,
188
- needsToWarnEthOnPath: boolean,
189
- inputAmount: string
190
- ): SwapButtonState {
191
- if (loadingMetaStatus !== 'success') {
183
+ export function getSwapButtonState(params: {
184
+ fetchMetaStatus: FetchStatus;
185
+ anyWalletConnected: boolean;
186
+ fetchingQuote: boolean;
187
+ inputAmount: string;
188
+ quote: BestRouteResponse | null;
189
+ warning: QuoteWarning | null;
190
+ error: QuoteError | null;
191
+ needsToWarnEthOnPath: boolean;
192
+ }): SwapButtonState {
193
+ const {
194
+ fetchMetaStatus,
195
+ anyWalletConnected,
196
+ fetchingQuote,
197
+ inputAmount,
198
+ quote,
199
+ warning,
200
+ error,
201
+ needsToWarnEthOnPath,
202
+ } = params;
203
+ if (fetchMetaStatus !== 'success') {
192
204
  return {
193
205
  title: swapButtonTitles().connectWallet,
194
- state: ButtonState.WAITFORCONNECTING,
206
+ action: 'connect-wallet',
195
207
  disabled: true,
196
208
  };
197
209
  }
198
- if (connectedWallets.length == 0) {
210
+ if (!anyWalletConnected) {
199
211
  return {
200
212
  title: swapButtonTitles().connectWallet,
201
- state: ButtonState.WAITFORCONNECTING,
213
+ action: 'connect-wallet',
202
214
  disabled: false,
203
215
  };
204
216
  }
205
217
  if (
206
- loading ||
207
- !bestRoute ||
208
- !bestRoute.result ||
209
- hasLimitError ||
218
+ fetchingQuote ||
219
+ !quote ||
220
+ !quote.result ||
221
+ error ||
210
222
  !inputAmount ||
211
223
  inputAmount === '0'
212
224
  ) {
213
225
  return {
214
226
  title: swapButtonTitles().swap,
227
+ action: 'confirm-swap',
215
228
  disabled: true,
216
- state: ButtonState.SWAP,
217
229
  };
218
- } else if (highValueLoss || priceImpactCanNotBeComputed) {
230
+ } else if (warning) {
219
231
  return {
220
232
  title: swapButtonTitles().swapAnyway,
233
+ action: 'confirm-warning',
221
234
  disabled: false,
222
- hasWarning: true,
223
- state: ButtonState.NEEDTOCONFIRM,
224
235
  };
225
236
  } else if (needsToWarnEthOnPath) {
226
237
  return {
227
- title: swapButtonTitles().ethRouteWarning,
238
+ title: swapButtonTitles().ethWarning,
239
+ action: 'confirm-warning',
228
240
  disabled: false,
229
- hasWarning: true,
230
- state: ButtonState.WARNING,
231
241
  };
232
242
  }
233
243
  return {
234
244
  title: swapButtonTitles().swap,
245
+ action: 'confirm-swap',
235
246
  disabled: false,
236
- state: ButtonState.SWAP,
237
247
  };
238
248
  }
239
249
 
240
250
  export function canComputePriceImpact(
241
- bestRoute: BestRouteResponse | null,
251
+ quote: BestRouteResponse | null,
242
252
  inputAmount: string,
243
253
  usdValue: BigNumber | null
244
254
  ) {
245
255
  return !(
246
256
  (!usdValue || usdValue.lte(ZERO)) &&
247
- !!bestRoute?.result &&
257
+ !!quote?.result &&
248
258
  !!inputAmount &&
249
259
  inputAmount !== '0' &&
250
260
  parseFloat(inputAmount || '0') !== 0 &&
251
- !!bestRoute.result
261
+ !!quote.result
252
262
  );
253
263
  }
254
264
 
255
- export function requiredWallets(route: BestRouteResponse | null) {
265
+ export function requiredWallets(quote: BestRouteResponse | null) {
256
266
  const wallets: string[] = [];
257
267
 
258
- route?.result?.swaps.forEach((swap) => {
268
+ quote?.result?.swaps.forEach((swap) => {
259
269
  const currentStepFromBlockchain = swap.from.blockchain;
260
270
  const currentStepToBlockchain = swap.to.blockchain;
261
271
  let lastAddedWallet = wallets[wallets.length - 1];
@@ -311,15 +321,13 @@ export function getUsdFeeOfStep(
311
321
  }
312
322
 
313
323
  export function getTotalFeeInUsd(
314
- bestRoute: BestRouteResponse | null,
324
+ swaps: SwapResult[],
315
325
  allTokens: Token[]
316
- ): BigNumber | null {
317
- return (
318
- bestRoute?.result?.swaps.reduce(
319
- (totalFee: BigNumber, step) =>
320
- totalFee.plus(getUsdFeeOfStep(step, allTokens)),
321
- ZERO
322
- ) || null
326
+ ): BigNumber {
327
+ return swaps.reduce(
328
+ (totalFee: BigNumber, step) =>
329
+ totalFee.plus(getUsdFeeOfStep(step, allTokens)),
330
+ ZERO
323
331
  );
324
332
  }
325
333
 
@@ -336,10 +344,44 @@ export function hasSlippageError(
336
344
  return (slippages?.filter((s) => !!s?.error)?.length || 0) > 0;
337
345
  }
338
346
 
347
+ export function checkSlippageErrors(
348
+ quote: BestRouteResponse
349
+ ): RecommendedSlippages | null {
350
+ const recommendedSlippages: RecommendedSlippages = new Map();
351
+ quote.result?.swaps.forEach((swap, index) => {
352
+ if (swap.recommendedSlippage?.error) {
353
+ recommendedSlippages.set(index, swap.recommendedSlippage.slippage);
354
+ }
355
+ });
356
+ if (recommendedSlippages.size > 0) {
357
+ return recommendedSlippages;
358
+ }
359
+ return null;
360
+ }
361
+
362
+ export function checkSlippageWarnings(
363
+ quote: BestRouteResponse,
364
+ userSlippage: number
365
+ ): RecommendedSlippages | null {
366
+ const recommendedSlippages: RecommendedSlippages = new Map();
367
+ quote.result?.swaps.forEach((swap, index) => {
368
+ if (
369
+ swap.recommendedSlippage?.slippage &&
370
+ parseFloat(swap.recommendedSlippage.slippage) > userSlippage
371
+ ) {
372
+ recommendedSlippages.set(index, swap.recommendedSlippage.slippage);
373
+ }
374
+ });
375
+ if (recommendedSlippages.size > 0) {
376
+ return recommendedSlippages;
377
+ }
378
+ return null;
379
+ }
380
+
339
381
  export function getMinRequiredSlippage(
340
- route: BestRouteResponse
382
+ quote: BestRouteResponse
341
383
  ): string | null {
342
- const slippages = route.result?.swaps.map(
384
+ const slippages = quote.result?.swaps.map(
343
385
  (slippage) => slippage.recommendedSlippage
344
386
  );
345
387
  return (
@@ -362,10 +404,10 @@ export function hasProperSlippage(
362
404
  }
363
405
 
364
406
  export function hasEnoughBalance(
365
- route: BestRouteResponse,
407
+ quote: BestRouteResponse,
366
408
  selectedWallets: Wallet[]
367
409
  ) {
368
- const fee = route.validationStatus;
410
+ const fee = quote.validationStatus;
369
411
 
370
412
  if (fee === null || fee.length === 0) {
371
413
  return true;
@@ -389,29 +431,31 @@ export function hasEnoughBalance(
389
431
  }
390
432
 
391
433
  export function hasEnoughBalanceAndProperSlippage(
392
- route: BestRouteResponse,
434
+ quote: BestRouteResponse,
393
435
  selectedWallets: Wallet[],
394
436
  userSlippage: string,
395
437
  minRequiredSlippage: string | null
396
438
  ): boolean {
397
439
  return (
398
- hasEnoughBalance(route, selectedWallets) &&
440
+ hasEnoughBalance(quote, selectedWallets) &&
399
441
  hasProperSlippage(userSlippage, minRequiredSlippage)
400
442
  );
401
443
  }
402
444
 
403
- export function createBestRouteRequestBody(params: {
445
+ export function createQuoteRequestBody(params: {
404
446
  fromToken: Token;
405
447
  toToken: Token;
406
448
  inputAmount: string;
407
449
  wallets?: Wallet[];
408
450
  selectedWallets?: Wallet[];
451
+ liquiditySources?: string[];
452
+ excludeLiquiditySources?: boolean;
409
453
  disabledLiquiditySources: string[];
410
454
  slippage: number;
411
455
  affiliateRef: string | null;
412
456
  affiliatePercent: number | null;
413
457
  affiliateWallets: { [key: string]: string } | null;
414
- initialRoute?: BestRouteResponse;
458
+ initialQuote?: BestRouteResponse;
415
459
  destination?: string;
416
460
  }): BestRouteRequest {
417
461
  const {
@@ -421,11 +465,13 @@ export function createBestRouteRequestBody(params: {
421
465
  wallets,
422
466
  selectedWallets,
423
467
  disabledLiquiditySources,
468
+ liquiditySources,
469
+ excludeLiquiditySources,
424
470
  slippage,
425
471
  affiliateRef,
426
472
  affiliatePercent,
427
473
  affiliateWallets,
428
- initialRoute,
474
+ initialQuote,
429
475
  destination,
430
476
  } = params;
431
477
  const selectedWalletsMap = selectedWallets?.reduce(
@@ -455,10 +501,10 @@ export function createBestRouteRequestBody(params: {
455
501
  }
456
502
  });
457
503
 
458
- const checkPrerequisites = !!initialRoute;
504
+ const checkPrerequisites = !!initialQuote;
459
505
 
460
506
  const filteredBlockchains = removeDuplicateFrom(
461
- (initialRoute?.result?.swaps || []).reduce(
507
+ (initialQuote?.result?.swaps || []).reduce(
462
508
  (blockchains: string[], swap) => {
463
509
  blockchains.push(swap.from.blockchain, swap.to.blockchain);
464
510
  // Check if internalSwaps array exists
@@ -496,13 +542,18 @@ export function createBestRouteRequestBody(params: {
496
542
  selectedWallets: selectedWalletsMap ?? {},
497
543
  slippage: slippage.toString(),
498
544
  ...(destination && { destination: destination }),
499
- ...(disabledLiquiditySources.length > 0 && {
500
- swapperGroups: disabledLiquiditySources,
545
+ ...(excludeLiquiditySources && {
546
+ swapperGroups: disabledLiquiditySources.concat(liquiditySources ?? []),
501
547
  swappersGroupsExclude: true,
502
548
  }),
549
+ ...(!excludeLiquiditySources && {
550
+ swapperGroups: liquiditySources?.filter(
551
+ (liquiditySource) => !disabledLiquiditySources.includes(liquiditySource)
552
+ ),
553
+ swappersGroupsExclude: false,
554
+ }),
503
555
  ...(checkPrerequisites && { blockchains: filteredBlockchains }),
504
556
  };
505
-
506
557
  return requestBody;
507
558
  }
508
559
 
@@ -526,49 +577,42 @@ export function getWalletsForNewSwap(selectedWallets: Wallet[]) {
526
577
  return wallets;
527
578
  }
528
579
 
529
- export function getRouteOutputAmount(route: BestRouteResponse | null) {
530
- return route?.result?.outputAmount || null;
580
+ export function getQuoteOutputAmount(quote: BestRouteResponse) {
581
+ return quote.result?.outputAmount || null;
531
582
  }
532
583
 
533
- export function getPercentageChange(
534
- inputUsdValue: string | number | null,
535
- outputUsdValue: string | number | null
536
- ) {
537
- if (!inputUsdValue || !outputUsdValue) {
538
- return null;
539
- }
540
- return new BigNumber(outputUsdValue)
541
- .div(new BigNumber(inputUsdValue))
584
+ export function getPercentageChange(input: string, output: string) {
585
+ return new BigNumber(output)
586
+ .div(new BigNumber(input))
542
587
  .minus(1)
543
- .multipliedBy(100);
588
+ .multipliedBy(100)
589
+ .toNumber();
544
590
  }
545
591
 
546
592
  export function isOutputAmountChangedALot(
547
- oldRoute: BestRouteResponse,
548
- newRoute: BestRouteResponse
593
+ oldQuote: BestRouteResponse,
594
+ newQuote: BestRouteResponse
549
595
  ) {
550
- const oldOutputAmount = getRouteOutputAmount(oldRoute);
551
- const newOutputAmount = getRouteOutputAmount(newRoute);
596
+ const oldOutputAmount = getQuoteOutputAmount(oldQuote);
597
+ const newOutputAmount = getQuoteOutputAmount(newQuote);
552
598
  if (!oldOutputAmount || !newOutputAmount) {
553
599
  return false;
554
600
  }
555
- const percentageChange = getPercentageChange(
556
- oldOutputAmount,
557
- newOutputAmount
558
- );
601
+ const percentageChange = getPriceImpact(oldOutputAmount, newOutputAmount);
559
602
  if (!percentageChange) {
560
603
  return true;
561
604
  }
562
605
 
563
- return percentageChange.toNumber() <= -1;
606
+ return percentageChange <= -1;
564
607
  }
565
608
 
566
- export function getBalanceWarnings(
567
- route: BestRouteResponse,
568
- selectedWallets: Wallet[]
609
+ export function generateBalanceWarnings(
610
+ quote: BestRouteResponse,
611
+ selectedWallets: Wallet[],
612
+ blockchains: BlockchainMeta[]
569
613
  ) {
570
- const fee = route.validationStatus;
571
- const requiredWallets = getRequiredChains(route);
614
+ const fee = quote.validationStatus;
615
+ const requiredWallets = getRequiredChains(quote);
572
616
  const walletsSortedByRequiredWallets = selectedWallets.sort(
573
617
  (selectedWallet1, selectedWallet2) =>
574
618
  requiredWallets.indexOf(selectedWallet1.chain) -
@@ -610,7 +654,10 @@ export function getBalanceWarnings(
610
654
  symbol,
611
655
  reason,
612
656
  currentAmount,
613
- blockchain: asset.asset.blockchain,
657
+ blockchain: getBlockchainShortNameFor(
658
+ asset.asset.blockchain,
659
+ blockchains
660
+ ),
614
661
  },
615
662
  });
616
663
  return warningMessage;
@@ -714,29 +761,19 @@ export function shouldRetrySwap(pendingSwap: PendingSwap) {
714
761
  new Date().getTime() - parseInt(pendingSwap.finishTime) < 4 * 3600 * 1000
715
762
  );
716
763
  }
717
- export function isValidCustomDestination(
718
- blockchain: string,
719
- address: string
720
- ): boolean {
721
- const blockchains = useMetaStore.getState().meta.blockchains;
722
- const regex =
723
- blockchains.find((chain) => chain.name === blockchain)?.addressPatterns ||
724
- [];
725
- return regex.filter((r) => new RegExp(r).test(address)).length > 0;
726
- }
727
764
 
728
765
  export function confirmSwapDisabled(
729
766
  fetching: boolean,
730
767
  showCustomDestination: boolean,
731
768
  customDestination: string,
732
- bestRoute: BestRouteResponse | null,
769
+ quote: BestRouteResponse | null,
733
770
  selectedWallets: { walletType: string; chain: string }[],
734
771
  lastStepToBlockchain?: BlockchainMeta
735
772
  ) {
736
773
  return (
737
774
  fetching ||
738
775
  (!showCustomDestination &&
739
- !requiredWallets(bestRoute).every((chain) =>
776
+ !requiredWallets(quote).every((chain) =>
740
777
  selectedWallets.map((wallet) => wallet.chain).includes(chain)
741
778
  )) ||
742
779
  (!!showCustomDestination && !customDestination) ||
@@ -55,8 +55,11 @@ export function mapWalletTypesToWalletInfo(
55
55
  return list
56
56
  .filter((wallet) => !EXCLUDED_WALLETS.includes(wallet as WalletTypes))
57
57
  .filter((wallet) => {
58
- const { supportedChains, hideWhenNotInstalled } = getWalletInfo(wallet);
59
- if (hideWhenNotInstalled && !getState(wallet).installed) {
58
+ const { supportedChains, isContractWallet } = getWalletInfo(wallet);
59
+ const { installed, network } = getState(wallet);
60
+ const filterContractWallets =
61
+ isContractWallet && (!installed || (!!chain && network !== chain));
62
+ if (filterContractWallets) {
60
63
  return false;
61
64
  }
62
65
  if (chain) {
@@ -97,7 +100,8 @@ export function prepareAccountsForWalletStore(
97
100
  wallet: WalletType,
98
101
  accounts: string[],
99
102
  evmBasedChains: string[],
100
- supportedChainNames: Network[] | null
103
+ supportedChainNames: Network[] | null,
104
+ isContractWallet: boolean
101
105
  ): Wallet[] {
102
106
  const result: Wallet[] = [];
103
107
 
@@ -151,21 +155,29 @@ export function prepareAccountsForWalletStore(
151
155
 
152
156
  // If it's an evm network, we will add the address to all the evm chains.
153
157
  if (isEvmBasedChain || isUnknownAndEvmBased) {
154
- /*
155
- * all evm chains are not supported in wallets, so we are adding
156
- * only to those that are supported by wallet.
157
- */
158
- const evmChainsSupportedByWallet = supportedBlockchains.filter((chain) =>
159
- evmBasedChains.includes(chain)
160
- );
161
-
162
- evmChainsSupportedByWallet.forEach((network) => {
158
+ if (isContractWallet) {
163
159
  /*
164
- * EVM addresses are not case sensitive.
165
- * Some wallets like Binance-chain return some letters in uppercase which produces bugs in our wallet state.
160
+ * for contract wallets like Safe wallet, we should add only account for the
161
+ * current connected blockchain not all of the supported blockchains
166
162
  */
167
163
  addAccount(network, address.toLowerCase());
168
- });
164
+ } else {
165
+ /*
166
+ * all evm chains are not supported in wallets, so we are adding
167
+ * only to those that are supported by wallet.
168
+ */
169
+ const evmChainsSupportedByWallet = supportedBlockchains.filter(
170
+ (chain) => evmBasedChains.includes(chain)
171
+ );
172
+
173
+ evmChainsSupportedByWallet.forEach((network) => {
174
+ /*
175
+ * EVM addresses are not case sensitive.
176
+ * Some wallets like Binance-chain return some letters in uppercase which produces bugs in our wallet state.
177
+ */
178
+ addAccount(network, address.toLowerCase());
179
+ });
180
+ }
169
181
  } else {
170
182
  addAccount(network, address);
171
183
  }
@@ -174,10 +186,10 @@ export function prepareAccountsForWalletStore(
174
186
  return result;
175
187
  }
176
188
 
177
- export function getRequiredChains(route: BestRouteResponse | null) {
189
+ export function getRequiredChains(quote: BestRouteResponse | null) {
178
190
  const wallets: string[] = [];
179
191
 
180
- route?.result?.swaps.forEach((swap) => {
192
+ quote?.result?.swaps.forEach((swap) => {
181
193
  const currentStepFromBlockchain = swap.from.blockchain;
182
194
  const currentStepToBlockchain = swap.to.blockchain;
183
195
  if (!wallets.includes(currentStepFromBlockchain)) {
package/dist/Wallets.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import type { WidgetConfig } from './types';
2
- import type { ProvidersOptions } from './utils/providers';
3
- import type { EventHandler } from '@rango-dev/wallets-react';
4
- import type { PropsWithChildren } from 'react';
5
- import React from 'react';
6
- type OnConnectHandler = (key: string) => void;
7
- interface WidgetContextInterface {
8
- onConnectWallet(handler: OnConnectHandler): void;
9
- }
10
- export declare const WidgetContext: React.Context<WidgetContextInterface>;
11
- export declare function WidgetWallets(props: PropsWithChildren<{
12
- providers: WidgetConfig['wallets'];
13
- options?: ProvidersOptions;
14
- onUpdateState?: EventHandler;
15
- }>): React.JSX.Element;
16
- export {};
17
- //# sourceMappingURL=Wallets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Wallets.d.ts","sourceRoot":"","sources":["../src/Wallets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI/C,OAAO,KAAgC,MAAM,OAAO,CAAC;AAUrD,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAC9C,UAAU,sBAAsB;IAC9B,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,aAAa,uCAIxB,CAAC;AAEH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,iBAAiB,CAAC;IACvB,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC,qBA+EH"}
package/dist/Widget.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import type { WidgetConfig } from './types';
2
- import type { PropsWithChildren } from 'react';
3
- import React from 'react';
4
- export type WidgetProps = {
5
- config?: WidgetConfig;
6
- };
7
- export declare function Main(props: PropsWithChildren<WidgetProps>): React.JSX.Element;
8
- export declare function Widget(props: PropsWithChildren<WidgetProps>): React.JSX.Element;
9
- //# sourceMappingURL=Widget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../src/Widget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAmD,MAAM,OAAO,CAAC;AAiCxE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,wBAAgB,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,qBAoDzD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,qBAsB3D"}
@@ -1,4 +0,0 @@
1
- import type { PropTypes } from './NoRoutes.types';
2
- import React from 'react';
3
- export declare function NoRoutes(props: PropTypes): React.JSX.Element;
4
- //# sourceMappingURL=NoRoutes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoRoutes.d.ts","sourceRoot":"","sources":["../../../src/components/NoRoutes/NoRoutes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAUlD,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,qBA6DxC"}
@@ -1,3 +0,0 @@
1
- import type { Info } from './NoRoutes.types';
2
- export declare function makeInfo(diagnosisMessage: string | null, disabledLiquiditySources: string[], hasError: boolean, toggleAllLiquiditySources: (shouldReset: boolean) => void, refetchBestRoute: () => void): Info;
3
- //# sourceMappingURL=NoRoutes.helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoRoutes.helper.d.ts","sourceRoot":"","sources":["../../../src/components/NoRoutes/NoRoutes.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAM7C,wBAAgB,QAAQ,CACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,wBAAwB,EAAE,MAAM,EAAE,EAClC,QAAQ,EAAE,OAAO,EACjB,yBAAyB,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,EACzD,gBAAgB,EAAE,MAAM,IAAI,GAC3B,IAAI,CAuCN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoRoutes.types.d.ts","sourceRoot":"","sources":["../../../src/components/NoRoutes/NoRoutes.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -1,2 +0,0 @@
1
- export { NoRoutes } from './NoRoutes';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NoRoutes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { PropTypes } from './RouteErrors.types';
2
- import React from 'react';
3
- export declare function RouteErrors(props: PropTypes): React.JSX.Element;
4
- //# sourceMappingURL=RouteErrors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RouteErrors.d.ts","sourceRoot":"","sources":["../../../src/components/RouteErrors/RouteErrors.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,qBAgE3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RouteErrors.styles.d.ts","sourceRoot":"","sources":["../../../src/components/RouteErrors/RouteErrors.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAGjB,CAAC;AAEH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAMf,CAAC;AAEH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAMf,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAIjB,CAAC"}