@velora-dex/widget 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/dist/_virtual/index.js +1 -1
  2. package/dist/components/ui/accordion.d.ts +3 -1
  3. package/dist/components/ui/accordion.d.ts.map +1 -1
  4. package/dist/components/ui/accordion.js +42 -27
  5. package/dist/components/ui/accordion.js.map +1 -1
  6. package/dist/components/ui/button.js.map +1 -1
  7. package/dist/components/ui/dialog.js.map +1 -1
  8. package/dist/components/ui/dropdown-menu.js.map +1 -1
  9. package/dist/components/ui/progress.js.map +1 -1
  10. package/dist/components/ui/sonner.js.map +1 -1
  11. package/dist/components/ui/tooltip.js.map +1 -1
  12. package/dist/components/web3/AccountButton.js.map +1 -1
  13. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  14. package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
  15. package/dist/components/web3/ConnectWallets/index.js +43 -35
  16. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  17. package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
  18. package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
  19. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  20. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
  21. package/dist/components/web3/providers.d.ts +3 -0
  22. package/dist/components/web3/providers.d.ts.map +1 -1
  23. package/dist/components/web3/providers.js +18 -3
  24. package/dist/components/web3/providers.js.map +1 -1
  25. package/dist/components/widget/AppHeader/Activities/Activities.js +4 -12
  26. package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -1
  27. package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
  28. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
  29. package/dist/components/widget/AppHeader/Activities/Drawers.js +33 -29
  30. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  31. package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
  32. package/dist/components/widget/AppHeader/Activities/hooks.js +193 -106
  33. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  34. package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
  35. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  36. package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -1
  37. package/dist/components/widget/AppHeader/TradeModeSwitcher.js +67 -42
  38. package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
  39. package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
  40. package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
  41. package/dist/components/widget/DexesList/DexItem.js.map +1 -1
  42. package/dist/components/widget/DexesList/DexesList.js +3 -14
  43. package/dist/components/widget/DexesList/DexesList.js.map +1 -1
  44. package/dist/components/widget/Dialog/DialogRoot.js.map +1 -1
  45. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +131 -115
  46. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
  47. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
  48. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
  49. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +211 -203
  50. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  51. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  52. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
  53. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
  54. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
  55. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
  56. package/dist/components/widget/Dialog/state/dialogAtom.js +24 -26
  57. package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
  58. package/dist/components/widget/Drawer/Overlay.js.map +1 -1
  59. package/dist/components/widget/Drawer/index.js.map +1 -1
  60. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  61. package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
  62. package/dist/components/widget/ImportToken/useImportTokenDrawer.js.map +1 -1
  63. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
  64. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  65. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +84 -66
  66. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
  67. package/dist/components/widget/LimitPriceInput/index.js.map +1 -1
  68. package/dist/components/widget/Line/Line.js.map +1 -1
  69. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
  70. package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
  71. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +28 -30
  72. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
  73. package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
  74. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
  75. package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
  76. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +1 -1
  77. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
  78. package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +1 -1
  79. package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
  80. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
  81. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
  82. package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
  83. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +10 -3
  84. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  85. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
  86. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts.map +1 -1
  87. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js +37 -39
  88. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  89. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  90. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
  91. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  92. package/dist/components/widget/SwapRate/SwapRate.js +75 -43
  93. package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
  94. package/dist/components/widget/Tabs/Tabs.js.map +1 -1
  95. package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
  96. package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
  97. package/dist/components/widget/TokenInput/EmptyInput.d.ts +1 -1
  98. package/dist/components/widget/TokenInput/EmptyInput.d.ts.map +1 -1
  99. package/dist/components/widget/TokenInput/EmptyInput.js +16 -14
  100. package/dist/components/widget/TokenInput/EmptyInput.js.map +1 -1
  101. package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
  102. package/dist/components/widget/TokenInput/index.js +92 -91
  103. package/dist/components/widget/TokenInput/index.js.map +1 -1
  104. package/dist/components/widget/TokenSwitcher/TokenSwitcher.d.ts.map +1 -1
  105. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js +34 -31
  106. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
  107. package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
  108. package/dist/components/widget/TradeOverview/Stepper.js +23 -38
  109. package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
  110. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
  111. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +36 -27
  112. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
  113. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +79 -36
  114. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
  115. package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
  116. package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -0
  117. package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
  118. package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
  119. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
  120. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  121. package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
  122. package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
  123. package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
  124. package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
  125. package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
  126. package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -1
  127. package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
  128. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
  129. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
  130. package/dist/components/widget/TransactionDetails/TransactionListItem.js +57 -38
  131. package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
  132. package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
  133. package/dist/components/widget/Warning/Warning.js.map +1 -1
  134. package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
  135. package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
  136. package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
  137. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +72 -90
  138. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
  139. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  140. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +141 -84
  141. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  142. package/dist/components/widget/YouGet/YouGet.js.map +1 -1
  143. package/dist/configurator/Configurator.d.ts.map +1 -1
  144. package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts +5 -0
  145. package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts.map +1 -0
  146. package/dist/configurator/components/CrossChainSwitcher.d.ts +5 -0
  147. package/dist/configurator/components/CrossChainSwitcher.d.ts.map +1 -0
  148. package/dist/configurator/components/DeltaSwitcher.d.ts +5 -0
  149. package/dist/configurator/components/DeltaSwitcher.d.ts.map +1 -0
  150. package/dist/configurator/components/DevTools.d.ts +7 -0
  151. package/dist/configurator/components/DevTools.d.ts.map +1 -0
  152. package/dist/configurator/components/EnabledChainsSelector.d.ts +8 -0
  153. package/dist/configurator/components/EnabledChainsSelector.d.ts.map +1 -0
  154. package/dist/configurator/components/FormPropsInputs.d.ts +6 -0
  155. package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -0
  156. package/dist/configurator/components/PanelHeader.d.ts +6 -0
  157. package/dist/configurator/components/PanelHeader.d.ts.map +1 -0
  158. package/dist/configurator/components/PartnerInput.d.ts +5 -0
  159. package/dist/configurator/components/PartnerInput.d.ts.map +1 -0
  160. package/dist/configurator/components/PrivyInputs.d.ts +7 -0
  161. package/dist/configurator/components/PrivyInputs.d.ts.map +1 -0
  162. package/dist/configurator/components/ThemeSwitcher.d.ts +6 -0
  163. package/dist/configurator/components/ThemeSwitcher.d.ts.map +1 -0
  164. package/dist/configurator/components/TokenListsInput.d.ts +5 -0
  165. package/dist/configurator/components/TokenListsInput.d.ts.map +1 -0
  166. package/dist/configurator/components/TradeModesSelector.d.ts +7 -0
  167. package/dist/configurator/components/TradeModesSelector.d.ts.map +1 -0
  168. package/dist/configurator/components/WidgetModeSwitcher.d.ts +5 -0
  169. package/dist/configurator/components/WidgetModeSwitcher.d.ts.map +1 -0
  170. package/dist/configurator/components/common/DetailWithTooltip.d.ts +3 -0
  171. package/dist/configurator/components/common/DetailWithTooltip.d.ts.map +1 -0
  172. package/dist/configurator/components/common/Input.d.ts +8 -0
  173. package/dist/configurator/components/common/Input.d.ts.map +1 -0
  174. package/dist/configurator/components/common/Switch.d.ts +12 -0
  175. package/dist/configurator/components/common/Switch.d.ts.map +1 -0
  176. package/dist/configurator/state/themeAtom.d.ts +3 -0
  177. package/dist/configurator/state/themeAtom.d.ts.map +1 -0
  178. package/dist/core/ConnectWalletDrawerButton.js +53 -66
  179. package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
  180. package/dist/core/LimitOrderButton.js.map +1 -1
  181. package/dist/core/LimitOrderDetails.js.map +1 -1
  182. package/dist/core/OtcOrderButton.d.ts.map +1 -1
  183. package/dist/core/OtcOrderButton.js +4 -1
  184. package/dist/core/OtcOrderButton.js.map +1 -1
  185. package/dist/core/OtcOrderDetails.js.map +1 -1
  186. package/dist/core/Toaster.js.map +1 -1
  187. package/dist/core/TradeFlowButton.d.ts.map +1 -1
  188. package/dist/core/TradeFlowButton.js +414 -621
  189. package/dist/core/TradeFlowButton.js.map +1 -1
  190. package/dist/core/Updaters.d.ts.map +1 -1
  191. package/dist/core/Updaters.js +9 -5
  192. package/dist/core/Updaters.js.map +1 -1
  193. package/dist/core/Warnings.js.map +1 -1
  194. package/dist/core/across/utils.d.ts.map +1 -1
  195. package/dist/core/across/utils.js +4 -4
  196. package/dist/core/across/utils.js.map +1 -1
  197. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  198. package/dist/core/constants.d.ts +5 -0
  199. package/dist/core/constants.d.ts.map +1 -1
  200. package/dist/core/constants.js +11 -1
  201. package/dist/core/constants.js.map +1 -1
  202. package/dist/core/index.d.ts.map +1 -1
  203. package/dist/core/index.js +191 -120
  204. package/dist/core/index.js.map +1 -1
  205. package/dist/core/inputs/hooks/types.d.ts +1 -1
  206. package/dist/core/inputs/hooks/types.d.ts.map +1 -1
  207. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  208. package/dist/core/inputs/hooks/useTokenFromInputProps.js +119 -97
  209. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  210. package/dist/core/inputs/hooks/useTokenSwitcherProps.d.ts.map +1 -1
  211. package/dist/core/inputs/hooks/useTokenSwitcherProps.js +17 -7
  212. package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
  213. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  214. package/dist/core/inputs/hooks/useTokenToInputProps.js +84 -105
  215. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  216. package/dist/core/inputs/state/common.js.map +1 -1
  217. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts +1 -1
  218. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  219. package/dist/core/inputs/state/selectedTokenActionsAtom.js +58 -28
  220. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  221. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  222. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  223. package/dist/core/inputs/state/setTokenByAddressAtom.js +10 -9
  224. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  225. package/dist/core/inputs/state/subscriptions.d.ts.map +1 -1
  226. package/dist/core/inputs/state/subscriptions.js +2 -1
  227. package/dist/core/inputs/state/subscriptions.js.map +1 -1
  228. package/dist/core/limit/state/deadlineAtom.js.map +1 -1
  229. package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
  230. package/dist/core/limit/state/selectedTokenActionsAtom.js +3 -3
  231. package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
  232. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  233. package/dist/core/limit/useLimitDetailsListProps.js.map +1 -1
  234. package/dist/core/limit/useLimitNotSupported.js +12 -1
  235. package/dist/core/limit/useLimitNotSupported.js.map +1 -1
  236. package/dist/core/limit/useLimitPriceDifference.js.map +1 -1
  237. package/dist/core/limit/useLimitPriceInputProps.js.map +1 -1
  238. package/dist/core/limit/useLimitRate.js.map +1 -1
  239. package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
  240. package/dist/core/limit/useLimitTokenFromInputProps.js +104 -94
  241. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  242. package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
  243. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  244. package/dist/core/limit/useLimitTokenToInputProps.js +9 -20
  245. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  246. package/dist/core/logger.js +12 -14
  247. package/dist/core/logger.js.map +1 -1
  248. package/dist/core/otc/state/deadlineAtom.js.map +1 -1
  249. package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
  250. package/dist/core/otc/state/selectedTokenActionsAtom.d.ts.map +1 -1
  251. package/dist/core/otc/state/selectedTokenActionsAtom.js +3 -3
  252. package/dist/core/otc/state/selectedTokenActionsAtom.js.map +1 -1
  253. package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
  254. package/dist/core/otc/useOtcDetailsListProps.js.map +1 -1
  255. package/dist/core/otc/useOtcNotSupported.js +12 -1
  256. package/dist/core/otc/useOtcNotSupported.js.map +1 -1
  257. package/dist/core/otc/useOtcPriceDifference.js.map +1 -1
  258. package/dist/core/otc/useOtcPriceInputProps.js.map +1 -1
  259. package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
  260. package/dist/core/otc/useOtcTokenFromInputProps.js +104 -94
  261. package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
  262. package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
  263. package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -1
  264. package/dist/core/otc/useOtcTokenToInputProps.js +9 -20
  265. package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
  266. package/dist/core/state/chainToAtom.js.map +1 -1
  267. package/dist/core/state/configActionsAtom.d.ts +5 -2
  268. package/dist/core/state/configActionsAtom.d.ts.map +1 -1
  269. package/dist/core/state/configActionsAtom.js +24 -12
  270. package/dist/core/state/configActionsAtom.js.map +1 -1
  271. package/dist/core/state/configAtom.d.ts +32 -10
  272. package/dist/core/state/configAtom.d.ts.map +1 -1
  273. package/dist/core/state/configAtom.js +16 -8
  274. package/dist/core/state/configAtom.js.map +1 -1
  275. package/dist/core/state/configEffectAtom.d.ts +5 -0
  276. package/dist/core/state/configEffectAtom.d.ts.map +1 -0
  277. package/dist/core/state/configEffectAtom.js +56 -0
  278. package/dist/core/state/configEffectAtom.js.map +1 -0
  279. package/dist/core/state/containerAtom.js.map +1 -1
  280. package/dist/core/state/enabledChainsAtom.d.ts +10 -0
  281. package/dist/core/state/enabledChainsAtom.d.ts.map +1 -0
  282. package/dist/core/state/enabledChainsAtom.js +101 -0
  283. package/dist/core/state/enabledChainsAtom.js.map +1 -0
  284. package/dist/core/state/enabledTradeModesAtom.d.ts +3 -0
  285. package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -0
  286. package/dist/core/state/enabledTradeModesAtom.js +31 -0
  287. package/dist/core/state/enabledTradeModesAtom.js.map +1 -0
  288. package/dist/core/state/externalProviderAtom.js.map +1 -1
  289. package/dist/core/state/isCrosschainAtom.js.map +1 -1
  290. package/dist/core/state/tradeModeAtom.d.ts +2 -1
  291. package/dist/core/state/tradeModeAtom.d.ts.map +1 -1
  292. package/dist/core/state/tradeModeAtom.js +9 -2
  293. package/dist/core/state/tradeModeAtom.js.map +1 -1
  294. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  295. package/dist/core/subscriptions.d.ts.map +1 -1
  296. package/dist/core/subscriptions.js +0 -2
  297. package/dist/core/subscriptions.js.map +1 -1
  298. package/dist/core/swapDetails/useSwapDetailsListProps.js +34 -36
  299. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  300. package/dist/core/types.d.ts +12 -0
  301. package/dist/core/types.d.ts.map +1 -1
  302. package/dist/events/hooks/useActivateEffects.js.map +1 -1
  303. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  304. package/dist/events/types/approve.d.ts +22 -6
  305. package/dist/events/types/approve.d.ts.map +1 -1
  306. package/dist/external/.pnpm/react-compiler-runtime@1.0.0_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +1 -0
  307. package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
  308. package/dist/hooks/batch/useAwaitCalls.js +20 -16
  309. package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
  310. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  311. package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
  312. package/dist/hooks/connectors/useIsConnectedSafe.js +10 -18
  313. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  314. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  315. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +4 -15
  316. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  317. package/dist/hooks/gas/useGasPrices.js.map +1 -1
  318. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
  319. package/dist/hooks/getCode/useIsContractAtAddress.js +30 -46
  320. package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
  321. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
  322. package/dist/hooks/otc/mutations/useCancelLimitOrder.js +21 -12
  323. package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
  324. package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
  325. package/dist/hooks/otc/mutations/useCreateLimitOrder.js +22 -12
  326. package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
  327. package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
  328. package/dist/hooks/otc/mutations/useFillOrder.js +13 -32
  329. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  330. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts +22 -3
  331. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts.map +1 -1
  332. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +39 -2
  333. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
  334. package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
  335. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
  336. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +2 -3
  337. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  338. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
  339. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +7 -4
  340. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
  341. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +46 -4
  342. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  343. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
  344. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +38 -36
  345. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
  346. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
  347. package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
  348. package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
  349. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
  350. package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
  351. package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
  352. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
  353. package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
  354. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
  355. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +39 -31
  356. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  357. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +7 -15
  358. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
  359. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
  360. package/dist/hooks/sdk/useGetContracts.js.map +1 -1
  361. package/dist/hooks/sdk/useSpender.js.map +1 -1
  362. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -1
  363. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
  364. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js +23 -13
  365. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
  366. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +3 -2
  367. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  368. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +41 -10
  369. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  370. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +25 -0
  371. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -0
  372. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +88 -0
  373. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -0
  374. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +16 -0
  375. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -0
  376. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +83 -0
  377. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -0
  378. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  379. package/dist/hooks/swap/prices/delta/orders/utils.js +3 -2
  380. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  381. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +5 -2
  382. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +1 -1
  383. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +19 -2
  384. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
  385. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts +22 -3
  386. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
  387. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +39 -2
  388. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
  389. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  390. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  391. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
  392. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  393. package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
  394. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
  395. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  396. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts +9 -0
  397. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts.map +1 -1
  398. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js +49 -2
  399. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
  400. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  401. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  402. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  403. package/dist/hooks/swap/tradeFlow/common/types.d.ts +17 -0
  404. package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
  405. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +3 -1
  406. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  407. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +164 -140
  408. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  409. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
  410. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts +46 -0
  411. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts.map +1 -0
  412. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js +328 -0
  413. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js.map +1 -0
  414. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts.map +1 -1
  415. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js +16 -14
  416. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
  417. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +74 -0
  418. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -0
  419. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +274 -0
  420. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -0
  421. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts +15 -0
  422. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts.map +1 -0
  423. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js +88 -0
  424. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -0
  425. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
  426. package/dist/hooks/swap/tradeFlow/common/utils.d.ts +1 -0
  427. package/dist/hooks/swap/tradeFlow/common/utils.d.ts.map +1 -1
  428. package/dist/hooks/swap/tradeFlow/common/utils.js +16 -1
  429. package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
  430. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +28 -23
  431. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  432. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +59 -17
  433. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  434. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  435. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +4 -3
  436. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  437. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +61 -15
  438. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  439. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
  440. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -18
  441. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  442. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  443. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  444. package/dist/hooks/tokens/allowance/useTokenAllowance.js +25 -15
  445. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  446. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +8 -10
  447. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
  448. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
  449. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  450. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +20 -37
  451. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
  452. package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
  453. package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts.map +1 -1
  454. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +43 -49
  455. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
  456. package/dist/hooks/tokens/data/useFetchTokens.js.map +1 -1
  457. package/dist/hooks/tokens/data/useMultichainTokensData.js.map +1 -1
  458. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js +21 -25
  459. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
  460. package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
  461. package/dist/hooks/tokens/useAllTokensWithFilter.js +121 -49
  462. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  463. package/dist/hooks/tokens/useNativeToken.js +1 -1
  464. package/dist/hooks/tokens/useNativeToken.js.map +1 -1
  465. package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
  466. package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
  467. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  468. package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
  469. package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
  470. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  471. package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
  472. package/dist/hooks/txs/queries/useAwaitTx.js +11 -7
  473. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  474. package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
  475. package/dist/hooks/useAvailableCrosses.d.ts +3 -2
  476. package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
  477. package/dist/hooks/useAvailableCrosses.js +23 -20
  478. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  479. package/dist/hooks/useBridgeInfo.js.map +1 -1
  480. package/dist/hooks/useCurrentChain.js.map +1 -1
  481. package/dist/hooks/useDebouncedInputState.js.map +1 -1
  482. package/dist/hooks/useEIP1559Enabled.js.map +1 -1
  483. package/dist/hooks/useGlobalDeltaEnabled.d.ts +1 -0
  484. package/dist/hooks/useGlobalDeltaEnabled.d.ts.map +1 -1
  485. package/dist/hooks/useGlobalDeltaEnabled.js +22 -17
  486. package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
  487. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  488. package/dist/hooks/useMinViemClient.js.map +1 -1
  489. package/dist/hooks/useSDK.d.ts +3 -2
  490. package/dist/hooks/useSDK.d.ts.map +1 -1
  491. package/dist/hooks/useSDK.js +37 -8
  492. package/dist/hooks/useSDK.js.map +1 -1
  493. package/dist/hooks/useSelectableDestChains.d.ts +14 -0
  494. package/dist/hooks/useSelectableDestChains.d.ts.map +1 -0
  495. package/dist/hooks/useSelectableDestChains.js +91 -0
  496. package/dist/hooks/useSelectableDestChains.js.map +1 -0
  497. package/dist/hooks/useSlippage.js.map +1 -1
  498. package/dist/index.d.ts +2 -0
  499. package/dist/index.d.ts.map +1 -1
  500. package/dist/index.js +1 -0
  501. package/dist/index.js.map +1 -1
  502. package/dist/lib/constants/delta.js +1 -1
  503. package/dist/lib/constants/delta.js.map +1 -1
  504. package/dist/lib/constants/index.js +1 -1
  505. package/dist/lib/constants/index.js.map +1 -1
  506. package/dist/lib/tradeMode.d.ts +4 -0
  507. package/dist/lib/tradeMode.d.ts.map +1 -0
  508. package/dist/lib/tradeMode.js +8 -0
  509. package/dist/lib/tradeMode.js.map +1 -0
  510. package/dist/lib/utils/approval.js.map +1 -1
  511. package/dist/lib/utils/atomWithCompare.d.ts +2 -0
  512. package/dist/lib/utils/atomWithCompare.d.ts.map +1 -0
  513. package/dist/lib/utils/atomWithCompare.js +13 -0
  514. package/dist/lib/utils/atomWithCompare.js.map +1 -0
  515. package/dist/lib/utils/index.d.ts +2 -0
  516. package/dist/lib/utils/index.d.ts.map +1 -1
  517. package/dist/lib/utils/index.js +17 -1
  518. package/dist/lib/utils/index.js.map +1 -1
  519. package/dist/lib/utils/theme.d.ts +2 -0
  520. package/dist/lib/utils/theme.d.ts.map +1 -0
  521. package/dist/lib/utils/theme.js +10 -0
  522. package/dist/lib/utils/theme.js.map +1 -0
  523. package/dist/lib/web3/privy/config.js +1 -1
  524. package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
  525. package/dist/lib/web3/wagmi/config.js +3 -2
  526. package/dist/lib/web3/wagmi/config.js.map +1 -1
  527. package/dist/lib/web3/wagmi/constants.d.ts +2 -1
  528. package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
  529. package/dist/lib/web3/wagmi/constants.js.map +1 -1
  530. package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
  531. package/dist/lib/web3/wagmi/switchChain.d.ts +1169 -0
  532. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -0
  533. package/dist/lib/web3/wagmi/switchChain.js +23 -0
  534. package/dist/lib/web3/wagmi/switchChain.js.map +1 -0
  535. package/dist/lib/web3/wagmi/types.d.ts +2 -2
  536. package/dist/lib/web3/wagmi/types.d.ts.map +1 -1
  537. package/dist/styles.css +83 -39
  538. package/dist/tokens/hooks.js.map +1 -1
  539. package/dist/tokens/lists/constants.d.ts +1 -0
  540. package/dist/tokens/lists/constants.d.ts.map +1 -1
  541. package/dist/tokens/lists/constants.js +6 -2
  542. package/dist/tokens/lists/constants.js.map +1 -1
  543. package/dist/tokens/lists/lists.json.d.ts +23 -44
  544. package/dist/tokens/lists/lists.json.js +354 -1
  545. package/dist/tokens/lists/lists.json.js.map +1 -1
  546. package/dist/tokens/lists/state/effects.d.ts +2 -0
  547. package/dist/tokens/lists/state/effects.d.ts.map +1 -0
  548. package/dist/tokens/lists/state/effects.js +25 -0
  549. package/dist/tokens/lists/state/effects.js.map +1 -0
  550. package/dist/tokens/lists/state/tokenListsActionsAtom.js +3 -3
  551. package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
  552. package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +16 -7
  553. package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
  554. package/dist/tokens/lists/state/tokenListsStateAtom.js +50 -5
  555. package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
  556. package/dist/tokens/lists/types.d.ts.map +1 -1
  557. package/dist/tokens/lists/utils.js +1 -1
  558. package/dist/tokens/queries.d.ts +4 -2
  559. package/dist/tokens/queries.d.ts.map +1 -1
  560. package/dist/tokens/queries.js +31 -25
  561. package/dist/tokens/queries.js.map +1 -1
  562. package/dist/tokens/stabeCoins/hooks.js +3 -5
  563. package/dist/tokens/stabeCoins/hooks.js.map +1 -1
  564. package/dist/tokens/state/fromListsAtom.js +4 -4
  565. package/dist/tokens/state/fromListsAtom.js.map +1 -1
  566. package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
  567. package/dist/transactions/queries/ensureCallsStatus.d.ts +1 -0
  568. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  569. package/dist/transactions/queries/ensureCallsStatus.js +7 -5
  570. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  571. package/dist/transactions/queries/ensureTxReceipt.d.ts +3 -2
  572. package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
  573. package/dist/transactions/queries/ensureTxReceipt.js +26 -6
  574. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  575. package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
  576. package/dist/transactions/state/hooks/useTransactions.d.ts +2 -0
  577. package/dist/transactions/state/hooks/useTransactions.d.ts.map +1 -1
  578. package/dist/transactions/state/hooks/useTransactions.js +59 -1
  579. package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
  580. package/dist/transactions/types.d.ts +21 -1
  581. package/dist/transactions/types.d.ts.map +1 -1
  582. package/package.json +6 -5
  583. package/dist/external/.pnpm/react-compiler-runtime@19.1.0-rc.2_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +0 -1
  584. package/dist/tokens/lists/hooks.d.ts +0 -2
  585. package/dist/tokens/lists/hooks.d.ts.map +0 -1
  586. package/dist/tokens/lists/hooks.js +0 -26
  587. package/dist/tokens/lists/hooks.js.map +0 -1
  588. package/dist/tokens/lists/state/observer.d.ts +0 -2
  589. package/dist/tokens/lists/state/observer.d.ts.map +0 -1
  590. package/dist/tokens/lists/state/observer.js +0 -18
  591. package/dist/tokens/lists/state/observer.js.map +0 -1
  592. /package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.1 → react-compiler-runtime@1.0.0_react@19.1.1}/external/react-compiler-runtime/dist/index.js +0 -0
@@ -1,30 +1,34 @@
1
1
  import { atom } from 'jotai';
2
- import { switchChain } from '@wagmi/core';
3
2
  import { swapTokenFromAtom, swapTokenToAtom } from './selectedTokenAtom.js';
4
3
  import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
5
4
  import { areTokensSame } from '../../../tokens/utils/areTokensSame.js';
6
5
  import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
7
- import { isAcrossAvailable, isTokenFromAcross, findFirstTokenFromAcross } from '../../across/utils.js';
6
+ import { isTokenFromAcross, findFirstTokenFromAcross, isAcrossAvailable } from '../../across/utils.js';
8
7
  import { deltaParamAtom } from '../../../components/widget/TradeParameters/state/deltaParamAtom.js';
9
8
  import { widgetConfigAtom } from '../../state/configAtom.js';
10
9
  import { setSwapModeAtom } from '../../../components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js';
11
10
  import { jotaiStore } from './store.js';
12
11
  import { tradeModeAtom } from '../../state/tradeModeAtom.js';
13
12
  import { allTokensByChainAtom } from '../../../tokens/state/allTokensByChainAtom.js';
13
+ import { deltaEnabledOnAPI } from '../../../lib/constants/delta.js';
14
+ import { enabledSrcChainsAtom } from '../../state/enabledChainsAtom.js';
15
+ import { switchChain } from '../../../lib/web3/wagmi/switchChain.js';
16
+ import { getSelectableDestChains } from '../../state/configEffectAtom.js';
14
17
 
15
- const switchSwapTokensAtom = atom(null, async (get, set) => {
18
+ const switchSwapTokensAtom = atom(null, (get, set) => {
16
19
  const tokenTo = get(swapTokenToAtom);
17
20
  if (!tokenTo) return;
21
+ const enabledSrcChains = get(enabledSrcChainsAtom);
22
+ if (!enabledSrcChains.includes(tokenTo.network)) return;
18
23
  const tokenFrom = get(swapTokenFromAtom);
19
24
  if (tokenFrom.network !== tokenTo.network) {
20
- await switchChain(wagmiConfig, {
25
+ switchChain({
21
26
  chainId: tokenTo.network
22
27
  });
23
28
  }
24
29
  set(swapTokenFromAtom, tokenTo);
25
- const deltaEnabledInSettings = get(deltaParamAtom);
26
- const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;
27
- const crosschainPossible = deltaEnabledInSettings && deltaEnabledInConfig && isAcrossAvailable({
30
+ const crosschainPossible = isCrosschainPossible({
31
+ get,
28
32
  // tokenTo is now is from position
29
33
  chainIdFrom: tokenTo.network,
30
34
  // considering tokenFrom in to position, is crosschain possible?
@@ -57,25 +61,25 @@ const switchSwapTokensAtom = atom(null, async (get, set) => {
57
61
  const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
58
62
  set(swapTokenToAtom, newTokenTo);
59
63
  } else {
60
- const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenTo : tokenFrom;
64
+ const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? tokenFrom : defaultTokenFrom;
61
65
  set(swapTokenToAtom, newTokenTo);
62
66
  }
63
67
  }
64
68
  });
65
69
  const selectSwapTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
70
+ const enabledSrcChains = get(enabledSrcChainsAtom);
71
+ if (!enabledSrcChains.includes(newTokenFrom.network)) return;
66
72
  const tokenFrom = get(swapTokenFromAtom);
67
73
  const tokenTo = get(swapTokenToAtom);
68
74
  if (newTokenFrom.network !== wagmiConfig.state.chainId) {
69
- await switchChain(wagmiConfig, {
75
+ switchChain({
70
76
  chainId: newTokenFrom.network
71
77
  });
72
78
  }
73
79
  set(swapTokenFromAtom, newTokenFrom);
74
80
  if (!tokenTo) return;
75
- const tradeMode = get(tradeModeAtom);
76
- const deltaEnabledInSettings = get(deltaParamAtom);
77
- const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;
78
- const crosschainPossible = tradeMode === "swap" && deltaEnabledInSettings && deltaEnabledInConfig && isAcrossAvailable({
81
+ const crosschainPossible = isCrosschainPossible({
82
+ get,
79
83
  chainIdFrom: newTokenFrom.network,
80
84
  chainIdTo: tokenTo.network
81
85
  });
@@ -106,8 +110,10 @@ const selectSwapTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
106
110
  }
107
111
  });
108
112
  const selectSwapTokenToAtom = atom(null, async (get, set, newTokenTo) => {
109
- const newTokenToNetwork = newTokenTo.network;
110
113
  let tokenFrom = get(swapTokenFromAtom);
114
+ const selectableDestChains = getSelectableDestChains(get, tokenFrom.network);
115
+ if (!selectableDestChains.includes(newTokenTo.network)) return;
116
+ const newTokenToNetwork = newTokenTo.network;
111
117
  let tokenTo = get(swapTokenToAtom);
112
118
  if (areTokensSame(newTokenTo, tokenFrom)) {
113
119
  const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(newTokenToNetwork, "swap");
@@ -128,10 +134,8 @@ const selectSwapTokenToAtom = atom(null, async (get, set, newTokenTo) => {
128
134
  set(swapTokenToAtom, newTokenTo);
129
135
  tokenTo = newTokenTo;
130
136
  let needResetTokenFrom = false;
131
- const tradeMode = get(tradeModeAtom);
132
- const deltaEnabledInSettings = get(deltaParamAtom);
133
- const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;
134
- const crosschainPossible = tradeMode === "swap" && deltaEnabledInSettings && deltaEnabledInConfig && isAcrossAvailable({
137
+ const crosschainPossible = isCrosschainPossible({
138
+ get,
135
139
  chainIdFrom: tokenFrom.network,
136
140
  chainIdTo: tokenTo.network
137
141
  });
@@ -148,7 +152,8 @@ const selectSwapTokenToAtom = atom(null, async (get, set, newTokenTo) => {
148
152
  if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {
149
153
  needResetTokenFrom = true;
150
154
  }
151
- if (needResetTokenFrom) {
155
+ const enabledSrcChains = get(enabledSrcChainsAtom);
156
+ if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {
152
157
  const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenTo.network, "swap");
153
158
  const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom) ? defaultTokenTo : defaultTokenFrom;
154
159
  set(swapTokenFromAtom, newTokenFrom);
@@ -158,12 +163,14 @@ const selectSwapTokenToAtom = atom(null, async (get, set, newTokenTo) => {
158
163
  set(setSwapModeAtom, "delta");
159
164
  }
160
165
  if (tokenFrom.network !== wagmiConfig.state.chainId) {
161
- switchChain(wagmiConfig, {
166
+ switchChain({
162
167
  chainId: tokenFrom.network
163
168
  });
164
169
  }
165
170
  });
166
171
  const syncSwapTokensAfterChainSwitch = (chainId) => {
172
+ const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);
173
+ if (!enabledSrcChains.includes(chainId)) return;
167
174
  const tokenFrom = jotaiStore.get(swapTokenFromAtom);
168
175
  if (tokenFrom.network === chainId) return;
169
176
  const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(chainId, "swap");
@@ -171,9 +178,8 @@ const syncSwapTokensAfterChainSwitch = (chainId) => {
171
178
  jotaiStore.set(swapTokenFromAtom, newTokenFrom);
172
179
  const tokenTo = jotaiStore.get(swapTokenToAtom);
173
180
  if (!tokenTo) return;
174
- const deltaEnabledInSettings = jotaiStore.get(deltaParamAtom);
175
- const deltaEnabledInConfig = jotaiStore.get(widgetConfigAtom).enableDelta;
176
- const crosschainPossible = deltaEnabledInSettings && deltaEnabledInConfig && isAcrossAvailable({
181
+ const crosschainPossible = isCrosschainPossible({
182
+ get: jotaiStore.get,
177
183
  chainIdFrom: chainId,
178
184
  chainIdTo: tokenTo.network
179
185
  });
@@ -193,15 +199,39 @@ const syncSwapTokensAfterChainSwitch = (chainId) => {
193
199
  }
194
200
  jotaiStore.set(setSwapModeAtom, "delta");
195
201
  } else {
196
- if (
197
- // if tokenFrom that we just set is the same as tokenTo,
198
- areTokensSame(newTokenFrom, tokenTo) || // or if chains are different,
199
- newTokenFrom.network !== tokenTo.network
200
- ) {
202
+ const selectableDestChains = getSelectableDestChains(jotaiStore.get, newTokenFrom.network);
203
+ if (selectableDestChains.includes(chainId)) {
201
204
  jotaiStore.set(swapTokenToAtom, defaultTokenTo);
205
+ } else {
206
+ jotaiStore.set(swapTokenToAtom, void 0);
202
207
  }
203
208
  }
204
209
  };
210
+ function isCrosschainPossible({
211
+ get,
212
+ chainIdFrom,
213
+ chainIdTo
214
+ }) {
215
+ if (!deltaEnabledOnAPI[chainIdFrom]) return false;
216
+ if (!isAcrossAvailable({
217
+ chainIdFrom,
218
+ chainIdTo
219
+ })) return false;
220
+ const tradeMode = get(tradeModeAtom);
221
+ if (tradeMode !== "swap") return false;
222
+ const deltaEnabledInSettings = get(deltaParamAtom);
223
+ if (!deltaEnabledInSettings) return false;
224
+ const {
225
+ enableDelta,
226
+ enableCrossChain
227
+ } = get(widgetConfigAtom);
228
+ if (!enableDelta || !enableCrossChain) return false;
229
+ const enabledSrcChains = get(enabledSrcChainsAtom);
230
+ if (!enabledSrcChains.includes(chainIdFrom)) return false;
231
+ const selectableDestChains = getSelectableDestChains(get, chainIdFrom);
232
+ if (!selectableDestChains.includes(chainIdTo)) return false;
233
+ return true;
234
+ }
205
235
 
206
236
  export { selectSwapTokenFromAtom, selectSwapTokenToAtom, switchSwapTokensAtom, syncSwapTokensAfterChainSwitch };
207
237
  //# sourceMappingURL=selectedTokenActionsAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { switchChain } from \"@wagmi/core\";\n\nimport { swapTokenFromAtom, swapTokenToAtom } from \"./selectedTokenAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport {\n findFirstTokenFromAcross,\n isAcrossAvailable,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\nimport { jotaiStore } from \"./store\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\n\nexport const switchSwapTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(swapTokenFromAtom);\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: tokenTo.network,\n });\n }\n\n // then set the tokenFrom\n set(swapTokenFromAtom, tokenTo);\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n // tokenTo is now is from position\n chainIdFrom: tokenTo.network,\n // considering tokenFrom in to position, is crosschain possible?\n chainIdTo: tokenFrom.network,\n });\n\n if (crosschainPossible) {\n const tokenFromIsFromAcross = isTokenFromAcross({\n // is the previous tokenFrom an Across token?\n token: tokenFrom,\n // considering tokenTo is now in from position\n fromChainId: tokenTo.network,\n // and tokenFrom will be in to position\n toChainId: tokenFrom.network,\n });\n\n if (tokenFromIsFromAcross && !areTokensSame(tokenFrom, tokenTo)) {\n // can use tokenFrom as tokenTo because it's an Across token\n set(swapTokenToAtom, tokenFrom);\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo\n const maybeAcrossToken = findFirstTokenFromAcross({\n // tokenTo is now in from position\n fromChainId: tokenTo.network,\n // considering tokenFrom will be in to position\n toChainId: tokenFrom.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n set(swapTokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"swap\"\n );\n\n if (tokenTo.network !== tokenFrom.network) {\n // if cross-chain, then we can't use tokenFrom as tokenTo, so pick from defaults\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(swapTokenToAtom, newTokenTo);\n } else {\n // otherwise, we set either tokenFrom or defaultTokenTo\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenTo\n : tokenFrom;\n\n set(swapTokenToAtom, newTokenTo);\n }\n }\n});\n\nexport const selectSwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const tokenFrom = get(swapTokenFromAtom);\n const tokenTo = get(swapTokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(swapTokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const tradeMode = get(tradeModeAtom);\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n tradeMode === \"swap\" &&\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: newTokenFrom.network,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n\n set(swapTokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network,\n \"swap\"\n );\n\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (newTokenFrom.network !== tokenTo.network) {\n const newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(swapTokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(swapTokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectSwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n const newTokenToNetwork = newTokenTo.network;\n\n let tokenFrom = get(swapTokenFromAtom);\n let tokenTo = get(swapTokenToAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenToNetwork,\n \"swap\"\n );\n\n const fromDefaults = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain = tokenTo && tokenFrom.network !== tokenTo?.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n fromDefaults\n : // Otherwise, we can flip the tokens, or pick from defaults\n (tokenTo ?? fromDefaults);\n\n set(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n set(swapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n // after switching we may have ended up with a crosschain pair,\n // but tokenTo may not be crossable depending on srcChainId;\n // this can easily happen if tokenTo was set from WidgetProps\n let needResetTokenFrom = false;\n\n const tradeMode = get(tradeModeAtom);\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n tradeMode === \"swap\" &&\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // tokenFrom -> tokenTo is crosschain, but tokenTo can't be destToken for that chain\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n // tokenFrom -> tokenTo is crosschain, but delta is explicitly disabled,\n needResetTokenFrom = true;\n }\n\n if (needResetTokenFrom) {\n // set the tokenFrom to default token from tokenTo.network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"swap\"\n );\n // make sure it's not the same as tokenTo\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== tokenTo.network) {\n // if delta is explicitly disabled, it won't be set\n set(setSwapModeAtom, \"delta\");\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n // try to switch wallet chain\n // @TODO check if this still tries to switch the wallet chain after disconnecting srcChainId from wallet chain\n // wagmiConfig.syncConnectedChain=false\n switchChain(wagmiConfig, {\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncSwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const tokenFrom = jotaiStore.get(swapTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"swap\"\n );\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(swapTokenFromAtom, newTokenFrom);\n\n const tokenTo = jotaiStore.get(swapTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = jotaiStore.get(deltaParamAtom);\n const deltaEnabledInConfig = jotaiStore.get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n });\n\n jotaiStore.set(swapTokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n if (\n // if tokenFrom that we just set is the same as tokenTo,\n areTokensSame(newTokenFrom, tokenTo) ||\n // or if chains are different,\n newTokenFrom.network !== tokenTo.network\n ) {\n // then set defaultTokenTo for the new chain\n jotaiStore.set(swapTokenToAtom, defaultTokenTo);\n }\n }\n};\n"],"names":["switchSwapTokensAtom","atom","get","set","tokenTo","swapTokenToAtom","tokenFrom","swapTokenFromAtom","network","switchChain","wagmiConfig","chainId","deltaEnabledInSettings","deltaParamAtom","deltaEnabledInConfig","widgetConfigAtom","enableDelta","crosschainPossible","isAcrossAvailable","chainIdFrom","chainIdTo","tokenFromIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectSwapTokenFromAtom","newTokenFrom","state","tradeMode","tradeModeAtom","isTokenToFromAcross","selectSwapTokenToAtom","newTokenToNetwork","fromDefaults","wasCrosschain","needResetTokenFrom","setSwapModeAtom","syncSwapTokensAfterChainSwitch","jotaiStore"],"mappings":"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"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom, type Getter } from \"jotai\";\n\nimport { swapTokenFromAtom, swapTokenToAtom } from \"./selectedTokenAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport {\n findFirstTokenFromAcross,\n isAcrossAvailable,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\nimport { jotaiStore } from \"./store\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { getSelectableDestChains } from \"@/core/state/configEffectAtom\";\n\nexport const switchSwapTokensAtom = atom(null, (get, set) => {\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) return;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(tokenTo.network)) return;\n\n const tokenFrom = get(swapTokenFromAtom);\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // switch chain first\n switchChain({\n chainId: tokenTo.network,\n });\n }\n\n // then set the tokenFrom\n set(swapTokenFromAtom, tokenTo);\n\n const crosschainPossible = isCrosschainPossible({\n get,\n // tokenTo is now is from position\n chainIdFrom: tokenTo.network,\n // considering tokenFrom in to position, is crosschain possible?\n chainIdTo: tokenFrom.network,\n });\n\n if (crosschainPossible) {\n const tokenFromIsFromAcross = isTokenFromAcross({\n // is the previous tokenFrom an Across token?\n token: tokenFrom,\n // considering tokenTo is now in from position\n fromChainId: tokenTo.network,\n // and tokenFrom will be in to position\n toChainId: tokenFrom.network,\n });\n\n if (tokenFromIsFromAcross && !areTokensSame(tokenFrom, tokenTo)) {\n // can use tokenFrom as tokenTo because it's an Across token\n set(swapTokenToAtom, tokenFrom);\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo\n const maybeAcrossToken = findFirstTokenFromAcross({\n // tokenTo is now in from position\n fromChainId: tokenTo.network,\n // considering tokenFrom will be in to position\n toChainId: tokenFrom.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n set(swapTokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"swap\"\n );\n\n if (tokenTo.network !== tokenFrom.network) {\n // if cross-chain, then we can't use tokenFrom as tokenTo, so pick from defaults\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(swapTokenToAtom, newTokenTo);\n } else {\n // otherwise, we set either current tokenFrom or defaultTokenFrom as tokenTo\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? tokenFrom\n : defaultTokenFrom;\n\n set(swapTokenToAtom, newTokenTo);\n }\n }\n});\n\nexport const selectSwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(newTokenFrom.network)) return;\n\n const tokenFrom = get(swapTokenFromAtom);\n const tokenTo = get(swapTokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // switch chain first\n switchChain({\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(swapTokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: newTokenFrom.network,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n\n set(swapTokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network,\n \"swap\"\n );\n\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (newTokenFrom.network !== tokenTo.network) {\n const newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(swapTokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(swapTokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectSwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(swapTokenFromAtom);\n\n const selectableDestChains = getSelectableDestChains(\n get,\n tokenFrom.network\n );\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n const newTokenToNetwork = newTokenTo.network;\n\n let tokenTo = get(swapTokenToAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenToNetwork,\n \"swap\"\n );\n\n const fromDefaults = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain = tokenTo && tokenFrom.network !== tokenTo?.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n fromDefaults\n : // Otherwise, we can flip the tokens, or pick from defaults\n (tokenTo ?? fromDefaults);\n\n set(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n set(swapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n // after switching we may have ended up with a crosschain pair,\n // but tokenTo may not be crossable depending on srcChainId;\n // this can easily happen if tokenTo was set from WidgetProps\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // tokenFrom -> tokenTo is crosschain, but tokenTo can't be destToken for that chain\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n // tokenFrom -> tokenTo is crosschain, but delta is explicitly disabled,\n needResetTokenFrom = true;\n }\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {\n // set the tokenFrom to default token from tokenTo.network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"swap\"\n );\n // make sure it's not the same as tokenTo\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== tokenTo.network) {\n // if delta is explicitly disabled, it won't be set\n set(setSwapModeAtom, \"delta\");\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n // request wallet chain switch (non-blocking)\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncSwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n const tokenFrom = jotaiStore.get(swapTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"swap\"\n );\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(swapTokenFromAtom, newTokenFrom);\n\n const tokenTo = jotaiStore.get(swapTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n });\n\n jotaiStore.set(swapTokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n const selectableDestChains = getSelectableDestChains(\n jotaiStore.get,\n newTokenFrom.network\n );\n if (selectableDestChains.includes(chainId)) {\n // can do single-chain on the new chain, set defaults\n jotaiStore.set(swapTokenToAtom, defaultTokenTo);\n } else {\n // avoid complexity and reset tokenTo\n jotaiStore.set(swapTokenToAtom, undefined);\n }\n }\n};\n\nfunction isCrosschainPossible({\n get,\n chainIdFrom,\n chainIdTo,\n}: {\n get: Getter;\n chainIdFrom: SupportedChainId;\n chainIdTo: SupportedChainId;\n}): boolean {\n if (!deltaEnabledOnAPI[chainIdFrom]) return false;\n\n if (!isAcrossAvailable({ chainIdFrom, chainIdTo })) return false;\n\n const tradeMode = get(tradeModeAtom);\n if (tradeMode !== \"swap\") return false;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n if (!deltaEnabledInSettings) return false;\n\n const { enableDelta, enableCrossChain } = get(widgetConfigAtom);\n if (!enableDelta || !enableCrossChain) return false;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainIdFrom)) return false;\n\n const selectableDestChains = getSelectableDestChains(get, chainIdFrom);\n if (!selectableDestChains.includes(chainIdTo)) return false;\n\n return true;\n}\n"],"names":["switchSwapTokensAtom","atom","get","set","tokenTo","swapTokenToAtom","enabledSrcChains","enabledSrcChainsAtom","includes","network","tokenFrom","swapTokenFromAtom","switchChain","chainId","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","tokenFromIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectSwapTokenFromAtom","newTokenFrom","wagmiConfig","state","isTokenToFromAcross","selectSwapTokenToAtom","selectableDestChains","getSelectableDestChains","newTokenToNetwork","fromDefaults","wasCrosschain","needResetTokenFrom","setSwapModeAtom","syncSwapTokensAfterChainSwitch","jotaiStore","undefined","deltaEnabledOnAPI","isAcrossAvailable","tradeMode","tradeModeAtom","deltaEnabledInSettings","deltaParamAtom","enableDelta","enableCrossChain","widgetConfigAtom"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { type Token } from \"@/tokens/state/types\";\nimport { atom, useAtomValue } from \"jotai\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"swap\"\n);\n\nexport const swapTokenFromAtom = atom(defaultTokenFrom);\nexport const swapTokenToAtom = atom<Token>();\n\nexport const useSwapTokenFrom = () => useAtomValue(swapTokenFromAtom);\nexport const useSwapTokenTo = () => useAtomValue(swapTokenToAtom);\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","swapTokenFromAtom","atom","swapTokenToAtom","useSwapTokenFrom","useAtomValue","useSwapTokenTo"],"mappings":";;;;AAKA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,MACF,CAAA;AAEO,MAAMC,iBAAAA,GAAoBC,KAAKN,gBAAgB;AAC/C,MAAMO,kBAAkBD,IAAAA;AAExB,MAAME,mBAAmBA,MAAA;AAAA,EAAA,OAAMC,aAAAJ,iBAA8B,CAAA;AAAC;AAC9D,MAAMK,iBAAiBA,MAAA;AAAA,EAAA,OAAMD,aAAAF,eAA4B,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { type Token } from \"@/tokens/state/types\";\nimport { atom, useAtomValue } from \"jotai\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"swap\"\n);\n\nexport const swapTokenFromAtom = atom(defaultTokenFrom);\nexport const swapTokenToAtom = atom<Token>();\n\nexport const useSwapTokenFrom = () => useAtomValue(swapTokenFromAtom);\nexport const useSwapTokenTo = () => useAtomValue(swapTokenToAtom);\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","swapTokenFromAtom","atom","swapTokenToAtom","useSwapTokenFrom","useAtomValue","useSwapTokenTo"],"mappings":";;;;AAKA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,MACF,CAAA;AAEO,MAAMC,iBAAAA,GAAoBC,KAAKN,gBAAgB;AAC/C,MAAMO,kBAAkBD,IAAAA;AAExB,MAAME,mBAAmBA,MAAA;AAAA,EAAA,OAAMC,aAAaJ,iBAAiB,CAAA;AAAC;AAC9D,MAAMK,iBAAiBA,MAAA;AAAA,EAAA,OAAMD,aAAaF,eAAe,CAAA;AAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"setTokenByAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAY/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAW3E,eAAO,MAAM,kBAAkB;;CAA2B,CAAC;AAwQ3D,wBAAgB,2BAA2B,SAE1C;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iGAAiG;IACjG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CAErB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,GACX,GAAE,cAAmB,QAuBrB"}
1
+ {"version":3,"file":"setTokenByAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAY/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAC;AAcpC,eAAO,MAAM,kBAAkB;;CAA2B,CAAC;AAoQ3D,wBAAgB,2BAA2B,SAE1C;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iGAAiG;IACjG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CAErB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,GACX,GAAE,cAAmB,QAuBrB"}
@@ -10,12 +10,15 @@ import { useLayoutEffect } from 'react';
10
10
  import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
11
11
  import { areTokensSame } from '../../../tokens/utils/areTokensSame.js';
12
12
  import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
13
- import { tradeModeAtom } from '../../state/tradeModeAtom.js';
13
+ import { tradeModeAtom, userTradeModeAtom } from '../../state/tradeModeAtom.js';
14
14
  import { tradeModeToTokenAtoms, tradeModeToSetTokenAtoms, tradeModeToPayAmountUnitAtom } from './common.js';
15
15
  import { wrappedNativeCurrency } from '../../../lib/constants/weth.js';
16
16
  import { autoAddImportedTokenAtom } from '../../../tokens/state/addImportedTokenAtom.js';
17
17
  import { getLogger } from '../../logger.js';
18
18
  import { assert } from 'ts-essentials';
19
+ import { bridgeInfoAtom } from '../../../hooks/swap/prices/delta/queries/useBridgeInfo.js';
20
+ import { isTradeMode } from '../../../lib/tradeMode.js';
21
+ import { enabledTradeModesAtom } from '../../state/enabledTradeModesAtom.js';
19
22
 
20
23
  const formInputPropsAtom = atom({});
21
24
  const logger = getLogger("FormInputProps");
@@ -55,11 +58,9 @@ function findTokenInAtoms({
55
58
  chainId
56
59
  });
57
60
  }
58
- const validTradeModes = ["swap", "limit", "otc"];
59
- function isTradeMode(mode) {
60
- return validTradeModes.includes(mode);
61
- }
62
61
  const formInputPropsEffectAtom = atomEffect((get, set) => {
62
+ get(bridgeInfoAtom);
63
+ const enabledTradeModes = get(enabledTradeModesAtom);
63
64
  const formInputProps = get(formInputPropsAtom);
64
65
  const {
65
66
  tokenFromAddress,
@@ -70,11 +71,11 @@ const formInputPropsEffectAtom = atomEffect((get, set) => {
70
71
  let destChainId = formInputProps.destChainId;
71
72
  let tokenToAddress = formInputProps.tokenToAddress;
72
73
  let selectedForm = formInputProps.selectedForm || "swap";
73
- if (!isTradeMode(selectedForm)) {
74
- logger.warn("invalid selectedForm provided", {
74
+ if (!isTradeMode(selectedForm) || !enabledTradeModes.includes(selectedForm)) {
75
+ logger.warn("invalid or disabled selectedForm provided", {
75
76
  selectedForm
76
77
  });
77
- selectedForm = "swap";
78
+ selectedForm = enabledTradeModes[0];
78
79
  }
79
80
  assert(isTradeMode(selectedForm), "selectedForm must be a valid trade mode");
80
81
  const formAtoms = tradeModeToTokenAtoms[selectedForm];
@@ -82,7 +83,7 @@ const formInputPropsEffectAtom = atomEffect((get, set) => {
82
83
  const currentTokenTo = get.peek(formAtoms.tokenToAtom);
83
84
  const currentTradeMode = get.peek(tradeModeAtom);
84
85
  if (currentTradeMode !== selectedForm) {
85
- set(tradeModeAtom, selectedForm);
86
+ set(userTradeModeAtom, selectedForm);
86
87
  }
87
88
  let newTokenFrom;
88
89
  let newTokenTo;
@@ -1 +1 @@
1
- {"version":3,"file":"setTokenByAddressAtom.js","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"sourcesContent":["import { atom, useAtom, useSetAtom, type Setter } from \"jotai\";\nimport { atomEffect, type Effect } from \"jotai-effect\";\nimport { isAddress, type Address } from \"viem\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { nativeTokensByChainId } from \"@/tokens/constructor\";\nimport { fromListsAtom } from \"@/tokens/state/fromListsAtom\";\nimport {\n autoImportedTokensAtom,\n importedTokensAtom,\n} from \"@/tokens/state/importedTokensAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useLayoutEffect } from \"react\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { tradeModeAtom, type TradeMode } from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToPayAmountUnitAtom,\n tradeModeToSetTokenAtoms,\n tradeModeToTokenAtoms,\n} from \"./common\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { autoAddImportedTokenAtom } from \"@/tokens/state/addImportedTokenAtom\";\nimport { getLogger } from \"@/core/logger\";\nimport { assert } from \"ts-essentials\";\n\nexport const formInputPropsAtom = atom<FormInputProps>({});\n\n// in case formInputPros passed to Widget are not exactly expected types\ntype RelaxedFormInputProps = {\n [K in keyof FormInputProps]?: NonNullable<FormInputProps[K]> extends string\n ? string\n : NonNullable<FormInputProps[K]> extends number\n ? number\n : FormInputProps[K];\n};\n\nconst logger = getLogger(\"FormInputProps\");\n\ntype GetterWithPeek = Parameters<Effect>[0];\n\ntype FindTokenAtomsInput = {\n tokenToFind: { address: Address; network: SupportedChainId };\n get: GetterWithPeek;\n set: Setter;\n};\n\nfunction findTokenInAtoms({\n get,\n set,\n tokenToFind,\n}: FindTokenAtomsInput): Token | undefined {\n const tokenFromAddress = tokenToFind.address;\n const chainId = tokenToFind.network;\n\n if (isETHaddress(tokenFromAddress)) {\n // if tokenFrom is ETH, set the native token for tokenFrom Input\n const nativeToken = nativeTokensByChainId[chainId];\n return nativeToken;\n }\n\n const tokenFromLowercase = tokenFromAddress.toLowerCase();\n\n // find the token from the token Lists for the srcChainId,\n // and retry to find the token when allTokens are updated (token lists loaded)\n const tokensMap = get(fromListsAtom).listByChainId[chainId]?.addressMap;\n const tokenFromLists = tokensMap?.[tokenFromLowercase];\n if (tokenFromLists) {\n return tokenFromLists;\n }\n\n // find the token from the imported tokens,\n // don't retry if user imports more tokens during the session\n const importedTokens = get.peek(importedTokensAtom);\n const importedToken = importedTokens[chainId]?.find(\n (token) => token.address.toLowerCase() === tokenFromLowercase\n );\n if (importedToken) {\n return importedToken;\n }\n\n // subscribe to auto-imported tokens, which will be added to only when tokenAddress prop is supplied from outside the widget\n const autoImportedTokens = get(autoImportedTokensAtom);\n // looking through auto-imported tokens isn't strictly necessary because importedTokens atom is updated together with autoImportedTokens atom,\n // except for consistency, and so that we don't have to subscribe to importedTokens atom that would retrigger formProps matching on manual token import\n const autoImportedToken = autoImportedTokens.find(\n (token) =>\n token.address.toLowerCase() === tokenFromLowercase &&\n token.network === chainId\n );\n if (autoImportedToken) {\n return autoImportedToken;\n }\n\n logger.info(\n \"token not available in widget. Will attempt to import from chain\",\n {\n address: tokenFromAddress,\n chainId,\n }\n );\n\n // trigger Token fetch and eventual import when tokenFromAddress is not found in available token lists and atoms\n set(autoAddImportedTokenAtom, { address: tokenFromAddress, chainId });\n}\n\nconst validTradeModes: string[] = [\n \"swap\",\n \"limit\",\n \"otc\",\n] satisfies TradeMode[];\n\nfunction isTradeMode(mode: string): mode is TradeMode {\n return validTradeModes.includes(mode);\n}\n\nconst formInputPropsEffectAtom = atomEffect((get, set) => {\n const formInputProps: RelaxedFormInputProps = get(formInputPropsAtom);\n const { tokenFromAddress, srcChainId, sendAmount } = formInputProps;\n\n logger.log(\"using external props to set Widget form input\", formInputProps);\n\n let destChainId = formInputProps.destChainId;\n let tokenToAddress = formInputProps.tokenToAddress;\n let selectedForm = formInputProps.selectedForm || \"swap\";\n if (!isTradeMode(selectedForm)) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid selectedForm provided\", { selectedForm });\n selectedForm = \"swap\";\n }\n\n // necessary for type safety\n assert(isTradeMode(selectedForm), \"selectedForm must be a valid trade mode\");\n\n const formAtoms = tradeModeToTokenAtoms[selectedForm];\n const currentTokenFrom = get.peek(formAtoms.tokenFromAtom);\n const currentTokenTo = get.peek(formAtoms.tokenToAtom);\n\n const currentTradeMode = get.peek(tradeModeAtom);\n\n if (currentTradeMode !== selectedForm) {\n set(tradeModeAtom, selectedForm);\n }\n\n let newTokenFrom: Token | undefined;\n let newTokenTo: Token | undefined;\n\n // if chain isn't given in props, match current srcChainId\n const defaultChainId = currentTokenFrom.network;\n\n if (selectedForm !== \"swap\") {\n // non-swap forms are single-chain only,\n // force destChainId = srcChainId\n destChainId = srcChainId;\n }\n\n if (\n selectedForm === \"otc\" &&\n tokenToAddress &&\n isETHaddress(tokenToAddress)\n ) {\n const wethMapping: Record<number, Address> = wrappedNativeCurrency;\n // OTC Orders don't support ETH as tokenTo=takerAsset,\n // more logical to use WETH instead of no token at all\n tokenToAddress = wethMapping[destChainId || defaultChainId];\n }\n\n {\n // match tokenFromAddress and srcChainId to a new tokenFrom to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenFromAddress, network: srcChainId },\n currentToken: currentTokenFrom,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenFrom = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n {\n // match tokenToAddress and destChainId to a new tokenTo to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenToAddress, network: destChainId },\n currentToken: currentTokenTo,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenTo = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n if (newTokenFrom && newTokenTo && areTokensSame(newTokenFrom, newTokenTo)) {\n // if tokens are the same, skip tokenTo\n newTokenTo = undefined;\n }\n\n if (\n !newTokenFrom &&\n !tokenFromAddress &&\n srcChainId &&\n isSupportedChainId(srcChainId) &&\n srcChainId !== currentTokenFrom.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [defaultTokenFrom] = pickDefaultTokenPair(srcChainId, selectedForm);\n // set default token for the chain\n newTokenFrom = defaultTokenFrom;\n }\n\n if (\n !newTokenTo &&\n !tokenToAddress &&\n destChainId &&\n isSupportedChainId(destChainId) &&\n destChainId !== currentTokenTo?.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [, defaultTokenTo] = pickDefaultTokenPair(destChainId, selectedForm);\n // set default token for the chain\n newTokenTo = defaultTokenTo;\n }\n\n if (newTokenFrom) {\n const selectTokenFromAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenFromAtom;\n set(selectTokenFromAtom, newTokenFrom);\n }\n if (newTokenTo) {\n const selectTokenToAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenToAtom;\n set(selectTokenToAtom, newTokenTo);\n }\n\n if (sendAmount && Number(sendAmount) >= 0) {\n const formPayAmountAtom = tradeModeToPayAmountUnitAtom[selectedForm];\n const currentSendAmount = get.peek(formPayAmountAtom.read);\n if (currentSendAmount !== sendAmount) {\n set(formPayAmountAtom.write, sendAmount);\n }\n }\n});\n\nfunction getTokenToFind({\n tokenFromProps,\n currentToken,\n defaultChainId,\n}: {\n tokenFromProps: { address?: string; network?: number };\n currentToken?: Token;\n defaultChainId: SupportedChainId;\n}): { address: Address; network: SupportedChainId } | undefined {\n if (!tokenFromProps.address) return;\n // guard against malformed addresses passed through props\n if (!isAddress(tokenFromProps.address)) {\n logger.warn(\"malformed token address provided\", {\n address: tokenFromProps.address,\n });\n return;\n }\n\n const network = tokenFromProps.network || defaultChainId;\n\n // unsupported chainId provided, can't select this Token\n if (!isSupportedChainId(network)) {\n logger.warn(\"unsupported chainId provided\", { network });\n return;\n }\n\n if (\n currentToken &&\n areTokensSame(currentToken, {\n address: tokenFromProps.address,\n network,\n })\n ) {\n // same token already there\n return;\n }\n\n return { address: tokenFromProps.address, network };\n}\n\nexport function useActivateFormInputEffects() {\n useAtom(formInputPropsEffectAtom);\n}\n\nexport type FormInputProps = {\n /** @description The form to activate, defaults to \"swap\" */\n selectedForm?: TradeMode;\n tokenFromAddress?: Address;\n /** @description The chainId of the tokenFrom, for selectedForm!=swap some chains are disabled */\n srcChainId?: SupportedChainId;\n tokenToAddress?: Address;\n /** @description The chainId of the tokenTo, only functional together with selectedForm = \"swap\"*/\n destChainId?: SupportedChainId;\n sendAmount?: string; // in Token units\n // @TODO add receiveAmount only when BUY is implemented for Delta to avoid mode switching complications\n};\n\nexport function useSetFormInputFromProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n}: FormInputProps = {}) {\n const setFormInputProps = useSetAtom(formInputPropsAtom);\n\n // match props together as they are supplied together from outside the Widget,\n // on any one prop change, the whole form input props are updated as long as they are passed together to the Widget\n useLayoutEffect(() => {\n setFormInputProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n });\n }, [\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n setFormInputProps,\n ]);\n}\n"],"names":["formInputPropsAtom","atom","logger","getLogger","findTokenInAtoms","get","set","tokenToFind","tokenFromAddress","address","chainId","network","isETHaddress","nativeToken","nativeTokensByChainId","tokenFromLowercase","toLowerCase","tokensMap","fromListsAtom","listByChainId","addressMap","tokenFromLists","importedTokens","peek","importedTokensAtom","importedToken","find","token","autoImportedTokens","autoImportedTokensAtom","autoImportedToken","info","autoAddImportedTokenAtom","validTradeModes","isTradeMode","mode","includes","formInputPropsEffectAtom","atomEffect","formInputProps","srcChainId","sendAmount","log","destChainId","tokenToAddress","selectedForm","warn","assert","formAtoms","tradeModeToTokenAtoms","currentTokenFrom","tokenFromAtom","currentTokenTo","tokenToAtom","currentTradeMode","tradeModeAtom","newTokenFrom","newTokenTo","defaultChainId","wethMapping","wrappedNativeCurrency","getTokenToFind","tokenFromProps","currentToken","areTokensSame","undefined","isSupportedChainId","defaultTokenFrom","pickDefaultTokenPair","defaultTokenTo","selectTokenFromAtom","tradeModeToSetTokenAtoms","selectTokenToAtom","Number","formPayAmountAtom","tradeModeToPayAmountUnitAtom","currentSendAmount","read","write","isAddress","useActivateFormInputEffects","useAtom","useSetFormInputFromProps","t0","$","_c","t1","setFormInputProps","useSetAtom","t2","t3","useLayoutEffect"],"mappings":"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"}
1
+ {"version":3,"file":"setTokenByAddressAtom.js","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"sourcesContent":["import { atom, useAtom, useSetAtom, type Setter } from \"jotai\";\nimport { atomEffect, type Effect } from \"jotai-effect\";\nimport { isAddress, type Address } from \"viem\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { nativeTokensByChainId } from \"@/tokens/constructor\";\nimport { fromListsAtom } from \"@/tokens/state/fromListsAtom\";\nimport {\n autoImportedTokensAtom,\n importedTokensAtom,\n} from \"@/tokens/state/importedTokensAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useLayoutEffect } from \"react\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport {\n tradeModeAtom,\n userTradeModeAtom,\n type TradeMode,\n} from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToPayAmountUnitAtom,\n tradeModeToSetTokenAtoms,\n tradeModeToTokenAtoms,\n} from \"./common\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { autoAddImportedTokenAtom } from \"@/tokens/state/addImportedTokenAtom\";\nimport { getLogger } from \"@/core/logger\";\nimport { assert } from \"ts-essentials\";\nimport { bridgeInfoAtom } from \"@/hooks/swap/prices/delta/queries/useBridgeInfo\";\nimport { isTradeMode } from \"@/lib/tradeMode\";\nimport { enabledTradeModesAtom } from \"@/core/state/enabledTradeModesAtom\";\n\nexport const formInputPropsAtom = atom<FormInputProps>({});\n\n// in case formInputPros passed to Widget are not exactly expected types\ntype RelaxedFormInputProps = {\n [K in keyof FormInputProps]?: NonNullable<FormInputProps[K]> extends string\n ? string\n : NonNullable<FormInputProps[K]> extends number\n ? number\n : FormInputProps[K];\n};\n\nconst logger = getLogger(\"FormInputProps\");\n\ntype GetterWithPeek = Parameters<Effect>[0];\n\ntype FindTokenAtomsInput = {\n tokenToFind: { address: Address; network: SupportedChainId };\n get: GetterWithPeek;\n set: Setter;\n};\n\nfunction findTokenInAtoms({\n get,\n set,\n tokenToFind,\n}: FindTokenAtomsInput): Token | undefined {\n const tokenFromAddress = tokenToFind.address;\n const chainId = tokenToFind.network;\n\n if (isETHaddress(tokenFromAddress)) {\n // if tokenFrom is ETH, set the native token for tokenFrom Input\n const nativeToken = nativeTokensByChainId[chainId];\n return nativeToken;\n }\n\n const tokenFromLowercase = tokenFromAddress.toLowerCase();\n\n // find the token from the token Lists for the srcChainId,\n // and retry to find the token when allTokens are updated (token lists loaded)\n const tokensMap = get(fromListsAtom).listByChainId[chainId]?.addressMap;\n const tokenFromLists = tokensMap?.[tokenFromLowercase];\n if (tokenFromLists) {\n return tokenFromLists;\n }\n\n // find the token from the imported tokens,\n // don't retry if user imports more tokens during the session\n const importedTokens = get.peek(importedTokensAtom);\n const importedToken = importedTokens[chainId]?.find(\n (token) => token.address.toLowerCase() === tokenFromLowercase\n );\n if (importedToken) {\n return importedToken;\n }\n\n // subscribe to auto-imported tokens, which will be added to only when tokenAddress prop is supplied from outside the widget\n const autoImportedTokens = get(autoImportedTokensAtom);\n // looking through auto-imported tokens isn't strictly necessary because importedTokens atom is updated together with autoImportedTokens atom,\n // except for consistency, and so that we don't have to subscribe to importedTokens atom that would retrigger formProps matching on manual token import\n const autoImportedToken = autoImportedTokens.find(\n (token) =>\n token.address.toLowerCase() === tokenFromLowercase &&\n token.network === chainId\n );\n if (autoImportedToken) {\n return autoImportedToken;\n }\n\n logger.info(\n \"token not available in widget. Will attempt to import from chain\",\n {\n address: tokenFromAddress,\n chainId,\n }\n );\n\n // trigger Token fetch and eventual import when tokenFromAddress is not found in available token lists and atoms\n set(autoAddImportedTokenAtom, { address: tokenFromAddress, chainId });\n}\n\nconst formInputPropsEffectAtom = atomEffect((get, set) => {\n // subscribe to bridgeInfoAtom to have up-to-date available crosses\n // and retry token finding each time when bridgeInfo changes\n get(bridgeInfoAtom);\n\n const enabledTradeModes = get(enabledTradeModesAtom);\n const formInputProps: RelaxedFormInputProps = get(formInputPropsAtom);\n const { tokenFromAddress, srcChainId, sendAmount } = formInputProps;\n\n logger.log(\"using external props to set Widget form input\", formInputProps);\n\n let destChainId = formInputProps.destChainId;\n let tokenToAddress = formInputProps.tokenToAddress;\n let selectedForm = formInputProps.selectedForm || \"swap\";\n if (!isTradeMode(selectedForm) || !enabledTradeModes.includes(selectedForm)) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid or disabled selectedForm provided\", { selectedForm });\n // fallback to first enabled trade mode from the config\n selectedForm = enabledTradeModes[0];\n }\n\n // necessary for type safety\n assert(isTradeMode(selectedForm), \"selectedForm must be a valid trade mode\");\n\n const formAtoms = tradeModeToTokenAtoms[selectedForm];\n const currentTokenFrom = get.peek(formAtoms.tokenFromAtom);\n const currentTokenTo = get.peek(formAtoms.tokenToAtom);\n\n const currentTradeMode = get.peek(tradeModeAtom);\n\n if (currentTradeMode !== selectedForm) {\n set(userTradeModeAtom, selectedForm);\n }\n\n let newTokenFrom: Token | undefined;\n let newTokenTo: Token | undefined;\n\n // if chain isn't given in props, match current srcChainId\n const defaultChainId = currentTokenFrom.network;\n\n if (selectedForm !== \"swap\") {\n // non-swap forms are single-chain only,\n // force destChainId = srcChainId\n destChainId = srcChainId;\n }\n\n if (\n selectedForm === \"otc\" &&\n tokenToAddress &&\n isETHaddress(tokenToAddress)\n ) {\n const wethMapping: Record<number, Address> = wrappedNativeCurrency;\n // OTC Orders don't support ETH as tokenTo=takerAsset,\n // more logical to use WETH instead of no token at all\n tokenToAddress = wethMapping[destChainId || defaultChainId];\n }\n\n {\n // match tokenFromAddress and srcChainId to a new tokenFrom to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenFromAddress, network: srcChainId },\n currentToken: currentTokenFrom,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenFrom = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n {\n // match tokenToAddress and destChainId to a new tokenTo to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenToAddress, network: destChainId },\n currentToken: currentTokenTo,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenTo = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n if (newTokenFrom && newTokenTo && areTokensSame(newTokenFrom, newTokenTo)) {\n // if tokens are the same, skip tokenTo\n newTokenTo = undefined;\n }\n\n if (\n !newTokenFrom &&\n !tokenFromAddress &&\n srcChainId &&\n isSupportedChainId(srcChainId) &&\n srcChainId !== currentTokenFrom.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [defaultTokenFrom] = pickDefaultTokenPair(srcChainId, selectedForm);\n // set default token for the chain\n newTokenFrom = defaultTokenFrom;\n }\n\n if (\n !newTokenTo &&\n !tokenToAddress &&\n destChainId &&\n isSupportedChainId(destChainId) &&\n destChainId !== currentTokenTo?.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [, defaultTokenTo] = pickDefaultTokenPair(destChainId, selectedForm);\n // set default token for the chain\n newTokenTo = defaultTokenTo;\n }\n\n if (newTokenFrom) {\n const selectTokenFromAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenFromAtom;\n set(selectTokenFromAtom, newTokenFrom);\n }\n if (newTokenTo) {\n const selectTokenToAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenToAtom;\n set(selectTokenToAtom, newTokenTo);\n }\n\n if (sendAmount && Number(sendAmount) >= 0) {\n const formPayAmountAtom = tradeModeToPayAmountUnitAtom[selectedForm];\n const currentSendAmount = get.peek(formPayAmountAtom.read);\n if (currentSendAmount !== sendAmount) {\n set(formPayAmountAtom.write, sendAmount);\n }\n }\n});\n\nfunction getTokenToFind({\n tokenFromProps,\n currentToken,\n defaultChainId,\n}: {\n tokenFromProps: { address?: string; network?: number };\n currentToken?: Token;\n defaultChainId: SupportedChainId;\n}): { address: Address; network: SupportedChainId } | undefined {\n if (!tokenFromProps.address) return;\n // guard against malformed addresses passed through props\n if (!isAddress(tokenFromProps.address)) {\n logger.warn(\"malformed token address provided\", {\n address: tokenFromProps.address,\n });\n return;\n }\n\n const network = tokenFromProps.network || defaultChainId;\n\n // unsupported chainId provided, can't select this Token\n if (!isSupportedChainId(network)) {\n logger.warn(\"unsupported chainId provided\", { network });\n return;\n }\n\n if (\n currentToken &&\n areTokensSame(currentToken, {\n address: tokenFromProps.address,\n network,\n })\n ) {\n // same token already there\n return;\n }\n\n return { address: tokenFromProps.address, network };\n}\n\nexport function useActivateFormInputEffects() {\n useAtom(formInputPropsEffectAtom);\n}\n\nexport type FormInputProps = {\n /** @description The form to activate, defaults to \"swap\" */\n selectedForm?: TradeMode;\n tokenFromAddress?: Address;\n /** @description The chainId of the tokenFrom, for selectedForm!=swap some chains are disabled */\n srcChainId?: SupportedChainId;\n tokenToAddress?: Address;\n /** @description The chainId of the tokenTo, only functional together with selectedForm = \"swap\"*/\n destChainId?: SupportedChainId;\n sendAmount?: string; // in Token units\n // @TODO add receiveAmount only when BUY is implemented for Delta to avoid mode switching complications\n};\n\nexport function useSetFormInputFromProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n}: FormInputProps = {}) {\n const setFormInputProps = useSetAtom(formInputPropsAtom);\n\n // match props together as they are supplied together from outside the Widget,\n // on any one prop change, the whole form input props are updated as long as they are passed together to the Widget\n useLayoutEffect(() => {\n setFormInputProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n });\n }, [\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n setFormInputProps,\n ]);\n}\n"],"names":["formInputPropsAtom","atom","logger","getLogger","findTokenInAtoms","get","set","tokenToFind","tokenFromAddress","address","chainId","network","isETHaddress","nativeToken","nativeTokensByChainId","tokenFromLowercase","toLowerCase","tokensMap","fromListsAtom","listByChainId","addressMap","tokenFromLists","importedTokens","peek","importedTokensAtom","importedToken","find","token","autoImportedTokens","autoImportedTokensAtom","autoImportedToken","info","autoAddImportedTokenAtom","formInputPropsEffectAtom","atomEffect","bridgeInfoAtom","enabledTradeModes","enabledTradeModesAtom","formInputProps","srcChainId","sendAmount","log","destChainId","tokenToAddress","selectedForm","isTradeMode","includes","warn","assert","formAtoms","tradeModeToTokenAtoms","currentTokenFrom","tokenFromAtom","currentTokenTo","tokenToAtom","currentTradeMode","tradeModeAtom","userTradeModeAtom","newTokenFrom","newTokenTo","defaultChainId","wethMapping","wrappedNativeCurrency","getTokenToFind","tokenFromProps","currentToken","areTokensSame","undefined","isSupportedChainId","defaultTokenFrom","pickDefaultTokenPair","defaultTokenTo","selectTokenFromAtom","tradeModeToSetTokenAtoms","selectTokenToAtom","Number","formPayAmountAtom","tradeModeToPayAmountUnitAtom","currentSendAmount","read","write","isAddress","useActivateFormInputEffects","useAtom","useSetFormInputFromProps","t0","$","_c","t1","setFormInputProps","useSetAtom","t2","t3","useLayoutEffect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/subscriptions.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,+BAA+B,oDAW3C,CAAC"}
1
+ {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/subscriptions.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,+BAA+B,oDAS3C,CAAC"}
@@ -3,10 +3,11 @@ import { getLogger } from '../../logger.js';
3
3
  import { syncTokensAfterChainSwitch } from './common.js';
4
4
  import { watchChainId } from '@wagmi/core';
5
5
 
6
+ const logger = getLogger("Subscription::WatchChainId");
6
7
  const subscribeToWalletChainIdChanges = () => {
7
8
  return watchChainId(wagmiConfig, {
8
9
  onChange: (newChainId, prevChainId) => {
9
- getLogger("Subscription").log("Sync tokens after wallet chainId change", {
10
+ logger.log("Sync tokens", {
10
11
  newChainId,
11
12
  prevChainId
12
13
  });
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.js","sources":["../../../../src/core/inputs/state/subscriptions.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { getLogger } from \"@/core/logger\";\nimport { syncTokensAfterChainSwitch } from \"./common\";\nimport { watchChainId } from \"@wagmi/core\";\n\nexport const subscribeToWalletChainIdChanges = () => {\n return watchChainId(wagmiConfig, {\n onChange: (newChainId, prevChainId) => {\n getLogger(\"Subscription\").log(\"Sync tokens after wallet chainId change\", {\n newChainId,\n prevChainId,\n });\n\n syncTokensAfterChainSwitch(newChainId);\n },\n });\n};\n"],"names":["subscribeToWalletChainIdChanges","watchChainId","wagmiConfig","onChange","newChainId","prevChainId","getLogger","log","syncTokensAfterChainSwitch"],"mappings":";;;;;AAKO,MAAMA,kCAAkCA,MAAM;AACnD,EAAA,OAAOC,aAAaC,WAAAA,EAAa;AAAA,IAC/BC,QAAAA,EAAUA,CAACC,UAAAA,EAAYC,WAAAA,KAAgB;AACrCC,MAAAA,SAAAA,CAAU,cAAc,CAAA,CAAEC,GAAAA,CAAI,yCAAA,EAA2C;AAAA,QACvEH,UAAAA;AAAAA,QACAC;AAAAA,OACD,CAAA;AAEDG,MAAAA,0BAAAA,CAA2BJ,UAAU,CAAA;AAAA,IACvC;AAAA,GACD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"subscriptions.js","sources":["../../../../src/core/inputs/state/subscriptions.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { getLogger } from \"@/core/logger\";\nimport { syncTokensAfterChainSwitch } from \"./common\";\nimport { watchChainId } from \"@wagmi/core\";\n\nconst logger = getLogger(\"Subscription::WatchChainId\");\nexport const subscribeToWalletChainIdChanges = () => {\n // subscribes to state.chainId changes\n // config.subscribe((state) => state.chainId, onChange)\n return watchChainId(wagmiConfig, {\n onChange: (newChainId, prevChainId) => {\n logger.log(\"Sync tokens\", { newChainId, prevChainId });\n syncTokensAfterChainSwitch(newChainId);\n },\n });\n};\n"],"names":["logger","getLogger","subscribeToWalletChainIdChanges","watchChainId","wagmiConfig","onChange","newChainId","prevChainId","log","syncTokensAfterChainSwitch"],"mappings":";;;;;AAKA,MAAMA,MAAAA,GAASC,UAAU,4BAA4B,CAAA;AAC9C,MAAMC,kCAAkCA,MAAM;AAGnD,EAAA,OAAOC,aAAaC,WAAAA,EAAa;AAAA,IAC/BC,QAAAA,EAAUA,CAACC,UAAAA,EAAYC,WAAAA,KAAgB;AACrCP,MAAAA,MAAAA,CAAOQ,IAAI,aAAA,EAAe;AAAA,QAAEF,UAAAA;AAAAA,QAAYC;AAAAA,OAAa,CAAA;AACrDE,MAAAA,0BAAAA,CAA2BH,UAAU,CAAA;AAAA,IACvC;AAAA,GACD,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"deadlineAtom.js","sources":["../../../../src/core/limit/state/deadlineAtom.ts"],"sourcesContent":["import { atom, useAtomValue } from \"jotai\";\nimport { defaultTimeUnit, minTimeUnit, timeUnits } from \"./constants\";\nimport { timeUnitToSeconds } from \"./utils\";\n\nexport type TimeUnit = (typeof timeUnits)[number][\"label\"];\n\nexport type TimeUnitObject = {\n label: TimeUnit;\n value: number;\n};\n\nexport const timeUnitAtom = atom<TimeUnitObject>(defaultTimeUnit);\n\nexport const deadlineAtom = atom((get) => {\n let timeUnit = get(timeUnitAtom);\n\n if (\n timeUnit.label === minTimeUnit.label &&\n timeUnit.value < minTimeUnit.value\n ) {\n timeUnit = minTimeUnit;\n }\n\n return Math.floor(Date.now() / 1000 + timeUnitToSeconds(timeUnit));\n});\n\nexport const useLimitDeadline = () => {\n return useAtomValue(deadlineAtom);\n};\n"],"names":["timeUnitAtom","atom","defaultTimeUnit","deadlineAtom","get","timeUnit","label","minTimeUnit","value","Math","floor","Date","now","timeUnitToSeconds","useLimitDeadline","useAtomValue"],"mappings":";;;;AAWO,MAAMA,YAAAA,GAAeC,KAAqBC,eAAe;AAEzD,MAAMC,YAAAA,GAAeF,KAAMG,CAAAA,GAAAA,KAAQ;AACxC,EAAA,IAAIC,QAAAA,GAAWD,IAAIJ,YAAY,CAAA;AAE/B,EAAA,IACEK,SAASC,KAAAA,KAAUC,WAAAA,CAAYD,SAC/BD,QAAAA,CAASG,KAAAA,GAAQD,YAAYC,KAAAA,EAC7B;AACAH,IAAAA,QAAAA,GAAWE,WAAAA;AAAAA,EACb;AAEA,EAAA,OAAOE,IAAAA,CAAKC,MAAMC,IAAAA,CAAKC,GAAAA,KAAQ,GAAA,GAAOC,iBAAAA,CAAkBR,QAAQ,CAAC,CAAA;AACnE,CAAC;AAEM,MAAMS,mBAAmBA,MAAA;AAAA,EAAA,OACvBC,aAAAZ,YAAyB,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"deadlineAtom.js","sources":["../../../../src/core/limit/state/deadlineAtom.ts"],"sourcesContent":["import { atom, useAtomValue } from \"jotai\";\nimport { defaultTimeUnit, minTimeUnit, timeUnits } from \"./constants\";\nimport { timeUnitToSeconds } from \"./utils\";\n\nexport type TimeUnit = (typeof timeUnits)[number][\"label\"];\n\nexport type TimeUnitObject = {\n label: TimeUnit;\n value: number;\n};\n\nexport const timeUnitAtom = atom<TimeUnitObject>(defaultTimeUnit);\n\nexport const deadlineAtom = atom((get) => {\n let timeUnit = get(timeUnitAtom);\n\n if (\n timeUnit.label === minTimeUnit.label &&\n timeUnit.value < minTimeUnit.value\n ) {\n timeUnit = minTimeUnit;\n }\n\n return Math.floor(Date.now() / 1000 + timeUnitToSeconds(timeUnit));\n});\n\nexport const useLimitDeadline = () => {\n return useAtomValue(deadlineAtom);\n};\n"],"names":["timeUnitAtom","atom","defaultTimeUnit","deadlineAtom","get","timeUnit","label","minTimeUnit","value","Math","floor","Date","now","timeUnitToSeconds","useLimitDeadline","useAtomValue"],"mappings":";;;;AAWO,MAAMA,YAAAA,GAAeC,KAAqBC,eAAe;AAEzD,MAAMC,YAAAA,GAAeF,KAAMG,CAAAA,GAAAA,KAAQ;AACxC,EAAA,IAAIC,QAAAA,GAAWD,IAAIJ,YAAY,CAAA;AAE/B,EAAA,IACEK,SAASC,KAAAA,KAAUC,WAAAA,CAAYD,SAC/BD,QAAAA,CAASG,KAAAA,GAAQD,YAAYC,KAAAA,EAC7B;AACAH,IAAAA,QAAAA,GAAWE,WAAAA;AAAAA,EACb;AAEA,EAAA,OAAOE,IAAAA,CAAKC,MAAMC,IAAAA,CAAKC,GAAAA,KAAQ,GAAA,GAAOC,iBAAAA,CAAkBR,QAAQ,CAAC,CAAA;AACnE,CAAC;AAEM,MAAMS,mBAAmBA,MAAA;AAAA,EAAA,OACvBC,aAAaZ,YAAY,CAAA;AAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD,eAAO,MAAM,qBAAqB;;CAahC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CA8CpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CA6ClC,CAAC"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD,eAAO,MAAM,qBAAqB;;CAahC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CA4CpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CA2ClC,CAAC"}
@@ -4,7 +4,7 @@ import { atom } from 'jotai';
4
4
  import { unlockLimitPriceAtom } from './limitInputActionsAtom.js';
5
5
  import { limitTokenFromAtom, limitTokenToAtom } from './selectedTokenAtom.js';
6
6
  import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
7
- import { switchChain } from '@wagmi/core';
7
+ import { switchChain } from '../../../lib/web3/wagmi/switchChain.js';
8
8
 
9
9
  const switchLimitTokensAtom = atom(null, async (get, set) => {
10
10
  const tokenTo = get(limitTokenToAtom);
@@ -34,7 +34,7 @@ const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
34
34
  set(unlockLimitPriceAtom);
35
35
  }
36
36
  if (tokenFrom.network !== wagmiConfig.state.chainId) {
37
- await switchChain(wagmiConfig, {
37
+ switchChain({
38
38
  chainId: tokenFrom.network
39
39
  });
40
40
  }
@@ -59,7 +59,7 @@ const selectLimitTokenToAtom = atom(null, async (get, set, newTokenTo) => {
59
59
  set(unlockLimitPriceAtom);
60
60
  }
61
61
  if (tokenTo.network !== wagmiConfig.state.chainId) {
62
- await switchChain(wagmiConfig, {
62
+ switchChain({
63
63
  chainId: tokenTo.network
64
64
  });
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { unlockLimitPriceAtom } from \"./limitInputActionsAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./selectedTokenAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@wagmi/core\";\n\nexport const switchLimitTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(limitTokenFromAtom);\n\n // set tokenFrom\n set(limitTokenFromAtom, tokenTo);\n\n set(limitTokenToAtom, tokenFrom);\n\n set(unlockLimitPriceAtom);\n});\n\nexport const selectLimitTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // then set the tokenFrom\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n if (tokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenToAtom, initTokenFrom);\n // set tokenTo to previous tokenFrom\n tokenTo = initTokenFrom;\n }\n\n if (tokenTo && tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"limit\"\n );\n // so set tokenTo to one of the default tokens for tokenFrom.network chain\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n }\n\n // do not unlock limit price if token has not actually changed\n if (!areTokensSame(tokenFrom, initTokenFrom)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: tokenFrom.network,\n });\n // @TODO disconnect wallet chain from wagmi and srcChain\n }\n }\n);\n\nexport const selectLimitTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (initTokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenFromAtom, initTokenTo);\n // set tokenFrom to previous tokenTo\n tokenFrom = initTokenTo;\n }\n\n if (tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n // so set tokenFrom to one of the default tokens for tokenTo.network chain\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // do not unlock limit price if token has not actually changed\n if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenTo.network !== wagmiConfig.state.chainId) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: tokenTo.network,\n });\n // @TODO disconnect wallet chain from wagmi and srcChain\n }\n }\n);\n"],"names":["switchLimitTokensAtom","atom","get","set","tokenTo","limitTokenToAtom","tokenFrom","limitTokenFromAtom","unlockLimitPriceAtom","selectLimitTokenFromAtom","newTokenFrom","initTokenFrom","areTokensSame","network","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","wagmiConfig","state","chainId","switchChain","selectLimitTokenToAtom","initTokenTo"],"mappings":"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"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { unlockLimitPriceAtom } from \"./limitInputActionsAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./selectedTokenAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\n\nexport const switchLimitTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(limitTokenFromAtom);\n\n // set tokenFrom\n set(limitTokenFromAtom, tokenTo);\n\n set(limitTokenToAtom, tokenFrom);\n\n set(unlockLimitPriceAtom);\n});\n\nexport const selectLimitTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // then set the tokenFrom\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n if (tokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenToAtom, initTokenFrom);\n // set tokenTo to previous tokenFrom\n tokenTo = initTokenFrom;\n }\n\n if (tokenTo && tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"limit\"\n );\n // so set tokenTo to one of the default tokens for tokenFrom.network chain\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n }\n\n // do not unlock limit price if token has not actually changed\n if (!areTokensSame(tokenFrom, initTokenFrom)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const selectLimitTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (initTokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenFromAtom, initTokenTo);\n // set tokenFrom to previous tokenTo\n tokenFrom = initTokenTo;\n }\n\n if (tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n // so set tokenFrom to one of the default tokens for tokenTo.network chain\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // do not unlock limit price if token has not actually changed\n if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenTo.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenTo.network,\n });\n }\n }\n);\n"],"names":["switchLimitTokensAtom","atom","get","set","tokenTo","limitTokenToAtom","tokenFrom","limitTokenFromAtom","unlockLimitPriceAtom","selectLimitTokenFromAtom","newTokenFrom","initTokenFrom","areTokensSame","network","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","wagmiConfig","state","chainId","switchChain","selectLimitTokenToAtom","initTokenTo"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/inputs/state/store\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { atom, useAtomValue } from \"jotai\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"limit\"\n);\n\nexport const limitTokenFromAtom = atom(defaultTokenFrom);\nexport const limitTokenToAtom = atom<Token>();\n\nexport const useLimitTokenFrom = () => useAtomValue(limitTokenFromAtom);\nexport const useLimitTokenTo = () => useAtomValue(limitTokenToAtom);\n\nexport const syncLimitTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"limit\"\n );\n\n jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);\n\n const tokenTo = jotaiStore.get(limitTokenToAtom);\n if (tokenTo) jotaiStore.set(limitTokenToAtom, defaultTokenTo);\n};\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","limitTokenFromAtom","atom","limitTokenToAtom","useLimitTokenFrom","useAtomValue","useLimitTokenTo","syncLimitTokensAfterChainSwitch","defaultTokenTo","jotaiStore","set","tokenTo","get"],"mappings":";;;;;AAOA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,OACF,CAAA;AAEO,MAAMC,kBAAAA,GAAqBC,KAAKN,gBAAgB;AAChD,MAAMO,mBAAmBD,IAAAA;AAEzB,MAAME,oBAAoBA,MAAA;AAAA,EAAA,OAAMC,aAAAJ,kBAA+B,CAAA;AAAC;AAChE,MAAMK,kBAAkBA,MAAA;AAAA,EAAA,OAAMD,aAAAF,gBAA6B,CAAA;AAAC;AAE5D,MAAMI,+BAAAA,GAAkCA,CAACP,OAAAA,KAA8B;AAC5E,EAAA,MAAM,CAACJ,iBAAAA,EAAkBY,cAAc,CAAA,GAAIX,oBAAAA,CACzCG,SACA,OACF,CAAA;AAEAS,EAAAA,UAAAA,CAAWC,GAAAA,CAAIT,oBAAoBL,iBAAgB,CAAA;AAEnD,EAAA,MAAMe,OAAAA,GAAUF,UAAAA,CAAWG,GAAAA,CAAIT,gBAAgB,CAAA;AAC/C,EAAA,IAAIQ,OAAAA,EAASF,UAAAA,CAAWC,GAAAA,CAAIP,gBAAAA,EAAkBK,cAAc,CAAA;AAC9D;;;;"}
1
+ {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/inputs/state/store\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { atom, useAtomValue } from \"jotai\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"limit\"\n);\n\nexport const limitTokenFromAtom = atom(defaultTokenFrom);\nexport const limitTokenToAtom = atom<Token>();\n\nexport const useLimitTokenFrom = () => useAtomValue(limitTokenFromAtom);\nexport const useLimitTokenTo = () => useAtomValue(limitTokenToAtom);\n\nexport const syncLimitTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"limit\"\n );\n\n jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);\n\n const tokenTo = jotaiStore.get(limitTokenToAtom);\n if (tokenTo) jotaiStore.set(limitTokenToAtom, defaultTokenTo);\n};\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","limitTokenFromAtom","atom","limitTokenToAtom","useLimitTokenFrom","useAtomValue","useLimitTokenTo","syncLimitTokensAfterChainSwitch","defaultTokenTo","jotaiStore","set","tokenTo","get"],"mappings":";;;;;AAOA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,OACF,CAAA;AAEO,MAAMC,kBAAAA,GAAqBC,KAAKN,gBAAgB;AAChD,MAAMO,mBAAmBD,IAAAA;AAEzB,MAAME,oBAAoBA,MAAA;AAAA,EAAA,OAAMC,aAAaJ,kBAAkB,CAAA;AAAC;AAChE,MAAMK,kBAAkBA,MAAA;AAAA,EAAA,OAAMD,aAAaF,gBAAgB,CAAA;AAAC;AAE5D,MAAMI,+BAAAA,GAAkCA,CAACP,OAAAA,KAA8B;AAC5E,EAAA,MAAM,CAACJ,iBAAAA,EAAkBY,cAAc,CAAA,GAAIX,oBAAAA,CACzCG,SACA,OACF,CAAA;AAEAS,EAAAA,UAAAA,CAAWC,GAAAA,CAAIT,oBAAoBL,iBAAgB,CAAA;AAEnD,EAAA,MAAMe,OAAAA,GAAUF,UAAAA,CAAWG,GAAAA,CAAIT,gBAAgB,CAAA;AAC/C,EAAA,IAAIQ,OAAAA,EAASF,UAAAA,CAAWC,GAAAA,CAAIP,gBAAAA,EAAkBK,cAAc,CAAA;AAC9D;;;;"}