@velora-dex/widget 0.0.14 → 0.0.15

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 (573) hide show
  1. package/dist/components/ui/accordion.js +0 -10
  2. package/dist/components/ui/accordion.js.map +1 -1
  3. package/dist/components/ui/badge.js +0 -10
  4. package/dist/components/ui/badge.js.map +1 -1
  5. package/dist/components/ui/button.js +0 -10
  6. package/dist/components/ui/button.js.map +1 -1
  7. package/dist/components/ui/card.js +0 -10
  8. package/dist/components/ui/card.js.map +1 -1
  9. package/dist/components/ui/counter.js +0 -10
  10. package/dist/components/ui/counter.js.map +1 -1
  11. package/dist/components/ui/dialog.js +0 -10
  12. package/dist/components/ui/dialog.js.map +1 -1
  13. package/dist/components/ui/drawer.js +0 -10
  14. package/dist/components/ui/drawer.js.map +1 -1
  15. package/dist/components/ui/dropdown-menu.js +19 -35
  16. package/dist/components/ui/dropdown-menu.js.map +1 -1
  17. package/dist/components/ui/header.js +0 -10
  18. package/dist/components/ui/header.js.map +1 -1
  19. package/dist/components/ui/input.js +0 -10
  20. package/dist/components/ui/input.js.map +1 -1
  21. package/dist/components/ui/select.js +0 -10
  22. package/dist/components/ui/select.js.map +1 -1
  23. package/dist/components/ui/skeleton.js +0 -10
  24. package/dist/components/ui/skeleton.js.map +1 -1
  25. package/dist/components/ui/sonner.js +0 -10
  26. package/dist/components/ui/sonner.js.map +1 -1
  27. package/dist/components/ui/switch.js +0 -10
  28. package/dist/components/ui/switch.js.map +1 -1
  29. package/dist/components/ui/tooltip.js +0 -10
  30. package/dist/components/ui/tooltip.js.map +1 -1
  31. package/dist/components/ui/vaul/browser.js +0 -10
  32. package/dist/components/ui/vaul/browser.js.map +1 -1
  33. package/dist/components/ui/vaul/constants.js +0 -10
  34. package/dist/components/ui/vaul/constants.js.map +1 -1
  35. package/dist/components/ui/vaul/context.js +0 -10
  36. package/dist/components/ui/vaul/context.js.map +1 -1
  37. package/dist/components/ui/vaul/helpers.js +0 -10
  38. package/dist/components/ui/vaul/helpers.js.map +1 -1
  39. package/dist/components/ui/vaul/index.js +1 -11
  40. package/dist/components/ui/vaul/index.js.map +1 -1
  41. package/dist/components/ui/vaul/use-composed-refs.js +0 -10
  42. package/dist/components/ui/vaul/use-composed-refs.js.map +1 -1
  43. package/dist/components/ui/vaul/use-controllable-state.js +0 -10
  44. package/dist/components/ui/vaul/use-controllable-state.js.map +1 -1
  45. package/dist/components/ui/vaul/use-position-fixed.js +0 -10
  46. package/dist/components/ui/vaul/use-position-fixed.js.map +1 -1
  47. package/dist/components/ui/vaul/use-prevent-scroll.js +0 -10
  48. package/dist/components/ui/vaul/use-prevent-scroll.js.map +1 -1
  49. package/dist/components/ui/vaul/use-scale-background.js +0 -10
  50. package/dist/components/ui/vaul/use-scale-background.js.map +1 -1
  51. package/dist/components/ui/vaul/use-snap-points.js +0 -10
  52. package/dist/components/ui/vaul/use-snap-points.js.map +1 -1
  53. package/dist/components/web3/AccountButton.js +0 -10
  54. package/dist/components/web3/AccountButton.js.map +1 -1
  55. package/dist/components/web3/ConnectWallets/WalletConnectButtons.js +0 -10
  56. package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
  57. package/dist/components/web3/ConnectWallets/index.js +0 -10
  58. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  59. package/dist/components/web3/ConnectWallets/privy/button.js +0 -10
  60. package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
  61. package/dist/components/web3/ConnectWallets/privy/connectRunner.js +0 -10
  62. package/dist/components/web3/ConnectWallets/privy/connectRunner.js.map +1 -1
  63. package/dist/components/web3/ConnectWallets/privy/iframe.js +0 -10
  64. package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
  65. package/dist/components/web3/ConnectWallets/privy/provider.js +0 -10
  66. package/dist/components/web3/ConnectWallets/privy/provider.js.map +1 -1
  67. package/dist/components/web3/ConnectWallets/walletIcons.js +0 -10
  68. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  69. package/dist/components/web3/providers.js +0 -10
  70. package/dist/components/web3/providers.js.map +1 -1
  71. package/dist/components/widget/AppHeader/ActivityButton.js +0 -10
  72. package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
  73. package/dist/components/widget/AppHeader/AppHeader.js +0 -10
  74. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  75. package/dist/components/widget/Details/DetailWithTooltip.js +0 -10
  76. package/dist/components/widget/Details/DetailWithTooltip.js.map +1 -1
  77. package/dist/components/widget/Details/DetailWithValueList.js +0 -10
  78. package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
  79. package/dist/components/widget/Details/DetailWithValueListExpandable.js +0 -10
  80. package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
  81. package/dist/components/widget/Details/SwapDetailsExpandable.js +0 -10
  82. package/dist/components/widget/Details/SwapDetailsExpandable.js.map +1 -1
  83. package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js +0 -10
  84. package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js.map +1 -1
  85. package/dist/components/widget/Dialog/DialogRoot.js +0 -10
  86. package/dist/components/widget/Dialog/DialogRoot.js.map +1 -1
  87. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +0 -10
  88. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
  89. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js +0 -10
  90. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
  91. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +0 -10
  92. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  93. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js +0 -10
  94. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  95. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js +0 -10
  96. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
  97. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +0 -10
  98. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
  99. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js +0 -10
  100. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
  101. package/dist/components/widget/Dialog/dialogByType.js +0 -10
  102. package/dist/components/widget/Dialog/dialogByType.js.map +1 -1
  103. package/dist/components/widget/Dialog/state/dialogAtom.js +1 -12
  104. package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
  105. package/dist/components/widget/Drawer/index.js +0 -10
  106. package/dist/components/widget/Drawer/index.js.map +1 -1
  107. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +1 -1
  108. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
  109. package/dist/components/widget/Drawer/state/useDrawerControls.js +36 -36
  110. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  111. package/dist/components/widget/Dropdown/DropdownWithItems.js +0 -10
  112. package/dist/components/widget/Dropdown/DropdownWithItems.js.map +1 -1
  113. package/dist/components/widget/Icon/CheckIcon.js +0 -10
  114. package/dist/components/widget/Icon/CheckIcon.js.map +1 -1
  115. package/dist/components/widget/Icon/ChevronIcon.js +0 -10
  116. package/dist/components/widget/Icon/ChevronIcon.js.map +1 -1
  117. package/dist/components/widget/Icon/DeltaIcon.js +0 -10
  118. package/dist/components/widget/Icon/DeltaIcon.js.map +1 -1
  119. package/dist/components/widget/Icon/EllipseIcon.js +0 -10
  120. package/dist/components/widget/Icon/EllipseIcon.js.map +1 -1
  121. package/dist/components/widget/Icon/InfoIcon.js +0 -10
  122. package/dist/components/widget/Icon/InfoIcon.js.map +1 -1
  123. package/dist/components/widget/Icon/MarketIcon.js +0 -10
  124. package/dist/components/widget/Icon/MarketIcon.js.map +1 -1
  125. package/dist/components/widget/Icon/SliderIcon.js +0 -10
  126. package/dist/components/widget/Icon/SliderIcon.js.map +1 -1
  127. package/dist/components/widget/Informative/Informative.js +0 -10
  128. package/dist/components/widget/Informative/Informative.js.map +1 -1
  129. package/dist/components/widget/Line/Line.js +0 -10
  130. package/dist/components/widget/Line/Line.js.map +1 -1
  131. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +0 -10
  132. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
  133. package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js +0 -10
  134. package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
  135. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +0 -10
  136. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
  137. package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js +0 -10
  138. package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
  139. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js +0 -10
  140. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
  141. package/dist/components/widget/PoweredBy/PoweredBy.js +0 -10
  142. package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -1
  143. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +0 -10
  144. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
  145. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js +1 -12
  146. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
  147. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +0 -10
  148. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  149. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +0 -10
  150. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
  151. package/dist/components/widget/SelectToken/SelectTokenButton.js +0 -11
  152. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  153. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js +0 -10
  154. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
  155. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +2 -13
  156. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
  157. package/dist/components/widget/SwapModeSwitcher/state/swapModeAtom.js +3 -15
  158. package/dist/components/widget/SwapModeSwitcher/state/swapModeAtom.js.map +1 -1
  159. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +2 -13
  160. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  161. package/dist/components/widget/SwapRate/SwapRate.js +0 -10
  162. package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
  163. package/dist/components/widget/TokenBadge/TokenBadge.js +0 -10
  164. package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
  165. package/dist/components/widget/TokenInput/EmptyInput.js +0 -10
  166. package/dist/components/widget/TokenInput/EmptyInput.js.map +1 -1
  167. package/dist/components/widget/TokenInput/index.js +0 -10
  168. package/dist/components/widget/TokenInput/index.js.map +1 -1
  169. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js +0 -10
  170. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
  171. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +0 -10
  172. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  173. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +0 -10
  174. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
  175. package/dist/components/widget/TradeOverview/Step.js +0 -10
  176. package/dist/components/widget/TradeOverview/Step.js.map +1 -1
  177. package/dist/components/widget/TradeOverview/Stepper.js +0 -10
  178. package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
  179. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +0 -10
  180. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
  181. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +0 -10
  182. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
  183. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompletedDetails.js +0 -10
  184. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompletedDetails.js.map +1 -1
  185. package/dist/components/widget/TradeOverview/TradeComplete/index.js +0 -10
  186. package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
  187. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +0 -10
  188. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
  189. package/dist/components/widget/TradeOverview/TradeComplete/utils.js +0 -10
  190. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  191. package/dist/components/widget/TradeOverview/TradeDetails.js +0 -10
  192. package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
  193. package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js +0 -10
  194. package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
  195. package/dist/components/widget/TradeOverview/TradeOverview.js +0 -10
  196. package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
  197. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +0 -10
  198. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
  199. package/dist/components/widget/TradeOverview/TradeOverviewHeader.js +0 -10
  200. package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
  201. package/dist/components/widget/TradeOverview/VerticalDash.js +0 -10
  202. package/dist/components/widget/TradeOverview/VerticalDash.js.map +1 -1
  203. package/dist/components/widget/TradeOverview/steps.js +0 -10
  204. package/dist/components/widget/TradeOverview/steps.js.map +1 -1
  205. package/dist/components/widget/TradeOverview/tradeFlowContext.js +0 -10
  206. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  207. package/dist/components/widget/TradeParameters/DeltaParameter.js +0 -10
  208. package/dist/components/widget/TradeParameters/DeltaParameter.js.map +1 -1
  209. package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js +0 -10
  210. package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js.map +1 -1
  211. package/dist/components/widget/TradeParameters/SlippageParameter/EditSlippage.js +0 -10
  212. package/dist/components/widget/TradeParameters/SlippageParameter/EditSlippage.js.map +1 -1
  213. package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js +0 -10
  214. package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
  215. package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js +0 -10
  216. package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
  217. package/dist/components/widget/TradeParameters/TradeParameters.js +0 -10
  218. package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
  219. package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js +0 -10
  220. package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
  221. package/dist/components/widget/TradeParameters/state/constants.js +0 -10
  222. package/dist/components/widget/TradeParameters/state/constants.js.map +1 -1
  223. package/dist/components/widget/TradeParameters/state/deltaParamActionsAtom.js +2 -13
  224. package/dist/components/widget/TradeParameters/state/deltaParamActionsAtom.js.map +1 -1
  225. package/dist/components/widget/TradeParameters/state/deltaParamAtom.js +3 -15
  226. package/dist/components/widget/TradeParameters/state/deltaParamAtom.js.map +1 -1
  227. package/dist/components/widget/TradeParameters/state/slippageParamActionsAtom.js +2 -13
  228. package/dist/components/widget/TradeParameters/state/slippageParamActionsAtom.js.map +1 -1
  229. package/dist/components/widget/TradeParameters/state/slippageParamAtom.js +3 -15
  230. package/dist/components/widget/TradeParameters/state/slippageParamAtom.js.map +1 -1
  231. package/dist/components/widget/Warning/InsufficientBalanceMessage.js +0 -10
  232. package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
  233. package/dist/components/widget/Warning/Warning.js +0 -10
  234. package/dist/components/widget/Warning/Warning.js.map +1 -1
  235. package/dist/components/widget/Warning/WarningMessage.js +0 -10
  236. package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
  237. package/dist/components/widget/WrapEth/WrapEthContent.js +0 -10
  238. package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
  239. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +0 -10
  240. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
  241. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +0 -10
  242. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
  243. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +0 -10
  244. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  245. package/dist/components/widget/YouGet/YouGet.js +0 -10
  246. package/dist/components/widget/YouGet/YouGet.js.map +1 -1
  247. package/dist/hooks/gas/config.js +0 -10
  248. package/dist/hooks/gas/config.js.map +1 -1
  249. package/dist/hooks/gas/useGasPrices.js +0 -10
  250. package/dist/hooks/gas/useGasPrices.js.map +1 -1
  251. package/dist/hooks/gas/utils.js +0 -10
  252. package/dist/hooks/gas/utils.js.map +1 -1
  253. package/dist/hooks/getCode/query.js +0 -10
  254. package/dist/hooks/getCode/query.js.map +1 -1
  255. package/dist/hooks/getCode/useIsAccountContract.js +0 -10
  256. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
  257. package/dist/hooks/getCode/useIsContractAtAddress.js +0 -10
  258. package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
  259. package/dist/hooks/permit/hooks/useGetPermitInfo.js +0 -10
  260. package/dist/hooks/permit/hooks/useGetPermitInfo.js.map +1 -1
  261. package/dist/hooks/permit/hooks/useGetSafePermitInfo.js +0 -10
  262. package/dist/hooks/permit/hooks/useGetSafePermitInfo.js.map +1 -1
  263. package/dist/hooks/permit/hooks/usePermit1Nonce.js +1 -12
  264. package/dist/hooks/permit/hooks/usePermit1Nonce.js.map +1 -1
  265. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js +0 -10
  266. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js.map +1 -1
  267. package/dist/hooks/permit/hooks/useSignPermit.js +0 -10
  268. package/dist/hooks/permit/hooks/useSignPermit.js.map +1 -1
  269. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js +0 -10
  270. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js.map +1 -1
  271. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js +0 -10
  272. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js.map +1 -1
  273. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js +0 -10
  274. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js.map +1 -1
  275. package/dist/hooks/permit/hooks/useTryToSignPermit1.js +0 -10
  276. package/dist/hooks/permit/hooks/useTryToSignPermit1.js.map +1 -1
  277. package/dist/hooks/permit/utils/abi.js +0 -10
  278. package/dist/hooks/permit/utils/abi.js.map +1 -1
  279. package/dist/hooks/permit/utils/constants.js +0 -10
  280. package/dist/hooks/permit/utils/constants.js.map +1 -1
  281. package/dist/hooks/permit/utils/construct.js +0 -10
  282. package/dist/hooks/permit/utils/construct.js.map +1 -1
  283. package/dist/hooks/permit/utils/detect.js +0 -10
  284. package/dist/hooks/permit/utils/detect.js.map +1 -1
  285. package/dist/hooks/permit/utils/domainSeparator.js +0 -10
  286. package/dist/hooks/permit/utils/domainSeparator.js.map +1 -1
  287. package/dist/hooks/permit/utils/encodeArgs.js +0 -10
  288. package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
  289. package/dist/hooks/permit/utils/trySignPermit1.js +0 -10
  290. package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
  291. package/dist/hooks/permit/utils/utils.js +0 -10
  292. package/dist/hooks/permit/utils/utils.js.map +1 -1
  293. package/dist/hooks/sdk/useGetContracts.js +0 -10
  294. package/dist/hooks/sdk/useGetContracts.js.map +1 -1
  295. package/dist/hooks/sdk/useSpender.js +0 -10
  296. package/dist/hooks/sdk/useSpender.js.map +1 -1
  297. package/dist/hooks/swap/prices/delta/bridge/utils.js +0 -10
  298. package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
  299. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +0 -10
  300. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  301. package/dist/hooks/swap/prices/delta/orders/utils.js +0 -10
  302. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  303. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +0 -10
  304. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
  305. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +0 -10
  306. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  307. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js +0 -10
  308. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
  309. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +0 -10
  310. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  311. package/dist/hooks/swap/prices/market/mutations/useBuildTx.js +0 -10
  312. package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
  313. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js +0 -10
  314. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
  315. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +0 -10
  316. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  317. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js +0 -10
  318. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
  319. package/dist/hooks/swap/prices/usePricesParams.js +0 -10
  320. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  321. package/dist/hooks/swap/prices/useSwapPrices.js +0 -11
  322. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  323. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +0 -10
  324. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  325. package/dist/hooks/swap/tradeFlow/common/errors.js +0 -10
  326. package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
  327. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +2 -13
  328. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  329. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +2 -11
  330. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  331. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +2 -13
  332. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  333. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +2 -11
  334. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  335. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js +0 -10
  336. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
  337. package/dist/hooks/tokens/allowance/useTokenAllowance.js +0 -10
  338. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  339. package/dist/hooks/tokens/balances/queries.js +0 -10
  340. package/dist/hooks/tokens/balances/queries.js.map +1 -1
  341. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +0 -10
  342. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
  343. package/dist/hooks/tokens/balances/useInvalidateTokenData.js +0 -10
  344. package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
  345. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +0 -10
  346. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
  347. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +0 -10
  348. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
  349. package/dist/hooks/tokens/balances/useTokenBalance.js +0 -10
  350. package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
  351. package/dist/hooks/tokens/prices/queries.js +0 -10
  352. package/dist/hooks/tokens/prices/queries.js.map +1 -1
  353. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js +0 -10
  354. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
  355. package/dist/hooks/tokens/prices/useTokenPrices.js +0 -10
  356. package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
  357. package/dist/hooks/tokens/useNativeToken.js +0 -10
  358. package/dist/hooks/tokens/useNativeToken.js.map +1 -1
  359. package/dist/hooks/tokens/useTokenLists.js +0 -10
  360. package/dist/hooks/tokens/useTokenLists.js.map +1 -1
  361. package/dist/hooks/tokens/useTokensByAddress.js +0 -10
  362. package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
  363. package/dist/hooks/tokens/useTokensFromAcross.js +0 -10
  364. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  365. package/dist/hooks/txs/mutations/useApprove.js +0 -10
  366. package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
  367. package/dist/hooks/txs/mutations/useDepositWeth.js +0 -10
  368. package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
  369. package/dist/hooks/txs/mutations/useSendTx.js +0 -10
  370. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  371. package/dist/hooks/txs/queries/useAwaitTx.js +0 -10
  372. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  373. package/dist/hooks/useAvailableCrosses.js +0 -10
  374. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  375. package/dist/hooks/useBridgeInfo.js +0 -10
  376. package/dist/hooks/useBridgeInfo.js.map +1 -1
  377. package/dist/hooks/useCurrentChain.js +0 -10
  378. package/dist/hooks/useCurrentChain.js.map +1 -1
  379. package/dist/hooks/useDebouncedInputState.js +0 -10
  380. package/dist/hooks/useDebouncedInputState.js.map +1 -1
  381. package/dist/hooks/useGlobalDeltaEnabled.js +0 -10
  382. package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
  383. package/dist/hooks/useIsCrosschainPossible.js +0 -10
  384. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  385. package/dist/hooks/useMinViemClient.js +0 -10
  386. package/dist/hooks/useMinViemClient.js.map +1 -1
  387. package/dist/hooks/useSDK.js +0 -10
  388. package/dist/hooks/useSDK.js.map +1 -1
  389. package/dist/hooks/useSlippage.js +0 -10
  390. package/dist/hooks/useSlippage.js.map +1 -1
  391. package/dist/index.d.ts +1 -0
  392. package/dist/index.d.ts.map +1 -1
  393. package/dist/index.js +0 -11
  394. package/dist/index.js.map +1 -1
  395. package/dist/lib/constants/delta.js +0 -10
  396. package/dist/lib/constants/delta.js.map +1 -1
  397. package/dist/lib/constants/index.js +0 -10
  398. package/dist/lib/constants/index.js.map +1 -1
  399. package/dist/lib/constants/time.js +0 -10
  400. package/dist/lib/constants/time.js.map +1 -1
  401. package/dist/lib/constants/weth.js +0 -10
  402. package/dist/lib/constants/weth.js.map +1 -1
  403. package/dist/lib/ipfs.js +0 -10
  404. package/dist/lib/ipfs.js.map +1 -1
  405. package/dist/lib/queryClient.js +0 -10
  406. package/dist/lib/queryClient.js.map +1 -1
  407. package/dist/lib/utils/delta.js +0 -10
  408. package/dist/lib/utils/delta.js.map +1 -1
  409. package/dist/lib/utils/dexes.js +0 -10
  410. package/dist/lib/utils/dexes.js.map +1 -1
  411. package/dist/lib/utils/explorer.js +0 -10
  412. package/dist/lib/utils/explorer.js.map +1 -1
  413. package/dist/lib/utils/fee.js +0 -10
  414. package/dist/lib/utils/fee.js.map +1 -1
  415. package/dist/lib/utils/formatFiatPrice.js +0 -10
  416. package/dist/lib/utils/formatFiatPrice.js.map +1 -1
  417. package/dist/lib/utils/formatTokenBalance.js +0 -10
  418. package/dist/lib/utils/formatTokenBalance.js.map +1 -1
  419. package/dist/lib/utils/index.js +0 -10
  420. package/dist/lib/utils/index.js.map +1 -1
  421. package/dist/lib/utils/price.js +0 -10
  422. package/dist/lib/utils/price.js.map +1 -1
  423. package/dist/lib/utils/priceImpact.js +0 -10
  424. package/dist/lib/utils/priceImpact.js.map +1 -1
  425. package/dist/lib/utils/rate.js +0 -10
  426. package/dist/lib/utils/rate.js.map +1 -1
  427. package/dist/lib/utils/removeZeroDecimals.js +0 -10
  428. package/dist/lib/utils/removeZeroDecimals.js.map +1 -1
  429. package/dist/lib/utils/slippage.js +0 -10
  430. package/dist/lib/utils/slippage.js.map +1 -1
  431. package/dist/lib/utils/toDecimal.js +0 -10
  432. package/dist/lib/utils/toDecimal.js.map +1 -1
  433. package/dist/lib/utils/toasts.js +0 -10
  434. package/dist/lib/utils/toasts.js.map +1 -1
  435. package/dist/lib/web3/privy/config.js +1 -11
  436. package/dist/lib/web3/privy/config.js.map +1 -1
  437. package/dist/lib/web3/wagmi/config.js +1 -11
  438. package/dist/lib/web3/wagmi/config.js.map +1 -1
  439. package/dist/lib/web3/wagmi/constants.js +0 -10
  440. package/dist/lib/web3/wagmi/constants.js.map +1 -1
  441. package/dist/lib/web3/wagmi/transports.js +0 -10
  442. package/dist/lib/web3/wagmi/transports.js.map +1 -1
  443. package/dist/lib/web3/wagmi/utils.js +0 -10
  444. package/dist/lib/web3/wagmi/utils.js.map +1 -1
  445. package/dist/styles.css +3462 -193
  446. package/dist/styles2.css +256 -0
  447. package/dist/test/Configurator.d.ts.map +1 -1
  448. package/dist/test/TestButton.d.ts +2 -0
  449. package/dist/test/TestButton.d.ts.map +1 -0
  450. package/dist/test/connect/AccountDisplay.js +0 -10
  451. package/dist/test/connect/AccountDisplay.js.map +1 -1
  452. package/dist/test/connect/App.js +0 -10
  453. package/dist/test/connect/App.js.map +1 -1
  454. package/dist/test/connect/ConnectWallet.js +0 -10
  455. package/dist/test/connect/ConnectWallet.js.map +1 -1
  456. package/dist/test/connect/WagmiProfile.js +0 -10
  457. package/dist/test/connect/WagmiProfile.js.map +1 -1
  458. package/dist/test/connect/WalletActions.js +0 -10
  459. package/dist/test/connect/WalletActions.js.map +1 -1
  460. package/dist/test/logger-demo.d.ts +5 -0
  461. package/dist/test/logger-demo.d.ts.map +1 -0
  462. package/dist/tokens/blacklist.js +0 -10
  463. package/dist/tokens/blacklist.js.map +1 -1
  464. package/dist/tokens/constants.js +0 -10
  465. package/dist/tokens/constants.js.map +1 -1
  466. package/dist/tokens/constructor.js +0 -10
  467. package/dist/tokens/constructor.js.map +1 -1
  468. package/dist/tokens/defaultTokens.js +0 -10
  469. package/dist/tokens/defaultTokens.js.map +1 -1
  470. package/dist/tokens/hooks.js +0 -10
  471. package/dist/tokens/hooks.js.map +1 -1
  472. package/dist/tokens/lists/constants.js +0 -10
  473. package/dist/tokens/lists/constants.js.map +1 -1
  474. package/dist/tokens/lists/download.js +0 -10
  475. package/dist/tokens/lists/download.js.map +1 -1
  476. package/dist/tokens/lists/hooks.js +0 -10
  477. package/dist/tokens/lists/hooks.js.map +1 -1
  478. package/dist/tokens/lists/state/observer.js +0 -10
  479. package/dist/tokens/lists/state/observer.js.map +1 -1
  480. package/dist/tokens/lists/state/tokenListsActionsAtom.js +2 -13
  481. package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
  482. package/dist/tokens/lists/state/tokenListsStateAtom.js +2 -14
  483. package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
  484. package/dist/tokens/lists/utils.js +0 -10
  485. package/dist/tokens/lists/utils.js.map +1 -1
  486. package/dist/tokens/overrides.js +0 -10
  487. package/dist/tokens/overrides.js.map +1 -1
  488. package/dist/tokens/queries.js +0 -10
  489. package/dist/tokens/queries.js.map +1 -1
  490. package/dist/tokens/stabeCoins/hooks.js +0 -10
  491. package/dist/tokens/stabeCoins/hooks.js.map +1 -1
  492. package/dist/tokens/stabeCoins/index.js +0 -10
  493. package/dist/tokens/stabeCoins/index.js.map +1 -1
  494. package/dist/tokens/state/constructTokens.js +0 -10
  495. package/dist/tokens/state/constructTokens.js.map +1 -1
  496. package/dist/tokens/state/tokensAtom.js +2 -13
  497. package/dist/tokens/state/tokensAtom.js.map +1 -1
  498. package/dist/tokens/utils/areTokensSame.js +0 -10
  499. package/dist/tokens/utils/areTokensSame.js.map +1 -1
  500. package/dist/tokens/utils/eth.js +0 -10
  501. package/dist/tokens/utils/eth.js.map +1 -1
  502. package/dist/tokens/utils/filtering.js +0 -10
  503. package/dist/tokens/utils/filtering.js.map +1 -1
  504. package/dist/tokens/utils/sets.js +0 -10
  505. package/dist/tokens/utils/sets.js.map +1 -1
  506. package/dist/tokens/utils/sorting.js +0 -10
  507. package/dist/tokens/utils/sorting.js.map +1 -1
  508. package/dist/widget/DevTools.d.ts +2 -0
  509. package/dist/widget/DevTools.d.ts.map +1 -0
  510. package/dist/widget/DevTools.js +24 -0
  511. package/dist/widget/DevTools.js.map +1 -0
  512. package/dist/widget/Updaters.js +0 -10
  513. package/dist/widget/Updaters.js.map +1 -1
  514. package/dist/widget/across/utils.js +0 -10
  515. package/dist/widget/across/utils.js.map +1 -1
  516. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js +0 -10
  517. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  518. package/dist/widget/constants.js +0 -10
  519. package/dist/widget/constants.js.map +1 -1
  520. package/dist/widget/index.d.ts.map +1 -1
  521. package/dist/widget/index.js +34 -29
  522. package/dist/widget/index.js.map +1 -1
  523. package/dist/widget/inputs/hooks/useTokenFromInputProps.js +0 -11
  524. package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  525. package/dist/widget/inputs/hooks/useTokenSwitcherProps.js +0 -10
  526. package/dist/widget/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
  527. package/dist/widget/inputs/hooks/useTokenToInputProps.js +0 -10
  528. package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
  529. package/dist/widget/inputs/state/inputAmountAtom.js +6 -20
  530. package/dist/widget/inputs/state/inputAmountAtom.js.map +1 -1
  531. package/dist/widget/inputs/state/selectedTokenActionsAtom.js +6 -19
  532. package/dist/widget/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  533. package/dist/widget/inputs/state/selectedTokenAtom.js +2 -15
  534. package/dist/widget/inputs/state/selectedTokenAtom.js.map +1 -1
  535. package/dist/widget/inputs/state/subscriptions.js +0 -10
  536. package/dist/widget/inputs/state/subscriptions.js.map +1 -1
  537. package/dist/widget/state/chainToAtom.js +2 -13
  538. package/dist/widget/state/chainToAtom.js.map +1 -1
  539. package/dist/widget/state/configActionsAtom.js +2 -13
  540. package/dist/widget/state/configActionsAtom.js.map +1 -1
  541. package/dist/widget/state/configAtom.js +1 -12
  542. package/dist/widget/state/configAtom.js.map +1 -1
  543. package/dist/widget/state/containerAtom.js +1 -12
  544. package/dist/widget/state/containerAtom.js.map +1 -1
  545. package/dist/widget/state/currentSwapInputAtom.js +1 -12
  546. package/dist/widget/state/currentSwapInputAtom.js.map +1 -1
  547. package/dist/widget/state/isCrosschainAtom.js +2 -13
  548. package/dist/widget/state/isCrosschainAtom.js.map +1 -1
  549. package/dist/widget/subscriptions.js +0 -10
  550. package/dist/widget/subscriptions.js.map +1 -1
  551. package/dist/widget/swapDetails/fees.js +0 -10
  552. package/dist/widget/swapDetails/fees.js.map +1 -1
  553. package/dist/widget/swapDetails/orderRouting.js +0 -10
  554. package/dist/widget/swapDetails/orderRouting.js.map +1 -1
  555. package/dist/widget/swapDetails/priceImpact.js +0 -10
  556. package/dist/widget/swapDetails/priceImpact.js.map +1 -1
  557. package/dist/widget/swapDetails/useSwapDetailsListProps.js +0 -10
  558. package/dist/widget/swapDetails/useSwapDetailsListProps.js.map +1 -1
  559. package/dist/widget/swapDetails/youGet.js +0 -10
  560. package/dist/widget/swapDetails/youGet.js.map +1 -1
  561. package/package.json +2 -1
  562. package/dist/components/widget/SwapModeSwitcher/state/types.js +0 -11
  563. package/dist/components/widget/SwapModeSwitcher/state/types.js.map +0 -1
  564. package/dist/components/widget/TokenBadge/types.js +0 -11
  565. package/dist/components/widget/TokenBadge/types.js.map +0 -1
  566. package/dist/hooks/txs/index.js +0 -13
  567. package/dist/hooks/txs/index.js.map +0 -1
  568. package/dist/lib/utils/logger.js +0 -11
  569. package/dist/lib/utils/logger.js.map +0 -1
  570. package/dist/styles/global.css.js +0 -4
  571. package/dist/styles/global.css.js.map +0 -1
  572. package/dist/tokens/state/types.js +0 -11
  573. package/dist/tokens/state/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type { DeltaOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { createLogger } from \"@/lib/utils\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n isCancellable: boolean;\n step?: DeltaOrderStepKey;\n explorerLink?: string;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n};\n\nconst logger = createLogger(\"DeltaSwapStep\");\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n\n let step: DeltaOrderStepKey | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n step = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n step = \"order-execution\";\n } else if (deltaFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"auction\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && deltaFlow.approval.isTxPending;\n\n const isOrderBeingSigned = step === \"auction\";\n\n const isCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n return {\n startDeltaSwap,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n result: deltaFlow.result,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","deltaOrderExecution","approvalIsStarted","isTxPending","isOrderBeingSigned","isCancellable","orderId","order","id","explorerLink","constructExplorerOrderDetailsLink","undefined","t0","error","isUserCancelledError","t1","result"],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type { DeltaOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { createLogger } from \"@/lib/utils\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n isCancellable: boolean;\n step?: DeltaOrderStepKey;\n explorerLink?: string;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n};\n\nconst logger = createLogger(\"DeltaSwapStep\");\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n\n let step: DeltaOrderStepKey | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n step = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n step = \"order-execution\";\n } else if (deltaFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"auction\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && deltaFlow.approval.isTxPending;\n\n const isOrderBeingSigned = step === \"auction\";\n\n const isCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n return {\n startDeltaSwap,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n result: deltaFlow.result,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","deltaOrderExecution","approvalIsStarted","isTxPending","isOrderBeingSigned","isCancellable","orderId","order","id","explorerLink","constructExplorerOrderDetailsLink","undefined","t0","error","isUserCancelledError","t1","result"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { d as distExports } from '../../../_virtual/index.js';
2
2
  import { useGenericTokenAllowanceMin } from '../../tokens/allowance/useGenericTokenAllowance.js';
3
- import '../../txs/index.js';
3
+ import { useApprove } from '../../txs/mutations/useApprove.js';
4
+ import { useAwaitTx, useEnsureTxReceipt } from '../../txs/queries/useAwaitTx.js';
4
5
  import { useChainId, useAccount } from 'wagmi';
5
6
  import { useSendMarketSwapTx } from '../prices/market/mutations/useSendMarketSwapTx.js';
6
7
  import { useBuildTx } from '../prices/market/mutations/useBuildTx.js';
7
8
  import { assert } from 'ts-essentials';
8
- import { useAwaitTx, useEnsureTxReceipt } from '../../txs/queries/useAwaitTx.js';
9
9
  import { applySlippage } from '../../../lib/utils/price.js';
10
10
  import { useSlippage } from '../../useSlippage.js';
11
11
  import { useMutation } from '@tanstack/react-query';
@@ -14,18 +14,7 @@ import { useInvalidateTokenDataQuery } from '../../tokens/balances/useInvalidate
14
14
  import { UserCancelledError } from './common/errors.js';
15
15
  import { useReceiverAddressValue } from '../../../components/widget/ReceiverAddress/state/receiverAddressAtom.js';
16
16
  import { useSignTokenPermit1, useMarkPermit1NonceAsUsed } from '../../permit/hooks/useSignTokenFromPermit1.js';
17
- import { useApprove } from '../../txs/mutations/useApprove.js';
18
17
 
19
- globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
20
- cache: /* @__PURE__ */ new Map(),
21
- get(name, inst) {
22
- if (this.cache.has(name)) {
23
- return this.cache.get(name);
24
- }
25
- this.cache.set(name, inst);
26
- return inst;
27
- }
28
- };
29
18
  const MARKET_SWAP_MUTATION_KEY = "runMarketSwapFlow";
30
19
  function useMarketFlow(t0) {
31
20
  const $ = distExports.c(117);
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport { useBuildTx } from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/toasts\";\nimport {\n useMarkPermit1NonceAsUsed,\n useSignTokenPermit1,\n type SignedPermitResult,\n} from \"@/hooks/permit/hooks/useSignTokenFromPermit1\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: \"marketSwap\";\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const chainId = useChainId();\n\n /* 1. Get allowance for tokenFrom */\n\n const allowance = useGenericTokenAllowanceMin({\n tokenAddress: marketPrice?.srcToken,\n amountToApproveInWei: marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n chainId,\n });\n\n /* 2.1. submit Approve tx if necessary */\n\n const approveTxMut = useApprove({\n token: marketPrice?.srcToken\n ? { address: marketPrice.srcToken }\n : undefined,\n allowanceData: { allowanceToSet: allowance.allowanceToSet },\n spender: allowance.spender,\n onSuccess: () => {\n console.log(\"Approve tx success\");\n },\n onError: (error) => {\n console.error(\"Approve tx error\", error);\n },\n });\n\n /* 2.2. sign Permit1 */\n\n const signPermit1Mut = useSignTokenPermit1({\n token: {\n address: marketPrice?.srcToken as Address,\n network: chainId,\n },\n value: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n enabled: allowance.needsApproval,\n onSuccess: (signature) => {\n console.log(\"Permit1 signature\", signature);\n },\n onError: (error) => {\n console.error(\"Permit1 error\", error);\n },\n });\n\n const signPermit: UseMarketFlowResult[\"signPermit\"] = {\n isPermitSupported: signPermit1Mut.isPermitSupported,\n isPermitReadyToSign: signPermit1Mut.isPermitReadyToSign,\n amountToPermit: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n isLoadingPermitData: signPermit1Mut.permitFetchingState.isPending,\n isSigningPermit: signPermit1Mut.permitSigningState.isPending,\n isPermitSigned: signPermit1Mut.permitSigningState.isSuccess,\n signature: signPermit1Mut.signature,\n permitEncodedArgs: signPermit1Mut.permit1EncodedArgs,\n isPending: signPermit1Mut.isPending,\n isSuccess: signPermit1Mut.isSuccess,\n isError: signPermit1Mut.isError,\n error: signPermit1Mut.error,\n };\n\n /* 3. await Approve tx (if not using Permit) */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const approval: UseMarketFlowResult[\"approval\"] = {\n /* allowance fetching */\n needsApproval: allowance.needsApproval,\n allowanceToSet: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowance.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowance.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowance.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess: !allowance.needsApproval || approveTxMined.isSuccess, // final success\n error: allowance.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n console.log(\"Build tx success\");\n },\n onError: (error) => {\n console.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n console.log(\"Swap tx success\");\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n };\n\n const { address: account } = useAccount();\n const { resolvedSlippage } = useSlippage();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1NonceAsUsed({\n chainId,\n });\n\n const submitSwapTx: UseMarketFlowResult[\"runMarketSwapFlow\"] = async ({\n onTxSent,\n } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermit1Mut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n if (approval.needsApproval) {\n // need allowance\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync();\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n console.log(\"🚀 ~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit1\n signedPermitResult = await signPermit1Mut.signPermit1Async();\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n assert(marketPrice, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPrice.srcAmount,\n destAmount: marketPrice.destAmount,\n },\n resolvedSlippage,\n marketPrice.side\n );\n\n const txParams = await buildTxMut.mutateAsync({\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPrice.srcToken,\n destToken: marketPrice.destToken,\n srcDecimals: marketPrice.srcDecimals,\n destDecimals: marketPrice.destDecimals,\n\n /* @TODO fill in when available, at least `partner`\n referrer: \"\",\n partner: \"\",\n partnerAddress: \"\",\n partnerFeeBps: 0, \n takeSurplus: false,*/\n permit: signedPermitResult?.permit1EncodedArgs, // just signed Permit signature\n\n priceRoute: marketPrice,\n ...amountsAfterSlippage,\n },\n /* swapTxOptions: {\n ignoreChecks: true,\n ignoreGasEstimate: true,\n ignoreAllowance: true,\n onlyParams: true,\n @TODO turn on ignore options when necessary (for Safe),\n add gasPrice params\n }, */\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n try {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n if (onTxSent) {\n onTxSent({\n txHash: swapTxHash,\n actionType: \"swap\",\n receiptPromise: swapTxReceiptPromise,\n });\n }\n\n const swapTxReceipt = await swapTxReceiptPromise;\n console.log(\"🚀 ~ swapTx ~ receipt:\", swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"marketSwap\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n },\n marketPrice,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n console.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n console.log(\"Swap tx settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n },\n });\n\n const reset = () => {\n approveTxMut.reset();\n signPermit1Mut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n marketSwapMut.reset();\n };\n\n /* 7. return result */\n return {\n chainId,\n runMarketSwapFlow: marketSwapMut.mutateAsync,\n reset,\n cancelFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n };\n}\n"],"names":["MARKET_SWAP_MUTATION_KEY","useMarketFlow","t0","$","_c","marketPrice","chainId","useChainId","t1","srcToken","t2","srcAmount","t3","tokenAddress","amountToApproveInWei","spenderContractType","allowance","useGenericTokenAllowanceMin","t4","address","undefined","t5","allowanceToSet","t6","spender","token","allowanceData","onSuccess","_temp","onError","_temp2","approveTxMut","useApprove","t7","t8","network","t9","t10","needsApproval","value","enabled","_temp3","_temp4","signPermit1Mut","useSignTokenPermit1","t11","t12","error","isError","isPending","isPermitReadyToSign","isPermitSupported","isSuccess","permit1EncodedArgs","permitFetchingState","permitSigningState","signature","amountToPermit","isLoadingPermitData","isSigningPermit","isPermitSigned","permitEncodedArgs","signPermit","t13","txHash","hash","approveTxMined","useAwaitTx","t14","t15","isLoading","t16","t17","t18","t19","isLoadingPrerequisites","data","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","approval","t20","Symbol","for","_temp5","_temp6","t21","mutationOptions","buildTxMut","useBuildTx","t22","buildTxParams","t23","_temp7","_temp8","sendSwapTxMut","useSendMarketSwapTx","t24","swapTxMined","t25","t26","t27","t28","swap","account","useAccount","resolvedSlippage","useSlippage","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t29","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","t30","markNonceAsUsed","clearNonce","useMarkPermit1NonceAsUsed","t31","t32","onTxSent","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","approveAsync","throwIfAborted","approveTxReceiptPromise","onReplaced","console","log","actionType","receiptPromise","signPermit1Async","assert","amountsAfterSlippage","applySlippage","destAmount","side","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","priceRoute","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","data_0","swapTxReceipt","tradeFlowType","approve","t33","submitSwapTx","invalidateTokenData","useInvalidateTokenDataQuery","nonces","t34","mutationFn","mutationKey","_temp9","_temp0","onSettled","marketSwapMut","useMutation","t35","t36","runMarketSwapFlow","result","error_4","data_1","error_2","error_1","error_0"],"mappings":"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"}
1
+ {"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport { useBuildTx } from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/toasts\";\nimport {\n useMarkPermit1NonceAsUsed,\n useSignTokenPermit1,\n type SignedPermitResult,\n} from \"@/hooks/permit/hooks/useSignTokenFromPermit1\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: \"marketSwap\";\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const chainId = useChainId();\n\n /* 1. Get allowance for tokenFrom */\n\n const allowance = useGenericTokenAllowanceMin({\n tokenAddress: marketPrice?.srcToken,\n amountToApproveInWei: marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n chainId,\n });\n\n /* 2.1. submit Approve tx if necessary */\n\n const approveTxMut = useApprove({\n token: marketPrice?.srcToken\n ? { address: marketPrice.srcToken }\n : undefined,\n allowanceData: { allowanceToSet: allowance.allowanceToSet },\n spender: allowance.spender,\n onSuccess: () => {\n console.log(\"Approve tx success\");\n },\n onError: (error) => {\n console.error(\"Approve tx error\", error);\n },\n });\n\n /* 2.2. sign Permit1 */\n\n const signPermit1Mut = useSignTokenPermit1({\n token: {\n address: marketPrice?.srcToken as Address,\n network: chainId,\n },\n value: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n enabled: allowance.needsApproval,\n onSuccess: (signature) => {\n console.log(\"Permit1 signature\", signature);\n },\n onError: (error) => {\n console.error(\"Permit1 error\", error);\n },\n });\n\n const signPermit: UseMarketFlowResult[\"signPermit\"] = {\n isPermitSupported: signPermit1Mut.isPermitSupported,\n isPermitReadyToSign: signPermit1Mut.isPermitReadyToSign,\n amountToPermit: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n isLoadingPermitData: signPermit1Mut.permitFetchingState.isPending,\n isSigningPermit: signPermit1Mut.permitSigningState.isPending,\n isPermitSigned: signPermit1Mut.permitSigningState.isSuccess,\n signature: signPermit1Mut.signature,\n permitEncodedArgs: signPermit1Mut.permit1EncodedArgs,\n isPending: signPermit1Mut.isPending,\n isSuccess: signPermit1Mut.isSuccess,\n isError: signPermit1Mut.isError,\n error: signPermit1Mut.error,\n };\n\n /* 3. await Approve tx (if not using Permit) */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const approval: UseMarketFlowResult[\"approval\"] = {\n /* allowance fetching */\n needsApproval: allowance.needsApproval,\n allowanceToSet: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowance.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowance.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowance.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess: !allowance.needsApproval || approveTxMined.isSuccess, // final success\n error: allowance.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n console.log(\"Build tx success\");\n },\n onError: (error) => {\n console.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n console.log(\"Swap tx success\");\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n };\n\n const { address: account } = useAccount();\n const { resolvedSlippage } = useSlippage();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1NonceAsUsed({\n chainId,\n });\n\n const submitSwapTx: UseMarketFlowResult[\"runMarketSwapFlow\"] = async ({\n onTxSent,\n } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermit1Mut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n if (approval.needsApproval) {\n // need allowance\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync();\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n console.log(\"🚀 ~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit1\n signedPermitResult = await signPermit1Mut.signPermit1Async();\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n assert(marketPrice, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPrice.srcAmount,\n destAmount: marketPrice.destAmount,\n },\n resolvedSlippage,\n marketPrice.side\n );\n\n const txParams = await buildTxMut.mutateAsync({\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPrice.srcToken,\n destToken: marketPrice.destToken,\n srcDecimals: marketPrice.srcDecimals,\n destDecimals: marketPrice.destDecimals,\n\n /* @TODO fill in when available, at least `partner`\n referrer: \"\",\n partner: \"\",\n partnerAddress: \"\",\n partnerFeeBps: 0, \n takeSurplus: false,*/\n permit: signedPermitResult?.permit1EncodedArgs, // just signed Permit signature\n\n priceRoute: marketPrice,\n ...amountsAfterSlippage,\n },\n /* swapTxOptions: {\n ignoreChecks: true,\n ignoreGasEstimate: true,\n ignoreAllowance: true,\n onlyParams: true,\n @TODO turn on ignore options when necessary (for Safe),\n add gasPrice params\n }, */\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n try {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n if (onTxSent) {\n onTxSent({\n txHash: swapTxHash,\n actionType: \"swap\",\n receiptPromise: swapTxReceiptPromise,\n });\n }\n\n const swapTxReceipt = await swapTxReceiptPromise;\n console.log(\"🚀 ~ swapTx ~ receipt:\", swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"marketSwap\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n },\n marketPrice,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n console.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n console.log(\"Swap tx settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n },\n });\n\n const reset = () => {\n approveTxMut.reset();\n signPermit1Mut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n marketSwapMut.reset();\n };\n\n /* 7. return result */\n return {\n chainId,\n runMarketSwapFlow: marketSwapMut.mutateAsync,\n reset,\n cancelFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n };\n}\n"],"names":["MARKET_SWAP_MUTATION_KEY","useMarketFlow","t0","$","_c","marketPrice","chainId","useChainId","t1","srcToken","t2","srcAmount","t3","tokenAddress","amountToApproveInWei","spenderContractType","allowance","useGenericTokenAllowanceMin","t4","address","undefined","t5","allowanceToSet","t6","spender","token","allowanceData","onSuccess","_temp","onError","_temp2","approveTxMut","useApprove","t7","t8","network","t9","t10","needsApproval","value","enabled","_temp3","_temp4","signPermit1Mut","useSignTokenPermit1","t11","t12","error","isError","isPending","isPermitReadyToSign","isPermitSupported","isSuccess","permit1EncodedArgs","permitFetchingState","permitSigningState","signature","amountToPermit","isLoadingPermitData","isSigningPermit","isPermitSigned","permitEncodedArgs","signPermit","t13","txHash","hash","approveTxMined","useAwaitTx","t14","t15","isLoading","t16","t17","t18","t19","isLoadingPrerequisites","data","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","approval","t20","Symbol","for","_temp5","_temp6","t21","mutationOptions","buildTxMut","useBuildTx","t22","buildTxParams","t23","_temp7","_temp8","sendSwapTxMut","useSendMarketSwapTx","t24","swapTxMined","t25","t26","t27","t28","swap","account","useAccount","resolvedSlippage","useSlippage","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t29","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","t30","markNonceAsUsed","clearNonce","useMarkPermit1NonceAsUsed","t31","t32","onTxSent","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","approveAsync","throwIfAborted","approveTxReceiptPromise","onReplaced","console","log","actionType","receiptPromise","signPermit1Async","assert","amountsAfterSlippage","applySlippage","destAmount","side","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","priceRoute","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","data_0","swapTxReceipt","tradeFlowType","approve","t33","submitSwapTx","invalidateTokenData","useInvalidateTokenDataQuery","nonces","t34","mutationFn","mutationKey","_temp9","_temp0","onSettled","marketSwapMut","useMutation","t35","t36","runMarketSwapFlow","result","error_4","data_1","error_2","error_1","error_0"],"mappings":"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"}
@@ -1,19 +1,10 @@
1
1
  import { d as distExports } from '../../../_virtual/index.js';
2
2
  import { useMarketFlow } from './useMarketFlow.js';
3
3
  import { constructTxLinkForChain } from '../../../lib/utils/explorer.js';
4
- import '../../../lib/utils/index.js';
4
+ import 'clsx';
5
+ import 'tailwind-merge';
5
6
  import { isUserCancelledError } from './common/errors.js';
6
7
 
7
- globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
8
- cache: /* @__PURE__ */ new Map(),
9
- get(name, inst) {
10
- if (this.cache.has(name)) {
11
- return this.cache.get(name);
12
- }
13
- this.cache.set(name, inst);
14
- return inst;
15
- }
16
- };
17
8
  function useMarketSwapStep(options) {
18
9
  const $ = distExports.c(16);
19
10
  const marketFlow = useMarketFlow(options);
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type { MarketSwapStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { createLogger } from \"@/lib/utils\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n isCancellable: boolean;\n // @TODO use Market Swap steps\n step?: MarketSwapStepKey;\n explorerLink?: string;\n error: Error | null;\n result?: SubmitSwapResult;\n};\n\nconst logger = createLogger(\"MarketSwapStep\");\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n\n let step: MarketSwapStepKey | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n step = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxPending) {\n step = \"swap-tx-execution\";\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"swap-tx-confirmation\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation = step === \"swap-tx-confirmation\";\n\n const notYetSwapTxSent =\n step === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n result: marketFlow.result,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isTxPending","approvalIsStarted","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCancellable","txHash","explorerLink","constructTxLinkForChain","chainId","undefined","t0","error","isUserCancelledError","t1","result"],"mappings":"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"}
1
+ {"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type { MarketSwapStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { createLogger } from \"@/lib/utils\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n isCancellable: boolean;\n // @TODO use Market Swap steps\n step?: MarketSwapStepKey;\n explorerLink?: string;\n error: Error | null;\n result?: SubmitSwapResult;\n};\n\nconst logger = createLogger(\"MarketSwapStep\");\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n\n let step: MarketSwapStepKey | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n step = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxPending) {\n step = \"swap-tx-execution\";\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"swap-tx-confirmation\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation = step === \"swap-tx-confirmation\";\n\n const notYetSwapTxSent =\n step === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n result: marketFlow.result,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isTxPending","approvalIsStarted","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCancellable","txHash","explorerLink","constructTxLinkForChain","chainId","undefined","t0","error","isUserCancelledError","t1","result"],"mappings":"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"}
@@ -6,16 +6,6 @@ import { toDecimal } from '../../../lib/utils/toDecimal.js';
6
6
  import { useMemo } from 'react';
7
7
  import { isETH } from '../../../tokens/utils/eth.js';
8
8
 
9
- globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
10
- cache: /* @__PURE__ */ new Map(),
11
- get(name, inst) {
12
- if (this.cache.has(name)) {
13
- return this.cache.get(name);
14
- }
15
- this.cache.set(name, inst);
16
- return inst;
17
- }
18
- };
19
9
  const useGenericTokenAllowance = ({
20
10
  token,
21
11
  amountToApproveInWei = 0n,
@@ -1 +1 @@
1
- {"version":3,"file":"useGenericTokenAllowance.js","sources":["../../../../src/hooks/tokens/allowance/useGenericTokenAllowance.ts"],"sourcesContent":["import { useTokenAllowance } from \"./useTokenAllowance\";\nimport { formatUnits } from \"viem\";\nimport { useSpender } from \"@/hooks/sdk/useSpender\";\n\nimport { useAccount } from \"wagmi\";\nimport { toDecimal } from \"@/lib/utils/toDecimal\";\nimport { useMemo } from \"react\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport type {\n AllowanceData,\n GenericTokenAllowance,\n UseGenericTokenAllowanceInput,\n} from \"./types\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\nimport type { QueryKey } from \"@tanstack/react-query\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const useGenericTokenAllowance = ({\n token,\n amountToApproveInWei = 0n,\n spenderContractType,\n}: UseGenericTokenAllowanceInput = {}): GenericTokenAllowance => {\n const { isConnected } = useAccount();\n\n const { spender, isLoading: isLoadingSpender } =\n useSpender(spenderContractType);\n\n const { data: allowance, isLoading: isLoadingAllowance } = useTokenAllowance({\n tokenAddress: token?.address,\n spender,\n });\n\n const allowanceOnChain = useMemo(() => {\n const tokenDoesntRequireAllowance = !token || isETH(token) || !isConnected;\n\n if (tokenDoesntRequireAllowance) {\n return {\n needsApproval: false,\n enoughAllowance: true,\n };\n }\n\n return calcAllowanceData({\n allowance: allowance || 0n,\n amountToApproveInWei: BigInt(amountToApproveInWei), // ok to cast wei\n tokenDecimals: token?.decimals,\n });\n }, [allowance, amountToApproveInWei, isConnected, token]);\n\n const isLoadingPrerequisites =\n isConnected && (isLoadingSpender || isLoadingAllowance);\n\n return {\n allowance,\n isLoadingPrerequisites,\n spender,\n ...allowanceOnChain,\n };\n};\n\ntype UseGenericTokenAllowanceMinInput = {\n tokenAddress?: string;\n spenderContractType?: SpenderContractType;\n amountToApproveInWei?: string | bigint;\n chainId?: SupportedChainId;\n};\n\ntype GenericTokenAllowanceMin = Pick<\n GenericTokenAllowance,\n | \"isLoadingPrerequisites\"\n | \"allowance\"\n | \"needsApproval\"\n | \"enoughAllowance\"\n | \"allowanceToSet\"\n | \"spender\"\n> & { queryKey: QueryKey };\n\n// exclusively deals with wei\nexport const useGenericTokenAllowanceMin = ({\n tokenAddress,\n amountToApproveInWei = 0n,\n spenderContractType,\n chainId,\n}: UseGenericTokenAllowanceMinInput = {}): GenericTokenAllowanceMin => {\n const { isConnected } = useAccount();\n\n const { spender, isLoading: isLoadingSpender } =\n useSpender(spenderContractType);\n\n const {\n data: allowance,\n isLoading: isLoadingAllowance,\n queryKey,\n } = useTokenAllowance({\n tokenAddress,\n spender,\n chainId,\n });\n\n const allowanceOnChain = useMemo(() => {\n const tokenDoesntRequireAllowance =\n !tokenAddress || isETH({ address: tokenAddress }) || !isConnected;\n\n if (tokenDoesntRequireAllowance) {\n return {\n needsApproval: false,\n enoughAllowance: true,\n };\n }\n\n const amountToApproveInWeiBigInt = BigInt(amountToApproveInWei);\n\n const enoughAllowance =\n !!allowance && allowance >= amountToApproveInWeiBigInt;\n const needsApproval = !enoughAllowance;\n\n if (!needsApproval) {\n return {\n needsApproval: false,\n enoughAllowance,\n };\n }\n\n const differenceLeftToApprove =\n amountToApproveInWeiBigInt - (allowance || 0n);\n\n return {\n needsApproval,\n enoughAllowance,\n allowance,\n allowanceToSet: amountToApproveInWeiBigInt,\n differenceLeftToApprove,\n };\n }, [allowance, amountToApproveInWei, isConnected, tokenAddress]);\n\n const isLoadingPrerequisites =\n isConnected && (isLoadingSpender || isLoadingAllowance);\n\n return {\n allowance,\n isLoadingPrerequisites,\n spender,\n ...allowanceOnChain,\n queryKey,\n };\n};\n\nfunction calcAllowanceData({\n allowance,\n amountToApproveInWei,\n tokenDecimals,\n}: {\n allowance: bigint;\n amountToApproveInWei: bigint;\n tokenDecimals: number;\n}): AllowanceData {\n const enoughAllowance = allowance >= amountToApproveInWei;\n\n const needsApproval = !enoughAllowance;\n\n if (!needsApproval) {\n return {\n needsApproval: false,\n enoughAllowance,\n };\n }\n\n const differenceLeftToApprove = amountToApproveInWei - allowance;\n\n const amountToApproveUnits = formatUnits(amountToApproveInWei, tokenDecimals);\n const allowanceToSetHumanReadable = toDecimal(Number(amountToApproveUnits));\n\n const differenceLeftToApproveUnits = formatUnits(\n differenceLeftToApprove,\n tokenDecimals\n );\n const differenceLeftToApproveHumanReadable = toDecimal(\n Number(differenceLeftToApproveUnits)\n );\n\n return {\n needsApproval,\n enoughAllowance,\n allowance,\n allowanceToSet: amountToApproveInWei,\n allowanceToSetHumanReadable,\n differenceLeftToApprove,\n differenceLeftToApproveHumanReadable,\n };\n}\n"],"names":["useGenericTokenAllowance","token","amountToApproveInWei","spenderContractType","isConnected","useAccount","spender","isLoading","isLoadingSpender","useSpender","data","allowance","isLoadingAllowance","useTokenAllowance","tokenAddress","address","allowanceOnChain","useMemo","tokenDoesntRequireAllowance","isETH","needsApproval","enoughAllowance","calcAllowanceData","BigInt","tokenDecimals","decimals","isLoadingPrerequisites","useGenericTokenAllowanceMin","chainId","queryKey","amountToApproveInWeiBigInt","differenceLeftToApprove","allowanceToSet","amountToApproveUnits","formatUnits","allowanceToSetHumanReadable","toDecimal","Number","differenceLeftToApproveUnits","differenceLeftToApproveHumanReadable"],"mappings":"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"}
1
+ {"version":3,"file":"useGenericTokenAllowance.js","sources":["../../../../src/hooks/tokens/allowance/useGenericTokenAllowance.ts"],"sourcesContent":["import { useTokenAllowance } from \"./useTokenAllowance\";\nimport { formatUnits } from \"viem\";\nimport { useSpender } from \"@/hooks/sdk/useSpender\";\n\nimport { useAccount } from \"wagmi\";\nimport { toDecimal } from \"@/lib/utils/toDecimal\";\nimport { useMemo } from \"react\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport type {\n AllowanceData,\n GenericTokenAllowance,\n UseGenericTokenAllowanceInput,\n} from \"./types\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\nimport type { QueryKey } from \"@tanstack/react-query\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const useGenericTokenAllowance = ({\n token,\n amountToApproveInWei = 0n,\n spenderContractType,\n}: UseGenericTokenAllowanceInput = {}): GenericTokenAllowance => {\n const { isConnected } = useAccount();\n\n const { spender, isLoading: isLoadingSpender } =\n useSpender(spenderContractType);\n\n const { data: allowance, isLoading: isLoadingAllowance } = useTokenAllowance({\n tokenAddress: token?.address,\n spender,\n });\n\n const allowanceOnChain = useMemo(() => {\n const tokenDoesntRequireAllowance = !token || isETH(token) || !isConnected;\n\n if (tokenDoesntRequireAllowance) {\n return {\n needsApproval: false,\n enoughAllowance: true,\n };\n }\n\n return calcAllowanceData({\n allowance: allowance || 0n,\n amountToApproveInWei: BigInt(amountToApproveInWei), // ok to cast wei\n tokenDecimals: token?.decimals,\n });\n }, [allowance, amountToApproveInWei, isConnected, token]);\n\n const isLoadingPrerequisites =\n isConnected && (isLoadingSpender || isLoadingAllowance);\n\n return {\n allowance,\n isLoadingPrerequisites,\n spender,\n ...allowanceOnChain,\n };\n};\n\ntype UseGenericTokenAllowanceMinInput = {\n tokenAddress?: string;\n spenderContractType?: SpenderContractType;\n amountToApproveInWei?: string | bigint;\n chainId?: SupportedChainId;\n};\n\ntype GenericTokenAllowanceMin = Pick<\n GenericTokenAllowance,\n | \"isLoadingPrerequisites\"\n | \"allowance\"\n | \"needsApproval\"\n | \"enoughAllowance\"\n | \"allowanceToSet\"\n | \"spender\"\n> & { queryKey: QueryKey };\n\n// exclusively deals with wei\nexport const useGenericTokenAllowanceMin = ({\n tokenAddress,\n amountToApproveInWei = 0n,\n spenderContractType,\n chainId,\n}: UseGenericTokenAllowanceMinInput = {}): GenericTokenAllowanceMin => {\n const { isConnected } = useAccount();\n\n const { spender, isLoading: isLoadingSpender } =\n useSpender(spenderContractType);\n\n const {\n data: allowance,\n isLoading: isLoadingAllowance,\n queryKey,\n } = useTokenAllowance({\n tokenAddress,\n spender,\n chainId,\n });\n\n const allowanceOnChain = useMemo(() => {\n const tokenDoesntRequireAllowance =\n !tokenAddress || isETH({ address: tokenAddress }) || !isConnected;\n\n if (tokenDoesntRequireAllowance) {\n return {\n needsApproval: false,\n enoughAllowance: true,\n };\n }\n\n const amountToApproveInWeiBigInt = BigInt(amountToApproveInWei);\n\n const enoughAllowance =\n !!allowance && allowance >= amountToApproveInWeiBigInt;\n const needsApproval = !enoughAllowance;\n\n if (!needsApproval) {\n return {\n needsApproval: false,\n enoughAllowance,\n };\n }\n\n const differenceLeftToApprove =\n amountToApproveInWeiBigInt - (allowance || 0n);\n\n return {\n needsApproval,\n enoughAllowance,\n allowance,\n allowanceToSet: amountToApproveInWeiBigInt,\n differenceLeftToApprove,\n };\n }, [allowance, amountToApproveInWei, isConnected, tokenAddress]);\n\n const isLoadingPrerequisites =\n isConnected && (isLoadingSpender || isLoadingAllowance);\n\n return {\n allowance,\n isLoadingPrerequisites,\n spender,\n ...allowanceOnChain,\n queryKey,\n };\n};\n\nfunction calcAllowanceData({\n allowance,\n amountToApproveInWei,\n tokenDecimals,\n}: {\n allowance: bigint;\n amountToApproveInWei: bigint;\n tokenDecimals: number;\n}): AllowanceData {\n const enoughAllowance = allowance >= amountToApproveInWei;\n\n const needsApproval = !enoughAllowance;\n\n if (!needsApproval) {\n return {\n needsApproval: false,\n enoughAllowance,\n };\n }\n\n const differenceLeftToApprove = amountToApproveInWei - allowance;\n\n const amountToApproveUnits = formatUnits(amountToApproveInWei, tokenDecimals);\n const allowanceToSetHumanReadable = toDecimal(Number(amountToApproveUnits));\n\n const differenceLeftToApproveUnits = formatUnits(\n differenceLeftToApprove,\n tokenDecimals\n );\n const differenceLeftToApproveHumanReadable = toDecimal(\n Number(differenceLeftToApproveUnits)\n );\n\n return {\n needsApproval,\n enoughAllowance,\n allowance,\n allowanceToSet: amountToApproveInWei,\n allowanceToSetHumanReadable,\n differenceLeftToApprove,\n differenceLeftToApproveHumanReadable,\n };\n}\n"],"names":["useGenericTokenAllowance","token","amountToApproveInWei","spenderContractType","isConnected","useAccount","spender","isLoading","isLoadingSpender","useSpender","data","allowance","isLoadingAllowance","useTokenAllowance","tokenAddress","address","allowanceOnChain","useMemo","tokenDoesntRequireAllowance","isETH","needsApproval","enoughAllowance","calcAllowanceData","BigInt","tokenDecimals","decimals","isLoadingPrerequisites","useGenericTokenAllowanceMin","chainId","queryKey","amountToApproveInWeiBigInt","differenceLeftToApprove","allowanceToSet","amountToApproveUnits","formatUnits","allowanceToSetHumanReadable","toDecimal","Number","differenceLeftToApproveUnits","differenceLeftToApproveHumanReadable"],"mappings":"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"}
@@ -4,16 +4,6 @@ import { isETH } from '../../../tokens/utils/eth.js';
4
4
  import { isAddress, erc20Abi } from 'viem';
5
5
  import { useAccount, useReadContract } from 'wagmi';
6
6
 
7
- globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
8
- cache: /* @__PURE__ */ new Map(),
9
- get(name, inst) {
10
- if (this.cache.has(name)) {
11
- return this.cache.get(name);
12
- }
13
- this.cache.set(name, inst);
14
- return inst;
15
- }
16
- };
17
7
  const useTokenAllowance = (t0) => {
18
8
  const $ = distExports.c(10);
19
9
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenAllowance.js","sources":["../../../../src/hooks/tokens/allowance/useTokenAllowance.ts"],"sourcesContent":["import { LONG_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { erc20Abi, isAddress } from \"viem\";\nimport { useAccount, useReadContract } from \"wagmi\";\nimport type { UseTokenAllowanceInput } from \"./types\";\n\nexport const useTokenAllowance = ({\n tokenAddress,\n spender,\n chainId,\n}: UseTokenAllowanceInput) => {\n const { address: account } = useAccount();\n\n return useReadContract({\n address: tokenAddress && isAddress(tokenAddress) ? tokenAddress : undefined,\n functionName: \"allowance\" as const,\n abi: erc20Abi,\n chainId,\n args:\n account && spender && isAddress(spender) ? [account, spender] : undefined,\n query: {\n enabled:\n !!tokenAddress &&\n !!account &&\n !!spender &&\n !isETH({ address: tokenAddress }),\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n },\n });\n};\n"],"names":["useTokenAllowance","t0","$","_c","tokenAddress","spender","chainId","address","account","useAccount","t1","isAddress","undefined","t2","t3","isETH","t4","enabled","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","t5","functionName","abi","erc20Abi","args","query","useReadContract"],"mappings":";;;;;;;;;;;;;;;;AAMO,MAAMA,oBAAoBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAL,EAAAA;AAKhC,EAAA,MAAA;AAAA,IAAAM,OAAAA,EAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AAG7B,EAAA,MAAAC,EAAAA,GAAAN,YAAAA,IAAgBO,SAAAA,CAAUP,YAAY,IAAIA,YAAAA,GAAYQ,MAAAA;AAAY,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAX,EAAA,CAAA,CAAA,KAAAM,WAAAN,CAAAA,QAAAG,OAAAA,EAAA;AAKzEQ,IAAAA,EAAAA,GAAAL,OAAAA,IAAWH,WAAWM,SAAAA,CAAUN,OAAO,IAAC,CAAIG,OAAAA,EAASH,OAAO,CAAA,GAAAO,MAAAA;AAAaV,IAAAA,CAAAA,MAAAM,OAAAA;AAAAN,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA;AAGvE,EAAA,MAAAY,EAAAA,KAAEV,YAAAA,IAAY,CAAA,CACZI,OAAAA,IAAO,CAAA,CACPH,OAAAA,KACDU,KAAAA,CAAA;AAAA,IAAAR,OAAAA,EAAiBH;AAAAA,GAAc,CAAA;AAAC,EAAA,IAAAY,EAAAA;AAAA,EAAA,IAAAd,CAAAA,QAAAY,EAAAA,EAAA;AAL9BE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EAEHH,EAAAA;AAAAA,MAGiCI,SAAAA,EAAAC;AAAAA,KAAA;AAEpCjB,IAAAA,CAAAA,MAAAY,EAAAA;AAAAZ,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,IAAAkB,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAI,OAAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAQ,EAAAA,IAAAR,CAAAA,CAAA,CAAA,CAAA,KAAAW,EAAAA,IAAAX,CAAAA,QAAAc,EAAAA,EAAA;AAdoBI,IAAAA,EAAAA,GAAA;AAAA,MAAAb,OAAAA,EACZG,EAAAA;AAAAA,MAAkEW,YAAAA,EAC7D,WAAA;AAAA,MAAoBC,GAAAA,EAAAC,QAAAA;AAAAA,MAAAjB,OAAAA;AAAAA,MAAAkB,IAAAA,EAIhCX,EAAAA;AAAAA,MAAyEY,KAAAA,EACpET;AAAAA,KAON;AACFd,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,MAAAW,EAAAA;AAAAX,IAAAA,CAAAA,MAAAc,EAAAA;AAAAd,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAfMwB,gBAAgBN,EAetB,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"useTokenAllowance.js","sources":["../../../../src/hooks/tokens/allowance/useTokenAllowance.ts"],"sourcesContent":["import { LONG_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { erc20Abi, isAddress } from \"viem\";\nimport { useAccount, useReadContract } from \"wagmi\";\nimport type { UseTokenAllowanceInput } from \"./types\";\n\nexport const useTokenAllowance = ({\n tokenAddress,\n spender,\n chainId,\n}: UseTokenAllowanceInput) => {\n const { address: account } = useAccount();\n\n return useReadContract({\n address: tokenAddress && isAddress(tokenAddress) ? tokenAddress : undefined,\n functionName: \"allowance\" as const,\n abi: erc20Abi,\n chainId,\n args:\n account && spender && isAddress(spender) ? [account, spender] : undefined,\n query: {\n enabled:\n !!tokenAddress &&\n !!account &&\n !!spender &&\n !isETH({ address: tokenAddress }),\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n },\n });\n};\n"],"names":["useTokenAllowance","t0","$","_c","tokenAddress","spender","chainId","address","account","useAccount","t1","isAddress","undefined","t2","t3","isETH","t4","enabled","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","t5","functionName","abi","erc20Abi","args","query","useReadContract"],"mappings":";;;;;;AAMO,MAAMA,oBAAoBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAL,EAAAA;AAKhC,EAAA,MAAA;AAAA,IAAAM,OAAAA,EAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AAG7B,EAAA,MAAAC,EAAAA,GAAAN,YAAAA,IAAgBO,SAAAA,CAAUP,YAAY,IAAIA,YAAAA,GAAYQ,MAAAA;AAAY,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAX,EAAA,CAAA,CAAA,KAAAM,WAAAN,CAAAA,QAAAG,OAAAA,EAAA;AAKzEQ,IAAAA,EAAAA,GAAAL,OAAAA,IAAWH,WAAWM,SAAAA,CAAUN,OAAO,IAAC,CAAIG,OAAAA,EAASH,OAAO,CAAA,GAAAO,MAAAA;AAAaV,IAAAA,CAAAA,MAAAM,OAAAA;AAAAN,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA;AAGvE,EAAA,MAAAY,EAAAA,KAAEV,YAAAA,IAAY,CAAA,CACZI,OAAAA,IAAO,CAAA,CACPH,OAAAA,KACDU,KAAAA,CAAA;AAAA,IAAAR,OAAAA,EAAiBH;AAAAA,GAAc,CAAA;AAAC,EAAA,IAAAY,EAAAA;AAAA,EAAA,IAAAd,CAAAA,QAAAY,EAAAA,EAAA;AAL9BE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EAEHH,EAAAA;AAAAA,MAGiCI,SAAAA,EAAAC;AAAAA,KAAA;AAEpCjB,IAAAA,CAAAA,MAAAY,EAAAA;AAAAZ,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,IAAAkB,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAI,OAAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAQ,EAAAA,IAAAR,CAAAA,CAAA,CAAA,CAAA,KAAAW,EAAAA,IAAAX,CAAAA,QAAAc,EAAAA,EAAA;AAdoBI,IAAAA,EAAAA,GAAA;AAAA,MAAAb,OAAAA,EACZG,EAAAA;AAAAA,MAAkEW,YAAAA,EAC7D,WAAA;AAAA,MAAoBC,GAAAA,EAAAC,QAAAA;AAAAA,MAAAjB,OAAAA;AAAAA,MAAAkB,IAAAA,EAIhCX,EAAAA;AAAAA,MAAyEY,KAAAA,EACpET;AAAAA,KAON;AACFd,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,MAAAW,EAAAA;AAAAX,IAAAA,CAAAA,MAAAc,EAAAA;AAAAd,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAfMwB,gBAAgBN,EAetB,CAAA;AAAC;;;;"}
@@ -5,16 +5,6 @@ import { assert } from 'ts-essentials';
5
5
  import { erc20Abi } from 'viem';
6
6
  import { multicall, getBalance } from 'viem/actions';
7
7
 
8
- globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
9
- cache: /* @__PURE__ */ new Map(),
10
- get(name, inst) {
11
- if (this.cache.has(name)) {
12
- return this.cache.get(name);
13
- }
14
- this.cache.set(name, inst);
15
- return inst;
16
- }
17
- };
18
8
  function constructTokenBalancesQueryKey({
19
9
  chainId,
20
10
  tokenAddressesLowercase,
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/balances/queries.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { ETH_ADDRESS_LOWERCASE } from \"@/tokens/constants\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\nimport { erc20Abi } from \"viem\";\nimport { getBalance, multicall } from \"viem/actions\";\nimport type {\n BalanceOfResult,\n ProduceQueryOptionsInput,\n TokenBalancesQueryKey,\n AddressBalanceMap,\n} from \"./types\";\n\nfunction constructTokenBalancesQueryKey({\n chainId,\n tokenAddressesLowercase,\n account,\n}: Pick<\n ProduceQueryOptionsInput,\n \"chainId\" | \"tokenAddressesLowercase\" | \"account\"\n>): TokenBalancesQueryKey {\n return [\"token-balances\", chainId, tokenAddressesLowercase, account];\n}\n\nexport function constructTokenBalancesQueryOptions<TData>({\n tokenAddressesLowercase,\n chainId,\n account,\n}: ProduceQueryOptionsInput<TData>): UseQueryOptions<\n AddressBalanceMap,\n Error,\n TData,\n TokenBalancesQueryKey\n> {\n const addressesWithoutEth = tokenAddressesLowercase.filter(\n (address) => !isETH({ address })\n );\n\n const isRequestedEthBalance =\n addressesWithoutEth.length < tokenAddressesLowercase.length;\n\n const queryKey = constructTokenBalancesQueryKey({\n chainId,\n tokenAddressesLowercase: tokenAddressesLowercase,\n account,\n });\n\n return {\n queryKey,\n queryFn: async () => {\n assert(account, \"account is required\");\n\n function constructAddressBalanceMap(results: BalanceOfResult[]) {\n return results.reduce<AddressBalanceMap>((acc, result, index) => {\n const tokenAddress = addressesWithoutEth[index];\n if (tokenAddress) acc[tokenAddress] = result;\n return acc;\n }, {});\n }\n\n const contracts = addressesWithoutEth.map((address) => ({\n address,\n abi: erc20Abi,\n functionName: \"balanceOf\" as const,\n args: [account],\n chainId,\n }));\n\n const client = wagmiConfig.getClient({ chainId });\n\n const multicallPromise = multicall(client, {\n contracts,\n batchSize: 1024 * 2, // arbitrary, don't know what is the best value to use\n });\n\n let addressBalanceMap: AddressBalanceMap = {};\n\n if (isRequestedEthBalance) {\n const ethBalance = await getBalance(client, {\n address: account,\n });\n const multiBalances = await multicallPromise;\n\n addressBalanceMap = constructAddressBalanceMap(multiBalances);\n\n addressBalanceMap[ETH_ADDRESS_LOWERCASE] = {\n result: ethBalance,\n status: \"success\",\n };\n } else {\n const multiBalances = await multicallPromise;\n addressBalanceMap = constructAddressBalanceMap(multiBalances);\n }\n\n return addressBalanceMap;\n },\n enabled: !!account && tokenAddressesLowercase.length > 0,\n staleTime: 25_000,\n };\n}\n"],"names":["constructTokenBalancesQueryKey","chainId","tokenAddressesLowercase","account","constructTokenBalancesQueryOptions","addressesWithoutEth","filter","address","isETH","isRequestedEthBalance","length","queryKey","queryFn","assert","constructAddressBalanceMap","results","reduce","acc","result","index","tokenAddress","contracts","map","abi","erc20Abi","functionName","args","client","wagmiConfig","getClient","multicallPromise","multicall","batchSize","addressBalanceMap","ethBalance","getBalance","multiBalances","ETH_ADDRESS_LOWERCASE","status","enabled","staleTime"],"mappings":";;;;;;;;;;;;;;;;;AAcA,SAASA,8BAAAA,CAA+B;AAAA,EACtCC,OAAAA;AAAAA,EACAC,uBAAAA;AAAAA,EACAC;AAIF,CAAA,EAA0B;AACxB,EAAA,OAAO,CAAC,gBAAA,EAAkBF,OAAAA,EAASC,uBAAAA,EAAyBC,OAAO,CAAA;AACrE;AAEO,SAASC,kCAAAA,CAA0C;AAAA,EACxDF,uBAAAA;AAAAA,EACAD,OAAAA;AAAAA,EACAE;AAC+B,CAAA,EAK/B;AACA,EAAA,MAAME,mBAAAA,GAAsBH,uBAAAA,CAAwBI,MAAAA,CACjDC,CAAAA,OAAAA,KAAY,CAACC,KAAAA,CAAM;AAAA,IAAED;AAAAA,GAAS,CACjC,CAAA;AAEA,EAAA,MAAME,qBAAAA,GACJJ,mBAAAA,CAAoBK,MAAAA,GAASR,uBAAAA,CAAwBQ,MAAAA;AAEvD,EAAA,MAAMC,WAAWX,8BAAAA,CAA+B;AAAA,IAC9CC,OAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACLQ,QAAAA;AAAAA,IACAC,SAAS,YAAY;AACnBC,MAAAA,MAAAA,CAAOV,SAAS,qBAAqB,CAAA;AAErC,MAAA,SAASW,2BAA2BC,OAAAA,EAA4B;AAC9D,QAAA,OAAOA,OAAAA,CAAQC,MAAAA,CAA0B,CAACC,GAAAA,EAAKC,QAAQC,KAAAA,KAAU;AAC/D,UAAA,MAAMC,YAAAA,GAAef,oBAAoBc,KAAK,CAAA;AAC9C,UAAA,IAAIC,YAAAA,EAAcH,GAAAA,CAAIG,YAAY,CAAA,GAAIF,MAAAA;AACtC,UAAA,OAAOD,GAAAA;AAAAA,SACT,EAAG,EAAE,CAAA;AAAA;AAGP,MAAA,MAAMI,SAAAA,GAAYhB,mBAAAA,CAAoBiB,GAAAA,CAAKf,CAAAA,OAAAA,MAAa;AAAA,QACtDA,OAAAA;AAAAA,QACAgB,GAAAA,EAAKC,QAAAA;AAAAA,QACLC,YAAAA,EAAc,WAAA;AAAA,QACdC,IAAAA,EAAM,CAACvB,OAAO,CAAA;AAAA,QACdF;AAAAA,OACF,CAAE,CAAA;AAEF,MAAA,MAAM0B,MAAAA,GAASC,YAAYC,SAAAA,CAAU;AAAA,QAAE5B;AAAAA,OAAS,CAAA;AAEhD,MAAA,MAAM6B,gBAAAA,GAAmBC,UAAUJ,MAAAA,EAAQ;AAAA,QACzCN,SAAAA;AAAAA,QACAW,WAAW,IAAA,GAAO;AAAA;AAAA,OACnB,CAAA;AAED,MAAA,IAAIC,oBAAuC,EAAC;AAE5C,MAAA,IAAIxB,qBAAAA,EAAuB;AACzB,QAAA,MAAMyB,UAAAA,GAAa,MAAMC,UAAAA,CAAWR,MAAAA,EAAQ;AAAA,UAC1CpB,OAAAA,EAASJ;AAAAA,SACV,CAAA;AACD,QAAA,MAAMiC,gBAAgB,MAAMN,gBAAAA;AAE5BG,QAAAA,iBAAAA,GAAoBnB,2BAA2BsB,aAAa,CAAA;AAE5DH,QAAAA,iBAAAA,CAAkBI,qBAAqB,CAAA,GAAI;AAAA,UACzCnB,MAAAA,EAAQgB,UAAAA;AAAAA,UACRI,MAAAA,EAAQ;AAAA,SACV;AAAA,OACF,MAAO;AACL,QAAA,MAAMF,gBAAgB,MAAMN,gBAAAA;AAC5BG,QAAAA,iBAAAA,GAAoBnB,2BAA2BsB,aAAa,CAAA;AAAA;AAG9D,MAAA,OAAOH,iBAAAA;AAAAA,KACT;AAAA,IACAM,OAAAA,EAAS,CAAC,CAACpC,OAAAA,IAAWD,wBAAwBQ,MAAAA,GAAS,CAAA;AAAA,IACvD8B,SAAAA,EAAW;AAAA,GACb;AACF;;;;"}
1
+ {"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/balances/queries.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { ETH_ADDRESS_LOWERCASE } from \"@/tokens/constants\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\nimport { erc20Abi } from \"viem\";\nimport { getBalance, multicall } from \"viem/actions\";\nimport type {\n BalanceOfResult,\n ProduceQueryOptionsInput,\n TokenBalancesQueryKey,\n AddressBalanceMap,\n} from \"./types\";\n\nfunction constructTokenBalancesQueryKey({\n chainId,\n tokenAddressesLowercase,\n account,\n}: Pick<\n ProduceQueryOptionsInput,\n \"chainId\" | \"tokenAddressesLowercase\" | \"account\"\n>): TokenBalancesQueryKey {\n return [\"token-balances\", chainId, tokenAddressesLowercase, account];\n}\n\nexport function constructTokenBalancesQueryOptions<TData>({\n tokenAddressesLowercase,\n chainId,\n account,\n}: ProduceQueryOptionsInput<TData>): UseQueryOptions<\n AddressBalanceMap,\n Error,\n TData,\n TokenBalancesQueryKey\n> {\n const addressesWithoutEth = tokenAddressesLowercase.filter(\n (address) => !isETH({ address })\n );\n\n const isRequestedEthBalance =\n addressesWithoutEth.length < tokenAddressesLowercase.length;\n\n const queryKey = constructTokenBalancesQueryKey({\n chainId,\n tokenAddressesLowercase: tokenAddressesLowercase,\n account,\n });\n\n return {\n queryKey,\n queryFn: async () => {\n assert(account, \"account is required\");\n\n function constructAddressBalanceMap(results: BalanceOfResult[]) {\n return results.reduce<AddressBalanceMap>((acc, result, index) => {\n const tokenAddress = addressesWithoutEth[index];\n if (tokenAddress) acc[tokenAddress] = result;\n return acc;\n }, {});\n }\n\n const contracts = addressesWithoutEth.map((address) => ({\n address,\n abi: erc20Abi,\n functionName: \"balanceOf\" as const,\n args: [account],\n chainId,\n }));\n\n const client = wagmiConfig.getClient({ chainId });\n\n const multicallPromise = multicall(client, {\n contracts,\n batchSize: 1024 * 2, // arbitrary, don't know what is the best value to use\n });\n\n let addressBalanceMap: AddressBalanceMap = {};\n\n if (isRequestedEthBalance) {\n const ethBalance = await getBalance(client, {\n address: account,\n });\n const multiBalances = await multicallPromise;\n\n addressBalanceMap = constructAddressBalanceMap(multiBalances);\n\n addressBalanceMap[ETH_ADDRESS_LOWERCASE] = {\n result: ethBalance,\n status: \"success\",\n };\n } else {\n const multiBalances = await multicallPromise;\n addressBalanceMap = constructAddressBalanceMap(multiBalances);\n }\n\n return addressBalanceMap;\n },\n enabled: !!account && tokenAddressesLowercase.length > 0,\n staleTime: 25_000,\n };\n}\n"],"names":["constructTokenBalancesQueryKey","chainId","tokenAddressesLowercase","account","constructTokenBalancesQueryOptions","addressesWithoutEth","filter","address","isETH","isRequestedEthBalance","length","queryKey","queryFn","assert","constructAddressBalanceMap","results","reduce","acc","result","index","tokenAddress","contracts","map","abi","erc20Abi","functionName","args","client","wagmiConfig","getClient","multicallPromise","multicall","batchSize","addressBalanceMap","ethBalance","getBalance","multiBalances","ETH_ADDRESS_LOWERCASE","status","enabled","staleTime"],"mappings":";;;;;;;AAcA,SAASA,8BAAAA,CAA+B;AAAA,EACtCC,OAAAA;AAAAA,EACAC,uBAAAA;AAAAA,EACAC;AAIF,CAAA,EAA0B;AACxB,EAAA,OAAO,CAAC,gBAAA,EAAkBF,OAAAA,EAASC,uBAAAA,EAAyBC,OAAO,CAAA;AACrE;AAEO,SAASC,kCAAAA,CAA0C;AAAA,EACxDF,uBAAAA;AAAAA,EACAD,OAAAA;AAAAA,EACAE;AAC+B,CAAA,EAK/B;AACA,EAAA,MAAME,mBAAAA,GAAsBH,uBAAAA,CAAwBI,MAAAA,CACjDC,CAAAA,OAAAA,KAAY,CAACC,KAAAA,CAAM;AAAA,IAAED;AAAAA,GAAS,CACjC,CAAA;AAEA,EAAA,MAAME,qBAAAA,GACJJ,mBAAAA,CAAoBK,MAAAA,GAASR,uBAAAA,CAAwBQ,MAAAA;AAEvD,EAAA,MAAMC,WAAWX,8BAAAA,CAA+B;AAAA,IAC9CC,OAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACLQ,QAAAA;AAAAA,IACAC,SAAS,YAAY;AACnBC,MAAAA,MAAAA,CAAOV,SAAS,qBAAqB,CAAA;AAErC,MAAA,SAASW,2BAA2BC,OAAAA,EAA4B;AAC9D,QAAA,OAAOA,OAAAA,CAAQC,MAAAA,CAA0B,CAACC,GAAAA,EAAKC,QAAQC,KAAAA,KAAU;AAC/D,UAAA,MAAMC,YAAAA,GAAef,oBAAoBc,KAAK,CAAA;AAC9C,UAAA,IAAIC,YAAAA,EAAcH,GAAAA,CAAIG,YAAY,CAAA,GAAIF,MAAAA;AACtC,UAAA,OAAOD,GAAAA;AAAAA,SACT,EAAG,EAAE,CAAA;AAAA;AAGP,MAAA,MAAMI,SAAAA,GAAYhB,mBAAAA,CAAoBiB,GAAAA,CAAKf,CAAAA,OAAAA,MAAa;AAAA,QACtDA,OAAAA;AAAAA,QACAgB,GAAAA,EAAKC,QAAAA;AAAAA,QACLC,YAAAA,EAAc,WAAA;AAAA,QACdC,IAAAA,EAAM,CAACvB,OAAO,CAAA;AAAA,QACdF;AAAAA,OACF,CAAE,CAAA;AAEF,MAAA,MAAM0B,MAAAA,GAASC,YAAYC,SAAAA,CAAU;AAAA,QAAE5B;AAAAA,OAAS,CAAA;AAEhD,MAAA,MAAM6B,gBAAAA,GAAmBC,UAAUJ,MAAAA,EAAQ;AAAA,QACzCN,SAAAA;AAAAA,QACAW,WAAW,IAAA,GAAO;AAAA;AAAA,OACnB,CAAA;AAED,MAAA,IAAIC,oBAAuC,EAAC;AAE5C,MAAA,IAAIxB,qBAAAA,EAAuB;AACzB,QAAA,MAAMyB,UAAAA,GAAa,MAAMC,UAAAA,CAAWR,MAAAA,EAAQ;AAAA,UAC1CpB,OAAAA,EAASJ;AAAAA,SACV,CAAA;AACD,QAAA,MAAMiC,gBAAgB,MAAMN,gBAAAA;AAE5BG,QAAAA,iBAAAA,GAAoBnB,2BAA2BsB,aAAa,CAAA;AAE5DH,QAAAA,iBAAAA,CAAkBI,qBAAqB,CAAA,GAAI;AAAA,UACzCnB,MAAAA,EAAQgB,UAAAA;AAAAA,UACRI,MAAAA,EAAQ;AAAA,SACV;AAAA,OACF,MAAO;AACL,QAAA,MAAMF,gBAAgB,MAAMN,gBAAAA;AAC5BG,QAAAA,iBAAAA,GAAoBnB,2BAA2BsB,aAAa,CAAA;AAAA;AAG9D,MAAA,OAAOH,iBAAAA;AAAAA,KACT;AAAA,IACAM,OAAAA,EAAS,CAAC,CAACpC,OAAAA,IAAWD,wBAAwBQ,MAAAA,GAAS,CAAA;AAAA,IACvD8B,SAAAA,EAAW;AAAA,GACb;AACF;;;;"}
@@ -5,16 +5,6 @@ import { useMultiChainTokenBalances } from './useMultichainTokenBalances.js';
5
5
  import { useMultiChainTokenPrices } from '../prices/useMultichainTokenPrices.js';
6
6
  import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
7
7
 
8
- globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
9
- cache: /* @__PURE__ */ new Map(),
10
- get(name, inst) {
11
- if (this.cache.has(name)) {
12
- return this.cache.get(name);
13
- }
14
- this.cache.set(name, inst);
15
- return inst;
16
- }
17
- };
18
8
  const useAttachTokenBalanceMultichain = (t0) => {
19
9
  const $ = distExports.c(7);
20
10
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"useAttachTokenBalanceMultichain.js","sources":["../../../../src/hooks/tokens/balances/useAttachTokenBalanceMultichain.ts"],"sourcesContent":["import type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { formatUnits, isAddress } from \"viem\";\nimport { useMultiChainTokenBalances } from \"./useMultichainTokenBalances\";\nimport { useMultiChainTokenPrices } from \"../prices/useMultichainTokenPrices\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\n/**\n This hook will fetch the balances and return a function that will add a balance to the token if available.\n */\nexport const useAttachTokenBalanceMultichain = ({\n addressesMap,\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n}) => {\n const multiChainTokenBalances = useMultiChainTokenBalances({\n addressesMap,\n });\n\n const chainIds = useMemo(\n () => Object.keys(addressesMap).map(Number).filter(isSupportedChainId),\n [addressesMap]\n );\n\n const multiChainTokenPrices = useMultiChainTokenPrices(chainIds);\n\n return useCallback(\n (token: Token): TokenMaybeWithUsdBalance => {\n const loweredAddress = token.address.toLowerCase();\n\n if (!isAddress(loweredAddress)) return token;\n\n const balance =\n multiChainTokenBalances[token.network]?.[loweredAddress]?.result;\n\n if (balance === undefined) return token;\n\n const tokenPrice =\n multiChainTokenPrices[token.network]?.[loweredAddress]?.price;\n\n const usdBalance = tokenPrice\n ? +formatUnits(BigInt(balance), token.decimals) * tokenPrice\n : undefined;\n\n return {\n ...token,\n balance: balance.toString(),\n usdBalance,\n };\n },\n [multiChainTokenPrices, multiChainTokenBalances]\n );\n};\n"],"names":["useAttachTokenBalanceMultichain","t0","$","_c","addressesMap","t1","multiChainTokenBalances","useMultiChainTokenBalances","t2","t3","Object","keys","map","Number","filter","isSupportedChainId","chainIds","multiChainTokenPrices","useMultiChainTokenPrices","t4","token","loweredAddress","address","toLowerCase","isAddress","balance","network","result","undefined","tokenPrice","price","usdBalance","formatUnits","BigInt","decimals","toString"],"mappings":";;;;;;;;;;;;;;;;;AAaO,MAAMA,kCAAkCC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC;AAAAA,GAAA,GAAAH,EAAAA;AAI/C,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,YAAAA,EAAA;AAC4DC,IAAAA,EAAAA,GAAA;AAAA,MAAAD;AAAAA,KAAA;AAE1DF,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA;AAFD,EAAA,MAAAI,uBAAAA,GAAgCC,2BAA2BF,EAE1D,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAP,CAAAA,QAAAE,YAAAA,EAAA;AAGKK,IAAAA,EAAAA,GAAAC,MAAAA,CAAAC,KAAYP,YAAY,CAAA,CAACQ,IAAAC,MAAW,CAAA,CAACC,OAAAC,kBAA0B,CAAA;AAACb,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAP,EAAA,CAAA,CAAA;AAAA;AAAAM,EAAAA,EAAAA,GAAhEC,EAAAA;AADR,EAAA,MAAAO,QAAAA,GAAiBR,EAAAA;AAKjB,EAAA,MAAAS,qBAAAA,GAA8BC,yBAAyBF,QAAQ,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAjB,EAAA,CAAA,CAAA,KAAAI,2BAAAJ,CAAAA,QAAAe,qBAAAA,EAAA;AAG/DE,IAAAA,EAAAA,GAAAC,CAAAA,KAAAA,KAAA;AACE,MAAA,MAAAC,cAAAA,GAAuBD,KAAAA,CAAKE,OAAAA,CAAAC,WAAAA,EAAqB;AAAE,MAAA,IAAA,CAE9CC,SAAAA,CAAUH,cAAc,CAAA,EAAC;AAAA,QAAA,OAASD,KAAAA;AAAAA;AAEvC,MAAA,MAAAK,UACEnB,uBAAAA,CAAwBc,KAAAA,CAAKM,OAAA,CAAA,GAAYL,cAAc,CAAA,EAAAM,MAAAA;AAAU,MAAA,IAE/DF,YAAOG,MAAAA,EAAc;AAAA,QAAA,OAASR,KAAAA;AAAAA;AAElC,MAAA,MAAAS,aACEZ,qBAAAA,CAAsBG,KAAAA,CAAKM,OAAA,CAAA,GAAYL,cAAc,CAAA,EAAAS,KAAAA;AAEvD,MAAA,MAAAC,UAAAA,GAAmBF,UAAAA,GACf,CAACG,WAAAA,CAAYC,MAAAA,CAAOR,OAAO,CAAA,EAAGL,KAAAA,CAAKc,QAAS,CAAA,GAAIL,UAAAA,GAAUD,MAAAA;AAChD,MAAA,OAAA;AAAA,QAAA,GAGTR,KAAAA;AAAAA,QAAKK,OAAAA,EACCA,QAAOU,QAAAA,EAAU;AAAA,QAACJ;AAAAA,OAAA;AAAA,KAAA;AAG9B7B,IAAAA,CAAAA,MAAAI,uBAAAA;AAAAJ,IAAAA,CAAAA,MAAAe,qBAAAA;AAAAf,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAvBIiB,EAAAA;AAyBN;;;;"}
1
+ {"version":3,"file":"useAttachTokenBalanceMultichain.js","sources":["../../../../src/hooks/tokens/balances/useAttachTokenBalanceMultichain.ts"],"sourcesContent":["import type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { formatUnits, isAddress } from \"viem\";\nimport { useMultiChainTokenBalances } from \"./useMultichainTokenBalances\";\nimport { useMultiChainTokenPrices } from \"../prices/useMultichainTokenPrices\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\n/**\n This hook will fetch the balances and return a function that will add a balance to the token if available.\n */\nexport const useAttachTokenBalanceMultichain = ({\n addressesMap,\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n}) => {\n const multiChainTokenBalances = useMultiChainTokenBalances({\n addressesMap,\n });\n\n const chainIds = useMemo(\n () => Object.keys(addressesMap).map(Number).filter(isSupportedChainId),\n [addressesMap]\n );\n\n const multiChainTokenPrices = useMultiChainTokenPrices(chainIds);\n\n return useCallback(\n (token: Token): TokenMaybeWithUsdBalance => {\n const loweredAddress = token.address.toLowerCase();\n\n if (!isAddress(loweredAddress)) return token;\n\n const balance =\n multiChainTokenBalances[token.network]?.[loweredAddress]?.result;\n\n if (balance === undefined) return token;\n\n const tokenPrice =\n multiChainTokenPrices[token.network]?.[loweredAddress]?.price;\n\n const usdBalance = tokenPrice\n ? +formatUnits(BigInt(balance), token.decimals) * tokenPrice\n : undefined;\n\n return {\n ...token,\n balance: balance.toString(),\n usdBalance,\n };\n },\n [multiChainTokenPrices, multiChainTokenBalances]\n );\n};\n"],"names":["useAttachTokenBalanceMultichain","t0","$","_c","addressesMap","t1","multiChainTokenBalances","useMultiChainTokenBalances","t2","t3","Object","keys","map","Number","filter","isSupportedChainId","chainIds","multiChainTokenPrices","useMultiChainTokenPrices","t4","token","loweredAddress","address","toLowerCase","isAddress","balance","network","result","undefined","tokenPrice","price","usdBalance","formatUnits","BigInt","decimals","toString"],"mappings":";;;;;;;AAaO,MAAMA,kCAAkCC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC;AAAAA,GAAA,GAAAH,EAAAA;AAI/C,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,YAAAA,EAAA;AAC4DC,IAAAA,EAAAA,GAAA;AAAA,MAAAD;AAAAA,KAAA;AAE1DF,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA;AAFD,EAAA,MAAAI,uBAAAA,GAAgCC,2BAA2BF,EAE1D,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAP,CAAAA,QAAAE,YAAAA,EAAA;AAGKK,IAAAA,EAAAA,GAAAC,MAAAA,CAAAC,KAAYP,YAAY,CAAA,CAACQ,IAAAC,MAAW,CAAA,CAACC,OAAAC,kBAA0B,CAAA;AAACb,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAP,EAAA,CAAA,CAAA;AAAA;AAAAM,EAAAA,EAAAA,GAAhEC,EAAAA;AADR,EAAA,MAAAO,QAAAA,GAAiBR,EAAAA;AAKjB,EAAA,MAAAS,qBAAAA,GAA8BC,yBAAyBF,QAAQ,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAjB,EAAA,CAAA,CAAA,KAAAI,2BAAAJ,CAAAA,QAAAe,qBAAAA,EAAA;AAG/DE,IAAAA,EAAAA,GAAAC,CAAAA,KAAAA,KAAA;AACE,MAAA,MAAAC,cAAAA,GAAuBD,KAAAA,CAAKE,OAAAA,CAAAC,WAAAA,EAAqB;AAAE,MAAA,IAAA,CAE9CC,SAAAA,CAAUH,cAAc,CAAA,EAAC;AAAA,QAAA,OAASD,KAAAA;AAAAA;AAEvC,MAAA,MAAAK,UACEnB,uBAAAA,CAAwBc,KAAAA,CAAKM,OAAA,CAAA,GAAYL,cAAc,CAAA,EAAAM,MAAAA;AAAU,MAAA,IAE/DF,YAAOG,MAAAA,EAAc;AAAA,QAAA,OAASR,KAAAA;AAAAA;AAElC,MAAA,MAAAS,aACEZ,qBAAAA,CAAsBG,KAAAA,CAAKM,OAAA,CAAA,GAAYL,cAAc,CAAA,EAAAS,KAAAA;AAEvD,MAAA,MAAAC,UAAAA,GAAmBF,UAAAA,GACf,CAACG,WAAAA,CAAYC,MAAAA,CAAOR,OAAO,CAAA,EAAGL,KAAAA,CAAKc,QAAS,CAAA,GAAIL,UAAAA,GAAUD,MAAAA;AAChD,MAAA,OAAA;AAAA,QAAA,GAGTR,KAAAA;AAAAA,QAAKK,OAAAA,EACCA,QAAOU,QAAAA,EAAU;AAAA,QAACJ;AAAAA,OAAA;AAAA,KAAA;AAG9B7B,IAAAA,CAAAA,MAAAI,uBAAAA;AAAAJ,IAAAA,CAAAA,MAAAe,qBAAAA;AAAAf,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAvBIiB,EAAAA;AAyBN;;;;"}
@@ -4,16 +4,6 @@ import 'viem';
4
4
  import 'wagmi';
5
5
  import 'wagmi/query';
6
6
 
7
- globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
8
- cache: /* @__PURE__ */ new Map(),
9
- get(name, inst) {
10
- if (this.cache.has(name)) {
11
- return this.cache.get(name);
12
- }
13
- this.cache.set(name, inst);
14
- return inst;
15
- }
16
- };
17
7
  function isReadContractQueryKey(queryKey) {
18
8
  return queryKey[0] === "readContract";
19
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useInvalidateTokenData.js","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"sourcesContent":["import type { NonceMethod } from \"@/hooks/permit/hooks/usePermit1Nonce\";\nimport { Query, useQueryClient, type QueryKey } from \"@tanstack/react-query\";\n\nimport { erc20Abi, type Address } from \"viem\";\nimport { type Config } from \"wagmi\";\nimport {\n type ReadContractQueryKey,\n type GetBalanceQueryKey,\n type ReadContractsQueryKey,\n} from \"wagmi/query\";\n\ntype LooseQueryMatchToInvalidate<Q extends QueryKey> = {\n queryKey: [Q[0]];\n exact: false;\n predicate?: (query: Query) => boolean;\n};\n\ntype ETHBalanceQueryMatch = LooseQueryMatchToInvalidate<\n GetBalanceQueryKey<Config>\n>;\n\ntype ERC20BalanceQueryKey = ReadContractQueryKey<\n typeof erc20Abi,\n \"balanceOf\" | \"allowance\",\n [Address],\n Config\n>;\ntype ERC20BalanceAllowanceQueryMatch =\n LooseQueryMatchToInvalidate<ERC20BalanceQueryKey>;\n\nfunction isReadContractQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractQueryKey<unknown[], string, unknown[], Config> {\n return queryKey[0] === \"readContract\";\n}\n\ntype NoncesQueryKey = ReadContractsQueryKey<\n {\n address: Address;\n abi: typeof erc20Abi;\n functionName: NonceMethod;\n args: [Address];\n }[],\n boolean,\n Config\n>;\n\ntype NoncesQueryMatch = LooseQueryMatchToInvalidate<NoncesQueryKey>;\nconst nonceMethods: NonceMethod[] = [\"nonces\", \"_nonces\", \"nonce\", \"getNonce\"];\n\nfunction isReadContractsQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractsQueryKey<unknown[], boolean, Config> {\n return queryKey[0] === \"readContracts\";\n}\n\ntype TokenFuncsToInvalidate = {\n allowance?: boolean;\n balanceOf?: boolean;\n nonces?: boolean;\n};\n/**\n * Helper function to invalidate token-related query cache entries.\n * Used to refresh token balances and allowances after transactions that modify them.\n * Can selectively invalidate either balance or allowance queries, or both.\n * Invalidates for all tokens that have their queries currently mounted, which is easier than matching.\n */\n\nexport function useInvalidateTokenDataQuery(): (\n tokenDataType?: TokenFuncsToInvalidate\n) => Promise<void> {\n const queryClient = useQueryClient();\n\n const invalidateBalancesAndAllowances = async ({\n allowance = true,\n balanceOf = true,\n nonces = false,\n }: TokenFuncsToInvalidate = {}) => {\n const queries: LooseQueryMatchToInvalidate<QueryKey>[] = [];\n\n if (balanceOf) {\n const ethBalanceQuery: ETHBalanceQueryMatch = {\n // easier to just match the queryKey base\n queryKey: [\"balance\"],\n exact: false,\n };\n queries.push(ethBalanceQuery);\n }\n\n type ERC20Func = NonNullable<ERC20BalanceQueryKey[1][\"functionName\"]>;\n\n const tokenFuncs: ERC20Func[] = [];\n if (balanceOf) {\n tokenFuncs.push(\"balanceOf\");\n }\n if (allowance) {\n tokenFuncs.push(\"allowance\");\n }\n\n if (tokenFuncs.length > 0) {\n // relax type to allow string[].includes(string)\n const matchedERC20Funcs: string[] = tokenFuncs;\n\n const erc20BalanceQuery: ERC20BalanceAllowanceQueryMatch = {\n queryKey: [\"readContract\"],\n exact: false,\n predicate: (query) => {\n const { queryKey } = query;\n // all queries that read Contract.<anything>\n if (isReadContractQueryKey(queryKey)) {\n if (\n queryKey[1].functionName &&\n matchedERC20Funcs.includes(queryKey[1].functionName)\n // all queries that read Contract.balanceOf or Contract.allowance\n ) {\n return true;\n }\n }\n return false;\n },\n };\n queries.push(erc20BalanceQuery);\n }\n\n if (nonces) {\n // relax type to allow string[].includes(string)\n const matchedNonceMethods: string[] = nonceMethods;\n\n const nonceQuery: NoncesQueryMatch = {\n queryKey: [\"readContracts\"],\n exact: false,\n predicate: (query) => {\n const { queryKey } = query;\n // all queries that read multiple Contract.<anything>\n if (isReadContractsQueryKey(queryKey)) {\n // we only ever use nonce methods with other nonce methods only,\n // no non-nonce methods mixed in\n const firstMethod = queryKey[1].contracts?.[0]?.functionName;\n if (firstMethod && matchedNonceMethods.includes(firstMethod)) {\n return true;\n }\n }\n return false;\n },\n };\n queries.push(nonceQuery);\n }\n\n if (queries.length > 0) {\n await Promise.all(\n queries.map((query) => queryClient.invalidateQueries(query))\n );\n }\n };\n\n return invalidateBalancesAndAllowances;\n}\n"],"names":["isReadContractQueryKey","queryKey","nonceMethods","isReadContractsQueryKey","useInvalidateTokenDataQuery","$","_c","queryClient","useQueryClient","t0","t1","allowance","t2","balanceOf","t3","nonces","t4","undefined","queries","ethBalanceQuery","exact","push","tokenFuncs","length","matchedERC20Funcs","erc20BalanceQuery","predicate","query","functionName","includes","nonceQuery","_temp","Promise","all","map","query_1","invalidateQueries","invalidateBalancesAndAllowances","query_0","queryKey_0","firstMethod","contracts"],"mappings":"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"}
1
+ {"version":3,"file":"useInvalidateTokenData.js","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"sourcesContent":["import type { NonceMethod } from \"@/hooks/permit/hooks/usePermit1Nonce\";\nimport { Query, useQueryClient, type QueryKey } from \"@tanstack/react-query\";\n\nimport { erc20Abi, type Address } from \"viem\";\nimport { type Config } from \"wagmi\";\nimport {\n type ReadContractQueryKey,\n type GetBalanceQueryKey,\n type ReadContractsQueryKey,\n} from \"wagmi/query\";\n\ntype LooseQueryMatchToInvalidate<Q extends QueryKey> = {\n queryKey: [Q[0]];\n exact: false;\n predicate?: (query: Query) => boolean;\n};\n\ntype ETHBalanceQueryMatch = LooseQueryMatchToInvalidate<\n GetBalanceQueryKey<Config>\n>;\n\ntype ERC20BalanceQueryKey = ReadContractQueryKey<\n typeof erc20Abi,\n \"balanceOf\" | \"allowance\",\n [Address],\n Config\n>;\ntype ERC20BalanceAllowanceQueryMatch =\n LooseQueryMatchToInvalidate<ERC20BalanceQueryKey>;\n\nfunction isReadContractQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractQueryKey<unknown[], string, unknown[], Config> {\n return queryKey[0] === \"readContract\";\n}\n\ntype NoncesQueryKey = ReadContractsQueryKey<\n {\n address: Address;\n abi: typeof erc20Abi;\n functionName: NonceMethod;\n args: [Address];\n }[],\n boolean,\n Config\n>;\n\ntype NoncesQueryMatch = LooseQueryMatchToInvalidate<NoncesQueryKey>;\nconst nonceMethods: NonceMethod[] = [\"nonces\", \"_nonces\", \"nonce\", \"getNonce\"];\n\nfunction isReadContractsQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractsQueryKey<unknown[], boolean, Config> {\n return queryKey[0] === \"readContracts\";\n}\n\ntype TokenFuncsToInvalidate = {\n allowance?: boolean;\n balanceOf?: boolean;\n nonces?: boolean;\n};\n/**\n * Helper function to invalidate token-related query cache entries.\n * Used to refresh token balances and allowances after transactions that modify them.\n * Can selectively invalidate either balance or allowance queries, or both.\n * Invalidates for all tokens that have their queries currently mounted, which is easier than matching.\n */\n\nexport function useInvalidateTokenDataQuery(): (\n tokenDataType?: TokenFuncsToInvalidate\n) => Promise<void> {\n const queryClient = useQueryClient();\n\n const invalidateBalancesAndAllowances = async ({\n allowance = true,\n balanceOf = true,\n nonces = false,\n }: TokenFuncsToInvalidate = {}) => {\n const queries: LooseQueryMatchToInvalidate<QueryKey>[] = [];\n\n if (balanceOf) {\n const ethBalanceQuery: ETHBalanceQueryMatch = {\n // easier to just match the queryKey base\n queryKey: [\"balance\"],\n exact: false,\n };\n queries.push(ethBalanceQuery);\n }\n\n type ERC20Func = NonNullable<ERC20BalanceQueryKey[1][\"functionName\"]>;\n\n const tokenFuncs: ERC20Func[] = [];\n if (balanceOf) {\n tokenFuncs.push(\"balanceOf\");\n }\n if (allowance) {\n tokenFuncs.push(\"allowance\");\n }\n\n if (tokenFuncs.length > 0) {\n // relax type to allow string[].includes(string)\n const matchedERC20Funcs: string[] = tokenFuncs;\n\n const erc20BalanceQuery: ERC20BalanceAllowanceQueryMatch = {\n queryKey: [\"readContract\"],\n exact: false,\n predicate: (query) => {\n const { queryKey } = query;\n // all queries that read Contract.<anything>\n if (isReadContractQueryKey(queryKey)) {\n if (\n queryKey[1].functionName &&\n matchedERC20Funcs.includes(queryKey[1].functionName)\n // all queries that read Contract.balanceOf or Contract.allowance\n ) {\n return true;\n }\n }\n return false;\n },\n };\n queries.push(erc20BalanceQuery);\n }\n\n if (nonces) {\n // relax type to allow string[].includes(string)\n const matchedNonceMethods: string[] = nonceMethods;\n\n const nonceQuery: NoncesQueryMatch = {\n queryKey: [\"readContracts\"],\n exact: false,\n predicate: (query) => {\n const { queryKey } = query;\n // all queries that read multiple Contract.<anything>\n if (isReadContractsQueryKey(queryKey)) {\n // we only ever use nonce methods with other nonce methods only,\n // no non-nonce methods mixed in\n const firstMethod = queryKey[1].contracts?.[0]?.functionName;\n if (firstMethod && matchedNonceMethods.includes(firstMethod)) {\n return true;\n }\n }\n return false;\n },\n };\n queries.push(nonceQuery);\n }\n\n if (queries.length > 0) {\n await Promise.all(\n queries.map((query) => queryClient.invalidateQueries(query))\n );\n }\n };\n\n return invalidateBalancesAndAllowances;\n}\n"],"names":["isReadContractQueryKey","queryKey","nonceMethods","isReadContractsQueryKey","useInvalidateTokenDataQuery","$","_c","queryClient","useQueryClient","t0","t1","allowance","t2","balanceOf","t3","nonces","t4","undefined","queries","ethBalanceQuery","exact","push","tokenFuncs","length","matchedERC20Funcs","erc20BalanceQuery","predicate","query","functionName","includes","nonceQuery","_temp","Promise","all","map","query_1","invalidateQueries","invalidateBalancesAndAllowances","query_0","queryKey_0","firstMethod","contracts"],"mappings":"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"}