@lifi/widget 0.0.0-preview-6cc63bac

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 (1255) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +312 -0
  3. package/dist/esm/App.d.ts +9 -0
  4. package/dist/esm/App.d.ts.map +1 -0
  5. package/dist/esm/App.js +44 -0
  6. package/dist/esm/App.js.map +1 -0
  7. package/dist/esm/AppDefault.js +214 -0
  8. package/dist/esm/AppDefault.js.map +1 -0
  9. package/dist/esm/AppDrawer.d.ts +12 -0
  10. package/dist/esm/AppDrawer.d.ts.map +1 -0
  11. package/dist/esm/AppDrawer.js +63 -0
  12. package/dist/esm/AppDrawer.js.map +1 -0
  13. package/dist/esm/AppDrawerContext.js +8 -0
  14. package/dist/esm/AppDrawerContext.js.map +1 -0
  15. package/dist/esm/AppLayout.js +33 -0
  16. package/dist/esm/AppLayout.js.map +1 -0
  17. package/dist/esm/AppProvider.js +30 -0
  18. package/dist/esm/AppProvider.js.map +1 -0
  19. package/dist/esm/components/ActionRow/ActionRow.js +17 -0
  20. package/dist/esm/components/ActionRow/ActionRow.js.map +1 -0
  21. package/dist/esm/components/ActionRow/ActionRow.style.js +21 -0
  22. package/dist/esm/components/ActionRow/ActionRow.style.js.map +1 -0
  23. package/dist/esm/components/AmountInput/AmountInput.js +117 -0
  24. package/dist/esm/components/AmountInput/AmountInput.js.map +1 -0
  25. package/dist/esm/components/AmountInput/AmountInput.style.js +38 -0
  26. package/dist/esm/components/AmountInput/AmountInput.style.js.map +1 -0
  27. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +64 -0
  28. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -0
  29. package/dist/esm/components/AmountInput/AmountInputEndAdornment.style.js +21 -0
  30. package/dist/esm/components/AmountInput/AmountInputEndAdornment.style.js.map +1 -0
  31. package/dist/esm/components/AmountInput/AmountInputStartAdornment.js +21 -0
  32. package/dist/esm/components/AmountInput/AmountInputStartAdornment.js.map +1 -0
  33. package/dist/esm/components/AmountInput/PriceFormHelperText.js +98 -0
  34. package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -0
  35. package/dist/esm/components/AmountInput/PriceFormHelperText.style.js +28 -0
  36. package/dist/esm/components/AmountInput/PriceFormHelperText.style.js.map +1 -0
  37. package/dist/esm/components/AppContainer.js +93 -0
  38. package/dist/esm/components/AppContainer.js.map +1 -0
  39. package/dist/esm/components/Avatar/AccountAvatar.js +29 -0
  40. package/dist/esm/components/Avatar/AccountAvatar.js.map +1 -0
  41. package/dist/esm/components/Avatar/Avatar.js +47 -0
  42. package/dist/esm/components/Avatar/Avatar.js.map +1 -0
  43. package/dist/esm/components/Avatar/Avatar.style.js +57 -0
  44. package/dist/esm/components/Avatar/Avatar.style.js.map +1 -0
  45. package/dist/esm/components/Avatar/ChainBadgeContent.js +17 -0
  46. package/dist/esm/components/Avatar/ChainBadgeContent.js.map +1 -0
  47. package/dist/esm/components/Avatar/SmallAvatar.js +20 -0
  48. package/dist/esm/components/Avatar/SmallAvatar.js.map +1 -0
  49. package/dist/esm/components/Avatar/TokenAvatar.js +65 -0
  50. package/dist/esm/components/Avatar/TokenAvatar.js.map +1 -0
  51. package/dist/esm/components/Avatar/utils.js +9 -0
  52. package/dist/esm/components/Avatar/utils.js.map +1 -0
  53. package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js +51 -0
  54. package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -0
  55. package/dist/esm/components/BottomSheet/BottomSheet.js +46 -0
  56. package/dist/esm/components/BottomSheet/BottomSheet.js.map +1 -0
  57. package/dist/esm/components/ButtonTertiary.js +21 -0
  58. package/dist/esm/components/ButtonTertiary.js.map +1 -0
  59. package/dist/esm/components/Card/Card.js +65 -0
  60. package/dist/esm/components/Card/Card.js.map +1 -0
  61. package/dist/esm/components/Card/CardButton.js +13 -0
  62. package/dist/esm/components/Card/CardButton.js.map +1 -0
  63. package/dist/esm/components/Card/CardButton.style.js +29 -0
  64. package/dist/esm/components/Card/CardButton.style.js.map +1 -0
  65. package/dist/esm/components/Card/CardHeader.js +26 -0
  66. package/dist/esm/components/Card/CardHeader.js.map +1 -0
  67. package/dist/esm/components/Card/CardIconButton.js +14 -0
  68. package/dist/esm/components/Card/CardIconButton.js.map +1 -0
  69. package/dist/esm/components/Card/CardLabel.js +62 -0
  70. package/dist/esm/components/Card/CardLabel.js.map +1 -0
  71. package/dist/esm/components/Card/CardTitle.js +22 -0
  72. package/dist/esm/components/Card/CardTitle.js.map +1 -0
  73. package/dist/esm/components/Card/InputCard.js +11 -0
  74. package/dist/esm/components/Card/InputCard.js.map +1 -0
  75. package/dist/esm/components/ChainSelect/ChainSelect.js +124 -0
  76. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -0
  77. package/dist/esm/components/ChainSelect/ChainSelect.style.js +62 -0
  78. package/dist/esm/components/ChainSelect/ChainSelect.style.js.map +1 -0
  79. package/dist/esm/components/ChainSelect/useChainSelect.js +59 -0
  80. package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -0
  81. package/dist/esm/components/Chains/AllChainsAvatar.js +106 -0
  82. package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -0
  83. package/dist/esm/components/Chains/ChainList.js +50 -0
  84. package/dist/esm/components/Chains/ChainList.js.map +1 -0
  85. package/dist/esm/components/Chains/ChainList.style.js +43 -0
  86. package/dist/esm/components/Chains/ChainList.style.js.map +1 -0
  87. package/dist/esm/components/Chains/ChainListItem.js +55 -0
  88. package/dist/esm/components/Chains/ChainListItem.js.map +1 -0
  89. package/dist/esm/components/Chains/ChainsExpanded.js +23 -0
  90. package/dist/esm/components/Chains/ChainsExpanded.js.map +1 -0
  91. package/dist/esm/components/Chains/ChainsExpanded.style.js +19 -0
  92. package/dist/esm/components/Chains/ChainsExpanded.style.js.map +1 -0
  93. package/dist/esm/components/Chains/PinChainButton.js +43 -0
  94. package/dist/esm/components/Chains/PinChainButton.js.map +1 -0
  95. package/dist/esm/components/Chains/SelectChainExpansionContent.js +65 -0
  96. package/dist/esm/components/Chains/SelectChainExpansionContent.js.map +1 -0
  97. package/dist/esm/components/Chains/SelectChainPageContent.js +60 -0
  98. package/dist/esm/components/Chains/SelectChainPageContent.js.map +1 -0
  99. package/dist/esm/components/Chains/VirtualizedChainList.js +143 -0
  100. package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -0
  101. package/dist/esm/components/ContextMenu.js +59 -0
  102. package/dist/esm/components/ContextMenu.js.map +1 -0
  103. package/dist/esm/components/ContextMenu.style.js +12 -0
  104. package/dist/esm/components/ContextMenu.style.js.map +1 -0
  105. package/dist/esm/components/ContractComponent/ContractComponent.js +14 -0
  106. package/dist/esm/components/ContractComponent/ContractComponent.js.map +1 -0
  107. package/dist/esm/components/ContractComponent/ItemPrice.d.ts +12 -0
  108. package/dist/esm/components/ContractComponent/ItemPrice.d.ts.map +1 -0
  109. package/dist/esm/components/ContractComponent/ItemPrice.js +29 -0
  110. package/dist/esm/components/ContractComponent/ItemPrice.js.map +1 -0
  111. package/dist/esm/components/ContractComponent/NFT/NFT.d.ts +7 -0
  112. package/dist/esm/components/ContractComponent/NFT/NFT.d.ts.map +1 -0
  113. package/dist/esm/components/ContractComponent/NFT/NFT.js +33 -0
  114. package/dist/esm/components/ContractComponent/NFT/NFT.js.map +1 -0
  115. package/dist/esm/components/ContractComponent/NFT/NFT.style.js +12 -0
  116. package/dist/esm/components/ContractComponent/NFT/NFT.style.js.map +1 -0
  117. package/dist/esm/components/ContractComponent/NFT/NFTBase.d.ts +7 -0
  118. package/dist/esm/components/ContractComponent/NFT/NFTBase.d.ts.map +1 -0
  119. package/dist/esm/components/ContractComponent/NFT/NFTBase.js +76 -0
  120. package/dist/esm/components/ContractComponent/NFT/NFTBase.js.map +1 -0
  121. package/dist/esm/components/ContractComponent/NFT/types.d.ts +21 -0
  122. package/dist/esm/components/ContractComponent/NFT/types.d.ts.map +1 -0
  123. package/dist/esm/components/Dialog/Dialog.js +36 -0
  124. package/dist/esm/components/Dialog/Dialog.js.map +1 -0
  125. package/dist/esm/components/Dialog/Dialog.style.js +42 -0
  126. package/dist/esm/components/Dialog/Dialog.style.js.map +1 -0
  127. package/dist/esm/components/EmptyListIndicator/EmptyListIndicator.js +12 -0
  128. package/dist/esm/components/EmptyListIndicator/EmptyListIndicator.js.map +1 -0
  129. package/dist/esm/components/EmptyListIndicator/EmptyListIndicator.style.js +30 -0
  130. package/dist/esm/components/EmptyListIndicator/EmptyListIndicator.style.js.map +1 -0
  131. package/dist/esm/components/ExecutionStatusCard/ExecutionChecklist.js +65 -0
  132. package/dist/esm/components/ExecutionStatusCard/ExecutionChecklist.js.map +1 -0
  133. package/dist/esm/components/ExecutionStatusCard/ExecutionStatusCard.js +273 -0
  134. package/dist/esm/components/ExecutionStatusCard/ExecutionStatusCard.js.map +1 -0
  135. package/dist/esm/components/ExecutionStatusCard/StaggeredRevealTypography.js +47 -0
  136. package/dist/esm/components/ExecutionStatusCard/StaggeredRevealTypography.js.map +1 -0
  137. package/dist/esm/components/ExecutionStatusCard/StatusIcon.js +122 -0
  138. package/dist/esm/components/ExecutionStatusCard/StatusIcon.js.map +1 -0
  139. package/dist/esm/components/ExecutionStatusCard/StatusIcon.style.js +14 -0
  140. package/dist/esm/components/ExecutionStatusCard/StatusIcon.style.js.map +1 -0
  141. package/dist/esm/components/ExecutionStatusCard/iconKey.js +13 -0
  142. package/dist/esm/components/ExecutionStatusCard/iconKey.js.map +1 -0
  143. package/dist/esm/components/Expansion/Expansion.js +32 -0
  144. package/dist/esm/components/Expansion/Expansion.js.map +1 -0
  145. package/dist/esm/components/Expansion/Expansion.style.js +40 -0
  146. package/dist/esm/components/Expansion/Expansion.style.js.map +1 -0
  147. package/dist/esm/components/Expansion/ExpansionTransition.js +32 -0
  148. package/dist/esm/components/Expansion/ExpansionTransition.js.map +1 -0
  149. package/dist/esm/components/FeeBreakdownTooltip.js +39 -0
  150. package/dist/esm/components/FeeBreakdownTooltip.js.map +1 -0
  151. package/dist/esm/components/Header/ActivitiesButton.js +61 -0
  152. package/dist/esm/components/Header/ActivitiesButton.js.map +1 -0
  153. package/dist/esm/components/Header/ActivitiesButton.style.js +39 -0
  154. package/dist/esm/components/Header/ActivitiesButton.style.js.map +1 -0
  155. package/dist/esm/components/Header/BackButton.js +24 -0
  156. package/dist/esm/components/Header/BackButton.js.map +1 -0
  157. package/dist/esm/components/Header/CloseDrawerButton.js +25 -0
  158. package/dist/esm/components/Header/CloseDrawerButton.js.map +1 -0
  159. package/dist/esm/components/Header/DisconnectIconButton.js +20 -0
  160. package/dist/esm/components/Header/DisconnectIconButton.js.map +1 -0
  161. package/dist/esm/components/Header/Header.js +44 -0
  162. package/dist/esm/components/Header/Header.js.map +1 -0
  163. package/dist/esm/components/Header/Header.style.js +71 -0
  164. package/dist/esm/components/Header/Header.style.js.map +1 -0
  165. package/dist/esm/components/Header/NavigationHeader.js +62 -0
  166. package/dist/esm/components/Header/NavigationHeader.js.map +1 -0
  167. package/dist/esm/components/Header/SettingsButton.js +32 -0
  168. package/dist/esm/components/Header/SettingsButton.js.map +1 -0
  169. package/dist/esm/components/Header/SettingsButton.style.js +38 -0
  170. package/dist/esm/components/Header/SettingsButton.style.js.map +1 -0
  171. package/dist/esm/components/Header/SplitNavigationTabs.js +33 -0
  172. package/dist/esm/components/Header/SplitNavigationTabs.js.map +1 -0
  173. package/dist/esm/components/Header/WalletHeader.js +118 -0
  174. package/dist/esm/components/Header/WalletHeader.js.map +1 -0
  175. package/dist/esm/components/Header/WalletMenu.js +100 -0
  176. package/dist/esm/components/Header/WalletMenu.js.map +1 -0
  177. package/dist/esm/components/Header/WalletMenu.style.js +25 -0
  178. package/dist/esm/components/Header/WalletMenu.style.js.map +1 -0
  179. package/dist/esm/components/IconCircle/IconCircle.js +19 -0
  180. package/dist/esm/components/IconCircle/IconCircle.js.map +1 -0
  181. package/dist/esm/components/IconCircle/IconCircle.style.js +57 -0
  182. package/dist/esm/components/IconCircle/IconCircle.style.js.map +1 -0
  183. package/dist/esm/components/IconCircle/statusIcons.js +15 -0
  184. package/dist/esm/components/IconCircle/statusIcons.js.map +1 -0
  185. package/dist/esm/components/IconTypography.js +11 -0
  186. package/dist/esm/components/IconTypography.js.map +1 -0
  187. package/dist/esm/components/Initializer.js +10 -0
  188. package/dist/esm/components/Initializer.js.map +1 -0
  189. package/dist/esm/components/Input.js +15 -0
  190. package/dist/esm/components/Input.js.map +1 -0
  191. package/dist/esm/components/ListItem/ListItem.js +23 -0
  192. package/dist/esm/components/ListItem/ListItem.js.map +1 -0
  193. package/dist/esm/components/ListItem/ListItemButton.js +13 -0
  194. package/dist/esm/components/ListItem/ListItemButton.js.map +1 -0
  195. package/dist/esm/components/ListItemButton.js +30 -0
  196. package/dist/esm/components/ListItemButton.js.map +1 -0
  197. package/dist/esm/components/ListItemText.js +7 -0
  198. package/dist/esm/components/ListItemText.js.map +1 -0
  199. package/dist/esm/components/Menu.js +21 -0
  200. package/dist/esm/components/Menu.js.map +1 -0
  201. package/dist/esm/components/Messages/AccountDeployedMessage.js +27 -0
  202. package/dist/esm/components/Messages/AccountDeployedMessage.js.map +1 -0
  203. package/dist/esm/components/Messages/AccountNotDeployedMessage.js +24 -0
  204. package/dist/esm/components/Messages/AccountNotDeployedMessage.js.map +1 -0
  205. package/dist/esm/components/Messages/AlertMessage.js +16 -0
  206. package/dist/esm/components/Messages/AlertMessage.js.map +1 -0
  207. package/dist/esm/components/Messages/AlertMessage.style.js +38 -0
  208. package/dist/esm/components/Messages/AlertMessage.style.js.map +1 -0
  209. package/dist/esm/components/Messages/FundsSufficiencyMessage.js +24 -0
  210. package/dist/esm/components/Messages/FundsSufficiencyMessage.js.map +1 -0
  211. package/dist/esm/components/Messages/GasRefuelMessage.js +63 -0
  212. package/dist/esm/components/Messages/GasRefuelMessage.js.map +1 -0
  213. package/dist/esm/components/Messages/GasRefuelMessage.style.js +17 -0
  214. package/dist/esm/components/Messages/GasRefuelMessage.style.js.map +1 -0
  215. package/dist/esm/components/Messages/GasSufficiencyMessage.js +43 -0
  216. package/dist/esm/components/Messages/GasSufficiencyMessage.js.map +1 -0
  217. package/dist/esm/components/Messages/MinFromAmountUSDMessage.js +27 -0
  218. package/dist/esm/components/Messages/MinFromAmountUSDMessage.js.map +1 -0
  219. package/dist/esm/components/Messages/MissingRouteRequiredAccountMessage.js +31 -0
  220. package/dist/esm/components/Messages/MissingRouteRequiredAccountMessage.js.map +1 -0
  221. package/dist/esm/components/Messages/WarningMessages.js +45 -0
  222. package/dist/esm/components/Messages/WarningMessages.js.map +1 -0
  223. package/dist/esm/components/Messages/useMessageQueue.js +68 -0
  224. package/dist/esm/components/Messages/useMessageQueue.js.map +1 -0
  225. package/dist/esm/components/NotFound.js +44 -0
  226. package/dist/esm/components/NotFound.js.map +1 -0
  227. package/dist/esm/components/PageContainer.js +20 -0
  228. package/dist/esm/components/PageContainer.js.map +1 -0
  229. package/dist/esm/components/PageEntered.js +17 -0
  230. package/dist/esm/components/PageEntered.js.map +1 -0
  231. package/dist/esm/components/PoweredBy/PoweredBy.js +59 -0
  232. package/dist/esm/components/PoweredBy/PoweredBy.js.map +1 -0
  233. package/dist/esm/components/PoweredBy/PoweredBy.style.js +12 -0
  234. package/dist/esm/components/PoweredBy/PoweredBy.style.js.map +1 -0
  235. package/dist/esm/components/ProgressToNextUpdate.js +66 -0
  236. package/dist/esm/components/ProgressToNextUpdate.js.map +1 -0
  237. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js +40 -0
  238. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -0
  239. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.js +33 -0
  240. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.js.map +1 -0
  241. package/dist/esm/components/RouteCard/RouteCard.js +86 -0
  242. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -0
  243. package/dist/esm/components/RouteCard/RouteCardEssentials.js +92 -0
  244. package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -0
  245. package/dist/esm/components/RouteCard/RouteCardSkeleton.js +53 -0
  246. package/dist/esm/components/RouteCard/RouteCardSkeleton.js.map +1 -0
  247. package/dist/esm/components/RouteCard/RouteDetails.js +100 -0
  248. package/dist/esm/components/RouteCard/RouteDetails.js.map +1 -0
  249. package/dist/esm/components/RouteCard/RouteDetails.style.js +35 -0
  250. package/dist/esm/components/RouteCard/RouteDetails.style.js.map +1 -0
  251. package/dist/esm/components/RouteCard/RouteNotFoundCard.js +45 -0
  252. package/dist/esm/components/RouteCard/RouteNotFoundCard.js.map +1 -0
  253. package/dist/esm/components/RouteCard/RouteToken.js +49 -0
  254. package/dist/esm/components/RouteCard/RouteToken.js.map +1 -0
  255. package/dist/esm/components/RouteCard/RouteToken.style.js +11 -0
  256. package/dist/esm/components/RouteCard/RouteToken.style.js.map +1 -0
  257. package/dist/esm/components/RouteCard/RouteTokens.js +50 -0
  258. package/dist/esm/components/RouteCard/RouteTokens.js.map +1 -0
  259. package/dist/esm/components/RouteCard/getMatchingLabels.js +24 -0
  260. package/dist/esm/components/RouteCard/getMatchingLabels.js.map +1 -0
  261. package/dist/esm/components/Routes/Routes.js +70 -0
  262. package/dist/esm/components/Routes/Routes.js.map +1 -0
  263. package/dist/esm/components/Routes/RoutesContent.js +74 -0
  264. package/dist/esm/components/Routes/RoutesContent.js.map +1 -0
  265. package/dist/esm/components/Routes/RoutesExpanded.js +69 -0
  266. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -0
  267. package/dist/esm/components/Routes/RoutesExpanded.style.js +34 -0
  268. package/dist/esm/components/Routes/RoutesExpanded.style.js.map +1 -0
  269. package/dist/esm/components/Search/SearchInput.js +46 -0
  270. package/dist/esm/components/Search/SearchInput.js.map +1 -0
  271. package/dist/esm/components/Search/SearchInput.style.js +27 -0
  272. package/dist/esm/components/Search/SearchInput.style.js.map +1 -0
  273. package/dist/esm/components/Search/SearchNotFound.js +9 -0
  274. package/dist/esm/components/Search/SearchNotFound.js.map +1 -0
  275. package/dist/esm/components/Search/SearchNotFound.style.js +28 -0
  276. package/dist/esm/components/Search/SearchNotFound.style.js.map +1 -0
  277. package/dist/esm/components/SelectChainAndToken.js +36 -0
  278. package/dist/esm/components/SelectChainAndToken.js.map +1 -0
  279. package/dist/esm/components/SelectTokenButton/SelectTokenButton.js +70 -0
  280. package/dist/esm/components/SelectTokenButton/SelectTokenButton.js.map +1 -0
  281. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js +67 -0
  282. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js.map +1 -0
  283. package/dist/esm/components/SendToWallet/SendToWalletButton.js +115 -0
  284. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -0
  285. package/dist/esm/components/SendToWallet/SendToWalletButton.style.js +53 -0
  286. package/dist/esm/components/SendToWallet/SendToWalletButton.style.js.map +1 -0
  287. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js +49 -0
  288. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -0
  289. package/dist/esm/components/SettingsListItemButton.js +8 -0
  290. package/dist/esm/components/SettingsListItemButton.js.map +1 -0
  291. package/dist/esm/components/Skeleton/WidgetSkeleton.d.ts +10 -0
  292. package/dist/esm/components/Skeleton/WidgetSkeleton.d.ts.map +1 -0
  293. package/dist/esm/components/Skeleton/WidgetSkeleton.js +124 -0
  294. package/dist/esm/components/Skeleton/WidgetSkeleton.js.map +1 -0
  295. package/dist/esm/components/Skeleton/WidgetSkeleton.style.js +73 -0
  296. package/dist/esm/components/Skeleton/WidgetSkeleton.style.js.map +1 -0
  297. package/dist/esm/components/Step/StepActions.js +198 -0
  298. package/dist/esm/components/Step/StepActions.js.map +1 -0
  299. package/dist/esm/components/Step/StepActions.style.js +27 -0
  300. package/dist/esm/components/Step/StepActions.style.js.map +1 -0
  301. package/dist/esm/components/StepActions/SentToWalletRow.js +49 -0
  302. package/dist/esm/components/StepActions/SentToWalletRow.js.map +1 -0
  303. package/dist/esm/components/StepActions/SentToWalletRow.style.js +26 -0
  304. package/dist/esm/components/StepActions/SentToWalletRow.style.js.map +1 -0
  305. package/dist/esm/components/StepActions/StepActionRow.js +27 -0
  306. package/dist/esm/components/StepActions/StepActionRow.js.map +1 -0
  307. package/dist/esm/components/StepActions/StepActionRow.style.js +17 -0
  308. package/dist/esm/components/StepActions/StepActionRow.style.js.map +1 -0
  309. package/dist/esm/components/StepActions/StepActionsList.js +23 -0
  310. package/dist/esm/components/StepActions/StepActionsList.js.map +1 -0
  311. package/dist/esm/components/StepActions/executionRows.js +67 -0
  312. package/dist/esm/components/StepActions/executionRows.js.map +1 -0
  313. package/dist/esm/components/Switch.js +47 -0
  314. package/dist/esm/components/Switch.js.map +1 -0
  315. package/dist/esm/components/Tabs/NavigationTabs.js +39 -0
  316. package/dist/esm/components/Tabs/NavigationTabs.js.map +1 -0
  317. package/dist/esm/components/Tabs/Tabs.style.js +31 -0
  318. package/dist/esm/components/Tabs/Tabs.style.js.map +1 -0
  319. package/dist/esm/components/TextFitter/TextFitter.js +62 -0
  320. package/dist/esm/components/TextFitter/TextFitter.js.map +1 -0
  321. package/dist/esm/components/Timer/ExecutionTimerText.js +10 -0
  322. package/dist/esm/components/Timer/ExecutionTimerText.js.map +1 -0
  323. package/dist/esm/components/Timer/StepStatusTimer.js +56 -0
  324. package/dist/esm/components/Timer/StepStatusTimer.js.map +1 -0
  325. package/dist/esm/components/Timer/StepStatusTimer.style.js +67 -0
  326. package/dist/esm/components/Timer/StepStatusTimer.style.js.map +1 -0
  327. package/dist/esm/components/Token/Token.js +208 -0
  328. package/dist/esm/components/Token/Token.js.map +1 -0
  329. package/dist/esm/components/Token/Token.style.js +31 -0
  330. package/dist/esm/components/Token/Token.style.js.map +1 -0
  331. package/dist/esm/components/TokenList/PinTokenButton.js +36 -0
  332. package/dist/esm/components/TokenList/PinTokenButton.js.map +1 -0
  333. package/dist/esm/components/TokenList/TokenDetailsSheet.js +37 -0
  334. package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -0
  335. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +177 -0
  336. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -0
  337. package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.js +32 -0
  338. package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.js.map +1 -0
  339. package/dist/esm/components/TokenList/TokenList.js +65 -0
  340. package/dist/esm/components/TokenList/TokenList.js.map +1 -0
  341. package/dist/esm/components/TokenList/TokenList.style.js +30 -0
  342. package/dist/esm/components/TokenList/TokenList.style.js.map +1 -0
  343. package/dist/esm/components/TokenList/TokenListItem.js +274 -0
  344. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -0
  345. package/dist/esm/components/TokenList/TokenNotFound.js +12 -0
  346. package/dist/esm/components/TokenList/TokenNotFound.js.map +1 -0
  347. package/dist/esm/components/TokenList/VirtualizedTokenList.js +123 -0
  348. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -0
  349. package/dist/esm/components/TokenList/useTokenSelect.js +78 -0
  350. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -0
  351. package/dist/esm/components/TokenRate/TokenRate.js +38 -0
  352. package/dist/esm/components/TokenRate/TokenRate.js.map +1 -0
  353. package/dist/esm/components/TokenRate/TokenRate.style.js +19 -0
  354. package/dist/esm/components/TokenRate/TokenRate.style.js.map +1 -0
  355. package/dist/esm/components/Tools/ToolItem.js +37 -0
  356. package/dist/esm/components/Tools/ToolItem.js.map +1 -0
  357. package/dist/esm/components/Tools/Tools.js +50 -0
  358. package/dist/esm/components/Tools/Tools.js.map +1 -0
  359. package/dist/esm/components/TransactionCard/ActiveTransactionCard.js +68 -0
  360. package/dist/esm/components/TransactionCard/ActiveTransactionCard.js.map +1 -0
  361. package/dist/esm/components/TransactionCard/ActiveTransactionCard.style.js +21 -0
  362. package/dist/esm/components/TransactionCard/ActiveTransactionCard.style.js.map +1 -0
  363. package/dist/esm/components/TransactionCard/TransactionCard.js +32 -0
  364. package/dist/esm/components/TransactionCard/TransactionCard.js.map +1 -0
  365. package/dist/esm/components/TransactionCard/TransactionCard.style.js +14 -0
  366. package/dist/esm/components/TransactionCard/TransactionCard.style.js.map +1 -0
  367. package/dist/esm/components/TransactionCard/TransactionCardSkeleton.js +63 -0
  368. package/dist/esm/components/TransactionCard/TransactionCardSkeleton.js.map +1 -0
  369. package/dist/esm/config/constants.d.ts +5 -0
  370. package/dist/esm/config/constants.d.ts.map +1 -0
  371. package/dist/esm/config/constants.js +7 -0
  372. package/dist/esm/config/constants.js.map +1 -0
  373. package/dist/esm/config/queryClient.js +18 -0
  374. package/dist/esm/config/queryClient.js.map +1 -0
  375. package/dist/esm/config/version.d.ts +6 -0
  376. package/dist/esm/config/version.d.ts.map +1 -0
  377. package/dist/esm/config/version.js +7 -0
  378. package/dist/esm/config/version.js.map +1 -0
  379. package/dist/esm/hooks/timer/time.js +26 -0
  380. package/dist/esm/hooks/timer/time.js.map +1 -0
  381. package/dist/esm/hooks/timer/useExecutionTimer.js +29 -0
  382. package/dist/esm/hooks/timer/useExecutionTimer.js.map +1 -0
  383. package/dist/esm/hooks/timer/useInterval.js +19 -0
  384. package/dist/esm/hooks/timer/useInterval.js.map +1 -0
  385. package/dist/esm/hooks/timer/useTimer.js +67 -0
  386. package/dist/esm/hooks/timer/useTimer.js.map +1 -0
  387. package/dist/esm/hooks/timer/validate.js +15 -0
  388. package/dist/esm/hooks/timer/validate.js.map +1 -0
  389. package/dist/esm/hooks/useAccountsBalancesData.js +70 -0
  390. package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -0
  391. package/dist/esm/hooks/useActionMessage.js +18 -0
  392. package/dist/esm/hooks/useActionMessage.js.map +1 -0
  393. package/dist/esm/hooks/useAddressActivity.js +36 -0
  394. package/dist/esm/hooks/useAddressActivity.js.map +1 -0
  395. package/dist/esm/hooks/useAddressValidation.js +50 -0
  396. package/dist/esm/hooks/useAddressValidation.js.map +1 -0
  397. package/dist/esm/hooks/useAvailableChains.js +69 -0
  398. package/dist/esm/hooks/useAvailableChains.js.map +1 -0
  399. package/dist/esm/hooks/useChain.js +15 -0
  400. package/dist/esm/hooks/useChain.js.map +1 -0
  401. package/dist/esm/hooks/useChainSearch.js +39 -0
  402. package/dist/esm/hooks/useChainSearch.js.map +1 -0
  403. package/dist/esm/hooks/useChains.js +26 -0
  404. package/dist/esm/hooks/useChains.js.map +1 -0
  405. package/dist/esm/hooks/useContactSupport.js +15 -0
  406. package/dist/esm/hooks/useContactSupport.js.map +1 -0
  407. package/dist/esm/hooks/useDebouncedWatch.js +28 -0
  408. package/dist/esm/hooks/useDebouncedWatch.js.map +1 -0
  409. package/dist/esm/hooks/useDefaultElementId.js +10 -0
  410. package/dist/esm/hooks/useDefaultElementId.js.map +1 -0
  411. package/dist/esm/hooks/useExplorer.js +59 -0
  412. package/dist/esm/hooks/useExplorer.js.map +1 -0
  413. package/dist/esm/hooks/useFilteredByTokenBalances.js +71 -0
  414. package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -0
  415. package/dist/esm/hooks/useFromAmountThreshold.js +29 -0
  416. package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -0
  417. package/dist/esm/hooks/useFromTokenSufficiency.js +56 -0
  418. package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -0
  419. package/dist/esm/hooks/useGasRecommendation.js +38 -0
  420. package/dist/esm/hooks/useGasRecommendation.js.map +1 -0
  421. package/dist/esm/hooks/useGasRefuel.js +45 -0
  422. package/dist/esm/hooks/useGasRefuel.js.map +1 -0
  423. package/dist/esm/hooks/useGasSufficiency.js +104 -0
  424. package/dist/esm/hooks/useGasSufficiency.js.map +1 -0
  425. package/dist/esm/hooks/useHasChainExpansion.js +17 -0
  426. package/dist/esm/hooks/useHasChainExpansion.js.map +1 -0
  427. package/dist/esm/hooks/useHeader.js +23 -0
  428. package/dist/esm/hooks/useHeader.js.map +1 -0
  429. package/dist/esm/hooks/useInitializeSDKProviders.js +15 -0
  430. package/dist/esm/hooks/useInitializeSDKProviders.js.map +1 -0
  431. package/dist/esm/hooks/useInitializer.js +19 -0
  432. package/dist/esm/hooks/useInitializer.js.map +1 -0
  433. package/dist/esm/hooks/useIsBatchingSupported.js +37 -0
  434. package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -0
  435. package/dist/esm/hooks/useIsContractAddress.js +30 -0
  436. package/dist/esm/hooks/useIsContractAddress.js.map +1 -0
  437. package/dist/esm/hooks/useLanguages.js +53 -0
  438. package/dist/esm/hooks/useLanguages.js.map +1 -0
  439. package/dist/esm/hooks/useListHeight.js +52 -0
  440. package/dist/esm/hooks/useListHeight.js.map +1 -0
  441. package/dist/esm/hooks/useLongPress.js +40 -0
  442. package/dist/esm/hooks/useLongPress.js.map +1 -0
  443. package/dist/esm/hooks/useNavigateBack.js +18 -0
  444. package/dist/esm/hooks/useNavigateBack.js.map +1 -0
  445. package/dist/esm/hooks/usePacedRouteExecution.js +30 -0
  446. package/dist/esm/hooks/usePacedRouteExecution.js.map +1 -0
  447. package/dist/esm/hooks/usePacedValue.js +42 -0
  448. package/dist/esm/hooks/usePacedValue.js.map +1 -0
  449. package/dist/esm/hooks/useRouteExecution.js +156 -0
  450. package/dist/esm/hooks/useRouteExecution.js.map +1 -0
  451. package/dist/esm/hooks/useRouteExecutionMessage.js +61 -0
  452. package/dist/esm/hooks/useRouteExecutionMessage.js.map +1 -0
  453. package/dist/esm/hooks/useRouteRequiredAccountConnection.js +37 -0
  454. package/dist/esm/hooks/useRouteRequiredAccountConnection.js.map +1 -0
  455. package/dist/esm/hooks/useRoutes.js +303 -0
  456. package/dist/esm/hooks/useRoutes.js.map +1 -0
  457. package/dist/esm/hooks/useScrollableContainer.js +12 -0
  458. package/dist/esm/hooks/useScrollableContainer.js.map +1 -0
  459. package/dist/esm/hooks/useSetContentHeight.js +23 -0
  460. package/dist/esm/hooks/useSetContentHeight.js.map +1 -0
  461. package/dist/esm/hooks/useSettingMonitor.js +51 -0
  462. package/dist/esm/hooks/useSettingMonitor.js.map +1 -0
  463. package/dist/esm/hooks/useSwapOnly.js +9 -0
  464. package/dist/esm/hooks/useSwapOnly.js.map +1 -0
  465. package/dist/esm/hooks/useToAddressAutoPopulate.js +51 -0
  466. package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -0
  467. package/dist/esm/hooks/useToAddressRequirements.js +41 -0
  468. package/dist/esm/hooks/useToAddressRequirements.js.map +1 -0
  469. package/dist/esm/hooks/useToAddressReset.js +29 -0
  470. package/dist/esm/hooks/useToAddressReset.js.map +1 -0
  471. package/dist/esm/hooks/useToken.js +23 -0
  472. package/dist/esm/hooks/useToken.js.map +1 -0
  473. package/dist/esm/hooks/useTokenAddressBalance.js +21 -0
  474. package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -0
  475. package/dist/esm/hooks/useTokenBalance.js +93 -0
  476. package/dist/esm/hooks/useTokenBalance.js.map +1 -0
  477. package/dist/esm/hooks/useTokenBalances.js +111 -0
  478. package/dist/esm/hooks/useTokenBalances.js.map +1 -0
  479. package/dist/esm/hooks/useTokenBalancesQueries.js +63 -0
  480. package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -0
  481. package/dist/esm/hooks/useTokenRateText.js +36 -0
  482. package/dist/esm/hooks/useTokenRateText.js.map +1 -0
  483. package/dist/esm/hooks/useTokenSearch.js +48 -0
  484. package/dist/esm/hooks/useTokenSearch.js.map +1 -0
  485. package/dist/esm/hooks/useTokens.js +100 -0
  486. package/dist/esm/hooks/useTokens.js.map +1 -0
  487. package/dist/esm/hooks/useTools.js +42 -0
  488. package/dist/esm/hooks/useTools.js.map +1 -0
  489. package/dist/esm/hooks/useTransactionDetails.js +49 -0
  490. package/dist/esm/hooks/useTransactionDetails.js.map +1 -0
  491. package/dist/esm/hooks/useTransactionHistory.js +68 -0
  492. package/dist/esm/hooks/useTransactionHistory.js.map +1 -0
  493. package/dist/esm/hooks/useTransactionList.js +57 -0
  494. package/dist/esm/hooks/useTransactionList.js.map +1 -0
  495. package/dist/esm/hooks/useWideVariant.js +13 -0
  496. package/dist/esm/hooks/useWideVariant.js.map +1 -0
  497. package/dist/esm/hooks/useWidgetChains.d.ts +12 -0
  498. package/dist/esm/hooks/useWidgetChains.d.ts.map +1 -0
  499. package/dist/esm/hooks/useWidgetChains.js +9 -0
  500. package/dist/esm/hooks/useWidgetChains.js.map +1 -0
  501. package/dist/esm/hooks/useWidgetEvents.d.ts +10 -0
  502. package/dist/esm/hooks/useWidgetEvents.d.ts.map +1 -0
  503. package/dist/esm/hooks/useWidgetEvents.js +8 -0
  504. package/dist/esm/hooks/useWidgetEvents.js.map +1 -0
  505. package/dist/esm/i18n/bn.json +362 -0
  506. package/dist/esm/i18n/de.json +362 -0
  507. package/dist/esm/i18n/en.json +360 -0
  508. package/dist/esm/i18n/es.json +362 -0
  509. package/dist/esm/i18n/fr.json +362 -0
  510. package/dist/esm/i18n/hi.json +362 -0
  511. package/dist/esm/i18n/id.json +362 -0
  512. package/dist/esm/i18n/it.json +362 -0
  513. package/dist/esm/i18n/ja.json +362 -0
  514. package/dist/esm/i18n/ko.json +362 -0
  515. package/dist/esm/i18n/pl.json +362 -0
  516. package/dist/esm/i18n/pt.json +362 -0
  517. package/dist/esm/i18n/th.json +362 -0
  518. package/dist/esm/i18n/tr.json +362 -0
  519. package/dist/esm/i18n/uk.json +362 -0
  520. package/dist/esm/i18n/vi.json +362 -0
  521. package/dist/esm/i18n/zh.json +362 -0
  522. package/dist/esm/index.d.ts +33 -0
  523. package/dist/esm/index.js +28 -0
  524. package/dist/esm/pages/ActivitiesPage/ActiveTransactionItem.js +36 -0
  525. package/dist/esm/pages/ActivitiesPage/ActiveTransactionItem.js.map +1 -0
  526. package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js +101 -0
  527. package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js.map +1 -0
  528. package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js +55 -0
  529. package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js.map +1 -0
  530. package/dist/esm/pages/ActivitiesPage/TransactionHistoryEmpty.js +17 -0
  531. package/dist/esm/pages/ActivitiesPage/TransactionHistoryEmpty.js.map +1 -0
  532. package/dist/esm/pages/ActivitiesPage/TransactionHistoryItem.js +24 -0
  533. package/dist/esm/pages/ActivitiesPage/TransactionHistoryItem.js.map +1 -0
  534. package/dist/esm/pages/LanguagesPage.js +31 -0
  535. package/dist/esm/pages/LanguagesPage.js.map +1 -0
  536. package/dist/esm/pages/MainPage/MainPage.js +59 -0
  537. package/dist/esm/pages/MainPage/MainPage.js.map +1 -0
  538. package/dist/esm/pages/MainPage/MainWarningMessages.js +16 -0
  539. package/dist/esm/pages/MainPage/MainWarningMessages.js.map +1 -0
  540. package/dist/esm/pages/MainPage/ReviewButton.js +60 -0
  541. package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -0
  542. package/dist/esm/pages/RoutesPage/RoutesPage.js +74 -0
  543. package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -0
  544. package/dist/esm/pages/RoutesPage/RoutesPage.style.js +10 -0
  545. package/dist/esm/pages/RoutesPage/RoutesPage.style.js.map +1 -0
  546. package/dist/esm/pages/SelectChainPage/SelectChainPage.js +35 -0
  547. package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -0
  548. package/dist/esm/pages/SelectEnabledToolsPage.js +105 -0
  549. package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -0
  550. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +40 -0
  551. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -0
  552. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +46 -0
  553. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -0
  554. package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js +176 -0
  555. package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js.map +1 -0
  556. package/dist/esm/pages/SendToWallet/BookmarksPage.js +124 -0
  557. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -0
  558. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js +82 -0
  559. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -0
  560. package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js +106 -0
  561. package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -0
  562. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js +124 -0
  563. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -0
  564. package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js +84 -0
  565. package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -0
  566. package/dist/esm/pages/SendToWallet/SendToWalletPage.js +237 -0
  567. package/dist/esm/pages/SendToWallet/SendToWalletPage.js.map +1 -0
  568. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.js +90 -0
  569. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.js.map +1 -0
  570. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +49 -0
  571. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -0
  572. package/dist/esm/pages/SettingsPage/GasPriceSettings.js +56 -0
  573. package/dist/esm/pages/SettingsPage/GasPriceSettings.js.map +1 -0
  574. package/dist/esm/pages/SettingsPage/LanguageSetting.js +31 -0
  575. package/dist/esm/pages/SettingsPage/LanguageSetting.js.map +1 -0
  576. package/dist/esm/pages/SettingsPage/ResetSettingsButton.js +64 -0
  577. package/dist/esm/pages/SettingsPage/ResetSettingsButton.js.map +1 -0
  578. package/dist/esm/pages/SettingsPage/ResetSettingsButton.style.js +12 -0
  579. package/dist/esm/pages/SettingsPage/ResetSettingsButton.style.js.map +1 -0
  580. package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js +48 -0
  581. package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js.map +1 -0
  582. package/dist/esm/pages/SettingsPage/SettingsCard/BadgedValue.js +13 -0
  583. package/dist/esm/pages/SettingsPage/SettingsCard/BadgedValue.js.map +1 -0
  584. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.js +23 -0
  585. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.js.map +1 -0
  586. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +47 -0
  587. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -0
  588. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js +38 -0
  589. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js.map +1 -0
  590. package/dist/esm/pages/SettingsPage/SettingsPage.js +39 -0
  591. package/dist/esm/pages/SettingsPage/SettingsPage.js.map +1 -0
  592. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +92 -0
  593. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -0
  594. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js +62 -0
  595. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js.map +1 -0
  596. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js +75 -0
  597. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js.map +1 -0
  598. package/dist/esm/pages/SettingsPage/ThemeSettings.js +60 -0
  599. package/dist/esm/pages/SettingsPage/ThemeSettings.js.map +1 -0
  600. package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.js +16 -0
  601. package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.js.map +1 -0
  602. package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.style.js +14 -0
  603. package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.style.js.map +1 -0
  604. package/dist/esm/pages/TransactionDetailsPage/ReceiptsCard.js +28 -0
  605. package/dist/esm/pages/TransactionDetailsPage/ReceiptsCard.js.map +1 -0
  606. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js +84 -0
  607. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -0
  608. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsSkeleton.js +80 -0
  609. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsSkeleton.js.map +1 -0
  610. package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js +65 -0
  611. package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js.map +1 -0
  612. package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js +81 -0
  613. package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js.map +1 -0
  614. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js +146 -0
  615. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -0
  616. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.style.js +11 -0
  617. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.style.js.map +1 -0
  618. package/dist/esm/pages/TransactionPage/ExecutionDoneCard.js +38 -0
  619. package/dist/esm/pages/TransactionPage/ExecutionDoneCard.js.map +1 -0
  620. package/dist/esm/pages/TransactionPage/RouteTracker.js +47 -0
  621. package/dist/esm/pages/TransactionPage/RouteTracker.js.map +1 -0
  622. package/dist/esm/pages/TransactionPage/StartTransactionButton.js +21 -0
  623. package/dist/esm/pages/TransactionPage/StartTransactionButton.js.map +1 -0
  624. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +82 -0
  625. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -0
  626. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.style.js +44 -0
  627. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.style.js.map +1 -0
  628. package/dist/esm/pages/TransactionPage/TransactionContent.js +21 -0
  629. package/dist/esm/pages/TransactionPage/TransactionContent.js.map +1 -0
  630. package/dist/esm/pages/TransactionPage/TransactionDoneButtons.js +46 -0
  631. package/dist/esm/pages/TransactionPage/TransactionDoneButtons.js.map +1 -0
  632. package/dist/esm/pages/TransactionPage/TransactionExecutionContent.js +78 -0
  633. package/dist/esm/pages/TransactionPage/TransactionExecutionContent.js.map +1 -0
  634. package/dist/esm/pages/TransactionPage/TransactionFailedButtons.js +80 -0
  635. package/dist/esm/pages/TransactionPage/TransactionFailedButtons.js.map +1 -0
  636. package/dist/esm/pages/TransactionPage/TransactionPage.js +79 -0
  637. package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -0
  638. package/dist/esm/pages/TransactionPage/TransactionReview.js +115 -0
  639. package/dist/esm/pages/TransactionPage/TransactionReview.js.map +1 -0
  640. package/dist/esm/pages/TransactionPage/utils.js +12 -0
  641. package/dist/esm/pages/TransactionPage/utils.js.map +1 -0
  642. package/dist/esm/providers/I18nProvider/I18nProvider.js +83 -0
  643. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -0
  644. package/dist/esm/providers/I18nProvider/constants.js +43 -0
  645. package/dist/esm/providers/I18nProvider/constants.js.map +1 -0
  646. package/dist/esm/providers/I18nProvider/enResource.d.ts +2 -0
  647. package/dist/esm/providers/I18nProvider/enResource.js +2 -0
  648. package/dist/esm/providers/I18nProvider/i18n.js +18 -0
  649. package/dist/esm/providers/I18nProvider/i18n.js.map +1 -0
  650. package/dist/esm/providers/I18nProvider/types.d.ts +12 -0
  651. package/dist/esm/providers/I18nProvider/types.d.ts.map +1 -0
  652. package/dist/esm/providers/QueryClientProvider.js +15 -0
  653. package/dist/esm/providers/QueryClientProvider.js.map +1 -0
  654. package/dist/esm/providers/SDKClientProvider.js +43 -0
  655. package/dist/esm/providers/SDKClientProvider.js.map +1 -0
  656. package/dist/esm/providers/ThemeProvider/ThemeProvider.js +25 -0
  657. package/dist/esm/providers/ThemeProvider/ThemeProvider.js.map +1 -0
  658. package/dist/esm/providers/WalletProvider/WalletProvider.js +40 -0
  659. package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -0
  660. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +45 -0
  661. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -0
  662. package/dist/esm/providers/WidgetProvider/WidgetProvider.js +43 -0
  663. package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -0
  664. package/dist/esm/stores/StoreProvider.js +38 -0
  665. package/dist/esm/stores/StoreProvider.js.map +1 -0
  666. package/dist/esm/stores/bookmarks/BookmarkStore.js +28 -0
  667. package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -0
  668. package/dist/esm/stores/bookmarks/createBookmarkStore.js +45 -0
  669. package/dist/esm/stores/bookmarks/createBookmarkStore.js.map +1 -0
  670. package/dist/esm/stores/bookmarks/types.d.ts +26 -0
  671. package/dist/esm/stores/bookmarks/types.d.ts.map +1 -0
  672. package/dist/esm/stores/bookmarks/useBookmarkActions.js +17 -0
  673. package/dist/esm/stores/bookmarks/useBookmarkActions.js.map +1 -0
  674. package/dist/esm/stores/bookmarks/useBookmarks.js +18 -0
  675. package/dist/esm/stores/bookmarks/useBookmarks.js.map +1 -0
  676. package/dist/esm/stores/chains/ChainOrderStore.js +82 -0
  677. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -0
  678. package/dist/esm/stores/chains/createChainOrderStore.js +87 -0
  679. package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -0
  680. package/dist/esm/stores/chains/useChainOrder.js +11 -0
  681. package/dist/esm/stores/chains/useChainOrder.js.map +1 -0
  682. package/dist/esm/stores/form/FormStore.js +72 -0
  683. package/dist/esm/stores/form/FormStore.js.map +1 -0
  684. package/dist/esm/stores/form/FormStoreContext.js +7 -0
  685. package/dist/esm/stores/form/FormStoreContext.js.map +1 -0
  686. package/dist/esm/stores/form/FormUpdater.js +37 -0
  687. package/dist/esm/stores/form/FormUpdater.js.map +1 -0
  688. package/dist/esm/stores/form/URLSearchParamsBuilder.js +79 -0
  689. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -0
  690. package/dist/esm/stores/form/createFormStore.js +176 -0
  691. package/dist/esm/stores/form/createFormStore.js.map +1 -0
  692. package/dist/esm/stores/form/getDefaultValuesFromQueryString.js +22 -0
  693. package/dist/esm/stores/form/getDefaultValuesFromQueryString.js.map +1 -0
  694. package/dist/esm/stores/form/types.d.ts +76 -0
  695. package/dist/esm/stores/form/types.d.ts.map +1 -0
  696. package/dist/esm/stores/form/types.js +10 -0
  697. package/dist/esm/stores/form/types.js.map +1 -0
  698. package/dist/esm/stores/form/useClearAmountFields.js +14 -0
  699. package/dist/esm/stores/form/useClearAmountFields.js.map +1 -0
  700. package/dist/esm/stores/form/useFieldActions.d.ts +7 -0
  701. package/dist/esm/stores/form/useFieldActions.d.ts.map +1 -0
  702. package/dist/esm/stores/form/useFieldActions.js +61 -0
  703. package/dist/esm/stores/form/useFieldActions.js.map +1 -0
  704. package/dist/esm/stores/form/useFieldValues.d.ts +7 -0
  705. package/dist/esm/stores/form/useFieldValues.d.ts.map +1 -0
  706. package/dist/esm/stores/form/useFieldValues.js +9 -0
  707. package/dist/esm/stores/form/useFieldValues.js.map +1 -0
  708. package/dist/esm/stores/form/useFormRef.js +36 -0
  709. package/dist/esm/stores/form/useFormRef.js.map +1 -0
  710. package/dist/esm/stores/form/useFormStore.js +13 -0
  711. package/dist/esm/stores/form/useFormStore.js.map +1 -0
  712. package/dist/esm/stores/form/useTouchedFields.js +9 -0
  713. package/dist/esm/stores/form/useTouchedFields.js.map +1 -0
  714. package/dist/esm/stores/header/useHeaderStore.js +62 -0
  715. package/dist/esm/stores/header/useHeaderStore.js.map +1 -0
  716. package/dist/esm/stores/inputMode/useInputModeStore.js +20 -0
  717. package/dist/esm/stores/inputMode/useInputModeStore.js.map +1 -0
  718. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js +23 -0
  719. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js.map +1 -0
  720. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js +57 -0
  721. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js.map +1 -0
  722. package/dist/esm/stores/routes/RouteExecutionStore.js +26 -0
  723. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -0
  724. package/dist/esm/stores/routes/createRouteExecutionStore.js +85 -0
  725. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -0
  726. package/dist/esm/stores/routes/useIntermediateRoutesStore.js +19 -0
  727. package/dist/esm/stores/routes/useIntermediateRoutesStore.js.map +1 -0
  728. package/dist/esm/stores/routes/useRouteExecutionIndicator.js +23 -0
  729. package/dist/esm/stores/routes/useRouteExecutionIndicator.js.map +1 -0
  730. package/dist/esm/stores/routes/useSetExecutableRoute.js +9 -0
  731. package/dist/esm/stores/routes/useSetExecutableRoute.js.map +1 -0
  732. package/dist/esm/stores/routes/utils.js +35 -0
  733. package/dist/esm/stores/routes/utils.js.map +1 -0
  734. package/dist/esm/stores/settings/SettingsStore.js +26 -0
  735. package/dist/esm/stores/settings/SettingsStore.js.map +1 -0
  736. package/dist/esm/stores/settings/createSettingsStore.js +126 -0
  737. package/dist/esm/stores/settings/createSettingsStore.js.map +1 -0
  738. package/dist/esm/stores/settings/types.d.ts +25 -0
  739. package/dist/esm/stores/settings/types.d.ts.map +1 -0
  740. package/dist/esm/stores/settings/types.js +6 -0
  741. package/dist/esm/stores/settings/types.js.map +1 -0
  742. package/dist/esm/stores/settings/useSettings.js +12 -0
  743. package/dist/esm/stores/settings/useSettings.js.map +1 -0
  744. package/dist/esm/stores/settings/useSettingsActions.js +70 -0
  745. package/dist/esm/stores/settings/useSettingsActions.js.map +1 -0
  746. package/dist/esm/stores/settings/useSplitModeStore.js +36 -0
  747. package/dist/esm/stores/settings/useSplitModeStore.js.map +1 -0
  748. package/dist/esm/stores/settings/utils/getStateValues.js +20 -0
  749. package/dist/esm/stores/settings/utils/getStateValues.js.map +1 -0
  750. package/dist/esm/themes/azureLight.d.ts +7 -0
  751. package/dist/esm/themes/azureLight.d.ts.map +1 -0
  752. package/dist/esm/themes/azureLight.js +41 -0
  753. package/dist/esm/themes/azureLight.js.map +1 -0
  754. package/dist/esm/themes/createTheme.d.ts +8 -0
  755. package/dist/esm/themes/createTheme.d.ts.map +1 -0
  756. package/dist/esm/themes/createTheme.js +322 -0
  757. package/dist/esm/themes/createTheme.js.map +1 -0
  758. package/dist/esm/themes/jumper.d.ts +7 -0
  759. package/dist/esm/themes/jumper.d.ts.map +1 -0
  760. package/dist/esm/themes/jumper.js +58 -0
  761. package/dist/esm/themes/jumper.js.map +1 -0
  762. package/dist/esm/themes/palettes.d.ts +54 -0
  763. package/dist/esm/themes/palettes.d.ts.map +1 -0
  764. package/dist/esm/themes/palettes.js +43 -0
  765. package/dist/esm/themes/palettes.js.map +1 -0
  766. package/dist/esm/themes/types.d.ts +67 -0
  767. package/dist/esm/themes/types.d.ts.map +1 -0
  768. package/dist/esm/themes/utils.js +13 -0
  769. package/dist/esm/themes/utils.js.map +1 -0
  770. package/dist/esm/themes/watermelonLight.d.ts +7 -0
  771. package/dist/esm/themes/watermelonLight.d.ts.map +1 -0
  772. package/dist/esm/themes/watermelonLight.js +45 -0
  773. package/dist/esm/themes/watermelonLight.js.map +1 -0
  774. package/dist/esm/themes/windows95.d.ts +7 -0
  775. package/dist/esm/themes/windows95.d.ts.map +1 -0
  776. package/dist/esm/themes/windows95.js +76 -0
  777. package/dist/esm/themes/windows95.js.map +1 -0
  778. package/dist/esm/types/events.d.ts +96 -0
  779. package/dist/esm/types/events.d.ts.map +1 -0
  780. package/dist/esm/types/events.js +26 -0
  781. package/dist/esm/types/events.js.map +1 -0
  782. package/dist/esm/types/token.d.ts +13 -0
  783. package/dist/esm/types/token.d.ts.map +1 -0
  784. package/dist/esm/types/widget.d.ts +332 -0
  785. package/dist/esm/types/widget.d.ts.map +1 -0
  786. package/dist/esm/types/widget.js +11 -0
  787. package/dist/esm/types/widget.js.map +1 -0
  788. package/dist/esm/utils/chainType.js +14 -0
  789. package/dist/esm/utils/chainType.js.map +1 -0
  790. package/dist/esm/utils/compactNumberFormatter.d.ts +14 -0
  791. package/dist/esm/utils/compactNumberFormatter.d.ts.map +1 -0
  792. package/dist/esm/utils/compactNumberFormatter.js +67 -0
  793. package/dist/esm/utils/compactNumberFormatter.js.map +1 -0
  794. package/dist/esm/utils/converters.js +168 -0
  795. package/dist/esm/utils/converters.js.map +1 -0
  796. package/dist/esm/utils/currencyExtendedFormatter.d.ts +5 -0
  797. package/dist/esm/utils/currencyExtendedFormatter.d.ts.map +1 -0
  798. package/dist/esm/utils/currencyExtendedFormatter.js +15 -0
  799. package/dist/esm/utils/currencyExtendedFormatter.js.map +1 -0
  800. package/dist/esm/utils/deepEqual.js +32 -0
  801. package/dist/esm/utils/deepEqual.js.map +1 -0
  802. package/dist/esm/utils/deepMerge.js +13 -0
  803. package/dist/esm/utils/deepMerge.js.map +1 -0
  804. package/dist/esm/utils/elements.js +10 -0
  805. package/dist/esm/utils/elements.js.map +1 -0
  806. package/dist/esm/utils/enum.js +6 -0
  807. package/dist/esm/utils/enum.js.map +1 -0
  808. package/dist/esm/utils/fees.js +74 -0
  809. package/dist/esm/utils/fees.js.map +1 -0
  810. package/dist/esm/utils/format.d.ts +29 -0
  811. package/dist/esm/utils/format.d.ts.map +1 -0
  812. package/dist/esm/utils/format.js +100 -0
  813. package/dist/esm/utils/format.js.map +1 -0
  814. package/dist/esm/utils/getActionMessage.js +68 -0
  815. package/dist/esm/utils/getActionMessage.js.map +1 -0
  816. package/dist/esm/utils/getErrorMessage.js +117 -0
  817. package/dist/esm/utils/getErrorMessage.js.map +1 -0
  818. package/dist/esm/utils/getPriceImpact.d.ts +18 -0
  819. package/dist/esm/utils/getPriceImpact.d.ts.map +1 -0
  820. package/dist/esm/utils/getPriceImpact.js +12 -0
  821. package/dist/esm/utils/getPriceImpact.js.map +1 -0
  822. package/dist/esm/utils/input.js +23 -0
  823. package/dist/esm/utils/input.js.map +1 -0
  824. package/dist/esm/utils/item.js +27 -0
  825. package/dist/esm/utils/item.js.map +1 -0
  826. package/dist/esm/utils/navigationRoutes.d.ts +27 -0
  827. package/dist/esm/utils/navigationRoutes.d.ts.map +1 -0
  828. package/dist/esm/utils/navigationRoutes.js +65 -0
  829. package/dist/esm/utils/navigationRoutes.js.map +1 -0
  830. package/dist/esm/utils/percentFormatter.d.ts +11 -0
  831. package/dist/esm/utils/percentFormatter.d.ts.map +1 -0
  832. package/dist/esm/utils/percentFormatter.js +23 -0
  833. package/dist/esm/utils/percentFormatter.js.map +1 -0
  834. package/dist/esm/utils/prepareActions.js +21 -0
  835. package/dist/esm/utils/prepareActions.js.map +1 -0
  836. package/dist/esm/utils/queries.js +6 -0
  837. package/dist/esm/utils/queries.js.map +1 -0
  838. package/dist/esm/utils/timer.js +23 -0
  839. package/dist/esm/utils/timer.js.map +1 -0
  840. package/dist/esm/utils/token.js +59 -0
  841. package/dist/esm/utils/token.js.map +1 -0
  842. package/dist/esm/utils/tokenList.js +147 -0
  843. package/dist/esm/utils/tokenList.js.map +1 -0
  844. package/dist/esm/utils/variant.js +10 -0
  845. package/dist/esm/utils/variant.js.map +1 -0
  846. package/dist/esm/utils/wallet.js +6 -0
  847. package/dist/esm/utils/wallet.js.map +1 -0
  848. package/dist/esm/utils/widgetSize.js +11 -0
  849. package/dist/esm/utils/widgetSize.js.map +1 -0
  850. package/package.json +95 -0
  851. package/src/App.tsx +48 -0
  852. package/src/AppDefault.tsx +266 -0
  853. package/src/AppDrawer.tsx +104 -0
  854. package/src/AppDrawerContext.ts +10 -0
  855. package/src/AppLayout.tsx +36 -0
  856. package/src/AppProvider.tsx +36 -0
  857. package/src/components/ActionRow/ActionRow.style.tsx +21 -0
  858. package/src/components/ActionRow/ActionRow.tsx +25 -0
  859. package/src/components/AmountInput/AmountInput.style.tsx +68 -0
  860. package/src/components/AmountInput/AmountInput.tsx +203 -0
  861. package/src/components/AmountInput/AmountInputEndAdornment.style.ts +22 -0
  862. package/src/components/AmountInput/AmountInputEndAdornment.tsx +96 -0
  863. package/src/components/AmountInput/AmountInputStartAdornment.tsx +26 -0
  864. package/src/components/AmountInput/PriceFormHelperText.style.tsx +34 -0
  865. package/src/components/AmountInput/PriceFormHelperText.tsx +135 -0
  866. package/src/components/AppContainer.tsx +154 -0
  867. package/src/components/Avatar/AccountAvatar.tsx +50 -0
  868. package/src/components/Avatar/Avatar.style.tsx +100 -0
  869. package/src/components/Avatar/Avatar.tsx +50 -0
  870. package/src/components/Avatar/ChainBadgeContent.tsx +22 -0
  871. package/src/components/Avatar/SmallAvatar.tsx +27 -0
  872. package/src/components/Avatar/TokenAvatar.tsx +99 -0
  873. package/src/components/Avatar/utils.ts +6 -0
  874. package/src/components/BaseTransactionButton/BaseTransactionButton.tsx +72 -0
  875. package/src/components/BaseTransactionButton/types.ts +11 -0
  876. package/src/components/BottomSheet/BottomSheet.tsx +67 -0
  877. package/src/components/BottomSheet/types.ts +14 -0
  878. package/src/components/ButtonTertiary.tsx +29 -0
  879. package/src/components/Card/Card.tsx +81 -0
  880. package/src/components/Card/CardButton.style.tsx +31 -0
  881. package/src/components/Card/CardButton.tsx +26 -0
  882. package/src/components/Card/CardHeader.tsx +28 -0
  883. package/src/components/Card/CardIconButton.tsx +20 -0
  884. package/src/components/Card/CardLabel.tsx +80 -0
  885. package/src/components/Card/CardTitle.tsx +29 -0
  886. package/src/components/Card/InputCard.tsx +11 -0
  887. package/src/components/ChainSelect/ChainSelect.style.tsx +84 -0
  888. package/src/components/ChainSelect/ChainSelect.tsx +183 -0
  889. package/src/components/ChainSelect/useChainSelect.ts +98 -0
  890. package/src/components/Chains/AllChainsAvatar.tsx +167 -0
  891. package/src/components/Chains/ChainList.style.tsx +91 -0
  892. package/src/components/Chains/ChainList.tsx +89 -0
  893. package/src/components/Chains/ChainListItem.tsx +83 -0
  894. package/src/components/Chains/ChainsExpanded.style.tsx +25 -0
  895. package/src/components/Chains/ChainsExpanded.tsx +31 -0
  896. package/src/components/Chains/PinChainButton.tsx +55 -0
  897. package/src/components/Chains/SelectChainExpansionContent.tsx +84 -0
  898. package/src/components/Chains/SelectChainPageContent.tsx +66 -0
  899. package/src/components/Chains/VirtualizedChainList.tsx +222 -0
  900. package/src/components/ContextMenu.style.tsx +13 -0
  901. package/src/components/ContextMenu.tsx +75 -0
  902. package/src/components/ContractComponent/ContractComponent.tsx +14 -0
  903. package/src/components/ContractComponent/ItemPrice.tsx +37 -0
  904. package/src/components/ContractComponent/NFT/NFT.style.ts +10 -0
  905. package/src/components/ContractComponent/NFT/NFT.tsx +46 -0
  906. package/src/components/ContractComponent/NFT/NFTBase.tsx +91 -0
  907. package/src/components/ContractComponent/NFT/types.ts +19 -0
  908. package/src/components/Dialog/Dialog.style.tsx +59 -0
  909. package/src/components/Dialog/Dialog.tsx +49 -0
  910. package/src/components/EmptyListIndicator/EmptyListIndicator.style.tsx +38 -0
  911. package/src/components/EmptyListIndicator/EmptyListIndicator.tsx +25 -0
  912. package/src/components/ExecutionStatusCard/ExecutionChecklist.tsx +61 -0
  913. package/src/components/ExecutionStatusCard/ExecutionStatusCard.tsx +242 -0
  914. package/src/components/ExecutionStatusCard/StaggeredRevealTypography.tsx +59 -0
  915. package/src/components/ExecutionStatusCard/StatusIcon.style.tsx +13 -0
  916. package/src/components/ExecutionStatusCard/StatusIcon.tsx +99 -0
  917. package/src/components/ExecutionStatusCard/iconKey.ts +37 -0
  918. package/src/components/Expansion/Expansion.style.tsx +46 -0
  919. package/src/components/Expansion/Expansion.tsx +47 -0
  920. package/src/components/Expansion/ExpansionTransition.tsx +48 -0
  921. package/src/components/FeeBreakdownTooltip.tsx +68 -0
  922. package/src/components/Header/ActivitiesButton.style.tsx +67 -0
  923. package/src/components/Header/ActivitiesButton.tsx +59 -0
  924. package/src/components/Header/BackButton.tsx +29 -0
  925. package/src/components/Header/CloseDrawerButton.tsx +35 -0
  926. package/src/components/Header/DisconnectIconButton.tsx +24 -0
  927. package/src/components/Header/Header.style.ts +126 -0
  928. package/src/components/Header/Header.tsx +59 -0
  929. package/src/components/Header/NavigationHeader.tsx +77 -0
  930. package/src/components/Header/SettingsButton.style.tsx +62 -0
  931. package/src/components/Header/SettingsButton.tsx +47 -0
  932. package/src/components/Header/SplitNavigationTabs.tsx +32 -0
  933. package/src/components/Header/WalletHeader.tsx +184 -0
  934. package/src/components/Header/WalletMenu.style.tsx +34 -0
  935. package/src/components/Header/WalletMenu.tsx +129 -0
  936. package/src/components/IconCircle/IconCircle.style.tsx +85 -0
  937. package/src/components/IconCircle/IconCircle.tsx +29 -0
  938. package/src/components/IconCircle/statusIcons.ts +14 -0
  939. package/src/components/IconTypography.ts +11 -0
  940. package/src/components/Initializer.tsx +6 -0
  941. package/src/components/Input.tsx +14 -0
  942. package/src/components/ListItem/ListItem.tsx +29 -0
  943. package/src/components/ListItem/ListItemButton.tsx +12 -0
  944. package/src/components/ListItemButton.tsx +43 -0
  945. package/src/components/ListItemText.tsx +14 -0
  946. package/src/components/Menu.tsx +30 -0
  947. package/src/components/Messages/AccountDeployedMessage.tsx +28 -0
  948. package/src/components/Messages/AccountNotDeployedMessage.tsx +22 -0
  949. package/src/components/Messages/AlertMessage.style.tsx +65 -0
  950. package/src/components/Messages/AlertMessage.tsx +34 -0
  951. package/src/components/Messages/FundsSufficiencyMessage.tsx +26 -0
  952. package/src/components/Messages/GasRefuelMessage.style.ts +23 -0
  953. package/src/components/Messages/GasRefuelMessage.tsx +81 -0
  954. package/src/components/Messages/GasSufficiencyMessage.tsx +63 -0
  955. package/src/components/Messages/MinFromAmountUSDMessage.tsx +35 -0
  956. package/src/components/Messages/MissingRouteRequiredAccountMessage.tsx +44 -0
  957. package/src/components/Messages/WarningMessages.tsx +64 -0
  958. package/src/components/Messages/types.ts +1 -0
  959. package/src/components/Messages/useMessageQueue.ts +111 -0
  960. package/src/components/NotFound.tsx +45 -0
  961. package/src/components/PageContainer.ts +34 -0
  962. package/src/components/PageEntered.ts +14 -0
  963. package/src/components/PoweredBy/PoweredBy.style.ts +13 -0
  964. package/src/components/PoweredBy/PoweredBy.tsx +61 -0
  965. package/src/components/ProgressToNextUpdate.tsx +92 -0
  966. package/src/components/ReverseTokensButton/ReverseTokensButton.style.tsx +37 -0
  967. package/src/components/ReverseTokensButton/ReverseTokensButton.tsx +61 -0
  968. package/src/components/RouteCard/RouteCard.tsx +128 -0
  969. package/src/components/RouteCard/RouteCardEssentials.tsx +101 -0
  970. package/src/components/RouteCard/RouteCardSkeleton.tsx +58 -0
  971. package/src/components/RouteCard/RouteDetails.style.tsx +43 -0
  972. package/src/components/RouteCard/RouteDetails.tsx +214 -0
  973. package/src/components/RouteCard/RouteNotFoundCard.tsx +46 -0
  974. package/src/components/RouteCard/RouteToken.style.tsx +9 -0
  975. package/src/components/RouteCard/RouteToken.tsx +68 -0
  976. package/src/components/RouteCard/RouteTokens.tsx +56 -0
  977. package/src/components/RouteCard/getMatchingLabels.ts +66 -0
  978. package/src/components/RouteCard/types.ts +16 -0
  979. package/src/components/Routes/Routes.tsx +93 -0
  980. package/src/components/Routes/RoutesContent.tsx +117 -0
  981. package/src/components/Routes/RoutesExpanded.style.ts +46 -0
  982. package/src/components/Routes/RoutesExpanded.tsx +102 -0
  983. package/src/components/Search/SearchInput.style.tsx +43 -0
  984. package/src/components/Search/SearchInput.tsx +80 -0
  985. package/src/components/Search/SearchNotFound.style.tsx +34 -0
  986. package/src/components/Search/SearchNotFound.tsx +22 -0
  987. package/src/components/SelectChainAndToken.tsx +41 -0
  988. package/src/components/SelectTokenButton/SelectTokenButton.style.tsx +108 -0
  989. package/src/components/SelectTokenButton/SelectTokenButton.tsx +100 -0
  990. package/src/components/SendToWallet/SendToWalletButton.style.tsx +81 -0
  991. package/src/components/SendToWallet/SendToWalletButton.tsx +179 -0
  992. package/src/components/SendToWallet/SendToWalletExpandButton.tsx +59 -0
  993. package/src/components/SettingsListItemButton.tsx +9 -0
  994. package/src/components/Skeleton/WidgetSkeleton.style.tsx +102 -0
  995. package/src/components/Skeleton/WidgetSkeleton.tsx +140 -0
  996. package/src/components/Step/StepActions.style.tsx +33 -0
  997. package/src/components/Step/StepActions.tsx +329 -0
  998. package/src/components/StepActions/SentToWalletRow.style.tsx +29 -0
  999. package/src/components/StepActions/SentToWalletRow.tsx +56 -0
  1000. package/src/components/StepActions/StepActionRow.style.tsx +18 -0
  1001. package/src/components/StepActions/StepActionRow.tsx +30 -0
  1002. package/src/components/StepActions/StepActionsList.tsx +40 -0
  1003. package/src/components/StepActions/executionRows.tsx +86 -0
  1004. package/src/components/Switch.tsx +54 -0
  1005. package/src/components/Tabs/NavigationTabs.tsx +45 -0
  1006. package/src/components/Tabs/Tabs.style.tsx +51 -0
  1007. package/src/components/TextFitter/TextFitter.tsx +87 -0
  1008. package/src/components/TextFitter/types.ts +13 -0
  1009. package/src/components/Timer/ExecutionTimerText.tsx +10 -0
  1010. package/src/components/Timer/StepStatusTimer.style.tsx +98 -0
  1011. package/src/components/Timer/StepStatusTimer.tsx +85 -0
  1012. package/src/components/Token/Token.style.tsx +44 -0
  1013. package/src/components/Token/Token.tsx +317 -0
  1014. package/src/components/TokenList/PinTokenButton.tsx +51 -0
  1015. package/src/components/TokenList/TokenDetailsSheet.tsx +45 -0
  1016. package/src/components/TokenList/TokenDetailsSheetContent.style.tsx +40 -0
  1017. package/src/components/TokenList/TokenDetailsSheetContent.tsx +247 -0
  1018. package/src/components/TokenList/TokenList.style.tsx +44 -0
  1019. package/src/components/TokenList/TokenList.tsx +88 -0
  1020. package/src/components/TokenList/TokenListItem.tsx +418 -0
  1021. package/src/components/TokenList/TokenNotFound.tsx +11 -0
  1022. package/src/components/TokenList/VirtualizedTokenList.tsx +253 -0
  1023. package/src/components/TokenList/types.ts +65 -0
  1024. package/src/components/TokenList/useTokenSelect.ts +135 -0
  1025. package/src/components/TokenRate/TokenRate.style.ts +20 -0
  1026. package/src/components/TokenRate/TokenRate.tsx +62 -0
  1027. package/src/components/Tools/ToolItem.tsx +41 -0
  1028. package/src/components/Tools/Tools.tsx +61 -0
  1029. package/src/components/TransactionCard/ActiveTransactionCard.style.tsx +24 -0
  1030. package/src/components/TransactionCard/ActiveTransactionCard.tsx +81 -0
  1031. package/src/components/TransactionCard/TransactionCard.style.tsx +14 -0
  1032. package/src/components/TransactionCard/TransactionCard.tsx +37 -0
  1033. package/src/components/TransactionCard/TransactionCardSkeleton.tsx +68 -0
  1034. package/src/config/constants.ts +3 -0
  1035. package/src/config/queryClient.ts +21 -0
  1036. package/src/config/version.ts +2 -0
  1037. package/src/hooks/timer/time.ts +39 -0
  1038. package/src/hooks/timer/useExecutionTimer.ts +21 -0
  1039. package/src/hooks/timer/useInterval.ts +21 -0
  1040. package/src/hooks/timer/useTimer.ts +107 -0
  1041. package/src/hooks/timer/validate.ts +15 -0
  1042. package/src/hooks/useAccountsBalancesData.ts +104 -0
  1043. package/src/hooks/useActionMessage.ts +34 -0
  1044. package/src/hooks/useAddressActivity.ts +47 -0
  1045. package/src/hooks/useAddressValidation.ts +101 -0
  1046. package/src/hooks/useAvailableChains.ts +108 -0
  1047. package/src/hooks/useChain.ts +24 -0
  1048. package/src/hooks/useChainSearch.ts +70 -0
  1049. package/src/hooks/useChains.ts +50 -0
  1050. package/src/hooks/useContactSupport.ts +16 -0
  1051. package/src/hooks/useDebouncedWatch.ts +32 -0
  1052. package/src/hooks/useDefaultElementId.ts +6 -0
  1053. package/src/hooks/useExplorer.ts +104 -0
  1054. package/src/hooks/useFilteredByTokenBalances.ts +140 -0
  1055. package/src/hooks/useFromAmountThreshold.ts +38 -0
  1056. package/src/hooks/useFromTokenSufficiency.ts +98 -0
  1057. package/src/hooks/useGasRecommendation.ts +60 -0
  1058. package/src/hooks/useGasRefuel.ts +98 -0
  1059. package/src/hooks/useGasSufficiency.ts +233 -0
  1060. package/src/hooks/useHasChainExpansion.ts +32 -0
  1061. package/src/hooks/useHeader.ts +21 -0
  1062. package/src/hooks/useInitializeSDKProviders.ts +12 -0
  1063. package/src/hooks/useInitializer.ts +16 -0
  1064. package/src/hooks/useIsBatchingSupported.ts +46 -0
  1065. package/src/hooks/useIsContractAddress.ts +39 -0
  1066. package/src/hooks/useLanguages.ts +93 -0
  1067. package/src/hooks/useListHeight.ts +107 -0
  1068. package/src/hooks/useLongPress.ts +60 -0
  1069. package/src/hooks/useNavigateBack.ts +17 -0
  1070. package/src/hooks/usePacedRouteExecution.ts +45 -0
  1071. package/src/hooks/usePacedValue.ts +45 -0
  1072. package/src/hooks/useRouteExecution.ts +246 -0
  1073. package/src/hooks/useRouteExecutionMessage.ts +100 -0
  1074. package/src/hooks/useRouteRequiredAccountConnection.ts +62 -0
  1075. package/src/hooks/useRoutes.ts +578 -0
  1076. package/src/hooks/useScrollableContainer.ts +29 -0
  1077. package/src/hooks/useSetContentHeight.ts +30 -0
  1078. package/src/hooks/useSettingMonitor.ts +93 -0
  1079. package/src/hooks/useSwapOnly.ts +6 -0
  1080. package/src/hooks/useToAddressAutoPopulate.ts +95 -0
  1081. package/src/hooks/useToAddressRequirements.ts +103 -0
  1082. package/src/hooks/useToAddressReset.ts +39 -0
  1083. package/src/hooks/useToken.ts +45 -0
  1084. package/src/hooks/useTokenAddressBalance.ts +32 -0
  1085. package/src/hooks/useTokenBalance.ts +148 -0
  1086. package/src/hooks/useTokenBalances.ts +191 -0
  1087. package/src/hooks/useTokenBalancesQueries.ts +100 -0
  1088. package/src/hooks/useTokenRateText.ts +55 -0
  1089. package/src/hooks/useTokenSearch.ts +98 -0
  1090. package/src/hooks/useTokens.ts +159 -0
  1091. package/src/hooks/useTools.ts +56 -0
  1092. package/src/hooks/useTransactionDetails.ts +93 -0
  1093. package/src/hooks/useTransactionHistory.ts +120 -0
  1094. package/src/hooks/useTransactionList.ts +83 -0
  1095. package/src/hooks/useWideVariant.ts +13 -0
  1096. package/src/hooks/useWidgetChains.ts +16 -0
  1097. package/src/hooks/useWidgetEvents.ts +8 -0
  1098. package/src/i18n/i18next.d.ts +10 -0
  1099. package/src/index.ts +37 -0
  1100. package/src/pages/ActivitiesPage/ActiveTransactionItem.tsx +43 -0
  1101. package/src/pages/ActivitiesPage/ActivitiesPage.tsx +148 -0
  1102. package/src/pages/ActivitiesPage/ActivitiesPageMenuButton.tsx +71 -0
  1103. package/src/pages/ActivitiesPage/TransactionHistoryEmpty.tsx +14 -0
  1104. package/src/pages/ActivitiesPage/TransactionHistoryItem.tsx +30 -0
  1105. package/src/pages/ActivitiesPage/types.ts +16 -0
  1106. package/src/pages/LanguagesPage.tsx +49 -0
  1107. package/src/pages/MainPage/MainPage.tsx +70 -0
  1108. package/src/pages/MainPage/MainWarningMessages.tsx +17 -0
  1109. package/src/pages/MainPage/ReviewButton.tsx +81 -0
  1110. package/src/pages/RoutesPage/RoutesPage.style.ts +9 -0
  1111. package/src/pages/RoutesPage/RoutesPage.tsx +99 -0
  1112. package/src/pages/SelectChainPage/SelectChainPage.tsx +36 -0
  1113. package/src/pages/SelectChainPage/types.ts +5 -0
  1114. package/src/pages/SelectEnabledToolsPage.tsx +131 -0
  1115. package/src/pages/SelectTokenPage/SearchTokenInput.tsx +58 -0
  1116. package/src/pages/SelectTokenPage/SelectTokenPage.tsx +80 -0
  1117. package/src/pages/SendToWallet/BookmarkAddressSheet.tsx +247 -0
  1118. package/src/pages/SendToWallet/BookmarksPage.tsx +145 -0
  1119. package/src/pages/SendToWallet/ConfirmAddressSheet.tsx +107 -0
  1120. package/src/pages/SendToWallet/ConnectedWalletsPage.tsx +134 -0
  1121. package/src/pages/SendToWallet/RecentWalletsPage.tsx +161 -0
  1122. package/src/pages/SendToWallet/SendToConfiguredWalletPage.tsx +110 -0
  1123. package/src/pages/SendToWallet/SendToWalletPage.style.tsx +137 -0
  1124. package/src/pages/SendToWallet/SendToWalletPage.tsx +308 -0
  1125. package/src/pages/SendToWallet/types.ts +4 -0
  1126. package/src/pages/SettingsPage/BridgeAndExchangeSettings.tsx +59 -0
  1127. package/src/pages/SettingsPage/GasPriceSettings.tsx +47 -0
  1128. package/src/pages/SettingsPage/LanguageSetting.tsx +40 -0
  1129. package/src/pages/SettingsPage/ResetSettingsButton.style.tsx +12 -0
  1130. package/src/pages/SettingsPage/ResetSettingsButton.tsx +83 -0
  1131. package/src/pages/SettingsPage/RoutePrioritySettings.tsx +57 -0
  1132. package/src/pages/SettingsPage/SettingsCard/BadgedValue.tsx +22 -0
  1133. package/src/pages/SettingsPage/SettingsCard/SettingCard.style.tsx +26 -0
  1134. package/src/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +90 -0
  1135. package/src/pages/SettingsPage/SettingsCard/SettingsAccordian.tsx +48 -0
  1136. package/src/pages/SettingsPage/SettingsCard/types.ts +6 -0
  1137. package/src/pages/SettingsPage/SettingsPage.tsx +39 -0
  1138. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.style.tsx +102 -0
  1139. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +151 -0
  1140. package/src/pages/SettingsPage/SmallBalanceFilterSettings.tsx +116 -0
  1141. package/src/pages/SettingsPage/ThemeSettings.tsx +85 -0
  1142. package/src/pages/TransactionDetailsPage/ContactSupportButton.style.tsx +12 -0
  1143. package/src/pages/TransactionDetailsPage/ContactSupportButton.tsx +21 -0
  1144. package/src/pages/TransactionDetailsPage/ReceiptsCard.tsx +22 -0
  1145. package/src/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +111 -0
  1146. package/src/pages/TransactionDetailsPage/TransactionDetailsSkeleton.tsx +91 -0
  1147. package/src/pages/TransactionDetailsPage/TransferIdCard.tsx +72 -0
  1148. package/src/pages/TransactionPage/ConfirmToAddressSheet.tsx +96 -0
  1149. package/src/pages/TransactionPage/ExchangeRateBottomSheet.style.tsx +9 -0
  1150. package/src/pages/TransactionPage/ExchangeRateBottomSheet.tsx +214 -0
  1151. package/src/pages/TransactionPage/ExecutionDoneCard.tsx +43 -0
  1152. package/src/pages/TransactionPage/RouteTracker.tsx +68 -0
  1153. package/src/pages/TransactionPage/StartTransactionButton.tsx +27 -0
  1154. package/src/pages/TransactionPage/TokenValueBottomSheet.style.tsx +60 -0
  1155. package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +141 -0
  1156. package/src/pages/TransactionPage/TransactionContent.tsx +42 -0
  1157. package/src/pages/TransactionPage/TransactionDoneButtons.tsx +70 -0
  1158. package/src/pages/TransactionPage/TransactionExecutionContent.tsx +93 -0
  1159. package/src/pages/TransactionPage/TransactionFailedButtons.tsx +105 -0
  1160. package/src/pages/TransactionPage/TransactionPage.tsx +111 -0
  1161. package/src/pages/TransactionPage/TransactionReview.tsx +163 -0
  1162. package/src/pages/TransactionPage/types.ts +7 -0
  1163. package/src/pages/TransactionPage/utils.ts +25 -0
  1164. package/src/providers/I18nProvider/I18nProvider.tsx +133 -0
  1165. package/src/providers/I18nProvider/constants.ts +41 -0
  1166. package/src/providers/I18nProvider/enResource.ts +4 -0
  1167. package/src/providers/I18nProvider/i18n.ts +26 -0
  1168. package/src/providers/I18nProvider/types.ts +36 -0
  1169. package/src/providers/QueryClientProvider.tsx +20 -0
  1170. package/src/providers/SDKClientProvider.tsx +59 -0
  1171. package/src/providers/ThemeProvider/ThemeProvider.tsx +35 -0
  1172. package/src/providers/WalletProvider/WalletProvider.tsx +70 -0
  1173. package/src/providers/WalletProvider/useExternalWalletProvider.ts +79 -0
  1174. package/src/providers/WidgetProvider/WidgetProvider.tsx +49 -0
  1175. package/src/providers/WidgetProvider/types.ts +9 -0
  1176. package/src/stores/StoreProvider.tsx +40 -0
  1177. package/src/stores/bookmarks/BookmarkStore.tsx +38 -0
  1178. package/src/stores/bookmarks/createBookmarkStore.ts +80 -0
  1179. package/src/stores/bookmarks/types.ts +26 -0
  1180. package/src/stores/bookmarks/useBookmarkActions.ts +16 -0
  1181. package/src/stores/bookmarks/useBookmarks.ts +14 -0
  1182. package/src/stores/chains/ChainOrderStore.tsx +165 -0
  1183. package/src/stores/chains/createChainOrderStore.ts +128 -0
  1184. package/src/stores/chains/types.ts +25 -0
  1185. package/src/stores/chains/useChainOrder.ts +20 -0
  1186. package/src/stores/form/FormStore.tsx +133 -0
  1187. package/src/stores/form/FormStoreContext.ts +5 -0
  1188. package/src/stores/form/FormUpdater.tsx +52 -0
  1189. package/src/stores/form/URLSearchParamsBuilder.tsx +93 -0
  1190. package/src/stores/form/createFormStore.ts +237 -0
  1191. package/src/stores/form/getDefaultValuesFromQueryString.ts +48 -0
  1192. package/src/stores/form/types.ts +107 -0
  1193. package/src/stores/form/useClearAmountFields.ts +10 -0
  1194. package/src/stores/form/useFieldActions.ts +93 -0
  1195. package/src/stores/form/useFieldValues.ts +14 -0
  1196. package/src/stores/form/useFormRef.ts +76 -0
  1197. package/src/stores/form/useFormStore.ts +14 -0
  1198. package/src/stores/form/useTouchedFields.ts +8 -0
  1199. package/src/stores/header/types.ts +20 -0
  1200. package/src/stores/header/useHeaderStore.tsx +103 -0
  1201. package/src/stores/inputMode/useInputModeStore.ts +31 -0
  1202. package/src/stores/pinnedTokens/PinnedTokensStore.tsx +38 -0
  1203. package/src/stores/pinnedTokens/createPinnedTokensStore.ts +74 -0
  1204. package/src/stores/pinnedTokens/types.ts +20 -0
  1205. package/src/stores/routes/RouteExecutionStore.tsx +44 -0
  1206. package/src/stores/routes/createRouteExecutionStore.ts +167 -0
  1207. package/src/stores/routes/types.ts +26 -0
  1208. package/src/stores/routes/useIntermediateRoutesStore.ts +29 -0
  1209. package/src/stores/routes/useRouteExecutionIndicator.ts +43 -0
  1210. package/src/stores/routes/useSetExecutableRoute.ts +7 -0
  1211. package/src/stores/routes/utils.ts +63 -0
  1212. package/src/stores/settings/SettingsStore.tsx +45 -0
  1213. package/src/stores/settings/createSettingsStore.ts +219 -0
  1214. package/src/stores/settings/types.ts +66 -0
  1215. package/src/stores/settings/useSettings.ts +16 -0
  1216. package/src/stores/settings/useSettingsActions.ts +165 -0
  1217. package/src/stores/settings/useSplitModeStore.tsx +58 -0
  1218. package/src/stores/settings/utils/getStateValues.ts +17 -0
  1219. package/src/stores/types.ts +7 -0
  1220. package/src/themes/azureLight.ts +61 -0
  1221. package/src/themes/createTheme.ts +489 -0
  1222. package/src/themes/jumper.ts +77 -0
  1223. package/src/themes/palettes.ts +52 -0
  1224. package/src/themes/types.ts +82 -0
  1225. package/src/themes/utils.ts +18 -0
  1226. package/src/themes/watermelonLight.ts +80 -0
  1227. package/src/themes/windows95.ts +133 -0
  1228. package/src/types/events.ts +114 -0
  1229. package/src/types/token.ts +21 -0
  1230. package/src/types/widget.ts +441 -0
  1231. package/src/utils/chainType.ts +10 -0
  1232. package/src/utils/compactNumberFormatter.ts +91 -0
  1233. package/src/utils/converters.ts +238 -0
  1234. package/src/utils/currencyExtendedFormatter.ts +15 -0
  1235. package/src/utils/deepEqual.ts +62 -0
  1236. package/src/utils/deepMerge.ts +14 -0
  1237. package/src/utils/elements.ts +32 -0
  1238. package/src/utils/enum.ts +4 -0
  1239. package/src/utils/fees.ts +136 -0
  1240. package/src/utils/format.ts +195 -0
  1241. package/src/utils/getActionMessage.ts +163 -0
  1242. package/src/utils/getErrorMessage.ts +144 -0
  1243. package/src/utils/getPriceImpact.ts +35 -0
  1244. package/src/utils/input.ts +29 -0
  1245. package/src/utils/item.ts +65 -0
  1246. package/src/utils/navigationRoutes.ts +68 -0
  1247. package/src/utils/percentFormatter.ts +28 -0
  1248. package/src/utils/prepareActions.ts +27 -0
  1249. package/src/utils/queries.ts +2 -0
  1250. package/src/utils/timer.ts +45 -0
  1251. package/src/utils/token.ts +143 -0
  1252. package/src/utils/tokenList.ts +284 -0
  1253. package/src/utils/variant.ts +13 -0
  1254. package/src/utils/wallet.ts +4 -0
  1255. package/src/utils/widgetSize.ts +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRoutes.js","names":[],"sources":["../../../src/hooks/useRoutes.ts"],"sourcesContent":["import type { ExtendedChain, Route, Token } from '@lifi/sdk'\nimport {\n ChainType,\n convertQuoteToRoute,\n getContractCallsQuote,\n getRelayerQuote,\n getRoutes,\n LiFiErrorCode,\n parseUnits,\n} from '@lifi/sdk'\nimport { useAccount } from '@lifi/wallet-management'\nimport {\n useChainTypeFromAddress,\n useEthereumContext,\n} from '@lifi/widget-provider'\nimport { useQuery, useQueryClient } from '@tanstack/react-query'\nimport { useCallback, useMemo } from 'react'\nimport { useSDKClient } from '../providers/SDKClientProvider.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport { useFieldValues } from '../stores/form/useFieldValues.js'\nimport { useIntermediateRoutesStore } from '../stores/routes/useIntermediateRoutesStore.js'\nimport { useSetExecutableRoute } from '../stores/routes/useSetExecutableRoute.js'\nimport { defaultSlippage } from '../stores/settings/createSettingsStore.js'\nimport { useSettings } from '../stores/settings/useSettings.js'\nimport { WidgetEvent } from '../types/events.js'\nimport type { TokensByChain } from '../types/token.js'\nimport { getQueryKey } from '../utils/queries.js'\nimport { updateTokenInCache } from '../utils/token.js'\nimport { useChain } from './useChain.js'\nimport { useDebouncedWatch } from './useDebouncedWatch.js'\nimport { useGasRefuel } from './useGasRefuel.js'\nimport { useIsBatchingSupported } from './useIsBatchingSupported.js'\nimport { useSwapOnly } from './useSwapOnly.js'\nimport { useToken } from './useToken.js'\nimport { useWidgetEvents } from './useWidgetEvents.js'\n\nconst refetchTime = 60_000\n\ninterface RoutesProps {\n observableRoute?: Route\n}\n\nexport const useRoutes = ({\n observableRoute,\n}: RoutesProps = {}): {\n routes: Route[] | undefined\n isLoading: boolean\n isFetching: boolean\n isFetched: boolean\n dataUpdatedAt: number\n refetchTime: number\n refetch: () => void\n fromChain: ExtendedChain | undefined\n toChain: ExtendedChain | undefined\n queryKey: readonly unknown[]\n setReviewableRoute: (route: Route) => void\n} => {\n const {\n mode,\n modeOptions,\n contractTool,\n bridges,\n exchanges,\n feeConfig,\n useRelayerRoutes,\n keyPrefix,\n } = useWidgetConfig()\n const sdkClient = useSDKClient()\n const setExecutableRoute = useSetExecutableRoute()\n const queryClient = useQueryClient()\n const emitter = useWidgetEvents()\n const swapOnly = useSwapOnly()\n const {\n disabledBridges,\n disabledExchanges,\n enabledBridges,\n enabledExchanges,\n enabledAutoRefuel,\n routePriority,\n slippage,\n } = useSettings([\n 'disabledBridges',\n 'disabledExchanges',\n 'enabledBridges',\n 'enabledExchanges',\n 'enabledAutoRefuel',\n 'routePriority',\n 'slippage',\n ])\n const [fromTokenAmount] = useDebouncedWatch(500, 'fromAmount')\n const [\n fromChainId,\n fromTokenAddress,\n toAddress,\n toTokenAmount,\n toChainId,\n toTokenAddress,\n contractCalls,\n ] = useFieldValues(\n 'fromChain',\n 'fromToken',\n 'toAddress',\n 'toAmount',\n 'toChain',\n 'toToken',\n 'contractCalls'\n )\n const { token: fromToken } = useToken(fromChainId, fromTokenAddress)\n const { token: toToken } = useToken(toChainId, toTokenAddress)\n const { chain: fromChain } = useChain(fromChainId)\n const { chain: toChain } = useChain(toChainId)\n const { enabled: enabledRefuel, fromAmount: gasRecommendationFromAmount } =\n useGasRefuel()\n const { getChainTypeFromAddress } = useChainTypeFromAddress()\n const { isGaslessStep, disableMessageSigning } = useEthereumContext()\n const { account } = useAccount({ chainType: fromChain?.chainType })\n const { isBatchingSupported, isBatchingSupportedLoading } =\n useIsBatchingSupported(fromChain, account.address)\n\n const hasAmount = Number(fromTokenAmount) > 0 || Number(toTokenAmount) > 0\n\n const contractCallQuoteEnabled: boolean =\n mode === 'custom' ? Boolean(contractCalls && account.address) : true\n\n // When we bridge between ecosystems we need to be sure toAddress is set and has the same chainType as toChain\n // If toAddress is set, it must have the same chainType as toChain\n const hasToAddressAndChainTypeSatisfied: boolean =\n !!toChain &&\n !!toAddress &&\n getChainTypeFromAddress(toAddress) === toChain.chainType\n // We need to check for toAddress only if it is set\n const isToAddressSatisfied = toAddress\n ? hasToAddressAndChainTypeSatisfied\n : true\n\n // toAddress might be an empty string, but we need to pass undefined if there is no value\n const toWalletAddress = toAddress || undefined\n\n // We need to send the full allowed tools array if custom tool settings are applied\n const allowedBridges =\n bridges?.allow?.length || bridges?.deny?.length ? enabledBridges : undefined\n const allowedExchanges =\n exchanges?.allow?.length || exchanges?.deny?.length\n ? enabledExchanges\n : undefined\n const allowSwitchChain = sdkClient.config?.routeOptions?.allowSwitchChain\n\n const isEnabled =\n Boolean(Number(fromChain?.id)) &&\n Boolean(Number(toChain?.id)) &&\n Boolean(fromToken?.address) &&\n Boolean(toToken?.address) &&\n !Number.isNaN(slippage) &&\n hasAmount &&\n isToAddressSatisfied &&\n contractCallQuoteEnabled &&\n !isBatchingSupportedLoading\n\n // Some values should be strictly typed and isEnabled ensures that\n const queryKey = useMemo(\n () =>\n [\n getQueryKey('routes', keyPrefix),\n account.address,\n fromChain?.id as number,\n fromToken?.address as string,\n fromTokenAmount,\n toWalletAddress,\n toChain?.id as number,\n toToken?.address as string,\n toTokenAmount,\n contractCalls,\n slippage,\n swapOnly,\n disabledBridges,\n disabledExchanges,\n allowedBridges,\n allowedExchanges,\n routePriority,\n mode,\n allowSwitchChain,\n enabledRefuel && enabledAutoRefuel,\n gasRecommendationFromAmount,\n feeConfig?.fee,\n disableMessageSigning,\n !!isBatchingSupported,\n observableRoute?.id,\n ] as const,\n [\n keyPrefix,\n account.address,\n fromChain?.id,\n fromToken?.address,\n fromTokenAmount,\n toWalletAddress,\n toChain?.id,\n toToken?.address,\n toTokenAmount,\n contractCalls,\n slippage,\n swapOnly,\n disabledBridges,\n disabledExchanges,\n allowedBridges,\n allowedExchanges,\n routePriority,\n mode,\n allowSwitchChain,\n enabledRefuel,\n enabledAutoRefuel,\n gasRecommendationFromAmount,\n feeConfig?.fee,\n disableMessageSigning,\n isBatchingSupported,\n observableRoute?.id,\n ]\n )\n\n const { getIntermediateRoutes, setIntermediateRoutes } =\n useIntermediateRoutesStore()\n\n const { data, isLoading, isFetching, isFetched, dataUpdatedAt, refetch } =\n useQuery({\n queryKey,\n queryFn: async ({\n queryKey: [\n _,\n fromAddress,\n fromChainId,\n fromTokenAddress,\n fromTokenAmount,\n toAddress,\n toChainId,\n toTokenAddress,\n toTokenAmount,\n contractCalls,\n slippage = defaultSlippage,\n swapOnly,\n disabledBridges,\n disabledExchanges,\n allowedBridges,\n allowedExchanges,\n routePriority,\n mode,\n allowSwitchChain,\n enabledRefuel,\n gasRecommendationFromAmount,\n configuredFee,\n disableMessageSigning,\n isBatchingSupported,\n // _observableRouteId must be the last element in the query key\n _observableRouteId,\n ],\n signal,\n }) => {\n const fromAmount = parseUnits(fromTokenAmount, fromToken!.decimals)\n const toAmount = parseUnits(toTokenAmount, toToken!.decimals)\n const formattedSlippage = slippage\n ? Number.parseFloat(slippage) / 100\n : defaultSlippage\n\n const allowBridges = swapOnly\n ? []\n : observableRoute\n ? observableRoute.steps.flatMap((step) =>\n step.includedSteps.reduce((toolKeys, includedStep) => {\n if (includedStep.type === 'cross') {\n toolKeys.push(includedStep.toolDetails.key)\n }\n return toolKeys\n }, [] as string[])\n )\n : allowedBridges\n const allowExchanges = observableRoute\n ? observableRoute.steps.flatMap((step) =>\n step.includedSteps.reduce((toolKeys, includedStep) => {\n if (includedStep.type === 'swap') {\n toolKeys.push(includedStep.toolDetails.key)\n }\n return toolKeys\n }, [] as string[])\n )\n : allowedExchanges\n\n const calculatedFee = await feeConfig?.calculateFee?.({\n fromChain: fromChain!,\n toChain: toChain!,\n fromToken: fromToken!,\n toToken: toToken!,\n fromAddress,\n toAddress,\n fromAmount,\n toAmount,\n slippage: formattedSlippage,\n })\n\n if (mode === 'custom' && contractCalls && toAmount) {\n const contractCallQuote = await getContractCallsQuote(\n sdkClient,\n {\n // Contract calls are enabled only when fromAddress is set\n fromAddress: fromAddress as string,\n fromChain: fromChainId,\n fromToken: fromTokenAddress,\n toAmount: toAmount.toString(),\n toChain: toChainId,\n toToken: toTokenAddress,\n contractCalls,\n denyBridges: disabledBridges.length ? disabledBridges : undefined,\n denyExchanges: disabledExchanges.length\n ? disabledExchanges\n : undefined,\n allowBridges,\n allowExchanges,\n toFallbackAddress: toAddress,\n slippage: formattedSlippage,\n fee: calculatedFee || configuredFee,\n },\n { signal }\n )\n\n contractCallQuote.action.toToken = toToken!\n\n const customStep =\n mode === 'custom'\n ? contractCallQuote.includedSteps?.find(\n (step) => step.type === 'custom'\n )\n : undefined\n\n if (customStep && contractTool) {\n const toolDetails = {\n key: contractTool.name,\n name: contractTool.name,\n logoURI: contractTool.logoURI,\n }\n customStep.toolDetails = toolDetails\n contractCallQuote.toolDetails = toolDetails\n }\n\n const route: Route = convertQuoteToRoute(contractCallQuote)\n\n return [route]\n }\n\n // Prevent sending a request for the same chain token combinations.\n // Exception: proceed anyway if mode is custom and modeOptions custom type is deposit\n if (\n fromChainId === toChainId &&\n fromTokenAddress === toTokenAddress &&\n !(mode === 'custom' && modeOptions?.custom?.type === 'deposit')\n ) {\n return\n }\n\n const isObservableRelayerRoute = observableRoute?.steps?.some(\n (step) => !!isGaslessStep?.(step, fromChain)\n )\n\n const shouldUseMainRoutes =\n !observableRoute || !isObservableRelayerRoute\n const shouldUseRelayerQuote =\n fromAddress &&\n fromChain?.chainType === ChainType.EVM &&\n fromChain.permit2 &&\n fromChain.permit2Proxy &&\n fromChain.relayerSupported &&\n fromChain.nativeToken.address !== fromTokenAddress &&\n useRelayerRoutes &&\n !isBatchingSupported &&\n (!observableRoute || isObservableRelayerRoute)\n\n const mainRoutesPromise = shouldUseMainRoutes\n ? getRoutes(\n sdkClient,\n {\n fromAddress,\n fromAmount: fromAmount.toString(),\n fromChainId,\n fromTokenAddress,\n toAddress,\n toChainId,\n toTokenAddress,\n fromAmountForGas:\n enabledRefuel && gasRecommendationFromAmount\n ? gasRecommendationFromAmount\n : undefined,\n options: {\n allowSwitchChain:\n mode === 'refuel' ? false : allowSwitchChain,\n bridges:\n allowBridges?.length || disabledBridges.length\n ? {\n allow: allowBridges,\n deny: disabledBridges.length\n ? disabledBridges\n : undefined,\n }\n : undefined,\n exchanges:\n allowExchanges?.length || disabledExchanges.length\n ? {\n allow: allowExchanges,\n deny: disabledExchanges.length\n ? disabledExchanges\n : undefined,\n }\n : undefined,\n order: routePriority,\n slippage: formattedSlippage,\n fee: calculatedFee || configuredFee,\n executionType: disableMessageSigning ? 'transaction' : 'all',\n },\n },\n { signal }\n )\n : Promise.resolve(null)\n\n const relayerQuotePromise = shouldUseRelayerQuote\n ? getRelayerQuote(\n sdkClient,\n {\n fromAddress,\n fromAmount: fromAmount.toString(),\n fromChain: fromChainId,\n fromToken: fromTokenAddress,\n toAddress,\n toChain: toChainId,\n toToken: toTokenAddress,\n fromAmountForGas:\n enabledRefuel && gasRecommendationFromAmount\n ? gasRecommendationFromAmount\n : undefined,\n order: routePriority,\n slippage: formattedSlippage,\n fee: calculatedFee || configuredFee,\n ...(allowBridges?.length || disabledBridges.length\n ? {\n allowBridges: allowBridges,\n denyBridges: disabledBridges.length\n ? disabledBridges\n : undefined,\n }\n : undefined),\n ...(allowExchanges?.length || disabledExchanges.length\n ? {\n allowExchanges: allowExchanges,\n denyExchanges: disabledExchanges.length\n ? disabledExchanges\n : undefined,\n }\n : undefined),\n },\n { signal }\n )\n .then(convertQuoteToRoute)\n .catch(() => null)\n : Promise.resolve(null)\n\n // Wait for the main routes to complete first\n const routesResult = await mainRoutesPromise\n\n if (routesResult?.routes[0] && fromAddress) {\n // Update local tokens cache to keep priceUSD in sync\n const { fromToken, toToken } = routesResult.routes[0]\n ;[fromToken, toToken].forEach((token) => {\n // Update main tokens cache (verified)\n queryClient.setQueriesData<TokensByChain>(\n { queryKey: [getQueryKey('tokens', keyPrefix)] },\n (data) => updateTokenInCache(data, token)\n )\n\n // Update search tokens cache (unverified) - matches any search query\n queryClient.setQueriesData<TokensByChain>(\n {\n queryKey: [getQueryKey('tokens-search', keyPrefix)],\n exact: false,\n },\n (data) => updateTokenInCache(data, token)\n )\n\n queryClient.setQueriesData<Token[]>(\n {\n queryKey: [\n getQueryKey('token-balances', keyPrefix),\n fromAddress,\n token.chainId,\n ],\n },\n (data) => {\n if (data) {\n const clonedData = [...data]\n const index = clonedData.findIndex(\n (dataToken) => dataToken.address === token.address\n )\n if (index >= 0) {\n clonedData[index] = {\n ...clonedData[index],\n ...token,\n }\n }\n return clonedData\n }\n }\n )\n })\n }\n\n const initialRoutes = routesResult?.routes ?? []\n\n if (shouldUseRelayerQuote && initialRoutes.length) {\n setIntermediateRoutes(queryKey, initialRoutes)\n emitter.emit(WidgetEvent.AvailableRoutes, initialRoutes)\n // Return early if we're only using main routes\n } else if (shouldUseMainRoutes) {\n // If we don't need relayer quote, return the initial routes\n emitter.emit(WidgetEvent.AvailableRoutes, initialRoutes)\n return initialRoutes\n }\n\n const relayerRouteResult = await relayerQuotePromise\n // If we have a relayer route, add it to the routes array\n if (relayerRouteResult) {\n // Insert the relayer route at position 1 (after the first route)\n initialRoutes.splice(1, 0, relayerRouteResult)\n // Emit the updated routes\n emitter.emit(WidgetEvent.AvailableRoutes, initialRoutes)\n }\n\n return initialRoutes\n },\n enabled: isEnabled,\n staleTime: refetchTime,\n refetchInterval(query) {\n return Math.min(\n Math.abs(refetchTime - (Date.now() - query.state.dataUpdatedAt)),\n refetchTime\n )\n },\n retry(failureCount, error: any) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Route query failed:', { failureCount, error })\n }\n if (failureCount >= 3) {\n return false\n }\n if (error?.code === LiFiErrorCode.NotFound) {\n return false\n }\n return true\n },\n })\n\n const setReviewableRoute = useCallback(\n (route: Route) => {\n const queryDataKey = queryKey.toSpliced(queryKey.length - 1, 1, route.id)\n queryClient.setQueryData(queryDataKey, [route], {\n updatedAt: dataUpdatedAt || Date.now(),\n })\n setExecutableRoute(route)\n },\n [queryClient, dataUpdatedAt, setExecutableRoute, queryKey]\n )\n\n return {\n routes: data || getIntermediateRoutes(queryKey),\n isLoading: isEnabled && isLoading,\n isFetching,\n isFetched,\n dataUpdatedAt,\n refetchTime,\n refetch,\n fromChain,\n toChain,\n queryKey,\n setReviewableRoute,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAM,cAAc;AAMpB,MAAa,aAAa,EACxB,oBACe,CAAC,MAYb;CACH,MAAM,EACJ,MACA,aACA,cACA,SACA,WACA,WACA,kBACA,cACE,gBAAgB;CACpB,MAAM,YAAY,aAAa;CAC/B,MAAM,qBAAqB,sBAAsB;CACjD,MAAM,cAAc,eAAe;CACnC,MAAM,UAAU,gBAAgB;CAChC,MAAM,WAAW,YAAY;CAC7B,MAAM,EACJ,iBACA,mBACA,gBACA,kBACA,mBACA,eACA,aACE,YAAY;EACd;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,MAAM,CAAC,mBAAmB,kBAAkB,KAAK,YAAY;CAC7D,MAAM,CACJ,aACA,kBACA,WACA,eACA,WACA,gBACA,iBACE,eACF,aACA,aACA,aACA,YACA,WACA,WACA,eACF;CACA,MAAM,EAAE,OAAO,cAAc,SAAS,aAAa,gBAAgB;CACnE,MAAM,EAAE,OAAO,YAAY,SAAS,WAAW,cAAc;CAC7D,MAAM,EAAE,OAAO,cAAc,SAAS,WAAW;CACjD,MAAM,EAAE,OAAO,YAAY,SAAS,SAAS;CAC7C,MAAM,EAAE,SAAS,eAAe,YAAY,gCAC1C,aAAa;CACf,MAAM,EAAE,4BAA4B,wBAAwB;CAC5D,MAAM,EAAE,eAAe,0BAA0B,mBAAmB;CACpE,MAAM,EAAE,YAAY,WAAW,EAAE,WAAW,WAAW,UAAU,CAAC;CAClE,MAAM,EAAE,qBAAqB,+BAC3B,uBAAuB,WAAW,QAAQ,OAAO;CAEnD,MAAM,YAAY,OAAO,eAAe,IAAI,KAAK,OAAO,aAAa,IAAI;CAEzE,MAAM,2BACJ,SAAS,WAAW,QAAQ,iBAAiB,QAAQ,OAAO,IAAI;CAIlE,MAAM,oCACJ,CAAC,CAAC,WACF,CAAC,CAAC,aACF,wBAAwB,SAAS,MAAM,QAAQ;CAEjD,MAAM,uBAAuB,YACzB,oCACA;CAGJ,MAAM,kBAAkB,aAAa,KAAA;CAGrC,MAAM,iBACJ,SAAS,OAAO,UAAU,SAAS,MAAM,SAAS,iBAAiB,KAAA;CACrE,MAAM,mBACJ,WAAW,OAAO,UAAU,WAAW,MAAM,SACzC,mBACA,KAAA;CACN,MAAM,mBAAmB,UAAU,QAAQ,cAAc;CAEzD,MAAM,YACJ,QAAQ,OAAO,WAAW,EAAE,CAAC,KAC7B,QAAQ,OAAO,SAAS,EAAE,CAAC,KAC3B,QAAQ,WAAW,OAAO,KAC1B,QAAQ,SAAS,OAAO,KACxB,CAAC,OAAO,MAAM,QAAQ,KACtB,aACA,wBACA,4BACA,CAAC;CAGH,MAAM,WAAW,cAEb;EACE,YAAY,UAAU,SAAS;EAC/B,QAAQ;EACR,WAAW;EACX,WAAW;EACX;EACA;EACA,SAAS;EACT,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB;EACA,WAAW;EACX;EACA,CAAC,CAAC;EACF,iBAAiB;CACnB,GACF;EACE;EACA,QAAQ;EACR,WAAW;EACX,WAAW;EACX;EACA;EACA,SAAS;EACT,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;EACA,iBAAiB;CACnB,CACF;CAEA,MAAM,EAAE,uBAAuB,0BAC7B,2BAA2B;CAE7B,MAAM,EAAE,MAAM,WAAW,YAAY,WAAW,eAAe,YAC7D,SAAS;EACP;EACA,SAAS,OAAO,EACd,UAAU,CACR,GACA,aACA,aACA,kBACA,iBACA,WACA,WACA,gBACA,eACA,eACA,WAAA,KAAA,GACA,UACA,iBACA,mBACA,gBACA,kBACA,eACA,MACA,kBACA,eACA,6BACA,eACA,uBACA,qBAEA,qBAEF,aACI;GACJ,MAAM,aAAa,WAAW,iBAAiB,UAAW,QAAQ;GAClE,MAAM,WAAW,WAAW,eAAe,QAAS,QAAQ;GAC5D,MAAM,oBAAoB,WACtB,OAAO,WAAW,QAAQ,IAAI,MAAA,KAAA;GAGlC,MAAM,eAAe,WACjB,CAAC,IACD,kBACE,gBAAgB,MAAM,SAAS,SAC7B,KAAK,cAAc,QAAQ,UAAU,iBAAiB;IACpD,IAAI,aAAa,SAAS,SACxB,SAAS,KAAK,aAAa,YAAY,GAAG;IAE5C,OAAO;GACT,GAAG,CAAC,CAAa,CACnB,IACA;GACN,MAAM,iBAAiB,kBACnB,gBAAgB,MAAM,SAAS,SAC7B,KAAK,cAAc,QAAQ,UAAU,iBAAiB;IACpD,IAAI,aAAa,SAAS,QACxB,SAAS,KAAK,aAAa,YAAY,GAAG;IAE5C,OAAO;GACT,GAAG,CAAC,CAAa,CACnB,IACA;GAEJ,MAAM,gBAAgB,MAAM,WAAW,eAAe;IACzC;IACF;IACE;IACF;IACT;IACA;IACA;IACA;IACA,UAAU;GACZ,CAAC;GAED,IAAI,SAAS,YAAY,iBAAiB,UAAU;IAClD,MAAM,oBAAoB,MAAM,sBAC9B,WACA;KAEe;KACb,WAAW;KACX,WAAW;KACX,UAAU,SAAS,SAAS;KAC5B,SAAS;KACT,SAAS;KACT;KACA,aAAa,gBAAgB,SAAS,kBAAkB,KAAA;KACxD,eAAe,kBAAkB,SAC7B,oBACA,KAAA;KACJ;KACA;KACA,mBAAmB;KACnB,UAAU;KACV,KAAK,iBAAiB;IACxB,GACA,EAAE,OAAO,CACX;IAEA,kBAAkB,OAAO,UAAU;IAEnC,MAAM,aACJ,SAAS,WACL,kBAAkB,eAAe,MAC9B,SAAS,KAAK,SAAS,QAC1B,IACA,KAAA;IAEN,IAAI,cAAc,cAAc;KAC9B,MAAM,cAAc;MAClB,KAAK,aAAa;MAClB,MAAM,aAAa;MACnB,SAAS,aAAa;KACxB;KACA,WAAW,cAAc;KACzB,kBAAkB,cAAc;IAClC;IAIA,OAAO,CAFc,oBAAoB,iBAE7B,CAAC;GACf;GAIA,IACE,gBAAgB,aAChB,qBAAqB,kBACrB,EAAE,SAAS,YAAY,aAAa,QAAQ,SAAS,YAErD;GAGF,MAAM,2BAA2B,iBAAiB,OAAO,MACtD,SAAS,CAAC,CAAC,gBAAgB,MAAM,SAAS,CAC7C;GAEA,MAAM,sBACJ,CAAC,mBAAmB,CAAC;GACvB,MAAM,wBACJ,eACA,WAAW,cAAc,UAAU,OACnC,UAAU,WACV,UAAU,gBACV,UAAU,oBACV,UAAU,YAAY,YAAY,oBAClC,oBACA,CAAC,wBACA,CAAC,mBAAmB;GAEvB,MAAM,oBAAoB,sBACtB,UACE,WACA;IACE;IACA,YAAY,WAAW,SAAS;IAChC;IACA;IACA;IACA;IACA;IACA,kBACE,iBAAiB,8BACb,8BACA,KAAA;IACN,SAAS;KACP,kBACE,SAAS,WAAW,QAAQ;KAC9B,SACE,cAAc,UAAU,gBAAgB,SACpC;MACE,OAAO;MACP,MAAM,gBAAgB,SAClB,kBACA,KAAA;KACN,IACA,KAAA;KACN,WACE,gBAAgB,UAAU,kBAAkB,SACxC;MACE,OAAO;MACP,MAAM,kBAAkB,SACpB,oBACA,KAAA;KACN,IACA,KAAA;KACN,OAAO;KACP,UAAU;KACV,KAAK,iBAAiB;KACtB,eAAe,wBAAwB,gBAAgB;IACzD;GACF,GACA,EAAE,OAAO,CACX,IACA,QAAQ,QAAQ,IAAI;GAExB,MAAM,sBAAsB,wBACxB,gBACE,WACA;IACE;IACA,YAAY,WAAW,SAAS;IAChC,WAAW;IACX,WAAW;IACX;IACA,SAAS;IACT,SAAS;IACT,kBACE,iBAAiB,8BACb,8BACA,KAAA;IACN,OAAO;IACP,UAAU;IACV,KAAK,iBAAiB;IACtB,GAAI,cAAc,UAAU,gBAAgB,SACxC;KACgB;KACd,aAAa,gBAAgB,SACzB,kBACA,KAAA;IACN,IACA,KAAA;IACJ,GAAI,gBAAgB,UAAU,kBAAkB,SAC5C;KACkB;KAChB,eAAe,kBAAkB,SAC7B,oBACA,KAAA;IACN,IACA,KAAA;GACN,GACA,EAAE,OAAO,CACX,EACG,KAAK,mBAAmB,EACxB,YAAY,IAAI,IACnB,QAAQ,QAAQ,IAAI;GAGxB,MAAM,eAAe,MAAM;GAE3B,IAAI,cAAc,OAAO,MAAM,aAAa;IAE1C,MAAM,EAAE,WAAW,YAAY,aAAa,OAAO;IAClD,CAAC,WAAW,OAAO,EAAE,SAAS,UAAU;KAEvC,YAAY,eACV,EAAE,UAAU,CAAC,YAAY,UAAU,SAAS,CAAC,EAAE,IAC9C,SAAS,mBAAmB,MAAM,KAAK,CAC1C;KAGA,YAAY,eACV;MACE,UAAU,CAAC,YAAY,iBAAiB,SAAS,CAAC;MAClD,OAAO;KACT,IACC,SAAS,mBAAmB,MAAM,KAAK,CAC1C;KAEA,YAAY,eACV,EACE,UAAU;MACR,YAAY,kBAAkB,SAAS;MACvC;MACA,MAAM;KACR,EACF,IACC,SAAS;MACR,IAAI,MAAM;OACR,MAAM,aAAa,CAAC,GAAG,IAAI;OAC3B,MAAM,QAAQ,WAAW,WACtB,cAAc,UAAU,YAAY,MAAM,OAC7C;OACA,IAAI,SAAS,GACX,WAAW,SAAS;QAClB,GAAG,WAAW;QACd,GAAG;OACL;OAEF,OAAO;MACT;KACF,CACF;IACF,CAAC;GACH;GAEA,MAAM,gBAAgB,cAAc,UAAU,CAAC;GAE/C,IAAI,yBAAyB,cAAc,QAAQ;IACjD,sBAAsB,UAAU,aAAa;IAC7C,QAAQ,KAAA,mBAAkC,aAAa;GAEzD,OAAO,IAAI,qBAAqB;IAE9B,QAAQ,KAAA,mBAAkC,aAAa;IACvD,OAAO;GACT;GAEA,MAAM,qBAAqB,MAAM;GAEjC,IAAI,oBAAoB;IAEtB,cAAc,OAAO,GAAG,GAAG,kBAAkB;IAE7C,QAAQ,KAAA,mBAAkC,aAAa;GACzD;GAEA,OAAO;EACT;EACA,SAAS;EACT,WAAW;EACX,gBAAgB,OAAO;GACrB,OAAO,KAAK,IACV,KAAK,IAAI,eAAe,KAAK,IAAI,IAAI,MAAM,MAAM,cAAc,GAC/D,WACF;EACF;EACA,MAAM,cAAc,OAAY;GAC9B,IAAI,QAAQ,IAAI,aAAa,eAC3B,QAAQ,KAAK,uBAAuB;IAAE;IAAc;GAAM,CAAC;GAE7D,IAAI,gBAAgB,GAClB,OAAO;GAET,IAAI,OAAO,SAAS,cAAc,UAChC,OAAO;GAET,OAAO;EACT;CACF,CAAC;CAEH,MAAM,qBAAqB,aACxB,UAAiB;EAChB,MAAM,eAAe,SAAS,UAAU,SAAS,SAAS,GAAG,GAAG,MAAM,EAAE;EACxE,YAAY,aAAa,cAAc,CAAC,KAAK,GAAG,EAC9C,WAAW,iBAAiB,KAAK,IAAI,EACvC,CAAC;EACD,mBAAmB,KAAK;CAC1B,GACA;EAAC;EAAa;EAAe;EAAoB;CAAQ,CAC3D;CAEA,OAAO;EACL,QAAQ,QAAQ,sBAAsB,QAAQ;EAC9C,WAAW,aAAa;EACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1,12 @@
1
+ import { getScrollableContainer } from "../utils/elements.js";
2
+ import { useDefaultElementId } from "./useDefaultElementId.js";
3
+ import { useCallback } from "react";
4
+ //#region src/hooks/useScrollableContainer.ts
5
+ const useGetScrollableContainer = () => {
6
+ const elementId = useDefaultElementId() ?? "";
7
+ return useCallback(() => getScrollableContainer(elementId), [elementId]);
8
+ };
9
+ //#endregion
10
+ export { useGetScrollableContainer };
11
+
12
+ //# sourceMappingURL=useScrollableContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollableContainer.js","names":[],"sources":["../../../src/hooks/useScrollableContainer.ts"],"sourcesContent":["import { useCallback, useLayoutEffect, useState } from 'react'\nimport { getScrollableContainer } from '../utils/elements.js'\nimport { useDefaultElementId } from './useDefaultElementId.js'\n\nexport const useGetScrollableContainer = (): (() => HTMLElement | null) => {\n const elementId = useDefaultElementId() ?? ''\n const getContainer = useCallback(\n () => getScrollableContainer(elementId),\n [elementId]\n )\n\n return getContainer\n}\n\nexport const useScrollableContainer = (\n elementId: string\n): HTMLElement | null => {\n const [containerElement, setContainerElement] = useState(() =>\n getScrollableContainer(elementId)\n )\n\n useLayoutEffect(() => {\n if (!containerElement) {\n setContainerElement(getScrollableContainer(elementId))\n }\n }, [containerElement, elementId])\n\n return containerElement\n}\n"],"mappings":";;;;AAIA,MAAa,kCAA8D;CACzE,MAAM,YAAY,oBAAoB,KAAK;CAM3C,OALqB,kBACb,uBAAuB,SAAS,GACtC,CAAC,SAAS,CAGM;AACpB"}
@@ -0,0 +1,23 @@
1
+ import { getRelativeContainer } from "../utils/elements.js";
2
+ import { useDefaultElementId } from "./useDefaultElementId.js";
3
+ import { useLayoutEffect } from "react";
4
+ //#region src/hooks/useSetContentHeight.ts
5
+ const useSetContentHeight = (ref, dependency) => {
6
+ const elementId = useDefaultElementId() ?? "";
7
+ useLayoutEffect(() => {
8
+ const relativeContainer = getRelativeContainer(elementId);
9
+ if (!relativeContainer || !ref.current || ref.current?.clientHeight <= relativeContainer?.clientHeight) return;
10
+ relativeContainer.style.minHeight = `${ref.current.clientHeight}px`;
11
+ return () => {
12
+ relativeContainer.style.removeProperty("min-height");
13
+ };
14
+ }, [
15
+ elementId,
16
+ ref,
17
+ dependency
18
+ ]);
19
+ };
20
+ //#endregion
21
+ export { useSetContentHeight };
22
+
23
+ //# sourceMappingURL=useSetContentHeight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSetContentHeight.js","names":[],"sources":["../../../src/hooks/useSetContentHeight.ts"],"sourcesContent":["import type { RefObject } from 'react'\nimport { useLayoutEffect } from 'react'\nimport { getRelativeContainer } from '../utils/elements.js'\nimport { useDefaultElementId } from './useDefaultElementId.js'\n\n// NOTE: this hook is implicitly tied to the widget height functionality in the\n// AppExpandedContainer, RelativeContainer and CssBaselineContainer components as defined in AppContainer.ts\n// CSS changes in those components can have implications for the functionality in this hook\n\nexport const useSetContentHeight = (\n ref: RefObject<HTMLElement | null>,\n dependency?: unknown\n): void => {\n const elementId = useDefaultElementId() ?? ''\n // biome-ignore lint/correctness/useExhaustiveDependencies: we use dependency to refresh height\n useLayoutEffect(() => {\n const relativeContainer = getRelativeContainer(elementId)\n if (\n !relativeContainer ||\n !ref.current ||\n ref.current?.clientHeight <= relativeContainer?.clientHeight\n ) {\n return\n }\n relativeContainer.style.minHeight = `${ref.current.clientHeight}px`\n return () => {\n relativeContainer.style.removeProperty('min-height')\n }\n }, [elementId, ref, dependency])\n}\n"],"mappings":";;;;AASA,MAAa,uBACX,KACA,eACS;CACT,MAAM,YAAY,oBAAoB,KAAK;CAE3C,sBAAsB;EACpB,MAAM,oBAAoB,qBAAqB,SAAS;EACxD,IACE,CAAC,qBACD,CAAC,IAAI,WACL,IAAI,SAAS,gBAAgB,mBAAmB,cAEhD;EAEF,kBAAkB,MAAM,YAAY,GAAG,IAAI,QAAQ,aAAa;EAChE,aAAa;GACX,kBAAkB,MAAM,eAAe,YAAY;EACrD;CACF,GAAG;EAAC;EAAW;EAAK;CAAU,CAAC;AACjC"}
@@ -0,0 +1,51 @@
1
+ import { defaultConfigurableSettings } from "../stores/settings/createSettingsStore.js";
2
+ import { useSettingsStore } from "../stores/settings/SettingsStore.js";
3
+ import { useSettingsActions } from "../stores/settings/useSettingsActions.js";
4
+ import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
5
+ import { useTools } from "./useTools.js";
6
+ //#region src/hooks/useSettingMonitor.ts
7
+ const useSettingMonitor = () => {
8
+ const [disabledBridges, disabledExchanges, routePriority, slippage, gasPrice] = useSettingsStore((state) => [
9
+ state.disabledBridges,
10
+ state.disabledExchanges,
11
+ state.routePriority,
12
+ state.slippage,
13
+ state.gasPrice
14
+ ]);
15
+ const { tools } = useTools();
16
+ const config = useWidgetConfig();
17
+ const { setDefaultSettings, resetSettings } = useSettingsActions();
18
+ const isSlippageChanged = config.slippage ? Number(slippage) !== config.slippage * 100 : slippage !== defaultConfigurableSettings.slippage;
19
+ const isSlippageOutsideRecommendedLimits = isSlippageChanged && !!slippage && Number(slippage) > 1;
20
+ const isSlippageUnderRecommendedLimits = isSlippageChanged && !!slippage && Number(slippage) < .1;
21
+ const isSlippageNotRecommended = Boolean(isSlippageOutsideRecommendedLimits || isSlippageUnderRecommendedLimits);
22
+ const isRoutePriorityChanged = config.routePriority ? routePriority !== config.routePriority : routePriority !== defaultConfigurableSettings.routePriority;
23
+ const isGasPriceChanged = gasPrice !== defaultConfigurableSettings.gasPrice;
24
+ const isBridgesChanged = Boolean(disabledBridges.length);
25
+ const isExchangesChanged = Boolean(disabledExchanges.length);
26
+ const isCustomRouteSettings = isBridgesChanged || isExchangesChanged || isSlippageChanged || isRoutePriorityChanged || isGasPriceChanged;
27
+ const isRouteSettingsWithWarnings = isSlippageNotRecommended;
28
+ const reset = () => {
29
+ if (tools) {
30
+ resetSettings(tools.bridges.map((tool) => tool.key), tools.exchanges.map((tool) => tool.key));
31
+ setDefaultSettings(config);
32
+ }
33
+ };
34
+ return {
35
+ isBridgesChanged,
36
+ isExchangesChanged,
37
+ isSlippageChanged,
38
+ isSlippageNotRecommended,
39
+ isSlippageOutsideRecommendedLimits,
40
+ isSlippageUnderRecommendedLimits,
41
+ isRoutePriorityChanged,
42
+ isGasPriceChanged,
43
+ isCustomRouteSettings,
44
+ isRouteSettingsWithWarnings,
45
+ reset
46
+ };
47
+ };
48
+ //#endregion
49
+ export { useSettingMonitor };
50
+
51
+ //# sourceMappingURL=useSettingMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSettingMonitor.js","names":[],"sources":["../../../src/hooks/useSettingMonitor.ts"],"sourcesContent":["import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport { defaultConfigurableSettings } from '../stores/settings/createSettingsStore.js'\nimport { useSettingsStore } from '../stores/settings/SettingsStore.js'\nimport { useSettingsActions } from '../stores/settings/useSettingsActions.js'\nimport { useTools } from './useTools.js'\n\nexport const useSettingMonitor = (): {\n isBridgesChanged: boolean\n isExchangesChanged: boolean\n isSlippageChanged: boolean\n isSlippageNotRecommended: boolean\n isSlippageOutsideRecommendedLimits: boolean\n isSlippageUnderRecommendedLimits: boolean\n isRoutePriorityChanged: boolean\n isGasPriceChanged: boolean\n isCustomRouteSettings: boolean\n isRouteSettingsWithWarnings: boolean\n reset: () => void\n} => {\n const [\n disabledBridges,\n disabledExchanges,\n routePriority,\n slippage,\n gasPrice,\n ] = useSettingsStore((state) => [\n state.disabledBridges,\n state.disabledExchanges,\n state.routePriority,\n state.slippage,\n state.gasPrice,\n ])\n const { tools } = useTools()\n const config = useWidgetConfig()\n const { setDefaultSettings, resetSettings } = useSettingsActions()\n\n const isSlippageChanged = config.slippage\n ? Number(slippage) !== config.slippage * 100\n : slippage !== defaultConfigurableSettings.slippage\n\n const isSlippageOutsideRecommendedLimits =\n isSlippageChanged && !!slippage && Number(slippage) > 1\n\n const isSlippageUnderRecommendedLimits =\n isSlippageChanged && !!slippage && Number(slippage) < 0.1\n\n const isSlippageNotRecommended = Boolean(\n isSlippageOutsideRecommendedLimits || isSlippageUnderRecommendedLimits\n )\n\n const isRoutePriorityChanged = config.routePriority\n ? routePriority !== config.routePriority\n : routePriority !== defaultConfigurableSettings.routePriority\n\n const isGasPriceChanged = gasPrice !== defaultConfigurableSettings.gasPrice\n\n const isBridgesChanged = Boolean(disabledBridges.length)\n const isExchangesChanged = Boolean(disabledExchanges.length)\n\n const isCustomRouteSettings =\n isBridgesChanged ||\n isExchangesChanged ||\n isSlippageChanged ||\n isRoutePriorityChanged ||\n isGasPriceChanged\n\n const isRouteSettingsWithWarnings = isSlippageNotRecommended\n\n const reset = () => {\n if (tools) {\n resetSettings(\n tools.bridges.map((tool) => tool.key),\n tools.exchanges.map((tool) => tool.key)\n )\n\n setDefaultSettings(config)\n }\n }\n\n return {\n isBridgesChanged,\n isExchangesChanged,\n isSlippageChanged,\n isSlippageNotRecommended,\n isSlippageOutsideRecommendedLimits,\n isSlippageUnderRecommendedLimits,\n isRoutePriorityChanged,\n isGasPriceChanged,\n isCustomRouteSettings,\n isRouteSettingsWithWarnings,\n reset,\n }\n}\n"],"mappings":";;;;;;AAMA,MAAa,0BAYR;CACH,MAAM,CACJ,iBACA,mBACA,eACA,UACA,YACE,kBAAkB,UAAU;EAC9B,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;CACR,CAAC;CACD,MAAM,EAAE,UAAU,SAAS;CAC3B,MAAM,SAAS,gBAAgB;CAC/B,MAAM,EAAE,oBAAoB,kBAAkB,mBAAmB;CAEjE,MAAM,oBAAoB,OAAO,WAC7B,OAAO,QAAQ,MAAM,OAAO,WAAW,MACvC,aAAa,4BAA4B;CAE7C,MAAM,qCACJ,qBAAqB,CAAC,CAAC,YAAY,OAAO,QAAQ,IAAI;CAExD,MAAM,mCACJ,qBAAqB,CAAC,CAAC,YAAY,OAAO,QAAQ,IAAI;CAExD,MAAM,2BAA2B,QAC/B,sCAAsC,gCACxC;CAEA,MAAM,yBAAyB,OAAO,gBAClC,kBAAkB,OAAO,gBACzB,kBAAkB,4BAA4B;CAElD,MAAM,oBAAoB,aAAa,4BAA4B;CAEnE,MAAM,mBAAmB,QAAQ,gBAAgB,MAAM;CACvD,MAAM,qBAAqB,QAAQ,kBAAkB,MAAM;CAE3D,MAAM,wBACJ,oBACA,sBACA,qBACA,0BACA;CAEF,MAAM,8BAA8B;CAEpC,MAAM,cAAc;EAClB,IAAI,OAAO;GACT,cACE,MAAM,QAAQ,KAAK,SAAS,KAAK,GAAG,GACpC,MAAM,UAAU,KAAK,SAAS,KAAK,GAAG,CACxC;GAEA,mBAAmB,MAAM;EAC3B;CACF;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1,9 @@
1
+ import { useSplitModeStore } from "../stores/settings/useSplitModeStore.js";
2
+ //#region src/hooks/useSwapOnly.ts
3
+ const useSwapOnly = () => {
4
+ return useSplitModeStore((state) => state.state) === "swap";
5
+ };
6
+ //#endregion
7
+ export { useSwapOnly };
8
+
9
+ //# sourceMappingURL=useSwapOnly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSwapOnly.js","names":[],"sources":["../../../src/hooks/useSwapOnly.ts"],"sourcesContent":["import { useSplitModeStore } from '../stores/settings/useSplitModeStore.js'\n\nexport const useSwapOnly = (): boolean => {\n const state = useSplitModeStore((state) => state.state)\n return state === 'swap'\n}\n"],"mappings":";;AAEA,MAAa,oBAA6B;CAExC,OADc,mBAAmB,UAAU,MAAM,KACtC,MAAM;AACnB"}
@@ -0,0 +1,51 @@
1
+ import { useAvailableChains } from "./useAvailableChains.js";
2
+ import { useBookmarkActions } from "../stores/bookmarks/useBookmarkActions.js";
3
+ import { useFieldActions } from "../stores/form/useFieldActions.js";
4
+ import { useCallback } from "react";
5
+ import { useChainTypeFromAddress } from "@lifi/widget-provider";
6
+ import { useAccount } from "@lifi/wallet-management";
7
+ //#region src/hooks/useToAddressAutoPopulate.ts
8
+ /**
9
+ * Automatically populates toAddress field if bridging across ecosystems and compatible wallet is connected
10
+ */
11
+ const useToAddressAutoPopulate = () => {
12
+ const { setFieldValue } = useFieldActions();
13
+ const { setSelectedBookmark } = useBookmarkActions();
14
+ const { getChainById } = useAvailableChains();
15
+ const { accounts } = useAccount();
16
+ const { getChainTypeFromAddress } = useChainTypeFromAddress();
17
+ return useCallback(({ formType, selectedToAddress, selectedChainId, selectedOppositeTokenAddress, selectedOppositeChainId }) => {
18
+ if (!selectedOppositeTokenAddress || !selectedOppositeChainId || !selectedChainId || !accounts?.length) return;
19
+ const selectedChain = getChainById?.(selectedChainId);
20
+ const selectedOppositeChain = getChainById?.(selectedOppositeChainId);
21
+ if (!selectedChain || !selectedOppositeChain || selectedChain.chainType === selectedOppositeChain.chainType) return;
22
+ const destinationChainType = formType === "from" ? selectedOppositeChain.chainType : selectedChain.chainType;
23
+ if (selectedToAddress) {
24
+ if (destinationChainType === getChainTypeFromAddress(selectedToAddress)) return;
25
+ }
26
+ const destinationAccount = accounts?.find((account) => account.chainType === destinationChainType);
27
+ if (destinationAccount?.address) {
28
+ setFieldValue("toAddress", destinationAccount.address, {
29
+ isDirty: false,
30
+ isTouched: true
31
+ });
32
+ setSelectedBookmark({
33
+ name: destinationAccount.connector?.name,
34
+ address: destinationAccount.address,
35
+ chainType: destinationAccount.chainType,
36
+ isConnectedAccount: true
37
+ });
38
+ return destinationAccount.address;
39
+ }
40
+ }, [
41
+ accounts,
42
+ getChainById,
43
+ setFieldValue,
44
+ setSelectedBookmark,
45
+ getChainTypeFromAddress
46
+ ]);
47
+ };
48
+ //#endregion
49
+ export { useToAddressAutoPopulate };
50
+
51
+ //# sourceMappingURL=useToAddressAutoPopulate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToAddressAutoPopulate.js","names":[],"sources":["../../../src/hooks/useToAddressAutoPopulate.ts"],"sourcesContent":["import { useAccount } from '@lifi/wallet-management'\nimport { useChainTypeFromAddress } from '@lifi/widget-provider'\nimport { useCallback } from 'react'\nimport { useBookmarkActions } from '../stores/bookmarks/useBookmarkActions.js'\nimport type { FormType } from '../stores/form/types.js'\nimport { useFieldActions } from '../stores/form/useFieldActions.js'\nimport { useAvailableChains } from './useAvailableChains.js'\n\ntype UpdateToAddressArgs = {\n formType: FormType\n selectedToAddress?: string\n selectedChainId?: number\n selectedOppositeTokenAddress?: string\n selectedOppositeChainId?: number\n}\n\n/**\n * Automatically populates toAddress field if bridging across ecosystems and compatible wallet is connected\n */\nexport const useToAddressAutoPopulate = (): ((\n args: UpdateToAddressArgs\n) => string | undefined) => {\n const { setFieldValue } = useFieldActions()\n const { setSelectedBookmark } = useBookmarkActions()\n const { getChainById } = useAvailableChains()\n const { accounts } = useAccount()\n const { getChainTypeFromAddress } = useChainTypeFromAddress()\n\n return useCallback(\n ({\n formType,\n selectedToAddress,\n selectedChainId,\n selectedOppositeTokenAddress,\n selectedOppositeChainId,\n }: UpdateToAddressArgs) => {\n if (\n !selectedOppositeTokenAddress ||\n !selectedOppositeChainId ||\n !selectedChainId ||\n !accounts?.length\n ) {\n return\n }\n const selectedChain = getChainById?.(selectedChainId)\n const selectedOppositeChain = getChainById?.(selectedOppositeChainId)\n // Proceed if both chains are defined and of different ecosystem types (indicating cross-ecosystem bridging)\n if (\n !selectedChain ||\n !selectedOppositeChain ||\n selectedChain.chainType === selectedOppositeChain.chainType\n ) {\n return\n }\n // Identify the destination chain type based on the bridge direction ('from' or 'to')\n const destinationChainType =\n formType === 'from'\n ? selectedOppositeChain.chainType\n : selectedChain.chainType\n // If toAddress is already selected, verify that it matches the destination chain type\n if (selectedToAddress) {\n const selectedToAddressChainType =\n getChainTypeFromAddress(selectedToAddress)\n if (destinationChainType === selectedToAddressChainType) {\n return\n }\n }\n // Find connected account compatible with the destination chain type\n const destinationAccount = accounts?.find(\n (account) => account.chainType === destinationChainType\n )\n // If a compatible destination account is found, set toAddress as if selecting it from the \"Send to Wallet\" connected wallets page\n if (destinationAccount?.address) {\n setFieldValue('toAddress', destinationAccount.address, {\n isDirty: false,\n isTouched: true,\n })\n setSelectedBookmark({\n name: destinationAccount.connector?.name,\n address: destinationAccount.address,\n chainType: destinationAccount.chainType,\n isConnectedAccount: true,\n })\n return destinationAccount.address\n }\n },\n [\n accounts,\n getChainById,\n setFieldValue,\n setSelectedBookmark,\n getChainTypeFromAddress,\n ]\n )\n}\n"],"mappings":";;;;;;;;;;AAmBA,MAAa,iCAEe;CAC1B,MAAM,EAAE,kBAAkB,gBAAgB;CAC1C,MAAM,EAAE,wBAAwB,mBAAmB;CACnD,MAAM,EAAE,iBAAiB,mBAAmB;CAC5C,MAAM,EAAE,aAAa,WAAW;CAChC,MAAM,EAAE,4BAA4B,wBAAwB;CAE5D,OAAO,aACJ,EACC,UACA,mBACA,iBACA,8BACA,8BACyB;EACzB,IACE,CAAC,gCACD,CAAC,2BACD,CAAC,mBACD,CAAC,UAAU,QAEX;EAEF,MAAM,gBAAgB,eAAe,eAAe;EACpD,MAAM,wBAAwB,eAAe,uBAAuB;EAEpE,IACE,CAAC,iBACD,CAAC,yBACD,cAAc,cAAc,sBAAsB,WAElD;EAGF,MAAM,uBACJ,aAAa,SACT,sBAAsB,YACtB,cAAc;EAEpB,IAAI;OAGE,yBADF,wBAAwB,iBAC4B,GACpD;EAAA;EAIJ,MAAM,qBAAqB,UAAU,MAClC,YAAY,QAAQ,cAAc,oBACrC;EAEA,IAAI,oBAAoB,SAAS;GAC/B,cAAc,aAAa,mBAAmB,SAAS;IACrD,SAAS;IACT,WAAW;GACb,CAAC;GACD,oBAAoB;IAClB,MAAM,mBAAmB,WAAW;IACpC,SAAS,mBAAmB;IAC5B,WAAW,mBAAmB;IAC9B,oBAAoB;GACtB,CAAC;GACD,OAAO,mBAAmB;EAC5B;CACF,GACA;EACE;EACA;EACA;EACA;EACA;CACF,CACF;AACF"}
@@ -0,0 +1,41 @@
1
+ import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
2
+ import { useFieldValues } from "../stores/form/useFieldValues.js";
3
+ import { useChain } from "./useChain.js";
4
+ import { useIsContractAddress } from "./useIsContractAddress.js";
5
+ import { useEthereumContext } from "@lifi/widget-provider";
6
+ import { useAccount } from "@lifi/wallet-management";
7
+ //#region src/hooks/useToAddressRequirements.ts
8
+ const useToAddressRequirements = (route) => {
9
+ const { requiredUI, hiddenUI } = useWidgetConfig();
10
+ const [formFromChainId, formToChainId, formToAddress] = useFieldValues("fromChain", "toChain", "toAddress");
11
+ const { isDelegationDesignatorCode } = useEthereumContext();
12
+ const fromChainId = route?.fromChainId ?? formFromChainId;
13
+ const toChainId = route?.toChainId ?? formToChainId;
14
+ const { chain: fromChain } = useChain(fromChainId);
15
+ const { chain: toChain } = useChain(toChainId);
16
+ const { account } = useAccount({ chainType: fromChain?.chainType });
17
+ const fromAddress = route?.fromAddress ?? account.address;
18
+ const toAddress = route ? route.fromAddress !== route.toAddress ? route.toAddress : formToAddress : formToAddress;
19
+ const { isContractAddress: isFromContractAddress, contractCode: fromContractCode, isLoading: isFromContractLoading, isFetched: isFromContractFetched } = useIsContractAddress(account.address, fromChainId, account.chainType);
20
+ const { isContractAddress: isToContractAddress, isLoading: isToContractLoading, isFetched: isToContractFetched } = useIsContractAddress(toAddress, toChainId, toChain?.chainType);
21
+ const isDifferentChainType = fromChain && toChain && fromChain.chainType !== toChain.chainType;
22
+ const fromContractCodeHasDelegationIndicator = isDelegationDesignatorCode?.(fromContractCode);
23
+ const requiredToAddress = Boolean((isDifferentChainType || isFromContractAddress && fromChainId !== toChainId && !fromContractCodeHasDelegationIndicator || requiredUI?.toAddress) && !hiddenUI?.toAddress);
24
+ const accountNotDeployedAtDestination = Boolean(isFromContractAddress && !fromContractCodeHasDelegationIndicator && !isToContractAddress && fromAddress?.toLowerCase() === toAddress?.toLowerCase());
25
+ const accountDeployedAtDestination = Boolean(isFromContractAddress && isToContractAddress && !fromContractCodeHasDelegationIndicator && fromAddress?.toLowerCase() === toAddress?.toLowerCase());
26
+ return {
27
+ requiredToAddress,
28
+ requiredToChainType: toChain?.chainType,
29
+ accountNotDeployedAtDestination,
30
+ accountDeployedAtDestination,
31
+ toAddress,
32
+ isFromContractAddress,
33
+ isToContractAddress,
34
+ isLoading: isFromContractLoading || isToContractLoading,
35
+ isFetched: isFromContractFetched && isToContractFetched
36
+ };
37
+ };
38
+ //#endregion
39
+ export { useToAddressRequirements };
40
+
41
+ //# sourceMappingURL=useToAddressRequirements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToAddressRequirements.js","names":[],"sources":["../../../src/hooks/useToAddressRequirements.ts"],"sourcesContent":["import type { ChainType, RouteExtended } from '@lifi/sdk'\nimport { useAccount } from '@lifi/wallet-management'\nimport { useEthereumContext } from '@lifi/widget-provider'\nimport { useChain } from '../hooks/useChain.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport { useFieldValues } from '../stores/form/useFieldValues.js'\nimport { useIsContractAddress } from './useIsContractAddress.js'\n\nexport const useToAddressRequirements = (\n route?: RouteExtended\n): {\n requiredToAddress: boolean\n requiredToChainType: ChainType | undefined\n accountNotDeployedAtDestination: boolean\n accountDeployedAtDestination: boolean\n toAddress: string | undefined\n isFromContractAddress: boolean | undefined\n isToContractAddress: boolean | undefined\n isLoading: boolean\n isFetched: boolean\n} => {\n const { requiredUI, hiddenUI } = useWidgetConfig()\n const [formFromChainId, formToChainId, formToAddress] = useFieldValues(\n 'fromChain',\n 'toChain',\n 'toAddress'\n )\n const { isDelegationDesignatorCode } = useEthereumContext()\n\n const fromChainId = route?.fromChainId ?? formFromChainId\n const toChainId = route?.toChainId ?? formToChainId\n\n const { chain: fromChain } = useChain(fromChainId)\n const { chain: toChain } = useChain(toChainId)\n const { account } = useAccount({\n chainType: fromChain?.chainType,\n })\n\n const fromAddress = route?.fromAddress ?? account.address\n const toAddress = route\n ? route.fromAddress !== route.toAddress\n ? route.toAddress\n : formToAddress\n : formToAddress\n\n const {\n isContractAddress: isFromContractAddress,\n contractCode: fromContractCode,\n isLoading: isFromContractLoading,\n isFetched: isFromContractFetched,\n } = useIsContractAddress(account.address, fromChainId, account.chainType)\n const {\n isContractAddress: isToContractAddress,\n isLoading: isToContractLoading,\n isFetched: isToContractFetched,\n } = useIsContractAddress(toAddress, toChainId, toChain?.chainType)\n\n const isDifferentChainType =\n fromChain && toChain && fromChain.chainType !== toChain.chainType\n\n // We don't want to block transfers for EIP-7702 accounts since they are designed\n // to maintain EOA-like properties while delegating execution.\n const fromContractCodeHasDelegationIndicator =\n isDelegationDesignatorCode?.(fromContractCode)\n\n const isCrossChainContractAddress =\n isFromContractAddress &&\n fromChainId !== toChainId &&\n !fromContractCodeHasDelegationIndicator\n\n const requiredToAddress = Boolean(\n (isDifferentChainType ||\n isCrossChainContractAddress ||\n requiredUI?.toAddress) &&\n !hiddenUI?.toAddress\n )\n\n const accountNotDeployedAtDestination = Boolean(\n isFromContractAddress &&\n !fromContractCodeHasDelegationIndicator &&\n !isToContractAddress &&\n fromAddress?.toLowerCase() === toAddress?.toLowerCase()\n )\n\n const accountDeployedAtDestination = Boolean(\n isFromContractAddress &&\n isToContractAddress &&\n !fromContractCodeHasDelegationIndicator &&\n fromAddress?.toLowerCase() === toAddress?.toLowerCase()\n )\n\n return {\n requiredToAddress,\n requiredToChainType: toChain?.chainType,\n accountNotDeployedAtDestination,\n accountDeployedAtDestination,\n toAddress,\n isFromContractAddress,\n isToContractAddress,\n isLoading: isFromContractLoading || isToContractLoading,\n isFetched: isFromContractFetched && isToContractFetched,\n }\n}\n"],"mappings":";;;;;;;AAQA,MAAa,4BACX,UAWG;CACH,MAAM,EAAE,YAAY,aAAa,gBAAgB;CACjD,MAAM,CAAC,iBAAiB,eAAe,iBAAiB,eACtD,aACA,WACA,WACF;CACA,MAAM,EAAE,+BAA+B,mBAAmB;CAE1D,MAAM,cAAc,OAAO,eAAe;CAC1C,MAAM,YAAY,OAAO,aAAa;CAEtC,MAAM,EAAE,OAAO,cAAc,SAAS,WAAW;CACjD,MAAM,EAAE,OAAO,YAAY,SAAS,SAAS;CAC7C,MAAM,EAAE,YAAY,WAAW,EAC7B,WAAW,WAAW,UACxB,CAAC;CAED,MAAM,cAAc,OAAO,eAAe,QAAQ;CAClD,MAAM,YAAY,QACd,MAAM,gBAAgB,MAAM,YAC1B,MAAM,YACN,gBACF;CAEJ,MAAM,EACJ,mBAAmB,uBACnB,cAAc,kBACd,WAAW,uBACX,WAAW,0BACT,qBAAqB,QAAQ,SAAS,aAAa,QAAQ,SAAS;CACxE,MAAM,EACJ,mBAAmB,qBACnB,WAAW,qBACX,WAAW,wBACT,qBAAqB,WAAW,WAAW,SAAS,SAAS;CAEjE,MAAM,uBACJ,aAAa,WAAW,UAAU,cAAc,QAAQ;CAI1D,MAAM,yCACJ,6BAA6B,gBAAgB;CAO/C,MAAM,oBAAoB,SACvB,wBALD,yBACA,gBAAgB,aAChB,CAAC,0CAKC,YAAY,cACZ,CAAC,UAAU,SACf;CAEA,MAAM,kCAAkC,QACtC,yBACE,CAAC,0CACD,CAAC,uBACD,aAAa,YAAY,MAAM,WAAW,YAAY,CAC1D;CAEA,MAAM,+BAA+B,QACnC,yBACE,uBACA,CAAC,0CACD,aAAa,YAAY,MAAM,WAAW,YAAY,CAC1D;CAEA,OAAO;EACL;EACA,qBAAqB,SAAS;EAC9B;EACA;EACA;EACA;EACA;EACA,WAAW,yBAAyB;EACpC,WAAW,yBAAyB;CACtC;AACF"}
@@ -0,0 +1,29 @@
1
+ import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
2
+ import { useBookmarkActions } from "../stores/bookmarks/useBookmarkActions.js";
3
+ import { useBookmarks } from "../stores/bookmarks/useBookmarks.js";
4
+ import { useFieldActions } from "../stores/form/useFieldActions.js";
5
+ import { useCallback } from "react";
6
+ //#region src/hooks/useToAddressReset.ts
7
+ const useToAddressReset = () => {
8
+ const { requiredUI } = useWidgetConfig();
9
+ const { setFieldValue } = useFieldActions();
10
+ const { selectedBookmark } = useBookmarks();
11
+ const { setSelectedBookmark } = useBookmarkActions();
12
+ return { tryResetToAddress: useCallback((toChain) => {
13
+ const requiredToAddress = requiredUI?.toAddress;
14
+ const bookmarkSatisfiesToChainType = selectedBookmark?.chainType === toChain?.chainType;
15
+ if (!requiredToAddress && !bookmarkSatisfiesToChainType) {
16
+ setFieldValue("toAddress", "", { isTouched: true });
17
+ setSelectedBookmark();
18
+ }
19
+ }, [
20
+ setFieldValue,
21
+ setSelectedBookmark,
22
+ requiredUI,
23
+ selectedBookmark
24
+ ]) };
25
+ };
26
+ //#endregion
27
+ export { useToAddressReset };
28
+
29
+ //# sourceMappingURL=useToAddressReset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToAddressReset.js","names":[],"sources":["../../../src/hooks/useToAddressReset.ts"],"sourcesContent":["import type { ExtendedChain } from '@lifi/sdk'\nimport { useCallback } from 'react'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport { useBookmarkActions } from '../stores/bookmarks/useBookmarkActions.js'\nimport { useBookmarks } from '../stores/bookmarks/useBookmarks.js'\nimport { useFieldActions } from '../stores/form/useFieldActions.js'\n\nexport const useToAddressReset = (): {\n tryResetToAddress: (toChain: ExtendedChain) => void\n} => {\n const { requiredUI } = useWidgetConfig()\n const { setFieldValue } = useFieldActions()\n const { selectedBookmark } = useBookmarks()\n const { setSelectedBookmark } = useBookmarkActions()\n\n const tryResetToAddress = useCallback(\n (toChain: ExtendedChain) => {\n const requiredToAddress = requiredUI?.toAddress\n\n const bookmarkSatisfiesToChainType =\n selectedBookmark?.chainType === toChain?.chainType\n\n const shouldResetToAddress =\n !requiredToAddress && !bookmarkSatisfiesToChainType\n\n // We reset toAddress on each chain change if it's no longer required, ensuring that\n // switching chain types doesn't leave a stale toAddress from a different ecosystem.\n if (shouldResetToAddress) {\n setFieldValue('toAddress', '', { isTouched: true })\n setSelectedBookmark()\n }\n },\n [setFieldValue, setSelectedBookmark, requiredUI, selectedBookmark]\n )\n\n return {\n tryResetToAddress,\n }\n}\n"],"mappings":";;;;;;AAOA,MAAa,0BAER;CACH,MAAM,EAAE,eAAe,gBAAgB;CACvC,MAAM,EAAE,kBAAkB,gBAAgB;CAC1C,MAAM,EAAE,qBAAqB,aAAa;CAC1C,MAAM,EAAE,wBAAwB,mBAAmB;CAsBnD,OAAO,EACL,mBArBwB,aACvB,YAA2B;EAC1B,MAAM,oBAAoB,YAAY;EAEtC,MAAM,+BACJ,kBAAkB,cAAc,SAAS;EAO3C,IAJE,CAAC,qBAAqB,CAAC,8BAIC;GACxB,cAAc,aAAa,IAAI,EAAE,WAAW,KAAK,CAAC;GAClD,oBAAoB;EACtB;CACF,GACA;EAAC;EAAe;EAAqB;EAAY;CAAgB,CAIjD,EAClB;AACF"}
@@ -0,0 +1,23 @@
1
+ import { useTokenSearch } from "./useTokenSearch.js";
2
+ import { useTokens } from "./useTokens.js";
3
+ import { useMemo } from "react";
4
+ //#region src/hooks/useToken.ts
5
+ const useToken = (chainId, tokenAddress, latest) => {
6
+ const { allTokens, isLoading: isTokensLoading } = useTokens();
7
+ const token = useMemo(() => chainId && tokenAddress ? allTokens?.[chainId]?.find((t) => t.address.toLowerCase() === tokenAddress.toLowerCase()) : void 0, [
8
+ allTokens,
9
+ chainId,
10
+ tokenAddress
11
+ ]);
12
+ const tokenSearchEnabled = !!chainId && !!tokenAddress && (latest || !isTokensLoading && !token);
13
+ const { token: searchedToken, isLoading: isSearchLoading } = useTokenSearch(chainId, tokenAddress, tokenSearchEnabled);
14
+ const resolvedToken = latest ? searchedToken ?? token : token ?? searchedToken;
15
+ return {
16
+ token: resolvedToken,
17
+ isLoading: !resolvedToken && (isTokensLoading || tokenSearchEnabled && isSearchLoading)
18
+ };
19
+ };
20
+ //#endregion
21
+ export { useToken };
22
+
23
+ //# sourceMappingURL=useToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToken.js","names":[],"sources":["../../../src/hooks/useToken.ts"],"sourcesContent":["import type { TokenExtended } from '@lifi/sdk'\nimport { useMemo } from 'react'\nimport { useTokenSearch } from './useTokenSearch.js'\nimport { useTokens } from './useTokens.js'\n\nexport const useToken = (\n chainId?: number,\n tokenAddress?: string,\n latest?: boolean\n): {\n token: TokenExtended | undefined\n isLoading: boolean\n} => {\n const { allTokens, isLoading: isTokensLoading } = useTokens()\n\n const token = useMemo(\n () =>\n chainId && tokenAddress\n ? allTokens?.[chainId]?.find(\n (t) => t.address.toLowerCase() === tokenAddress.toLowerCase()\n )\n : undefined,\n [allTokens, chainId, tokenAddress]\n )\n\n const tokenSearchEnabled =\n !!chainId && !!tokenAddress && (latest || (!isTokensLoading && !token))\n\n const { token: searchedToken, isLoading: isSearchLoading } = useTokenSearch(\n chainId,\n tokenAddress,\n tokenSearchEnabled\n )\n\n const resolvedToken = latest\n ? (searchedToken ?? token)\n : (token ?? searchedToken)\n\n return {\n token: resolvedToken,\n isLoading:\n !resolvedToken &&\n (isTokensLoading || (tokenSearchEnabled && isSearchLoading)),\n }\n}\n"],"mappings":";;;;AAKA,MAAa,YACX,SACA,cACA,WAIG;CACH,MAAM,EAAE,WAAW,WAAW,oBAAoB,UAAU;CAE5D,MAAM,QAAQ,cAEV,WAAW,eACP,YAAY,UAAU,MACnB,MAAM,EAAE,QAAQ,YAAY,MAAM,aAAa,YAAY,CAC9D,IACA,KAAA,GACN;EAAC;EAAW;EAAS;CAAY,CACnC;CAEA,MAAM,qBACJ,CAAC,CAAC,WAAW,CAAC,CAAC,iBAAiB,UAAW,CAAC,mBAAmB,CAAC;CAElE,MAAM,EAAE,OAAO,eAAe,WAAW,oBAAoB,eAC3D,SACA,cACA,kBACF;CAEA,MAAM,gBAAgB,SACjB,iBAAiB,QACjB,SAAS;CAEd,OAAO;EACL,OAAO;EACP,WACE,CAAC,kBACA,mBAAoB,sBAAsB;CAC/C;AACF"}
@@ -0,0 +1,21 @@
1
+ import { useChain } from "./useChain.js";
2
+ import { useTokenBalance } from "./useTokenBalance.js";
3
+ import { useToken } from "./useToken.js";
4
+ import { useAccount } from "@lifi/wallet-management";
5
+ //#region src/hooks/useTokenAddressBalance.ts
6
+ const useTokenAddressBalance = (chainId, tokenAddress) => {
7
+ const { chain, isLoading: isChainLoading } = useChain(chainId);
8
+ const { account } = useAccount({ chainType: chain?.chainType });
9
+ const { token, isLoading: isTokenLoading } = useToken(chainId, tokenAddress);
10
+ const { token: tokenBalance, isLoading: isBalanceLoading, refetch } = useTokenBalance(account?.address, token);
11
+ return {
12
+ token: tokenBalance ?? token,
13
+ chain,
14
+ isLoading: isBalanceLoading || isChainLoading || isTokenLoading,
15
+ refetch
16
+ };
17
+ };
18
+ //#endregion
19
+ export { useTokenAddressBalance };
20
+
21
+ //# sourceMappingURL=useTokenAddressBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokenAddressBalance.js","names":[],"sources":["../../../src/hooks/useTokenAddressBalance.ts"],"sourcesContent":["import type { ExtendedChain, TokenAmount } from '@lifi/sdk'\nimport { useAccount } from '@lifi/wallet-management'\nimport { useChain } from './useChain.js'\nimport { useToken } from './useToken.js'\nimport { useTokenBalance } from './useTokenBalance.js'\n\nexport const useTokenAddressBalance = (\n chainId?: number,\n tokenAddress?: string\n): {\n token: TokenAmount\n chain: ExtendedChain | undefined\n isLoading: boolean\n refetch: () => void\n} => {\n const { chain, isLoading: isChainLoading } = useChain(chainId)\n const { account } = useAccount({ chainType: chain?.chainType })\n const { token, isLoading: isTokenLoading } = useToken(chainId, tokenAddress)\n\n const {\n token: tokenBalance,\n isLoading: isBalanceLoading,\n refetch,\n } = useTokenBalance(account?.address, token)\n\n return {\n token: tokenBalance ?? (token as TokenAmount),\n chain,\n isLoading: isBalanceLoading || isChainLoading || isTokenLoading,\n refetch,\n }\n}\n"],"mappings":";;;;;AAMA,MAAa,0BACX,SACA,iBAMG;CACH,MAAM,EAAE,OAAO,WAAW,mBAAmB,SAAS,OAAO;CAC7D,MAAM,EAAE,YAAY,WAAW,EAAE,WAAW,OAAO,UAAU,CAAC;CAC9D,MAAM,EAAE,OAAO,WAAW,mBAAmB,SAAS,SAAS,YAAY;CAE3E,MAAM,EACJ,OAAO,cACP,WAAW,kBACX,YACE,gBAAgB,SAAS,SAAS,KAAK;CAE3C,OAAO;EACL,OAAO,gBAAiB;EACxB;EACA,WAAW,oBAAoB,kBAAkB;EACjD;CACF;AACF"}
@@ -0,0 +1,93 @@
1
+ import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
2
+ import { useSDKClient } from "../providers/SDKClientProvider.js";
3
+ import { getQueryKey } from "../utils/queries.js";
4
+ import { getTokenBalances } from "@lifi/sdk";
5
+ import { useCallback, useMemo } from "react";
6
+ import { useQuery, useQueryClient } from "@tanstack/react-query";
7
+ //#region src/hooks/useTokenBalance.ts
8
+ const defaultRefetchInterval = 3e4;
9
+ const useTokenBalance = (accountAddress, token) => {
10
+ const queryClient = useQueryClient();
11
+ const { keyPrefix } = useWidgetConfig();
12
+ const sdkClient = useSDKClient();
13
+ const tokenBalanceQueryKey = useMemo(() => [
14
+ getQueryKey("token-balance", keyPrefix),
15
+ accountAddress,
16
+ token?.chainId,
17
+ token?.address
18
+ ], [
19
+ token?.address,
20
+ token?.chainId,
21
+ accountAddress,
22
+ keyPrefix
23
+ ]);
24
+ const { data, isLoading, refetch } = useQuery({
25
+ queryKey: tokenBalanceQueryKey,
26
+ queryFn: async ({ queryKey: [, accountAddress, tokenChainId, tokenAddress] }) => {
27
+ const tokenBalances = await getTokenBalancesWithRetry(sdkClient, accountAddress, [token]);
28
+ if (!tokenBalances?.length) throw new Error("Could not get tokens balance.");
29
+ const cachedTokenAmount = queryClient.getQueryData(tokenBalanceQueryKey);
30
+ const tokenAmount = tokenBalances[0].amount;
31
+ if (cachedTokenAmount?.amount !== tokenAmount) queryClient.setQueryDefaults(tokenBalanceQueryKey, {
32
+ refetchInterval: defaultRefetchInterval,
33
+ staleTime: defaultRefetchInterval
34
+ });
35
+ queryClient.setQueriesData({ queryKey: [
36
+ getQueryKey("token-balances", keyPrefix),
37
+ accountAddress,
38
+ tokenChainId
39
+ ] }, (data) => {
40
+ if (data) {
41
+ const clonedData = [...data];
42
+ const index = clonedData.findIndex((dataToken) => dataToken.address === tokenAddress);
43
+ clonedData[index] = {
44
+ ...clonedData[index],
45
+ amount: tokenAmount
46
+ };
47
+ return clonedData;
48
+ }
49
+ });
50
+ return {
51
+ ...tokenBalances[0],
52
+ amount: tokenAmount
53
+ };
54
+ },
55
+ enabled: Boolean(accountAddress && token),
56
+ refetchInterval: defaultRefetchInterval,
57
+ staleTime: defaultRefetchInterval
58
+ });
59
+ return {
60
+ token: data,
61
+ isLoading,
62
+ refetch,
63
+ refetchNewBalance: useCallback(() => {
64
+ queryClient.setQueryDefaults(tokenBalanceQueryKey, {
65
+ refetchInterval: 250,
66
+ staleTime: 250
67
+ });
68
+ }, [queryClient, tokenBalanceQueryKey]),
69
+ getTokenBalancesWithRetry
70
+ };
71
+ };
72
+ const getTokenBalancesWithRetry = async (sdkClient, accountAddress, tokens, depth = 0) => {
73
+ try {
74
+ const tokenBalances = await getTokenBalances(sdkClient, accountAddress, tokens);
75
+ if (!tokenBalances.every((token) => token.blockNumber)) {
76
+ if (depth > 10) {
77
+ console.warn("Token balance backoff depth exceeded.");
78
+ return;
79
+ }
80
+ await new Promise((resolve) => {
81
+ setTimeout(resolve, 1.5 ** depth * 100);
82
+ });
83
+ return getTokenBalancesWithRetry(sdkClient, accountAddress, tokens, depth + 1);
84
+ }
85
+ return tokenBalances;
86
+ } catch (_error) {
87
+ console.warn(_error);
88
+ }
89
+ };
90
+ //#endregion
91
+ export { getTokenBalancesWithRetry, useTokenBalance };
92
+
93
+ //# sourceMappingURL=useTokenBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokenBalance.js","names":[],"sources":["../../../src/hooks/useTokenBalance.ts"],"sourcesContent":["import {\n getTokenBalances,\n type SDKClient,\n type Token,\n type TokenAmount,\n} from '@lifi/sdk'\nimport { useQuery, useQueryClient } from '@tanstack/react-query'\nimport { useCallback, useMemo } from 'react'\nimport { useSDKClient } from '../providers/SDKClientProvider.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport { getQueryKey } from '../utils/queries.js'\n\nconst defaultRefetchInterval = 30_000\n\nexport const useTokenBalance = (\n accountAddress?: string,\n token?: Token\n): {\n token: TokenAmount | undefined\n isLoading: boolean\n refetch: () => void\n refetchNewBalance: () => void\n getTokenBalancesWithRetry: typeof getTokenBalancesWithRetry\n} => {\n const queryClient = useQueryClient()\n const { keyPrefix } = useWidgetConfig()\n const sdkClient = useSDKClient()\n\n const tokenBalanceQueryKey = useMemo(\n () =>\n [\n getQueryKey('token-balance', keyPrefix),\n accountAddress,\n token?.chainId,\n token?.address,\n ] as const,\n [token?.address, token?.chainId, accountAddress, keyPrefix]\n )\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: tokenBalanceQueryKey,\n queryFn: async ({\n queryKey: [, accountAddress, tokenChainId, tokenAddress],\n }) => {\n const tokenBalances = await getTokenBalancesWithRetry(\n sdkClient,\n accountAddress as string,\n [token!]\n )\n\n if (!tokenBalances?.length) {\n throw new Error('Could not get tokens balance.')\n }\n\n const cachedTokenAmount =\n queryClient.getQueryData<TokenAmount>(tokenBalanceQueryKey)\n\n const tokenAmount = tokenBalances[0].amount\n\n if (cachedTokenAmount?.amount !== tokenAmount) {\n queryClient.setQueryDefaults(tokenBalanceQueryKey, {\n refetchInterval: defaultRefetchInterval,\n staleTime: defaultRefetchInterval,\n })\n }\n\n queryClient.setQueriesData<TokenAmount[]>(\n {\n queryKey: [\n getQueryKey('token-balances', keyPrefix),\n accountAddress,\n tokenChainId,\n ],\n },\n (data) => {\n if (data) {\n const clonedData = [...data]\n const index = clonedData.findIndex(\n (dataToken) => dataToken.address === tokenAddress\n )\n clonedData[index] = {\n ...clonedData[index],\n amount: tokenAmount,\n }\n return clonedData\n }\n }\n )\n\n return {\n ...tokenBalances[0],\n amount: tokenAmount,\n } as TokenAmount\n },\n\n enabled: Boolean(accountAddress && token),\n refetchInterval: defaultRefetchInterval,\n staleTime: defaultRefetchInterval,\n })\n\n const refetchNewBalance = useCallback(() => {\n queryClient.setQueryDefaults(tokenBalanceQueryKey, {\n refetchInterval: 250,\n staleTime: 250,\n })\n }, [queryClient, tokenBalanceQueryKey])\n\n return {\n token: data,\n isLoading,\n refetch,\n refetchNewBalance,\n getTokenBalancesWithRetry,\n }\n}\n\nexport const getTokenBalancesWithRetry = async (\n sdkClient: SDKClient,\n accountAddress: string,\n tokens: Token[],\n depth = 0\n): Promise<TokenAmount[] | undefined> => {\n try {\n const tokenBalances = await getTokenBalances(\n sdkClient,\n accountAddress as string,\n tokens\n )\n if (!tokenBalances.every((token) => token.blockNumber)) {\n if (depth > 10) {\n console.warn('Token balance backoff depth exceeded.')\n return undefined\n }\n await new Promise((resolve) => {\n setTimeout(resolve, 1.5 ** depth * 100)\n })\n return getTokenBalancesWithRetry(\n sdkClient,\n accountAddress,\n tokens,\n depth + 1\n )\n }\n return tokenBalances\n } catch (_error) {\n console.warn(_error)\n }\n}\n"],"mappings":";;;;;;;AAYA,MAAM,yBAAyB;AAE/B,MAAa,mBACX,gBACA,UAOG;CACH,MAAM,cAAc,eAAe;CACnC,MAAM,EAAE,cAAc,gBAAgB;CACtC,MAAM,YAAY,aAAa;CAE/B,MAAM,uBAAuB,cAEzB;EACE,YAAY,iBAAiB,SAAS;EACtC;EACA,OAAO;EACP,OAAO;CACT,GACF;EAAC,OAAO;EAAS,OAAO;EAAS;EAAgB;CAAS,CAC5D;CAEA,MAAM,EAAE,MAAM,WAAW,YAAY,SAAS;EAC5C,UAAU;EACV,SAAS,OAAO,EACd,UAAU,GAAG,gBAAgB,cAAc,oBACvC;GACJ,MAAM,gBAAgB,MAAM,0BAC1B,WACA,gBACA,CAAC,KAAM,CACT;GAEA,IAAI,CAAC,eAAe,QAClB,MAAM,IAAI,MAAM,+BAA+B;GAGjD,MAAM,oBACJ,YAAY,aAA0B,oBAAoB;GAE5D,MAAM,cAAc,cAAc,GAAG;GAErC,IAAI,mBAAmB,WAAW,aAChC,YAAY,iBAAiB,sBAAsB;IACjD,iBAAiB;IACjB,WAAW;GACb,CAAC;GAGH,YAAY,eACV,EACE,UAAU;IACR,YAAY,kBAAkB,SAAS;IACvC;IACA;GACF,EACF,IACC,SAAS;IACR,IAAI,MAAM;KACR,MAAM,aAAa,CAAC,GAAG,IAAI;KAC3B,MAAM,QAAQ,WAAW,WACtB,cAAc,UAAU,YAAY,YACvC;KACA,WAAW,SAAS;MAClB,GAAG,WAAW;MACd,QAAQ;KACV;KACA,OAAO;IACT;GACF,CACF;GAEA,OAAO;IACL,GAAG,cAAc;IACjB,QAAQ;GACV;EACF;EAEA,SAAS,QAAQ,kBAAkB,KAAK;EACxC,iBAAiB;EACjB,WAAW;CACb,CAAC;CASD,OAAO;EACL,OAAO;EACP;EACA;EACA,mBAXwB,kBAAkB;GAC1C,YAAY,iBAAiB,sBAAsB;IACjD,iBAAiB;IACjB,WAAW;GACb,CAAC;EACH,GAAG,CAAC,aAAa,oBAAoB,CAMnB;EAChB;CACF;AACF;AAEA,MAAa,4BAA4B,OACvC,WACA,gBACA,QACA,QAAQ,MAC+B;CACvC,IAAI;EACF,MAAM,gBAAgB,MAAM,iBAC1B,WACA,gBACA,MACF;EACA,IAAI,CAAC,cAAc,OAAO,UAAU,MAAM,WAAW,GAAG;GACtD,IAAI,QAAQ,IAAI;IACd,QAAQ,KAAK,uCAAuC;IACpD;GACF;GACA,MAAM,IAAI,SAAS,YAAY;IAC7B,WAAW,SAAS,OAAO,QAAQ,GAAG;GACxC,CAAC;GACD,OAAO,0BACL,WACA,gBACA,QACA,QAAQ,CACV;EACF;EACA,OAAO;CACT,SAAS,QAAQ;EACf,QAAQ,KAAK,MAAM;CACrB;AACF"}
@@ -0,0 +1,111 @@
1
+ import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
2
+ import { formatTokenPrice } from "../utils/format.js";
3
+ import { useSettings } from "../stores/settings/useSettings.js";
4
+ import { useTokens } from "./useTokens.js";
5
+ import { usePinnedTokensStore } from "../stores/pinnedTokens/PinnedTokensStore.js";
6
+ import { isSearchMatch, processTokenBalances } from "../utils/tokenList.js";
7
+ import { useAccountsBalancesData } from "./useAccountsBalancesData.js";
8
+ import { useTokenBalancesQueries } from "./useTokenBalancesQueries.js";
9
+ import { useMemo } from "react";
10
+ //#region src/hooks/useTokenBalances.ts
11
+ const useTokenBalances = (selectedChainId, formType, isAllNetworks, search) => {
12
+ const { hiddenUI } = useWidgetConfig();
13
+ const { allTokens, isLoading: isTokensLoading, isSearchLoading } = useTokens(formType, search, isAllNetworks ? void 0 : selectedChainId);
14
+ const { data: accountsWithAllTokens, isLoading: isAccountsLoading } = useAccountsBalancesData(selectedChainId, formType, isAllNetworks, allTokens);
15
+ const { data: allTokensWithBalances, isLoading: isBalanceQueriesLoading } = useTokenBalancesQueries(accountsWithAllTokens, Boolean(accountsWithAllTokens) && !isAccountsLoading);
16
+ const { tokens: configTokens } = useWidgetConfig();
17
+ const { smallBalanceThreshold } = useSettings(["smallBalanceThreshold"]);
18
+ const pinnedTokens = usePinnedTokensStore((state) => state.pinnedTokens);
19
+ const isBalanceLoading = (isBalanceQueriesLoading || isAccountsLoading) && !allTokensWithBalances?.length;
20
+ const isPinnedToken = useMemo(() => {
21
+ if (isAllNetworks) {
22
+ const allPinned = [];
23
+ Object.entries(pinnedTokens).forEach(([chainIdStr, addresses]) => {
24
+ const chainId = Number.parseInt(chainIdStr, 10);
25
+ addresses.forEach((address) => {
26
+ allPinned.push({
27
+ chainId,
28
+ tokenAddress: address
29
+ });
30
+ });
31
+ });
32
+ const pinnedSet = new Set(allPinned.map((p) => `${p.chainId}-${p.tokenAddress.toLowerCase()}`));
33
+ return (chainId, tokenAddress) => {
34
+ const key = `${chainId}-${tokenAddress.toLowerCase()}`;
35
+ return pinnedSet.has(key);
36
+ };
37
+ } else if (selectedChainId) {
38
+ const chainPinnedTokens = pinnedTokens[selectedChainId] || [];
39
+ const pinnedSet = new Set(chainPinnedTokens.map((addr) => addr.toLowerCase()));
40
+ return (chainId, tokenAddress) => {
41
+ return chainId === selectedChainId && pinnedSet.has(tokenAddress.toLowerCase());
42
+ };
43
+ }
44
+ }, [
45
+ isAllNetworks,
46
+ selectedChainId,
47
+ pinnedTokens
48
+ ]);
49
+ const displayedTokensList = useMemo(() => {
50
+ return (isAllNetworks ? Object.values(allTokens ?? {}).flat() : selectedChainId ? allTokens?.[selectedChainId] : void 0)?.filter((t) => isSearchMatch(t, search)) ?? [];
51
+ }, [
52
+ allTokens,
53
+ isAllNetworks,
54
+ selectedChainId,
55
+ search
56
+ ]);
57
+ const displayedTokensWithBalances = useMemo(() => {
58
+ const balancesByChain = isAllNetworks ? allTokensWithBalances : selectedChainId ? allTokensWithBalances?.filter((t) => t.chainId === selectedChainId) : void 0;
59
+ const displayedTokensSet = new Set(displayedTokensList?.map((t) => `${t.chainId}-${t.address.toLowerCase()}`) || []);
60
+ const hideSmallBalances = !!smallBalanceThreshold && !hiddenUI?.hideSmallBalances;
61
+ const threshold = hideSmallBalances ? Number.parseFloat(smallBalanceThreshold) : void 0;
62
+ if (!balancesByChain) return;
63
+ return balancesByChain.reduce((acc, token) => {
64
+ const tokenKey = `${token.chainId}-${token.address.toLowerCase()}`;
65
+ const isInDisplayedList = displayedTokensSet.has(tokenKey) && token.amount;
66
+ const matchesSearch = isSearchMatch(token, search);
67
+ if (!isInDisplayedList && !matchesSearch) return acc;
68
+ let processedToken = token;
69
+ if (hideSmallBalances && threshold !== void 0 && threshold >= 0 && token.amount) {
70
+ if (formatTokenPrice(token.amount, token.priceUSD, token.decimals) < threshold) processedToken = {
71
+ ...token,
72
+ amount: 0n
73
+ };
74
+ }
75
+ acc.push(processedToken);
76
+ return acc;
77
+ }, []);
78
+ }, [
79
+ allTokensWithBalances,
80
+ displayedTokensList,
81
+ search,
82
+ selectedChainId,
83
+ isAllNetworks,
84
+ smallBalanceThreshold,
85
+ hiddenUI
86
+ ]);
87
+ const { processedTokens, withCategories, withPinnedTokens } = useMemo(() => {
88
+ return processTokenBalances(isBalanceLoading, isAllNetworks || !!search, configTokens, selectedChainId, displayedTokensList, displayedTokensWithBalances, isPinnedToken);
89
+ }, [
90
+ isBalanceLoading,
91
+ isAllNetworks,
92
+ configTokens,
93
+ selectedChainId,
94
+ displayedTokensList,
95
+ displayedTokensWithBalances,
96
+ search,
97
+ isPinnedToken
98
+ ]);
99
+ return {
100
+ tokens: processedTokens ?? [],
101
+ withCategories,
102
+ withPinnedTokens,
103
+ isTokensLoading,
104
+ isSearchLoading,
105
+ isBalanceLoading
106
+ };
107
+ };
108
+ //#endregion
109
+ export { useTokenBalances };
110
+
111
+ //# sourceMappingURL=useTokenBalances.js.map