@velora-dex/widget 0.0.22 → 0.0.23

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 (331) hide show
  1. package/dist/components/ui/button.d.ts +3 -4
  2. package/dist/components/ui/button.d.ts.map +1 -1
  3. package/dist/components/ui/button.js +11 -8
  4. package/dist/components/ui/button.js.map +1 -1
  5. package/dist/components/ui/dialog.js +2 -2
  6. package/dist/components/ui/dialog.js.map +1 -1
  7. package/dist/components/ui/drawer.d.ts +2 -2
  8. package/dist/components/ui/drawer.d.ts.map +1 -1
  9. package/dist/components/ui/drawer.js +57 -18
  10. package/dist/components/ui/drawer.js.map +1 -1
  11. package/dist/components/ui/dropdown-menu.js +1 -1
  12. package/dist/components/ui/dropdown-menu.js.map +1 -1
  13. package/dist/components/ui/sonner.js +3 -3
  14. package/dist/components/ui/sonner.js.map +1 -1
  15. package/dist/components/ui/tooltip.js +1 -1
  16. package/dist/components/ui/tooltip.js.map +1 -1
  17. package/dist/components/web3/AccountButton.js +2 -2
  18. package/dist/components/web3/AccountButton.js.map +1 -1
  19. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +1 -1
  20. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  21. package/dist/components/web3/ConnectWallets/index.js +1 -1
  22. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  23. package/dist/components/web3/ConnectWallets/privy/button.js +1 -1
  24. package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
  25. package/dist/components/web3/ConnectWallets/privy/connectRunner.js +1 -1
  26. package/dist/components/web3/ConnectWallets/privy/connectRunner.js.map +1 -1
  27. package/dist/components/web3/ConnectWallets/privy/iframe.js +1 -1
  28. package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
  29. package/dist/components/web3/ConnectWallets/privy/types.d.ts +1 -1
  30. package/dist/components/web3/ConnectWallets/privy/types.d.ts.map +1 -1
  31. package/dist/components/web3/providers.js +1 -1
  32. package/dist/components/web3/providers.js.map +1 -1
  33. package/dist/components/widget/Details/SwapDetailsExpandable.js +1 -1
  34. package/dist/components/widget/Details/SwapDetailsExpandable.js.map +1 -1
  35. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +2 -2
  36. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  37. package/dist/components/widget/Drawer/index.d.ts +2 -1
  38. package/dist/components/widget/Drawer/index.d.ts.map +1 -1
  39. package/dist/components/widget/Drawer/index.js +47 -33
  40. package/dist/components/widget/Drawer/index.js.map +1 -1
  41. package/dist/components/widget/Drawer/state/useDrawerControls.js +1 -1
  42. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  43. package/dist/components/widget/Icon/InfoIcon.d.ts +1 -1
  44. package/dist/components/widget/Icon/InfoIcon.d.ts.map +1 -1
  45. package/dist/components/widget/Icon/InfoIcon.js +11 -8
  46. package/dist/components/widget/Icon/InfoIcon.js.map +1 -1
  47. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +1 -1
  48. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
  49. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js +1 -1
  50. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
  51. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +1 -1
  52. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
  53. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js +1 -1
  54. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
  55. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +3 -3
  56. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
  57. package/dist/components/widget/SwapModeSwitcher/state/swapModeAtom.js +1 -1
  58. package/dist/components/widget/SwapModeSwitcher/state/swapModeAtom.js.map +1 -1
  59. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +3 -3
  60. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  61. package/dist/components/widget/Toasts/CustomToast.js +1 -1
  62. package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
  63. package/dist/components/widget/TradeOverview/VerticalDash.js +1 -1
  64. package/dist/components/widget/TradeOverview/VerticalDash.js.map +1 -1
  65. package/dist/components/widget/TradeParameters/state/deltaParamAtom.js +1 -1
  66. package/dist/components/widget/TradeParameters/state/deltaParamAtom.js.map +1 -1
  67. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +2 -2
  68. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
  69. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  70. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +6 -4
  71. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  72. package/dist/configurator/Configurator.d.ts.map +1 -0
  73. package/dist/configurator/index.d.ts.map +1 -0
  74. package/dist/core/ConnectWalletDrawerButton.d.ts.map +1 -0
  75. package/dist/core/ConnectWalletDrawerButton.js.map +1 -0
  76. package/dist/core/DevTools.d.ts.map +1 -0
  77. package/dist/core/Toaster.d.ts.map +1 -0
  78. package/dist/core/Toaster.js.map +1 -0
  79. package/dist/core/TradeFlowButton.d.ts.map +1 -0
  80. package/dist/core/TradeFlowButton.js.map +1 -0
  81. package/dist/core/Updaters.d.ts.map +1 -0
  82. package/dist/core/Updaters.js.map +1 -0
  83. package/dist/core/across/utils.d.ts.map +1 -0
  84. package/dist/core/across/utils.js.map +1 -0
  85. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -0
  86. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -0
  87. package/dist/core/constants.d.ts.map +1 -0
  88. package/dist/core/constants.js.map +1 -0
  89. package/dist/core/index.d.ts.map +1 -0
  90. package/dist/core/index.js.map +1 -0
  91. package/dist/core/inputs/hooks/types.d.ts.map +1 -0
  92. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -0
  93. package/dist/{widget → core}/inputs/hooks/useTokenFromInputProps.js +114 -93
  94. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -0
  95. package/dist/core/inputs/hooks/useTokenSwitcherProps.d.ts.map +1 -0
  96. package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -0
  97. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -0
  98. package/dist/{widget → core}/inputs/hooks/useTokenToInputProps.js +46 -35
  99. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -0
  100. package/dist/core/inputs/hooks/useWidgetButtonProps.d.ts.map +1 -0
  101. package/dist/core/inputs/state/inputAmountAtom.d.ts.map +1 -0
  102. package/dist/core/inputs/state/inputAmountAtom.js.map +1 -0
  103. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -0
  104. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -0
  105. package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -0
  106. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -0
  107. package/dist/core/inputs/state/subscriptions.d.ts.map +1 -0
  108. package/dist/core/inputs/state/subscriptions.js.map +1 -0
  109. package/dist/core/logger.d.ts.map +1 -0
  110. package/dist/core/logger.js.map +1 -0
  111. package/dist/core/state/chainToAtom.d.ts +3 -0
  112. package/dist/core/state/chainToAtom.d.ts.map +1 -0
  113. package/dist/core/state/chainToAtom.js.map +1 -0
  114. package/dist/core/state/configActionsAtom.d.ts.map +1 -0
  115. package/dist/core/state/configActionsAtom.js.map +1 -0
  116. package/dist/core/state/configAtom.d.ts.map +1 -0
  117. package/dist/core/state/configAtom.js.map +1 -0
  118. package/dist/core/state/containerAtom.d.ts.map +1 -0
  119. package/dist/core/state/containerAtom.js.map +1 -0
  120. package/dist/core/state/currentSwapInputAtom.d.ts.map +1 -0
  121. package/dist/core/state/currentSwapInputAtom.js.map +1 -0
  122. package/dist/core/state/externalProviderAtom.d.ts.map +1 -0
  123. package/dist/core/state/externalProviderAtom.js.map +1 -0
  124. package/dist/core/state/isCrosschainAtom.d.ts.map +1 -0
  125. package/dist/core/state/isCrosschainAtom.js.map +1 -0
  126. package/dist/core/subscriptions.d.ts.map +1 -0
  127. package/dist/core/subscriptions.js.map +1 -0
  128. package/dist/core/swapDetails/fees.d.ts.map +1 -0
  129. package/dist/core/swapDetails/fees.js.map +1 -0
  130. package/dist/core/swapDetails/orderRouting.d.ts.map +1 -0
  131. package/dist/core/swapDetails/orderRouting.js.map +1 -0
  132. package/dist/core/swapDetails/priceImpact.d.ts.map +1 -0
  133. package/dist/core/swapDetails/priceImpact.js.map +1 -0
  134. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -0
  135. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -0
  136. package/dist/core/swapDetails/youGet.d.ts.map +1 -0
  137. package/dist/core/swapDetails/youGet.js.map +1 -0
  138. package/dist/core/types.d.ts.map +1 -0
  139. package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js +3 -1
  140. package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js.map +1 -1
  141. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js +1 -1
  142. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
  143. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js +1 -1
  144. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
  145. package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js +1 -1
  146. package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
  147. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js +1 -1
  148. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
  149. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +1 -1
  150. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  151. package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js +1 -1
  152. package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
  153. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js +1 -1
  154. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
  155. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  156. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +29 -14
  157. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  158. package/dist/hooks/swap/prices/usePricesParams.js +4 -4
  159. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  160. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +1 -1
  161. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  162. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +1 -1
  163. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
  164. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  165. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +2 -2
  166. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  167. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +1 -1
  168. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  169. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +2 -2
  170. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  171. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +1 -1
  172. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  173. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts.map +1 -1
  174. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +7 -3
  175. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
  176. package/dist/hooks/txs/queries/useAwaitTx.js +1 -1
  177. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  178. package/dist/hooks/useGlobalDeltaEnabled.js +1 -1
  179. package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
  180. package/dist/hooks/useSDK.js +1 -1
  181. package/dist/hooks/useSDK.js.map +1 -1
  182. package/dist/hooks/useSlippage.js +1 -1
  183. package/dist/hooks/useSlippage.js.map +1 -1
  184. package/dist/index.d.ts +2 -2
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +1 -1
  187. package/dist/lib/constants/time.js +2 -1
  188. package/dist/lib/constants/time.js.map +1 -1
  189. package/dist/lib/web3/wagmi/config.d.ts +1 -1
  190. package/dist/lib/web3/wagmi/constants.d.ts +1 -1
  191. package/dist/styles.css +1 -140
  192. package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +2 -2
  193. package/package.json +1 -1
  194. package/dist/test/Configurator.d.ts.map +0 -1
  195. package/dist/test/connect/AccountDisplay.d.ts +0 -2
  196. package/dist/test/connect/AccountDisplay.d.ts.map +0 -1
  197. package/dist/test/connect/App.d.ts +0 -2
  198. package/dist/test/connect/App.d.ts.map +0 -1
  199. package/dist/test/connect/ConnectWallet.d.ts +0 -2
  200. package/dist/test/connect/ConnectWallet.d.ts.map +0 -1
  201. package/dist/test/connect/PrivyProfile.d.ts +0 -2
  202. package/dist/test/connect/PrivyProfile.d.ts.map +0 -1
  203. package/dist/test/connect/WagmiProfile.d.ts +0 -2
  204. package/dist/test/connect/WagmiProfile.d.ts.map +0 -1
  205. package/dist/test/connect/WalletActions.d.ts +0 -2
  206. package/dist/test/connect/WalletActions.d.ts.map +0 -1
  207. package/dist/test/index.d.ts.map +0 -1
  208. package/dist/widget/ConnectWalletDrawerButton.d.ts.map +0 -1
  209. package/dist/widget/ConnectWalletDrawerButton.js.map +0 -1
  210. package/dist/widget/DevTools.d.ts.map +0 -1
  211. package/dist/widget/Toaster.d.ts.map +0 -1
  212. package/dist/widget/Toaster.js.map +0 -1
  213. package/dist/widget/TradeFlowButton.d.ts.map +0 -1
  214. package/dist/widget/TradeFlowButton.js.map +0 -1
  215. package/dist/widget/Updaters.d.ts.map +0 -1
  216. package/dist/widget/Updaters.js.map +0 -1
  217. package/dist/widget/across/utils.d.ts.map +0 -1
  218. package/dist/widget/across/utils.js.map +0 -1
  219. package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +0 -1
  220. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +0 -1
  221. package/dist/widget/constants.d.ts.map +0 -1
  222. package/dist/widget/constants.js.map +0 -1
  223. package/dist/widget/index.d.ts.map +0 -1
  224. package/dist/widget/index.js.map +0 -1
  225. package/dist/widget/inputs/hooks/types.d.ts.map +0 -1
  226. package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +0 -1
  227. package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +0 -1
  228. package/dist/widget/inputs/hooks/useTokenSwitcherProps.d.ts.map +0 -1
  229. package/dist/widget/inputs/hooks/useTokenSwitcherProps.js.map +0 -1
  230. package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +0 -1
  231. package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +0 -1
  232. package/dist/widget/inputs/hooks/useWidgetButtonProps.d.ts.map +0 -1
  233. package/dist/widget/inputs/state/inputAmountAtom.d.ts.map +0 -1
  234. package/dist/widget/inputs/state/inputAmountAtom.js.map +0 -1
  235. package/dist/widget/inputs/state/selectedTokenActionsAtom.d.ts.map +0 -1
  236. package/dist/widget/inputs/state/selectedTokenActionsAtom.js.map +0 -1
  237. package/dist/widget/inputs/state/selectedTokenAtom.d.ts.map +0 -1
  238. package/dist/widget/inputs/state/selectedTokenAtom.js.map +0 -1
  239. package/dist/widget/inputs/state/subscriptions.d.ts.map +0 -1
  240. package/dist/widget/inputs/state/subscriptions.js.map +0 -1
  241. package/dist/widget/logger.d.ts.map +0 -1
  242. package/dist/widget/logger.js.map +0 -1
  243. package/dist/widget/state/chainToAtom.d.ts +0 -3
  244. package/dist/widget/state/chainToAtom.d.ts.map +0 -1
  245. package/dist/widget/state/chainToAtom.js.map +0 -1
  246. package/dist/widget/state/configActionsAtom.d.ts.map +0 -1
  247. package/dist/widget/state/configActionsAtom.js.map +0 -1
  248. package/dist/widget/state/configAtom.d.ts.map +0 -1
  249. package/dist/widget/state/configAtom.js.map +0 -1
  250. package/dist/widget/state/containerAtom.d.ts.map +0 -1
  251. package/dist/widget/state/containerAtom.js.map +0 -1
  252. package/dist/widget/state/currentSwapInputAtom.d.ts.map +0 -1
  253. package/dist/widget/state/currentSwapInputAtom.js.map +0 -1
  254. package/dist/widget/state/externalProviderAtom.d.ts.map +0 -1
  255. package/dist/widget/state/externalProviderAtom.js.map +0 -1
  256. package/dist/widget/state/isCrosschainAtom.d.ts.map +0 -1
  257. package/dist/widget/state/isCrosschainAtom.js.map +0 -1
  258. package/dist/widget/subscriptions.d.ts.map +0 -1
  259. package/dist/widget/subscriptions.js.map +0 -1
  260. package/dist/widget/swapDetails/fees.d.ts.map +0 -1
  261. package/dist/widget/swapDetails/fees.js.map +0 -1
  262. package/dist/widget/swapDetails/orderRouting.d.ts.map +0 -1
  263. package/dist/widget/swapDetails/orderRouting.js.map +0 -1
  264. package/dist/widget/swapDetails/priceImpact.d.ts.map +0 -1
  265. package/dist/widget/swapDetails/priceImpact.js.map +0 -1
  266. package/dist/widget/swapDetails/useSwapDetailsListProps.d.ts.map +0 -1
  267. package/dist/widget/swapDetails/useSwapDetailsListProps.js.map +0 -1
  268. package/dist/widget/swapDetails/youGet.d.ts.map +0 -1
  269. package/dist/widget/swapDetails/youGet.js.map +0 -1
  270. package/dist/widget/types.d.ts.map +0 -1
  271. /package/dist/{test → configurator}/Configurator.d.ts +0 -0
  272. /package/dist/{test → configurator}/index.d.ts +0 -0
  273. /package/dist/{widget → core}/ConnectWalletDrawerButton.d.ts +0 -0
  274. /package/dist/{widget → core}/ConnectWalletDrawerButton.js +0 -0
  275. /package/dist/{widget → core}/DevTools.d.ts +0 -0
  276. /package/dist/{widget → core}/Toaster.d.ts +0 -0
  277. /package/dist/{widget → core}/Toaster.js +0 -0
  278. /package/dist/{widget → core}/TradeFlowButton.d.ts +0 -0
  279. /package/dist/{widget → core}/TradeFlowButton.js +0 -0
  280. /package/dist/{widget → core}/Updaters.d.ts +0 -0
  281. /package/dist/{widget → core}/Updaters.js +0 -0
  282. /package/dist/{widget → core}/across/utils.d.ts +0 -0
  283. /package/dist/{widget → core}/across/utils.js +0 -0
  284. /package/dist/{widget → core}/button/hooks/useWidgetButtonExtraProps.d.ts +0 -0
  285. /package/dist/{widget → core}/button/hooks/useWidgetButtonExtraProps.js +0 -0
  286. /package/dist/{widget → core}/constants.d.ts +0 -0
  287. /package/dist/{widget → core}/constants.js +0 -0
  288. /package/dist/{widget → core}/index.d.ts +0 -0
  289. /package/dist/{widget → core}/index.js +0 -0
  290. /package/dist/{widget → core}/inputs/hooks/types.d.ts +0 -0
  291. /package/dist/{widget → core}/inputs/hooks/useTokenFromInputProps.d.ts +0 -0
  292. /package/dist/{widget → core}/inputs/hooks/useTokenSwitcherProps.d.ts +0 -0
  293. /package/dist/{widget → core}/inputs/hooks/useTokenSwitcherProps.js +0 -0
  294. /package/dist/{widget → core}/inputs/hooks/useTokenToInputProps.d.ts +0 -0
  295. /package/dist/{widget → core}/inputs/hooks/useWidgetButtonProps.d.ts +0 -0
  296. /package/dist/{widget → core}/inputs/state/inputAmountAtom.d.ts +0 -0
  297. /package/dist/{widget → core}/inputs/state/inputAmountAtom.js +0 -0
  298. /package/dist/{widget → core}/inputs/state/selectedTokenActionsAtom.d.ts +0 -0
  299. /package/dist/{widget → core}/inputs/state/selectedTokenActionsAtom.js +0 -0
  300. /package/dist/{widget → core}/inputs/state/selectedTokenAtom.d.ts +0 -0
  301. /package/dist/{widget → core}/inputs/state/selectedTokenAtom.js +0 -0
  302. /package/dist/{widget → core}/inputs/state/subscriptions.d.ts +0 -0
  303. /package/dist/{widget → core}/inputs/state/subscriptions.js +0 -0
  304. /package/dist/{widget → core}/logger.d.ts +0 -0
  305. /package/dist/{widget → core}/logger.js +0 -0
  306. /package/dist/{widget → core}/state/chainToAtom.js +0 -0
  307. /package/dist/{widget → core}/state/configActionsAtom.d.ts +0 -0
  308. /package/dist/{widget → core}/state/configActionsAtom.js +0 -0
  309. /package/dist/{widget → core}/state/configAtom.d.ts +0 -0
  310. /package/dist/{widget → core}/state/configAtom.js +0 -0
  311. /package/dist/{widget → core}/state/containerAtom.d.ts +0 -0
  312. /package/dist/{widget → core}/state/containerAtom.js +0 -0
  313. /package/dist/{widget → core}/state/currentSwapInputAtom.d.ts +0 -0
  314. /package/dist/{widget → core}/state/currentSwapInputAtom.js +0 -0
  315. /package/dist/{widget → core}/state/externalProviderAtom.d.ts +0 -0
  316. /package/dist/{widget → core}/state/externalProviderAtom.js +0 -0
  317. /package/dist/{widget → core}/state/isCrosschainAtom.d.ts +0 -0
  318. /package/dist/{widget → core}/state/isCrosschainAtom.js +0 -0
  319. /package/dist/{widget → core}/subscriptions.d.ts +0 -0
  320. /package/dist/{widget → core}/subscriptions.js +0 -0
  321. /package/dist/{widget → core}/swapDetails/fees.d.ts +0 -0
  322. /package/dist/{widget → core}/swapDetails/fees.js +0 -0
  323. /package/dist/{widget → core}/swapDetails/orderRouting.d.ts +0 -0
  324. /package/dist/{widget → core}/swapDetails/orderRouting.js +0 -0
  325. /package/dist/{widget → core}/swapDetails/priceImpact.d.ts +0 -0
  326. /package/dist/{widget → core}/swapDetails/priceImpact.js +0 -0
  327. /package/dist/{widget → core}/swapDetails/useSwapDetailsListProps.d.ts +0 -0
  328. /package/dist/{widget → core}/swapDetails/useSwapDetailsListProps.js +0 -0
  329. /package/dist/{widget → core}/swapDetails/youGet.d.ts +0 -0
  330. /package/dist/{widget → core}/swapDetails/youGet.js +0 -0
  331. /package/dist/{widget → core}/types.d.ts +0 -0
@@ -4,7 +4,7 @@ import { detectPermitSupportType } from '../../utils/detect.js';
4
4
  import { useConfig } from 'wagmi';
5
5
  import { constructAddressLinkForChain } from '../../../../lib/utils/explorer.js';
6
6
  import { assert } from 'ts-essentials';
7
- import { useLogger } from '../../../../widget/logger.js';
7
+ import { useLogger } from '../../../../core/logger.js';
8
8
 
9
9
  function useGetPermitInfo(t0) {
10
10
  const $ = distExports.c(15);
@@ -1 +1 @@
1
- {"version":3,"file":"useGetPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetPermitInfo.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address } from \"viem\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n detectPermitSupportType,\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"../../utils/detect\";\nimport { useConfig } from \"wagmi\";\nimport { constructAddressLinkForChain } from \"@/lib/utils/explorer\";\nimport { assert } from \"ts-essentials\";\nimport { useLogger } from \"@/widget/logger\";\n\ntype GetPermitInfoQueryKey = readonly [\n \"permitInfo\",\n Address?,\n SupportedChainId?,\n];\n\ntype PermitInfo = PermitSupportResult & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype NotDetectedPermitInfo = NotDetectedPermitSupport & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype PermitInfoResult = PermitInfo | NotDetectedPermitInfo;\n\nexport type UseGetPermitInfoParameters<Select = PermitInfoResult> = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n query?: Omit<\n UseQueryOptions<PermitInfoResult, Error, Select, GetPermitInfoQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport type UseGetPermitInfoReturnType<Select = PermitInfoResult> =\n UseQueryResult<Select, Error>;\n\nexport function useGetPermitInfo<Select = PermitInfoResult>({\n tokenAddress,\n chainId,\n query,\n}: UseGetPermitInfoParameters<Select>): UseGetPermitInfoReturnType<Select> {\n const logger = useLogger(\"PERMIT1::GetPermitInfo\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n PermitInfoResult,\n Error,\n Select,\n GetPermitInfoQueryKey\n >({\n queryKey: [\"permitInfo\", tokenAddress?.toLowerCase() as Address, chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const permitSupport = await detectPermitSupportType({\n config,\n tokenAddress,\n chainId,\n });\n\n const result = {\n ...permitSupport,\n tokenAddress,\n chainId,\n };\n\n logger.log(\"result\", result);\n logger.log(\n \"check Token in explorer\",\n constructAddressLinkForChain({\n chainId,\n address: tokenAddress,\n }) + \"#writeContract\"\n );\n\n return result;\n },\n // Token Permit support won't change during App runtime\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: queryEnabled && !!tokenAddress && !!chainId,\n });\n\n return queryResult;\n}\n"],"names":["useGetPermitInfo","t0","$","_c","tokenAddress","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","toLowerCase","t2","t3","t4","assert","permitSupport","detectPermitSupportType","result","log","constructAddressLinkForChain","address","t5","t6","queryKey","queryFn","staleTime","Infinity","gcTime","queryResult","useQuery"],"mappings":"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"}
1
+ {"version":3,"file":"useGetPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetPermitInfo.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address } from \"viem\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n detectPermitSupportType,\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"../../utils/detect\";\nimport { useConfig } from \"wagmi\";\nimport { constructAddressLinkForChain } from \"@/lib/utils/explorer\";\nimport { assert } from \"ts-essentials\";\nimport { useLogger } from \"@/core/logger\";\n\ntype GetPermitInfoQueryKey = readonly [\n \"permitInfo\",\n Address?,\n SupportedChainId?,\n];\n\ntype PermitInfo = PermitSupportResult & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype NotDetectedPermitInfo = NotDetectedPermitSupport & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype PermitInfoResult = PermitInfo | NotDetectedPermitInfo;\n\nexport type UseGetPermitInfoParameters<Select = PermitInfoResult> = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n query?: Omit<\n UseQueryOptions<PermitInfoResult, Error, Select, GetPermitInfoQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport type UseGetPermitInfoReturnType<Select = PermitInfoResult> =\n UseQueryResult<Select, Error>;\n\nexport function useGetPermitInfo<Select = PermitInfoResult>({\n tokenAddress,\n chainId,\n query,\n}: UseGetPermitInfoParameters<Select>): UseGetPermitInfoReturnType<Select> {\n const logger = useLogger(\"PERMIT1::GetPermitInfo\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n PermitInfoResult,\n Error,\n Select,\n GetPermitInfoQueryKey\n >({\n queryKey: [\"permitInfo\", tokenAddress?.toLowerCase() as Address, chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const permitSupport = await detectPermitSupportType({\n config,\n tokenAddress,\n chainId,\n });\n\n const result = {\n ...permitSupport,\n tokenAddress,\n chainId,\n };\n\n logger.log(\"result\", result);\n logger.log(\n \"check Token in explorer\",\n constructAddressLinkForChain({\n chainId,\n address: tokenAddress,\n }) + \"#writeContract\"\n );\n\n return result;\n },\n // Token Permit support won't change during App runtime\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: queryEnabled && !!tokenAddress && !!chainId,\n });\n\n return queryResult;\n}\n"],"names":["useGetPermitInfo","t0","$","_c","tokenAddress","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","toLowerCase","t2","t3","t4","assert","permitSupport","detectPermitSupportType","result","log","constructAddressLinkForChain","address","t5","t6","queryKey","queryFn","staleTime","Infinity","gcTime","queryResult","useQuery"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { d as distExports } from '../../../../_virtual/index.js';
2
- import { useTokenFromAtom } from '../../../../widget/inputs/state/selectedTokenAtom.js';
2
+ import { useTokenFromAtom } from '../../../../core/inputs/state/selectedTokenAtom.js';
3
3
  import 'viem';
4
4
  import { usePermit1Nonce } from './usePermit1Nonce.js';
5
5
  import { useAccount } from 'wagmi';
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenFromPermit1Nonce.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/widget/inputs/state/selectedTokenAtom\";\n\nimport { type Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { usePermit1Nonce, type UsePermit1NonceResult } from \"./usePermit1Nonce\";\nimport { useAccount } from \"wagmi\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermit1Nonce({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UsePermit1NonceResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const { address: owner } = useAccount();\n const queryResult = usePermit1Nonce({\n token: tokenFrom.address as Address,\n owner,\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermit1Nonce","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","address","owner","useAccount","t3","t4","network","token","chainId","queryResult","usePermit1Nonce","t5"],"mappings":";;;;;;AAWO,SAAAA,yBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAkCG,IAAAA,EAAAA,MAAAH;AAEDC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA;AAFC,EAAA,MAAA;AAAA,IAAAG,OAAAA,EAAAC;AAAAA,GAAA,GAAAF,EAAAA;AACvC,EAAA,MAAAC,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAIA,EAAA,MAAAE,YAAkBC,gBAAAA,EAAiB;AACnC,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA2BC,UAAAA,EAAW;AAE7B,EAAA,MAAAC,KAAAL,SAAAA,CAASE,OAAAA;AAAmB,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAZ,EAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,QAAAS,KAAAA,IAAAT,CAAAA,CAAA,CAAA,MAAAW,EAAAA,IAAAX,CAAAA,CAAA,CAAA,CAAA,KAAAM,UAAAO,OAAAA,EAAA;AADDD,IAAAA,EAAAA,GAAA;AAAA,MAAAE,KAAAA,EAC3BH,EAAAA;AAAAA,MAA4BF,KAAAA;AAAAA,MAAAM,SAE1BT,SAAAA,CAASO,OAAAA;AAAAA,MAAAV;AAAAA,KAAA;AAEnBH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAS,KAAAA;AAAAT,IAAAA,CAAAA,MAAAW,EAAAA;AAAAX,IAAAA,CAAAA,CAAA,CAAA,IAAAM,SAAAA,CAAAO,OAAAA;AAAAb,IAAAA,CAAAA,MAAAY,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAA;AALD,EAAA,MAAAgB,WAAAA,GAAoBC,gBAAgBL,EAKnC,CAAA;AAAE,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAlB,EAAA,CAAA,CAAA,KAAAgB,eAAAhB,CAAAA,QAAAM,SAAAA,EAAA;AAEIY,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFF,WAAAA;AAAAA,MAAWF,KAAAA,EACPR;AAAAA,KAAS;AACjBN,IAAAA,CAAAA,MAAAgB,WAAAA;AAAAhB,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAHMkB,EAAAA;AAGN;;;;"}
1
+ {"version":3,"file":"useTokenFromPermit1Nonce.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/core/inputs/state/selectedTokenAtom\";\n\nimport { type Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { usePermit1Nonce, type UsePermit1NonceResult } from \"./usePermit1Nonce\";\nimport { useAccount } from \"wagmi\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermit1Nonce({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UsePermit1NonceResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const { address: owner } = useAccount();\n const queryResult = usePermit1Nonce({\n token: tokenFrom.address as Address,\n owner,\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermit1Nonce","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","address","owner","useAccount","t3","t4","network","token","chainId","queryResult","usePermit1Nonce","t5"],"mappings":";;;;;;AAWO,SAAAA,yBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAkCG,IAAAA,EAAAA,MAAAH;AAEDC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA;AAFC,EAAA,MAAA;AAAA,IAAAG,OAAAA,EAAAC;AAAAA,GAAA,GAAAF,EAAAA;AACvC,EAAA,MAAAC,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAIA,EAAA,MAAAE,YAAkBC,gBAAAA,EAAiB;AACnC,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA2BC,UAAAA,EAAW;AAE7B,EAAA,MAAAC,KAAAL,SAAAA,CAASE,OAAAA;AAAmB,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAZ,EAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,QAAAS,KAAAA,IAAAT,CAAAA,CAAA,CAAA,MAAAW,EAAAA,IAAAX,CAAAA,CAAA,CAAA,CAAA,KAAAM,UAAAO,OAAAA,EAAA;AADDD,IAAAA,EAAAA,GAAA;AAAA,MAAAE,KAAAA,EAC3BH,EAAAA;AAAAA,MAA4BF,KAAAA;AAAAA,MAAAM,SAE1BT,SAAAA,CAASO,OAAAA;AAAAA,MAAAV;AAAAA,KAAA;AAEnBH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAS,KAAAA;AAAAT,IAAAA,CAAAA,MAAAW,EAAAA;AAAAX,IAAAA,CAAAA,CAAA,CAAA,IAAAM,SAAAA,CAAAO,OAAAA;AAAAb,IAAAA,CAAAA,MAAAY,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAA;AALD,EAAA,MAAAgB,WAAAA,GAAoBC,gBAAgBL,EAKnC,CAAA;AAAE,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAlB,EAAA,CAAA,CAAA,KAAAgB,eAAAhB,CAAAA,QAAAM,SAAAA,EAAA;AAEIY,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFF,WAAAA;AAAAA,MAAWF,KAAAA,EACPR;AAAAA,KAAS;AACjBN,IAAAA,CAAAA,MAAAgB,WAAAA;AAAAhB,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAHMkB,EAAAA;AAGN;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { d as distExports } from '../../../../_virtual/index.js';
2
- import { useTokenFromAtom } from '../../../../widget/inputs/state/selectedTokenAtom.js';
2
+ import { useTokenFromAtom } from '../../../../core/inputs/state/selectedTokenAtom.js';
3
3
  import 'viem';
4
4
  import { useGetSafePermitInfo } from './useGetSafePermitInfo.js';
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenFromPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermitInfo.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/widget/inputs/state/selectedTokenAtom\";\n\nimport { type Address } from \"viem\";\nimport {\n useGetSafePermitInfo,\n type UseGetSafePermitInfoResult,\n} from \"./useGetSafePermitInfo\";\nimport type { Token } from \"@/tokens/state/types\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermitInfo({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UseGetSafePermitInfoResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const queryResult = useGetSafePermitInfo({\n tokenAddress: tokenFrom.address as Address,\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermitInfo","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","t3","address","t4","network","tokenAddress","chainId","queryResult","useGetSafePermitInfo","t5","token"],"mappings":";;;;;AAaO,SAAAA,uBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAgCG,IAAAA,EAAAA,MAAAH;AAECC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA;AAFD,EAAA,MAAA;AAAA,IAAAG,OAAAA,EAAAC;AAAAA,GAAA,GAAAF,EAAAA;AACrC,EAAA,MAAAC,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAIA,EAAA,MAAAE,YAAkBC,gBAAAA,EAAiB;AAEnB,EAAA,MAAAC,KAAAF,SAAAA,CAASG,OAAAA;AAAmB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAV,CAAAA,CAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAQ,EAAAA,IAAAR,CAAAA,CAAA,CAAA,CAAA,KAAAM,SAAAA,CAAAK,OAAAA,EAAA;AADHD,IAAAA,EAAAA,GAAA;AAAA,MAAAE,YAAAA,EACzBJ,EAAAA;AAAAA,MAA4BK,SACjCP,SAAAA,CAASK,OAAAA;AAAAA,MAAAR;AAAAA,KAAA;AAEnBH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,CAAA,CAAA,IAAAM,SAAAA,CAAAK,OAAAA;AAAAX,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA;AAJD,EAAA,MAAAc,WAAAA,GAAoBC,qBAAqBL,EAIxC,CAAA;AAAE,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAhB,EAAA,CAAA,CAAA,KAAAc,eAAAd,CAAAA,QAAAM,SAAAA,EAAA;AAEIU,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFF,WAAAA;AAAAA,MAAWG,KAAAA,EACPX;AAAAA,KAAS;AACjBN,IAAAA,CAAAA,MAAAc,WAAAA;AAAAd,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAHMgB,EAAAA;AAGN;;;;"}
1
+ {"version":3,"file":"useTokenFromPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermitInfo.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/core/inputs/state/selectedTokenAtom\";\n\nimport { type Address } from \"viem\";\nimport {\n useGetSafePermitInfo,\n type UseGetSafePermitInfoResult,\n} from \"./useGetSafePermitInfo\";\nimport type { Token } from \"@/tokens/state/types\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermitInfo({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UseGetSafePermitInfoResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const queryResult = useGetSafePermitInfo({\n tokenAddress: tokenFrom.address as Address,\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermitInfo","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","t3","address","t4","network","tokenAddress","chainId","queryResult","useGetSafePermitInfo","t5","token"],"mappings":";;;;;AAaO,SAAAA,uBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAgCG,IAAAA,EAAAA,MAAAH;AAECC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA;AAFD,EAAA,MAAA;AAAA,IAAAG,OAAAA,EAAAC;AAAAA,GAAA,GAAAF,EAAAA;AACrC,EAAA,MAAAC,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAIA,EAAA,MAAAE,YAAkBC,gBAAAA,EAAiB;AAEnB,EAAA,MAAAC,KAAAF,SAAAA,CAASG,OAAAA;AAAmB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAV,CAAAA,CAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAQ,EAAAA,IAAAR,CAAAA,CAAA,CAAA,CAAA,KAAAM,SAAAA,CAAAK,OAAAA,EAAA;AADHD,IAAAA,EAAAA,GAAA;AAAA,MAAAE,YAAAA,EACzBJ,EAAAA;AAAAA,MAA4BK,SACjCP,SAAAA,CAASK,OAAAA;AAAAA,MAAAR;AAAAA,KAAA;AAEnBH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,CAAA,CAAA,IAAAM,SAAAA,CAAAK,OAAAA;AAAAX,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA;AAJD,EAAA,MAAAc,WAAAA,GAAoBC,qBAAqBL,EAIxC,CAAA;AAAE,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAhB,EAAA,CAAA,CAAA,KAAAc,eAAAd,CAAAA,QAAAM,SAAAA,EAAA;AAEIU,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFF,WAAAA;AAAAA,MAAWG,KAAAA,EACPX;AAAAA,KAAS;AACjBN,IAAAA,CAAAA,MAAAc,WAAAA;AAAAd,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAHMgB,EAAAA;AAGN;;;;"}
@@ -3,7 +3,7 @@ import { useQuery } from '@tanstack/react-query';
3
3
  import { trySignPermit1 } from '../../utils/trySignPermit1.js';
4
4
  import { useConfig } from 'wagmi';
5
5
  import { assert } from 'ts-essentials';
6
- import { useLogger } from '../../../../widget/logger.js';
6
+ import { useLogger } from '../../../../core/logger.js';
7
7
 
8
8
  function useTryToSignPermit1(t0) {
9
9
  const $ = distExports.c(18);
@@ -1 +1 @@
1
- {"version":3,"file":"useTryToSignPermit1.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTryToSignPermit1.ts"],"sourcesContent":["import {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { trySignPermit1 } from \"../../utils/trySignPermit1\";\nimport type {\n TrySignPermitParams,\n TrySignPermitResult,\n} from \"../../utils/trySignPermit1\";\nimport { useConfig } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { Address } from \"viem\";\nimport { useLogger } from \"@/widget/logger\";\n\ntype TryToSingPermitQueryKey = [\n \"trySignPermit\",\n TrySignPermitParams[\"permitInfo\"]?,\n Address?,\n Address?,\n bigint?,\n];\n\ntype UseTryToSignPermitParams<Select = TrySignPermitResult> = Partial<\n Omit<TrySignPermitParams, \"config\">\n> & {\n query?: Omit<\n UseQueryOptions<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport function useTryToSignPermit1<Select = TrySignPermitResult>({\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n chainId,\n query,\n}: UseTryToSignPermitParams<Select>): UseQueryResult<Select, Error> {\n const logger = useLogger(\"PERMIT1::TryToSignPermit1\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >({\n queryKey: [\n \"trySignPermit\",\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n ],\n queryFn: async () => {\n assert(permitInfo, \"permitInfo is required\");\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const result = await trySignPermit1({\n config,\n permitInfo,\n tokenAddress,\n chainId,\n spenderAddress,\n amount,\n });\n\n logger.log(\"result\", result);\n\n return result;\n },\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n staleTime: Infinity,\n gcTime: Infinity,\n retry: false,\n ...query,\n enabled: queryEnabled && !!(permitInfo && tokenAddress && !!chainId),\n });\n\n return queryResult;\n}\n"],"names":["useTryToSignPermit1","t0","$","_c","permitInfo","tokenAddress","spenderAddress","amount","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","t2","assert","result","trySignPermit1","log","t3","t4","queryKey","queryFn","refetchOnMount","refetchOnWindowFocus","staleTime","Infinity","gcTime","retry","queryResult","useQuery"],"mappings":"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"}
1
+ {"version":3,"file":"useTryToSignPermit1.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTryToSignPermit1.ts"],"sourcesContent":["import {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { trySignPermit1 } from \"../../utils/trySignPermit1\";\nimport type {\n TrySignPermitParams,\n TrySignPermitResult,\n} from \"../../utils/trySignPermit1\";\nimport { useConfig } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { Address } from \"viem\";\nimport { useLogger } from \"@/core/logger\";\n\ntype TryToSingPermitQueryKey = [\n \"trySignPermit\",\n TrySignPermitParams[\"permitInfo\"]?,\n Address?,\n Address?,\n bigint?,\n];\n\ntype UseTryToSignPermitParams<Select = TrySignPermitResult> = Partial<\n Omit<TrySignPermitParams, \"config\">\n> & {\n query?: Omit<\n UseQueryOptions<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport function useTryToSignPermit1<Select = TrySignPermitResult>({\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n chainId,\n query,\n}: UseTryToSignPermitParams<Select>): UseQueryResult<Select, Error> {\n const logger = useLogger(\"PERMIT1::TryToSignPermit1\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >({\n queryKey: [\n \"trySignPermit\",\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n ],\n queryFn: async () => {\n assert(permitInfo, \"permitInfo is required\");\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const result = await trySignPermit1({\n config,\n permitInfo,\n tokenAddress,\n chainId,\n spenderAddress,\n amount,\n });\n\n logger.log(\"result\", result);\n\n return result;\n },\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n staleTime: Infinity,\n gcTime: Infinity,\n retry: false,\n ...query,\n enabled: queryEnabled && !!(permitInfo && tokenAddress && !!chainId),\n });\n\n return queryResult;\n}\n"],"names":["useTryToSignPermit1","t0","$","_c","permitInfo","tokenAddress","spenderAddress","amount","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","t2","assert","result","trySignPermit1","log","t3","t4","queryKey","queryFn","refetchOnMount","refetchOnWindowFocus","staleTime","Infinity","gcTime","retry","queryResult","useQuery"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { d as distExports } from '../../../../_virtual/index.js';
2
2
  import { useAccount } from 'wagmi';
3
3
  import { isETH } from '../../../../tokens/utils/eth.js';
4
4
  import { useTokenAllowance } from '../../../tokens/allowance/useTokenAllowance.js';
5
- import { useLogger } from '../../../../widget/logger.js';
5
+ import { useLogger } from '../../../../core/logger.js';
6
6
  import { PERMIT2_ADDRESS } from '../../utils/construct.js';
7
7
 
8
8
  function usePermit2Allowance(t0) {
@@ -1 +1 @@
1
- {"version":3,"file":"usePermit2Allowance.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport type { Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { useTokenAllowance } from \"@/hooks/tokens/allowance/useTokenAllowance\";\nimport { useLogger } from \"@/widget/logger\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\n\ninterface UsePermit2AllowanceParams {\n token?: Pick<Token, \"address\" | \"network\">;\n spender?: Address;\n amount?: bigint;\n enabled?: boolean;\n}\n\ntype UsePermit2AllowanceResult = {\n canUsePermit2: boolean;\n enoughAllowanceForPermit2: boolean;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: () => void;\n permit2Allowance: bigint | null;\n};\n\nexport function usePermit2Allowance({\n token,\n spender,\n amount,\n enabled = true,\n}: UsePermit2AllowanceParams): UsePermit2AllowanceResult {\n const logger = useLogger(\"PERMIT2::Allowance\");\n const { address: user } = useAccount();\n\n const tokenNotETH = token && !isETH(token);\n\n const allowanceForPermit2Query = useTokenAllowance({\n tokenAddress: token?.address,\n spender: PERMIT2_ADDRESS,\n chainId: token?.network,\n enabled,\n });\n\n const enoughAllowanceForPermit2 = !!(\n amount &&\n allowanceForPermit2Query.data &&\n allowanceForPermit2Query.data >= amount\n );\n\n const canUsePermit2 = !!(\n tokenNotETH &&\n user &&\n spender &&\n amount &&\n enoughAllowanceForPermit2\n );\n\n logger.once.log({\n canUsePermit2,\n enoughAllowanceForPermit2,\n allowance: allowanceForPermit2Query.data,\n error: allowanceForPermit2Query.error,\n });\n\n return {\n canUsePermit2,\n enoughAllowanceForPermit2,\n isLoading: allowanceForPermit2Query.isLoading,\n isError: allowanceForPermit2Query.isError,\n isSuccess: allowanceForPermit2Query.isSuccess,\n error: allowanceForPermit2Query.error,\n permit2Allowance: allowanceForPermit2Query.data ?? null,\n refetch: allowanceForPermit2Query.refetch,\n };\n}\n"],"names":["usePermit2Allowance","t0","$","_c","token","spender","amount","enabled","t1","undefined","logger","useLogger","address","user","useAccount","tokenNotETH","isETH","t2","t3","network","t4","tokenAddress","PERMIT2_ADDRESS","chainId","allowanceForPermit2Query","useTokenAllowance","enoughAllowanceForPermit2","data","canUsePermit2","once","log","allowance","error","t5","t6","isError","isLoading","isSuccess","refetch","permit2Allowance"],"mappings":";;;;;;;AA0BO,SAAAA,oBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA6B,EAAA,MAAA;AAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAC,OAAAA,EAAAC;AAAAA,GAAA,GAAAP,EAAAA;AAIlC,EAAA,MAAAM,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAEA,EAAA,MAAAE,MAAAA,GAAeC,UAAU,oBAAoB,CAAA;AAC7C,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA0BC,UAAAA,EAAW;AAErC,EAAA,MAAAC,WAAAA,GAAoBX,KAAAA,KAAUY,KAAAA,CAAMZ,KAAK,CAAA;AAGzB,EAAA,MAAAa,KAAAb,KAAAA,EAAKQ,OAAAA;AAEV,EAAA,MAAAM,KAAAd,KAAAA,EAAKe,OAAAA;AAAS,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAK,OAAAA,IAAAL,CAAAA,QAAAe,EAAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAgB,EAAAA,EAAA;AAH0BE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,YAAAA,EACnCJ,EAAAA;AAAAA,MAAcZ,OAAAA,EAAAiB,eAAAA;AAAAA,MAAAC,OAAAA,EAEnBL,EAAAA;AAAAA,MAAcX;AAAAA,KAAA;AAExBL,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAe,EAAAA;AAAAf,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAhB,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA;AALD,EAAA,MAAAsB,wBAAAA,GAAiCC,kBAAkBL,EAKlD,CAAA;AAED,EAAA,MAAAM,4BAAA,CAAA,EACEpB,UACAkB,wBAAAA,CAAwBG,IAAAA,IACxBH,yBAAwBG,IAAAA,IAASrB,MAAAA,CAAAA;AAGnC,EAAA,MAAAsB,gBAAA,CAAA,EACEb,WAAAA,IACAF,IAAAA,IACAR,WACAC,MAAAA,IACAoB,yBAAAA,CAAAA;AAGFhB,EAAAA,MAAAA,CAAMmB,KAAAC,GAAAA,CAAA;AAAA,IAAAF,aAAAA;AAAAA,IAAAF,yBAAAA;AAAAA,IAAAK,WAGOP,wBAAAA,CAAwBG,IAAAA;AAAAA,IAAAK,OAC5BR,wBAAAA,CAAwBQ;AAAAA,GAChC,CAAA;AASmB,EAAA,MAAAC,EAAAA,GAAAT,yBAAwBG,IAAAA,IAAA,IAAA;AAAa,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAhC,EAAA,CAAA,CAAA,KAAAsB,wBAAAA,CAAAQ,KAAAA,IAAA9B,EAAA,CAAA,CAAA,KAAAsB,wBAAAA,CAAAW,OAAAA,IAAAjC,EAAA,CAAA,CAAA,KAAAsB,wBAAAA,CAAAY,SAAAA,IAAAlC,EAAA,CAAA,CAAA,KAAAsB,wBAAAA,CAAAa,SAAAA,IAAAnC,SAAAsB,wBAAAA,CAAAc,OAAAA,IAAApC,EAAA,CAAA,CAAA,KAAA0B,aAAAA,IAAA1B,CAAAA,CAAA,EAAA,CAAA,KAAAwB,yBAAAA,IAAAxB,CAAAA,SAAA+B,EAAAA,EAAA;AAPlDC,IAAAA,EAAAA,GAAA;AAAA,MAAAN,aAAAA;AAAAA,MAAAF,yBAAAA;AAAAA,MAAAU,WAGMZ,wBAAAA,CAAwBY,SAAAA;AAAAA,MAAAD,SAC1BX,wBAAAA,CAAwBW,OAAAA;AAAAA,MAAAE,WACtBb,wBAAAA,CAAwBa,SAAAA;AAAAA,MAAAL,OAC5BR,wBAAAA,CAAwBQ,KAAAA;AAAAA,MAAAO,gBAAAA,EACbN,EAAAA;AAAAA,MAAqCK,SAC9Cd,wBAAAA,CAAwBc;AAAAA,KAAA;AAClCpC,IAAAA,CAAAA,CAAA,CAAA,IAAAsB,wBAAAA,CAAAQ,KAAAA;AAAA9B,IAAAA,CAAAA,CAAA,CAAA,IAAAsB,wBAAAA,CAAAW,OAAAA;AAAAjC,IAAAA,CAAAA,CAAA,CAAA,IAAAsB,wBAAAA,CAAAY,SAAAA;AAAAlC,IAAAA,CAAAA,CAAA,CAAA,IAAAsB,wBAAAA,CAAAa,SAAAA;AAAAnC,IAAAA,CAAAA,CAAA,CAAA,IAAAsB,wBAAAA,CAAAc,OAAAA;AAAApC,IAAAA,CAAAA,MAAA0B,aAAAA;AAAA1B,IAAAA,CAAAA,OAAAwB,yBAAAA;AAAAxB,IAAAA,CAAAA,OAAA+B,EAAAA;AAAA/B,IAAAA,CAAAA,OAAAgC,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhC,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,OATMgC,EAAAA;AASN;;;;"}
1
+ {"version":3,"file":"usePermit2Allowance.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport type { Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { useTokenAllowance } from \"@/hooks/tokens/allowance/useTokenAllowance\";\nimport { useLogger } from \"@/core/logger\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\n\ninterface UsePermit2AllowanceParams {\n token?: Pick<Token, \"address\" | \"network\">;\n spender?: Address;\n amount?: bigint;\n enabled?: boolean;\n}\n\ntype UsePermit2AllowanceResult = {\n canUsePermit2: boolean;\n enoughAllowanceForPermit2: boolean;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: () => void;\n permit2Allowance: bigint | null;\n};\n\nexport function usePermit2Allowance({\n token,\n spender,\n amount,\n enabled = true,\n}: UsePermit2AllowanceParams): UsePermit2AllowanceResult {\n const logger = useLogger(\"PERMIT2::Allowance\");\n const { address: user } = useAccount();\n\n const tokenNotETH = token && !isETH(token);\n\n const allowanceForPermit2Query = useTokenAllowance({\n tokenAddress: token?.address,\n spender: PERMIT2_ADDRESS,\n chainId: token?.network,\n enabled,\n });\n\n const enoughAllowanceForPermit2 = !!(\n amount &&\n allowanceForPermit2Query.data &&\n allowanceForPermit2Query.data >= amount\n );\n\n const canUsePermit2 = !!(\n tokenNotETH &&\n user &&\n spender &&\n amount &&\n enoughAllowanceForPermit2\n );\n\n logger.once.log({\n canUsePermit2,\n enoughAllowanceForPermit2,\n allowance: allowanceForPermit2Query.data,\n error: allowanceForPermit2Query.error,\n });\n\n return {\n canUsePermit2,\n enoughAllowanceForPermit2,\n isLoading: allowanceForPermit2Query.isLoading,\n isError: allowanceForPermit2Query.isError,\n isSuccess: allowanceForPermit2Query.isSuccess,\n error: allowanceForPermit2Query.error,\n permit2Allowance: allowanceForPermit2Query.data ?? null,\n refetch: allowanceForPermit2Query.refetch,\n };\n}\n"],"names":["usePermit2Allowance","t0","$","_c","token","spender","amount","enabled","t1","undefined","logger","useLogger","address","user","useAccount","tokenNotETH","isETH","t2","t3","network","t4","tokenAddress","PERMIT2_ADDRESS","chainId","allowanceForPermit2Query","useTokenAllowance","enoughAllowanceForPermit2","data","canUsePermit2","once","log","allowance","error","t5","t6","isError","isLoading","isSuccess","refetch","permit2Allowance"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { readContract } from '@wagmi/core';
5
5
  import { assert } from 'ts-essentials';
6
6
  import { PERMIT2_ABI } from '../../utils/abi.js';
7
7
  import { PERMIT2_ADDRESS } from '../../utils/construct.js';
8
- import { useLogger, getLogger } from '../../../../widget/logger.js';
8
+ import { useLogger, getLogger } from '../../../../core/logger.js';
9
9
 
10
10
  const PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY = "permit2-nonce";
11
11
  function usePermit2TransferFromNonce({
@@ -1 +1 @@
1
- {"version":3,"file":"usePermit2TransferFromNonce.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.ts"],"sourcesContent":["import {\n useQuery,\n useQueryClient,\n type QueryObserverResult,\n type RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { type Address, maxUint256 } from \"viem\";\nimport { useConfig, type Config } from \"wagmi\";\nimport { readContract } from \"@wagmi/core\";\nimport { assert } from \"ts-essentials\";\nimport { PERMIT2_ABI } from \"../../utils/abi\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\nimport { getLogger, useLogger } from \"@/widget/logger\";\n\n/**\n * Permit2 stores nonces using a nested bitmap structure:\n *\n * mapping(address => mapping(uint256 => uint256)) public nonceBitmap;\n *\n * - The outer key (`address`) is the permit signer (the `owner`)\n * - The inner key (`uint256 word`) is the index of a 256-bit \"page\"\n * - The value (`uint256`) is the bitmap for that page — each bit (0 to 255) represents a nonce\n * - If bit `i` is `0`, then nonce `word * 256 + i` is **unused**\n * - If bit `i` is `1`, then that nonce has **already been used**\n *\n * This is what enables Permit2 to support unordered nonces while saving gas.\n */\n\n// Result of finding an available nonce\ntype NonceState = {\n word: bigint; // which 256-bit \"page\" of the bitmap we used\n bitmap: bigint; // the bitmap for that word\n nonce: bigint; // full 256-based offset: word * 256 + bit index\n};\n\nconst PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY = \"permit2-nonce\";\n\ntype Permit2TransferFromQueryKey = [\n typeof PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner?: Address,\n chainId?: number,\n];\n\ninterface UsePermit2TransferFromNonceOptions {\n owner?: Address;\n chainId?: number;\n initWord?: bigint; // word offset to begin scanning from\n enabled?: boolean;\n}\n\nexport type UsePermit2TransferFromNonceResult = {\n // null when no can't calculate Permit2 nonce\n nonceToUse?: bigint | null;\n nonceState?: NonceState | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<NonceState | null, Error>>;\n};\n\n/**\n * React hook to find the next unused Permit2 nonce for `permitTransferFrom`.\n *\n * Permit2 stores nonces as a bitmap:\n * - Each address has a mapping from uint256 => uint256\n * - Each value is a 256-bit bitmap (called a \"word\")\n * - If a bit is 1, the nonce (word * 256 + bit index) is used\n * - If it's 0, it's free and can be used\n */\nexport function usePermit2TransferFromNonce({\n owner,\n chainId,\n initWord = 0n,\n enabled = true,\n}: UsePermit2TransferFromNonceOptions) {\n const queryClient = useQueryClient();\n const config = useConfig();\n const logger = useLogger(\"PERMIT2::TransferFromNonce\");\n\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n const {\n data: nonceState,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useQuery<\n NonceState | null,\n Error,\n NonceState | null,\n Permit2TransferFromQueryKey\n >({\n enabled: enabled && !!(owner && chainId),\n\n queryKey,\n\n queryFn: async () => {\n // Safety checks\n assert(owner, \"owner is required\");\n assert(chainId, \"chainId is required\");\n\n // Try to resume scanning from last known state if available\n const last = queryClient.getQueryData<NonceState>(queryKey);\n\n // Find a bitmap word that has at least one unused bit (i.e. a usable nonce)\n const nextOpenWord = await getNextOpenWord({\n owner,\n config,\n startWord: last?.word ?? initWord,\n });\n\n if (!nextOpenWord) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const { word, bitmap } = nextOpenWord;\n // Identify the first 0-bit in the bitmap — that’s our next nonce\n const bitPos = getFirstUnsetBit(bitmap);\n if (bitPos === -1) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const nonceState = {\n word,\n bitmap,\n nonce: word * 256n + BigInt(bitPos),\n };\n\n logger.log(\"nonceState\", nonceState);\n\n // The final usable nonce is: word * 256 + bit index\n return nonceState;\n },\n\n // Useful defaults\n refetchOnWindowFocus: false,\n notifyOnChangeProps: [\"data\", \"isLoading\"],\n });\n\n return {\n nonceState,\n nonceToUse: nonceState === null ? null : nonceState?.nonce,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n\ninterface GetNextOpenWordInput {\n owner: Address;\n config: Config;\n startWord: bigint;\n}\n\n/**\n * Scans bitmap word-by-word starting at `startWord` until it finds\n * one with at least one unused bit (i.e., not all bits are set to 1).\n */\nasync function getNextOpenWord({\n owner,\n config,\n startWord,\n}: GetNextOpenWordInput): Promise<{ word: bigint; bitmap: bigint } | null> {\n let word = startWord;\n const MAX = maxUint256; // full 256-bit word (0xffff...ffff)\n\n while (true) {\n // Read the bitmap word for the given owner and word index\n const bitmap = await readContract(config, {\n address: PERMIT2_ADDRESS,\n abi: PERMIT2_ABI,\n functionName: \"nonceBitmap\",\n args: [owner, word],\n });\n\n // If the bitmap is not fully used (i.e., not all bits are 1)\n if (bitmap !== MAX) {\n return { word, bitmap };\n }\n\n word += 1n;\n\n // Fail-safe: don't scan more than 1024 words (262,144 nonces)\n if (word - startWord > 1024n) {\n getLogger(\"PERMIT2::getNextOpenWord\").warn(\"Exceeded nonce search limit\");\n return null;\n }\n }\n}\n\n/**\n * Returns the index (0–255) of the first unset (zero) bit in a 256-bit bitmap.\n *\n * Uses a classic bit-hack: (~bitmap) & (bitmap + 1)\n *\n * This produces a bitmask with only the lowest 0-bit set to 1.\n * Example:\n * bitmap = 0b1110 → unset bit at index 0\n * ~bitmap = 0b...0001\n * bitmap + 1 = 0b1111\n * result = 0b0001 → bitmask for index 0\n *\n * We then convert the bitmask to binary and count how many bits it takes\n * to shift that 1 into place = its position.\n */\nfunction getFirstUnsetBit(bitmap: bigint): number {\n // Create a bitmask with a 1 only at the first 0-bit (LSB side)\n const mask = ~bitmap & (bitmap + 1n);\n\n // If all bits are set (mask is zero), there are no available nonces\n if (mask === 0n) return -1;\n\n // Convert mask to binary and count digits – the length is the index + 1\n // e.g. mask = 0b1000 → \"1000\" → length = 4 → index = 3\n return mask.toString(2).length - 1;\n}\n\n/////// MARK NONCE AS USED ///////\n\ntype SetNonceInput = {\n owner: Address;\n chainId: number;\n usedNonce: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n /**\n * Mark a nonce as \"used\" in the local cache after submitting a transaction or order\n * This prevents reuse of the same nonce while it's still pending on-chain.\n */\n markNonceAsUsed: (input: SetNonceInput) => void;\n};\n\n/**\n * Hook to manually bump the locally cached Permit2 nonce to avoid reuse\n *\n * Permit2 allows unordered nonces, but while a tx is pending, it's safer to use\n * a strictly increasing nonce to avoid accidental replays or reuse.\n *\n * clearing an unsued nonce is not necessary because nonces are unordered\n */\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const queryClient = useQueryClient();\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n owner,\n chainId,\n usedNonce,\n }) => {\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n // Update cached nonce state if the used nonce was >= current one\n queryClient.setQueryData<NonceState>(queryKey, (oldNonceState) => {\n if (!oldNonceState) return oldNonceState; // should not happen unless cache was cleared\n\n // If we're already past this nonce, nothing to do\n if (oldNonceState.nonce > usedNonce) return oldNonceState;\n\n const newNonce = oldNonceState.nonce + 1n;\n const { word, bitPos } = splitNonce(newNonce);\n\n return {\n word,\n bitmap: 1n << bitPos, // ✅ convert bit index to actual 256-bit bitmap\n nonce: newNonce,\n };\n });\n };\n\n return {\n markNonceAsUsed,\n };\n}\n\n/**\n * Splits a Permit2 nonce into:\n * - `word`: which 256-bit bitmap page (nonce / 256)\n * - `bitPos`: position within that word (nonce % 256)\n */\nfunction splitNonce(nonce: bigint): { word: bigint; bitPos: bigint } {\n const word = nonce / 256n;\n const bitPos = nonce % 256n;\n return { word, bitPos };\n}\n"],"names":["PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY","usePermit2TransferFromNonce","owner","chainId","initWord","enabled","queryClient","useQueryClient","config","useConfig","logger","useLogger","queryKey","data","nonceState","isLoading","isError","isSuccess","error","refetch","useQuery","queryFn","assert","last","getQueryData","nextOpenWord","getNextOpenWord","startWord","word","warn","bitmap","bitPos","getFirstUnsetBit","nonce","BigInt","log","refetchOnWindowFocus","notifyOnChangeProps","nonceToUse","MAX","maxUint256","readContract","address","PERMIT2_ADDRESS","abi","PERMIT2_ABI","functionName","args","getLogger","mask","toString","length","useMarkNonceAsUsed","markNonceAsUsed","usedNonce","setQueryData","oldNonceState","newNonce","splitNonce"],"mappings":"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"}
1
+ {"version":3,"file":"usePermit2TransferFromNonce.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.ts"],"sourcesContent":["import {\n useQuery,\n useQueryClient,\n type QueryObserverResult,\n type RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { type Address, maxUint256 } from \"viem\";\nimport { useConfig, type Config } from \"wagmi\";\nimport { readContract } from \"@wagmi/core\";\nimport { assert } from \"ts-essentials\";\nimport { PERMIT2_ABI } from \"../../utils/abi\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\nimport { getLogger, useLogger } from \"@/core/logger\";\n\n/**\n * Permit2 stores nonces using a nested bitmap structure:\n *\n * mapping(address => mapping(uint256 => uint256)) public nonceBitmap;\n *\n * - The outer key (`address`) is the permit signer (the `owner`)\n * - The inner key (`uint256 word`) is the index of a 256-bit \"page\"\n * - The value (`uint256`) is the bitmap for that page — each bit (0 to 255) represents a nonce\n * - If bit `i` is `0`, then nonce `word * 256 + i` is **unused**\n * - If bit `i` is `1`, then that nonce has **already been used**\n *\n * This is what enables Permit2 to support unordered nonces while saving gas.\n */\n\n// Result of finding an available nonce\ntype NonceState = {\n word: bigint; // which 256-bit \"page\" of the bitmap we used\n bitmap: bigint; // the bitmap for that word\n nonce: bigint; // full 256-based offset: word * 256 + bit index\n};\n\nconst PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY = \"permit2-nonce\";\n\ntype Permit2TransferFromQueryKey = [\n typeof PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner?: Address,\n chainId?: number,\n];\n\ninterface UsePermit2TransferFromNonceOptions {\n owner?: Address;\n chainId?: number;\n initWord?: bigint; // word offset to begin scanning from\n enabled?: boolean;\n}\n\nexport type UsePermit2TransferFromNonceResult = {\n // null when no can't calculate Permit2 nonce\n nonceToUse?: bigint | null;\n nonceState?: NonceState | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<NonceState | null, Error>>;\n};\n\n/**\n * React hook to find the next unused Permit2 nonce for `permitTransferFrom`.\n *\n * Permit2 stores nonces as a bitmap:\n * - Each address has a mapping from uint256 => uint256\n * - Each value is a 256-bit bitmap (called a \"word\")\n * - If a bit is 1, the nonce (word * 256 + bit index) is used\n * - If it's 0, it's free and can be used\n */\nexport function usePermit2TransferFromNonce({\n owner,\n chainId,\n initWord = 0n,\n enabled = true,\n}: UsePermit2TransferFromNonceOptions) {\n const queryClient = useQueryClient();\n const config = useConfig();\n const logger = useLogger(\"PERMIT2::TransferFromNonce\");\n\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n const {\n data: nonceState,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useQuery<\n NonceState | null,\n Error,\n NonceState | null,\n Permit2TransferFromQueryKey\n >({\n enabled: enabled && !!(owner && chainId),\n\n queryKey,\n\n queryFn: async () => {\n // Safety checks\n assert(owner, \"owner is required\");\n assert(chainId, \"chainId is required\");\n\n // Try to resume scanning from last known state if available\n const last = queryClient.getQueryData<NonceState>(queryKey);\n\n // Find a bitmap word that has at least one unused bit (i.e. a usable nonce)\n const nextOpenWord = await getNextOpenWord({\n owner,\n config,\n startWord: last?.word ?? initWord,\n });\n\n if (!nextOpenWord) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const { word, bitmap } = nextOpenWord;\n // Identify the first 0-bit in the bitmap — that’s our next nonce\n const bitPos = getFirstUnsetBit(bitmap);\n if (bitPos === -1) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const nonceState = {\n word,\n bitmap,\n nonce: word * 256n + BigInt(bitPos),\n };\n\n logger.log(\"nonceState\", nonceState);\n\n // The final usable nonce is: word * 256 + bit index\n return nonceState;\n },\n\n // Useful defaults\n refetchOnWindowFocus: false,\n notifyOnChangeProps: [\"data\", \"isLoading\"],\n });\n\n return {\n nonceState,\n nonceToUse: nonceState === null ? null : nonceState?.nonce,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n\ninterface GetNextOpenWordInput {\n owner: Address;\n config: Config;\n startWord: bigint;\n}\n\n/**\n * Scans bitmap word-by-word starting at `startWord` until it finds\n * one with at least one unused bit (i.e., not all bits are set to 1).\n */\nasync function getNextOpenWord({\n owner,\n config,\n startWord,\n}: GetNextOpenWordInput): Promise<{ word: bigint; bitmap: bigint } | null> {\n let word = startWord;\n const MAX = maxUint256; // full 256-bit word (0xffff...ffff)\n\n while (true) {\n // Read the bitmap word for the given owner and word index\n const bitmap = await readContract(config, {\n address: PERMIT2_ADDRESS,\n abi: PERMIT2_ABI,\n functionName: \"nonceBitmap\",\n args: [owner, word],\n });\n\n // If the bitmap is not fully used (i.e., not all bits are 1)\n if (bitmap !== MAX) {\n return { word, bitmap };\n }\n\n word += 1n;\n\n // Fail-safe: don't scan more than 1024 words (262,144 nonces)\n if (word - startWord > 1024n) {\n getLogger(\"PERMIT2::getNextOpenWord\").warn(\"Exceeded nonce search limit\");\n return null;\n }\n }\n}\n\n/**\n * Returns the index (0–255) of the first unset (zero) bit in a 256-bit bitmap.\n *\n * Uses a classic bit-hack: (~bitmap) & (bitmap + 1)\n *\n * This produces a bitmask with only the lowest 0-bit set to 1.\n * Example:\n * bitmap = 0b1110 → unset bit at index 0\n * ~bitmap = 0b...0001\n * bitmap + 1 = 0b1111\n * result = 0b0001 → bitmask for index 0\n *\n * We then convert the bitmask to binary and count how many bits it takes\n * to shift that 1 into place = its position.\n */\nfunction getFirstUnsetBit(bitmap: bigint): number {\n // Create a bitmask with a 1 only at the first 0-bit (LSB side)\n const mask = ~bitmap & (bitmap + 1n);\n\n // If all bits are set (mask is zero), there are no available nonces\n if (mask === 0n) return -1;\n\n // Convert mask to binary and count digits – the length is the index + 1\n // e.g. mask = 0b1000 → \"1000\" → length = 4 → index = 3\n return mask.toString(2).length - 1;\n}\n\n/////// MARK NONCE AS USED ///////\n\ntype SetNonceInput = {\n owner: Address;\n chainId: number;\n usedNonce: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n /**\n * Mark a nonce as \"used\" in the local cache after submitting a transaction or order\n * This prevents reuse of the same nonce while it's still pending on-chain.\n */\n markNonceAsUsed: (input: SetNonceInput) => void;\n};\n\n/**\n * Hook to manually bump the locally cached Permit2 nonce to avoid reuse\n *\n * Permit2 allows unordered nonces, but while a tx is pending, it's safer to use\n * a strictly increasing nonce to avoid accidental replays or reuse.\n *\n * clearing an unsued nonce is not necessary because nonces are unordered\n */\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const queryClient = useQueryClient();\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n owner,\n chainId,\n usedNonce,\n }) => {\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n // Update cached nonce state if the used nonce was >= current one\n queryClient.setQueryData<NonceState>(queryKey, (oldNonceState) => {\n if (!oldNonceState) return oldNonceState; // should not happen unless cache was cleared\n\n // If we're already past this nonce, nothing to do\n if (oldNonceState.nonce > usedNonce) return oldNonceState;\n\n const newNonce = oldNonceState.nonce + 1n;\n const { word, bitPos } = splitNonce(newNonce);\n\n return {\n word,\n bitmap: 1n << bitPos, // ✅ convert bit index to actual 256-bit bitmap\n nonce: newNonce,\n };\n });\n };\n\n return {\n markNonceAsUsed,\n };\n}\n\n/**\n * Splits a Permit2 nonce into:\n * - `word`: which 256-bit bitmap page (nonce / 256)\n * - `bitPos`: position within that word (nonce % 256)\n */\nfunction splitNonce(nonce: bigint): { word: bigint; bitPos: bigint } {\n const word = nonce / 256n;\n const bitPos = nonce % 256n;\n return { word, bitPos };\n}\n"],"names":["PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY","usePermit2TransferFromNonce","owner","chainId","initWord","enabled","queryClient","useQueryClient","config","useConfig","logger","useLogger","queryKey","data","nonceState","isLoading","isError","isSuccess","error","refetch","useQuery","queryFn","assert","last","getQueryData","nextOpenWord","getNextOpenWord","startWord","word","warn","bitmap","bitPos","getFirstUnsetBit","nonce","BigInt","log","refetchOnWindowFocus","notifyOnChangeProps","nonceToUse","MAX","maxUint256","readContract","address","PERMIT2_ADDRESS","abi","PERMIT2_ABI","functionName","args","getLogger","mask","toString","length","useMarkNonceAsUsed","markNonceAsUsed","usedNonce","setQueryData","oldNonceState","newNonce","splitNonce"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { d as distExports } from '../../../../_virtual/index.js';
2
- import { useTokenFromAtom } from '../../../../widget/inputs/state/selectedTokenAtom.js';
2
+ import { useTokenFromAtom } from '../../../../core/inputs/state/selectedTokenAtom.js';
3
3
  import { useAccount } from 'wagmi';
4
4
  import { usePermit2TransferFromNonce } from './usePermit2TransferFromNonce.js';
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenFromPermit2TransferFromNonce.js","sources":["../../../../../src/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/widget/inputs/state/selectedTokenAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useAccount } from \"wagmi\";\nimport {\n usePermit2TransferFromNonce,\n type UsePermit2TransferFromNonceResult,\n} from \"./usePermit2TransferFromNonce\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermit2TransferFromNonce({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UsePermit2TransferFromNonceResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const { address: owner } = useAccount();\n const queryResult = usePermit2TransferFromNonce({\n owner,\n // Permit2 TransferFromnonce is not token-specific,\n // but we will use it for signing for Token from\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermit2TransferFromNonce","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","address","owner","useAccount","t3","network","chainId","queryResult","usePermit2TransferFromNonce","t4","token"],"mappings":";;;;;AAYO,SAAAA,qCAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAA8CG,IAAAA,EAAAA,MAAAH;AAEbC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA;AAFa,EAAA,MAAA;AAAA,IAAAG,OAAAA,EAAAC;AAAAA,GAAA,GAAAF,EAAAA;AACnD,EAAA,MAAAC,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAIA,EAAA,MAAAE,YAAkBC,gBAAAA,EAAiB;AACnC,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA2BC,UAAAA,EAAW;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAX,CAAAA,CAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAS,KAAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAM,SAAAA,CAAAM,OAAAA,EAAA;AACQD,IAAAA,EAAAA,GAAA;AAAA,MAAAF,KAAAA;AAAAA,MAAAI,SAIrCP,SAAAA,CAASM,OAAAA;AAAAA,MAAAT;AAAAA,KAAA;AAEnBH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAS,KAAAA;AAAAT,IAAAA,CAAAA,CAAA,CAAA,IAAAM,SAAAA,CAAAM,OAAAA;AAAAZ,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA;AAND,EAAA,MAAAc,WAAAA,GAAoBC,4BAA4BJ,EAM/C,CAAA;AAAE,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAhB,EAAA,CAAA,CAAA,KAAAc,eAAAd,CAAAA,QAAAM,SAAAA,EAAA;AAEIU,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFF,WAAAA;AAAAA,MAAWG,KAAAA,EACPX;AAAAA,KAAS;AACjBN,IAAAA,CAAAA,MAAAc,WAAAA;AAAAd,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAHMgB,EAAAA;AAGN;;;;"}
1
+ {"version":3,"file":"useTokenFromPermit2TransferFromNonce.js","sources":["../../../../../src/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useAccount } from \"wagmi\";\nimport {\n usePermit2TransferFromNonce,\n type UsePermit2TransferFromNonceResult,\n} from \"./usePermit2TransferFromNonce\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermit2TransferFromNonce({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UsePermit2TransferFromNonceResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const { address: owner } = useAccount();\n const queryResult = usePermit2TransferFromNonce({\n owner,\n // Permit2 TransferFromnonce is not token-specific,\n // but we will use it for signing for Token from\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermit2TransferFromNonce","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","address","owner","useAccount","t3","network","chainId","queryResult","usePermit2TransferFromNonce","t4","token"],"mappings":";;;;;AAYO,SAAAA,qCAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAA8CG,IAAAA,EAAAA,MAAAH;AAEbC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA;AAFa,EAAA,MAAA;AAAA,IAAAG,OAAAA,EAAAC;AAAAA,GAAA,GAAAF,EAAAA;AACnD,EAAA,MAAAC,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAIA,EAAA,MAAAE,YAAkBC,gBAAAA,EAAiB;AACnC,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA2BC,UAAAA,EAAW;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAX,CAAAA,CAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAS,KAAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAM,SAAAA,CAAAM,OAAAA,EAAA;AACQD,IAAAA,EAAAA,GAAA;AAAA,MAAAF,KAAAA;AAAAA,MAAAI,SAIrCP,SAAAA,CAASM,OAAAA;AAAAA,MAAAT;AAAAA,KAAA;AAEnBH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAS,KAAAA;AAAAT,IAAAA,CAAAA,CAAA,CAAA,IAAAM,SAAAA,CAAAM,OAAAA;AAAAZ,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA;AAND,EAAA,MAAAc,WAAAA,GAAoBC,4BAA4BJ,EAM/C,CAAA;AAAE,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAhB,EAAA,CAAA,CAAA,KAAAc,eAAAd,CAAAA,QAAAM,SAAAA,EAAA;AAEIU,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFF,WAAAA;AAAAA,MAAWG,KAAAA,EACPX;AAAAA,KAAS;AACjBN,IAAAA,CAAAA,MAAAc,WAAAA;AAAAd,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAHMgB,EAAAA;AAGN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useWatchDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useWatchDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQ1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAWhF,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG,IAAI,CAAC;AA8H/D,KAAK,8BAA8B,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACzD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IAC9E,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;CACrE,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,OAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,GACtB,EAAE,8BAA8B,GAAG,cAAc,CAAC,uBAAuB,CAAC,CA0C1E;AAED,KAAK,qBAAqB,GAAG,CAAC,OAAO,EAAE;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAEvC,wBAAgB,2BAA2B,IAAI,qBAAqB,CAuGnE;AAID,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACzD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IAC9E,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;CACrE,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,OAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,GACtB,EAAE,0BAA0B,GAAG,cAAc,CAAC,uBAAuB,CAAC,EAAE,CA6CxE;AAED,KAAK,gCAAgC,GAAG;IACtC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,EAChD,cAAc,EAAE,sBAAsB,KACnC,IAAI,CAAC;CACX,CAAC;AAIF,wBAAgB,mCAAmC,CAAC,EAClD,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,EAAE,gCAAgC,GAAG,cAAc,CAAC,sBAAsB,CAAC,EAAE,CAuE7E"}
@@ -5,14 +5,14 @@ import { assert } from 'ts-essentials';
5
5
  import { useDeltaSDK } from '../../../../useSDK.js';
6
6
  import { isMetaWithTimeStart } from '../bridge/utils.js';
7
7
  import { DeltaOrderStatusChecker, isExecutedDeltaAuction, isFailedDeltaAuction, isOrderExpired } from '../orders/utils.js';
8
- import { useLogger, getLogger } from '../../../../../widget/logger.js';
8
+ import { useLogger, getLogger } from '../../../../../core/logger.js';
9
9
 
10
10
  const SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX = "single_delta_auction";
11
11
  const DELTA_ORDER_POLLING_INTERVAL = 3e3;
12
12
  const LOOK_FOR_ORDER_TIMEOUT = 6e4;
13
13
  function constructDeltaAuctionPollingQueryOptions({
14
14
  orderId,
15
- enabled,
15
+ enabled = true,
16
16
  getAuction,
17
17
  onUpdatedAuction,
18
18
  onAuctionSuccess,
@@ -122,21 +122,35 @@ function useWatchDeltaAuction({
122
122
  return useQuery(queryOptions);
123
123
  }
124
124
  function useEnsureDeltaOrderExecuted() {
125
- const $ = distExports.c(3);
125
+ const $ = distExports.c(5);
126
126
  const queryClient = useQueryClient();
127
127
  const logger = useLogger("EnsureDeltaOrderExecuted");
128
128
  let t0;
129
- if ($[0] !== logger || $[1] !== queryClient) {
130
- t0 = async (t1) => {
129
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
130
+ t0 = {
131
+ chainId: 1
132
+ };
133
+ $[0] = t0;
134
+ } else {
135
+ t0 = $[0];
136
+ }
137
+ const {
138
+ sdk
139
+ } = useDeltaSDK(t0);
140
+ let t1;
141
+ if ($[1] !== logger || $[2] !== queryClient || $[3] !== sdk.getDeltaOrderById) {
142
+ t1 = async (t2) => {
131
143
  const {
132
144
  orderId,
133
145
  signal
134
- } = t1;
146
+ } = t2;
135
147
  const queryKey = [SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX, orderId];
136
- const observer = new QueryObserver(queryClient, {
137
- queryKey,
138
- enabled: false
148
+ const queryOptions = constructDeltaAuctionPollingQueryOptions({
149
+ orderId,
150
+ enabled: true,
151
+ getAuction: sdk.getDeltaOrderById
139
152
  });
153
+ const observer = new QueryObserver(queryClient, queryOptions);
140
154
  const promise = new Promise((resolve, reject) => {
141
155
  const startedQueryAt = Date.now();
142
156
  let timeout = setTimeout(() => {
@@ -191,13 +205,14 @@ function useEnsureDeltaOrderExecuted() {
191
205
  });
192
206
  return promise;
193
207
  };
194
- $[0] = logger;
195
- $[1] = queryClient;
196
- $[2] = t0;
208
+ $[1] = logger;
209
+ $[2] = queryClient;
210
+ $[3] = sdk.getDeltaOrderById;
211
+ $[4] = t1;
197
212
  } else {
198
- t0 = $[2];
213
+ t1 = $[4];
199
214
  }
200
- const ensureOrderSent = t0;
215
+ const ensureOrderSent = t1;
201
216
  return ensureOrderSent;
202
217
  }
203
218
 
@@ -1 +1 @@
1
- {"version":3,"file":"useWatchDeltaOrder.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"sourcesContent":["import {\n QueryObserver,\n useQueries,\n useQuery,\n useQueryClient,\n type QueryMeta,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useLayoutEffect, useMemo, useRef } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useDeltaSDK } from \"@/hooks/useSDK\";\nimport type { DeltaOrderFromAPI } from \"./useDeltaOrders\";\nimport {\n isMetaWithTimeStart,\n type BridgedDepositResponseFailure,\n type BridgedDepositResponseSuccess,\n type GetBridgedDepositStatusInput,\n type RefetchMetaWithTiming,\n} from \"../bridge/utils\";\nimport type { BridgedDepositResponse } from \"../bridge/types\";\nimport { useBridgedDepositStatus } from \"../bridge/useBridgedDeposit\";\nimport type { DeltaAuction } from \"@velora-dex/sdk\";\nimport {\n DeltaOrderStatusChecker,\n isExecutedDeltaAuction,\n isFailedDeltaAuction,\n isOrderExpired,\n} from \"../orders/utils\";\nimport type { ExecutedDeltaAuction, FailedDeltaAuction } from \"../orders/types\";\nimport { getLogger, useLogger } from \"@/widget/logger\";\n\n// ------------------------------------ Single Delta Auction -----------------------------------\n\nconst SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX = \"single_delta_auction\";\ntype SingleDeltaAuctionQueryKey = [\n base: typeof SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId?: string,\n];\n\nexport type MaybeVeloraDeltaAuction = DeltaOrderFromAPI | null; // null is when no such Order for orderId\n\ntype UseDeltaAuctionQueryOptions<TData = MaybeVeloraDeltaAuction> =\n UseQueryOptions<\n MaybeVeloraDeltaAuction,\n Error,\n TData,\n SingleDeltaAuctionQueryKey\n >;\n\nconst DELTA_ORDER_POLLING_INTERVAL = 3_000;\n\ntype ConstructDeltaAuctionPollingQueryOptionsInput = {\n orderId?: string;\n enabled?: boolean;\n getAuction(\n orderId: string,\n requestParams: { signal?: AbortSignal }\n ): Promise<MaybeVeloraDeltaAuction>;\n} & Pick<\n UseWatchMultiDeltaAuctions,\n | \"onAuctionSuccess\"\n | \"onAuctionFailure\"\n | \"onUpdatedAuction\"\n | \"onTimeoutGettingOrder\"\n>;\n\nconst LOOK_FOR_ORDER_TIMEOUT = 60_000;\n\nfunction constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction,\n onUpdatedAuction,\n onAuctionSuccess,\n onAuctionFailure,\n onTimeoutGettingOrder,\n}: ConstructDeltaAuctionPollingQueryOptionsInput): Pick<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>,\n \"queryKey\" | \"queryFn\" | \"meta\" | \"refetchInterval\" | \"enabled\"\n> {\n const doneState = false;\n\n const isMetaWithDoneState = (\n queryMeta: QueryMeta\n ): queryMeta is { doneState: boolean } => {\n return \"doneState\" in queryMeta && typeof queryMeta.doneState === \"boolean\";\n };\n\n // queryOptions has to be memoized, otherwise queryMeta is updated on each render,\n // including startedQueryAt\n const meta: RefetchMetaWithTiming & {\n doneState: boolean;\n } = {\n startedQueryAt: Date.now(),\n doneState,\n };\n\n return {\n queryKey: [SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX, orderId],\n queryFn: ({ signal }) => {\n assert(orderId, \"orderId is required\");\n return getAuction(orderId, { signal });\n },\n meta,\n refetchInterval: (query) => {\n const maybeOrder = query.state.data;\n\n const queryMeta = query.options.meta;\n // refetchInterval is called on each render, regardless of queryOptions memoizations.\n // @TODO rework Watch Order logic to avoid callbacks inside refetchInterval,\n // or do away with these callbacks, they are unused currently.\n const isWithDoneState = !!queryMeta && isMetaWithDoneState(queryMeta);\n if (isWithDoneState && queryMeta.doneState) {\n getLogger(\"DeltaAuctionPollingQueryOptions\").log(\n \"Shortcut return for refetchInterval\"\n );\n return false;\n }\n\n // Order could have an updated status during its lifecycle\n if (maybeOrder) onUpdatedAuction?.(maybeOrder);\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n onAuctionSuccess?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n if (isFailedDeltaAuction(maybeOrder) || isOrderExpired(maybeOrder)) {\n onAuctionFailure?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n }\n\n if (maybeOrder === null && queryMeta && isMetaWithTimeStart(queryMeta)) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - queryMeta.startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n assert(orderId, \"orderId is required\");\n onTimeoutGettingOrder?.({ id: orderId });\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling after 1 minute\n }\n }\n\n return DELTA_ORDER_POLLING_INTERVAL; // default interval for both crosschain and singlechain Orders\n },\n enabled: !!orderId && enabled,\n };\n}\n\n// ----------------- Single Delta Query -----------------------------------\n\ntype UseWatchDeltaAuctionQueryInput = {\n orderId?: string;\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchDeltaAuction({\n orderId,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchDeltaAuctionQueryInput): UseQueryResult<MaybeVeloraDeltaAuction> {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queryOptions = useMemo(() => {\n return constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n });\n }, [orderId, enabled, sdk.getDeltaOrderById]);\n\n return useQuery<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryOptions);\n}\n\ntype EnsureOrderExecutedFn = (options: {\n orderId: string;\n signal?: AbortSignal;\n}) => Promise<MaybeVeloraDeltaAuction>;\n\nexport function useEnsureDeltaOrderExecuted(): EnsureOrderExecutedFn {\n const queryClient = useQueryClient();\n const logger = useLogger(\"EnsureDeltaOrderExecuted\");\n\n const ensureOrderSent: EnsureOrderExecutedFn = async ({\n orderId,\n signal,\n }): Promise<MaybeVeloraDeltaAuction> => {\n const queryKey: SingleDeltaAuctionQueryKey = [\n SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId,\n ];\n\n const observer = new QueryObserver<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryClient, {\n queryKey,\n enabled: false, // no queryFn, just subscription\n // @TODO consider if we want queryFn to have refetching separate from useDeltaFlow\n });\n\n const promise = new Promise<MaybeVeloraDeltaAuction>((resolve, reject) => {\n const startedQueryAt = Date.now();\n\n // don't leave the promise and therefore the observer hanging,\n // if useWatchDeltaAuction doesn't finish its job and stops triggering the subscription\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n logger.log(\"QueryObserver\", queryKey, \"timeout\");\n unsubscribe();\n reject(new Error(`Order ${orderId} not found`));\n }, LOOK_FOR_ORDER_TIMEOUT + 1000); // a bit of jitter time\n\n signal?.addEventListener(\"abort\", () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n unsubscribe();\n reject(new Error(`Order execution aborted: ${signal.reason}`));\n });\n\n const unsubscribe = observer.subscribe((result) => {\n const cleanup = () => {\n logger.log(\"QueryObserver\", queryKey, \"cleanup\");\n unsubscribe();\n };\n\n logger.log(\"QueryObserver\", queryKey, result);\n\n const maybeOrder = result.data;\n\n if (maybeOrder && timeout !== null) {\n // Order fetched at least once\n clearTimeout(timeout);\n timeout = null;\n }\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n cleanup();\n resolve(maybeOrder);\n return;\n }\n if (isFailedDeltaAuction(maybeOrder)) {\n cleanup();\n reject(maybeOrder);\n return;\n }\n }\n\n if (maybeOrder === null) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n cleanup();\n reject(new Error(`Order ${orderId} not found`));\n return;\n }\n }\n if (result.error) {\n cleanup();\n reject(result.error);\n return;\n }\n });\n });\n\n return promise;\n };\n\n return ensureOrderSent;\n}\n\n// ----------------- Multi Delta Queries -----------------------------------\n\ntype UseWatchMultiDeltaAuctions = {\n orderIds: string[];\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchMultiDeltaAuctions({\n orderIds,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchMultiDeltaAuctions): UseQueryResult<MaybeVeloraDeltaAuction>[] {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queries = useMemo<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>[]\n >(\n () =>\n orderIds.map((orderId) =>\n constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n })\n ),\n [enabled, orderIds, sdk.getDeltaOrderById]\n );\n\n const auctionsResults = useQueries({ queries });\n\n return auctionsResults;\n}\n\ntype MultiOrdersStatusCrossChainInput = {\n orders: DeltaOrderFromAPI[];\n onAuctionSuccess?: (order: DeltaOrderFromAPI) => void;\n onAuctionFailure?: (order: DeltaOrderFromAPI) => void;\n onUpdatedAuction?: (\n auction: MarkOptional<DeltaAuction, \"signature\">,\n bridgeResponse: BridgedDepositResponse\n ) => void;\n};\n\n// can be used for checking Crosschain Order status checking\n// if status check from API is slow to update\nexport function useWatchMultiOrdersStatusCrossChain({\n orders,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n}: MultiOrdersStatusCrossChainInput): UseQueryResult<BridgedDepositResponse>[] {\n const { deposits, onNewResponse, onDepositSuccess, onDepositFailure } =\n useMemo(() => {\n const { deposits, depositId2Order } = orders.reduce<{\n deposits: GetBridgedDepositStatusInput[];\n depositId2Order: Record<string, DeltaOrderFromAPI>;\n }>(\n (acc, order) => {\n if (order.bridgeMetadata?.depositId) {\n acc.deposits.push({\n depositId: String(order.bridgeMetadata.depositId),\n originChainId: order.chainId,\n });\n acc.depositId2Order[order.bridgeMetadata.depositId] = order;\n }\n return acc;\n },\n { deposits: [], depositId2Order: {} }\n );\n const onNewResponse = (response: BridgedDepositResponse) => {\n const order = depositId2Order[response.depositId];\n if (order) {\n onUpdatedAuction?.(order, response);\n }\n };\n\n const onDepositSuccess = onAuctionSuccess\n ? (deposit: BridgedDepositResponseSuccess) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const successfulOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionSuccess(successfulOrder);\n }\n }\n : undefined;\n\n const onDepositFailure = onAuctionFailure\n ? (deposit: BridgedDepositResponseFailure) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const failedOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx || undefined,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionFailure(failedOrder);\n }\n }\n : undefined;\n\n return { deposits, onNewResponse, onDepositSuccess, onDepositFailure };\n }, [orders, onAuctionSuccess, onAuctionFailure, onUpdatedAuction]);\n\n const depositStatuses = useBridgedDepositStatus({\n deposits,\n onNewResponse,\n onDepositSuccess,\n onDepositFailure,\n });\n\n return depositStatuses;\n}\n"],"names":["SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX","DELTA_ORDER_POLLING_INTERVAL","LOOK_FOR_ORDER_TIMEOUT","constructDeltaAuctionPollingQueryOptions","orderId","enabled","getAuction","onUpdatedAuction","onAuctionSuccess","onAuctionFailure","onTimeoutGettingOrder","doneState","isMetaWithDoneState","queryMeta","meta","startedQueryAt","Date","now","queryKey","queryFn","signal","assert","refetchInterval","query","maybeOrder","state","data","options","isWithDoneState","getLogger","log","DeltaOrderStatusChecker","completed","has","status","isExecutedDeltaAuction","isFailedDeltaAuction","isOrderExpired","isMetaWithTimeStart","elapsed","id","useWatchDeltaAuction","sdk","useDeltaSDK","chainId","callbacksRef","useRef","useLayoutEffect","current","queryOptions","useMemo","getDeltaOrderById","useQuery","useEnsureDeltaOrderExecuted","$","_c","queryClient","useQueryClient","logger","useLogger","t0","t1","observer","QueryObserver","promise","Promise","resolve","reject","timeout","setTimeout","unsubscribe","Error","addEventListener","clearTimeout","reason","subscribe","result","cleanup","error","ensureOrderSent"],"mappings":"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"}
1
+ {"version":3,"file":"useWatchDeltaOrder.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"sourcesContent":["import {\n QueryObserver,\n useQueries,\n useQuery,\n useQueryClient,\n type QueryMeta,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useLayoutEffect, useMemo, useRef } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useDeltaSDK } from \"@/hooks/useSDK\";\nimport type { DeltaOrderFromAPI } from \"./useDeltaOrders\";\nimport {\n isMetaWithTimeStart,\n type BridgedDepositResponseFailure,\n type BridgedDepositResponseSuccess,\n type GetBridgedDepositStatusInput,\n type RefetchMetaWithTiming,\n} from \"../bridge/utils\";\nimport type { BridgedDepositResponse } from \"../bridge/types\";\nimport { useBridgedDepositStatus } from \"../bridge/useBridgedDeposit\";\nimport type { DeltaAuction } from \"@velora-dex/sdk\";\nimport {\n DeltaOrderStatusChecker,\n isExecutedDeltaAuction,\n isFailedDeltaAuction,\n isOrderExpired,\n} from \"../orders/utils\";\nimport type { ExecutedDeltaAuction, FailedDeltaAuction } from \"../orders/types\";\nimport { getLogger, useLogger } from \"@/core/logger\";\n\n// ------------------------------------ Single Delta Auction -----------------------------------\n\nconst SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX = \"single_delta_auction\";\ntype SingleDeltaAuctionQueryKey = [\n base: typeof SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId?: string,\n];\n\nexport type MaybeVeloraDeltaAuction = DeltaOrderFromAPI | null; // null is when no such Order for orderId\n\ntype UseDeltaAuctionQueryOptions<TData = MaybeVeloraDeltaAuction> =\n UseQueryOptions<\n MaybeVeloraDeltaAuction,\n Error,\n TData,\n SingleDeltaAuctionQueryKey\n >;\n\nconst DELTA_ORDER_POLLING_INTERVAL = 3_000;\n\ntype ConstructDeltaAuctionPollingQueryOptionsInput = {\n orderId?: string;\n enabled?: boolean;\n getAuction(\n orderId: string,\n requestParams: { signal?: AbortSignal }\n ): Promise<MaybeVeloraDeltaAuction>;\n} & Pick<\n UseWatchMultiDeltaAuctions,\n | \"onAuctionSuccess\"\n | \"onAuctionFailure\"\n | \"onUpdatedAuction\"\n | \"onTimeoutGettingOrder\"\n>;\n\nconst LOOK_FOR_ORDER_TIMEOUT = 60_000;\n\nfunction constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled = true,\n getAuction,\n onUpdatedAuction,\n onAuctionSuccess,\n onAuctionFailure,\n onTimeoutGettingOrder,\n}: ConstructDeltaAuctionPollingQueryOptionsInput): Pick<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>,\n \"queryKey\" | \"queryFn\" | \"meta\" | \"refetchInterval\" | \"enabled\"\n> {\n const doneState = false;\n\n const isMetaWithDoneState = (\n queryMeta: QueryMeta\n ): queryMeta is { doneState: boolean } => {\n return \"doneState\" in queryMeta && typeof queryMeta.doneState === \"boolean\";\n };\n\n // queryOptions has to be memoized, otherwise queryMeta is updated on each render,\n // including startedQueryAt\n const meta: RefetchMetaWithTiming & {\n doneState: boolean;\n } = {\n startedQueryAt: Date.now(),\n doneState,\n };\n\n return {\n queryKey: [SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX, orderId],\n queryFn: ({ signal }) => {\n assert(orderId, \"orderId is required\");\n return getAuction(orderId, { signal });\n },\n meta,\n refetchInterval: (query) => {\n const maybeOrder = query.state.data;\n\n const queryMeta = query.options.meta;\n // refetchInterval is called on each render, regardless of queryOptions memoizations.\n // @TODO rework Watch Order logic to avoid callbacks inside refetchInterval,\n // or do away with these callbacks, they are unused currently.\n const isWithDoneState = !!queryMeta && isMetaWithDoneState(queryMeta);\n if (isWithDoneState && queryMeta.doneState) {\n getLogger(\"DeltaAuctionPollingQueryOptions\").log(\n \"Shortcut return for refetchInterval\"\n );\n return false;\n }\n\n // Order could have an updated status during its lifecycle\n if (maybeOrder) onUpdatedAuction?.(maybeOrder);\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n onAuctionSuccess?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n if (isFailedDeltaAuction(maybeOrder) || isOrderExpired(maybeOrder)) {\n onAuctionFailure?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n }\n\n if (maybeOrder === null && queryMeta && isMetaWithTimeStart(queryMeta)) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - queryMeta.startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n assert(orderId, \"orderId is required\");\n onTimeoutGettingOrder?.({ id: orderId });\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling after 1 minute\n }\n }\n\n return DELTA_ORDER_POLLING_INTERVAL; // default interval for both crosschain and singlechain Orders\n },\n enabled: !!orderId && enabled,\n };\n}\n\n// ----------------- Single Delta Query -----------------------------------\n\ntype UseWatchDeltaAuctionQueryInput = {\n orderId?: string;\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchDeltaAuction({\n orderId,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchDeltaAuctionQueryInput): UseQueryResult<MaybeVeloraDeltaAuction> {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queryOptions = useMemo(() => {\n return constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n });\n }, [orderId, enabled, sdk.getDeltaOrderById]);\n\n return useQuery<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryOptions);\n}\n\ntype EnsureOrderExecutedFn = (options: {\n orderId: string;\n signal?: AbortSignal;\n}) => Promise<MaybeVeloraDeltaAuction>;\n\nexport function useEnsureDeltaOrderExecuted(): EnsureOrderExecutedFn {\n const queryClient = useQueryClient();\n const logger = useLogger(\"EnsureDeltaOrderExecuted\");\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const ensureOrderSent: EnsureOrderExecutedFn = async ({\n orderId,\n signal,\n }): Promise<MaybeVeloraDeltaAuction> => {\n const queryKey: SingleDeltaAuctionQueryKey = [\n SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId,\n ];\n\n const queryOptions = constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled: true,\n getAuction: sdk.getDeltaOrderById,\n });\n\n const observer = new QueryObserver<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryClient, queryOptions);\n\n const promise = new Promise<MaybeVeloraDeltaAuction>((resolve, reject) => {\n const startedQueryAt = Date.now();\n\n // don't leave the promise and therefore the observer hanging,\n // observer has its own stop-refetching logic in refetchIterval,\n // but this is an extra failsafe\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n logger.log(\"QueryObserver\", queryKey, \"timeout\");\n unsubscribe();\n reject(new Error(`Order ${orderId} not found`));\n }, LOOK_FOR_ORDER_TIMEOUT + 1000); // a bit of jitter time\n\n signal?.addEventListener(\"abort\", () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n unsubscribe();\n reject(new Error(`Order execution aborted: ${signal.reason}`));\n });\n\n const unsubscribe = observer.subscribe((result) => {\n const cleanup = () => {\n logger.log(\"QueryObserver\", queryKey, \"cleanup\");\n unsubscribe();\n };\n\n logger.log(\"QueryObserver\", queryKey, result);\n\n const maybeOrder = result.data;\n\n if (maybeOrder && timeout !== null) {\n // Order fetched at least once\n clearTimeout(timeout);\n timeout = null;\n }\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n cleanup();\n resolve(maybeOrder);\n return;\n }\n if (isFailedDeltaAuction(maybeOrder)) {\n cleanup();\n reject(maybeOrder);\n return;\n }\n }\n\n if (maybeOrder === null) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n cleanup();\n reject(new Error(`Order ${orderId} not found`));\n return;\n }\n }\n if (result.error) {\n cleanup();\n reject(result.error);\n return;\n }\n });\n });\n\n return promise;\n };\n\n return ensureOrderSent;\n}\n\n// ----------------- Multi Delta Queries -----------------------------------\n\ntype UseWatchMultiDeltaAuctions = {\n orderIds: string[];\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchMultiDeltaAuctions({\n orderIds,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchMultiDeltaAuctions): UseQueryResult<MaybeVeloraDeltaAuction>[] {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queries = useMemo<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>[]\n >(\n () =>\n orderIds.map((orderId) =>\n constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n })\n ),\n [enabled, orderIds, sdk.getDeltaOrderById]\n );\n\n const auctionsResults = useQueries({ queries });\n\n return auctionsResults;\n}\n\ntype MultiOrdersStatusCrossChainInput = {\n orders: DeltaOrderFromAPI[];\n onAuctionSuccess?: (order: DeltaOrderFromAPI) => void;\n onAuctionFailure?: (order: DeltaOrderFromAPI) => void;\n onUpdatedAuction?: (\n auction: MarkOptional<DeltaAuction, \"signature\">,\n bridgeResponse: BridgedDepositResponse\n ) => void;\n};\n\n// can be used for checking Crosschain Order status checking\n// if status check from API is slow to update\nexport function useWatchMultiOrdersStatusCrossChain({\n orders,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n}: MultiOrdersStatusCrossChainInput): UseQueryResult<BridgedDepositResponse>[] {\n const { deposits, onNewResponse, onDepositSuccess, onDepositFailure } =\n useMemo(() => {\n const { deposits, depositId2Order } = orders.reduce<{\n deposits: GetBridgedDepositStatusInput[];\n depositId2Order: Record<string, DeltaOrderFromAPI>;\n }>(\n (acc, order) => {\n if (order.bridgeMetadata?.depositId) {\n acc.deposits.push({\n depositId: String(order.bridgeMetadata.depositId),\n originChainId: order.chainId,\n });\n acc.depositId2Order[order.bridgeMetadata.depositId] = order;\n }\n return acc;\n },\n { deposits: [], depositId2Order: {} }\n );\n const onNewResponse = (response: BridgedDepositResponse) => {\n const order = depositId2Order[response.depositId];\n if (order) {\n onUpdatedAuction?.(order, response);\n }\n };\n\n const onDepositSuccess = onAuctionSuccess\n ? (deposit: BridgedDepositResponseSuccess) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const successfulOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionSuccess(successfulOrder);\n }\n }\n : undefined;\n\n const onDepositFailure = onAuctionFailure\n ? (deposit: BridgedDepositResponseFailure) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const failedOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx || undefined,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionFailure(failedOrder);\n }\n }\n : undefined;\n\n return { deposits, onNewResponse, onDepositSuccess, onDepositFailure };\n }, [orders, onAuctionSuccess, onAuctionFailure, onUpdatedAuction]);\n\n const depositStatuses = useBridgedDepositStatus({\n deposits,\n onNewResponse,\n onDepositSuccess,\n onDepositFailure,\n });\n\n return depositStatuses;\n}\n"],"names":["SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX","DELTA_ORDER_POLLING_INTERVAL","LOOK_FOR_ORDER_TIMEOUT","constructDeltaAuctionPollingQueryOptions","orderId","enabled","getAuction","onUpdatedAuction","onAuctionSuccess","onAuctionFailure","onTimeoutGettingOrder","doneState","isMetaWithDoneState","queryMeta","meta","startedQueryAt","Date","now","queryKey","queryFn","signal","assert","refetchInterval","query","maybeOrder","state","data","options","isWithDoneState","getLogger","log","DeltaOrderStatusChecker","completed","has","status","isExecutedDeltaAuction","isFailedDeltaAuction","isOrderExpired","isMetaWithTimeStart","elapsed","id","useWatchDeltaAuction","sdk","useDeltaSDK","chainId","callbacksRef","useRef","useLayoutEffect","current","queryOptions","useMemo","getDeltaOrderById","useQuery","useEnsureDeltaOrderExecuted","$","_c","queryClient","useQueryClient","logger","useLogger","t0","Symbol","for","t1","t2","observer","QueryObserver","promise","Promise","resolve","reject","timeout","setTimeout","unsubscribe","Error","addEventListener","clearTimeout","reason","subscribe","result","cleanup","error","ensureOrderSent"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { d as distExports } from '../../../_virtual/index.js';
2
- import { payInputAmountWeiAtom, receiveInputAmountWeiAtom } from '../../../widget/inputs/state/inputAmountAtom.js';
3
- import { tokenFromAtom, tokenToAtom } from '../../../widget/inputs/state/selectedTokenAtom.js';
2
+ import { payInputAmountWeiAtom, receiveInputAmountWeiAtom } from '../../../core/inputs/state/inputAmountAtom.js';
3
+ import { tokenFromAtom, tokenToAtom } from '../../../core/inputs/state/selectedTokenAtom.js';
4
4
  import { useAtomValue } from 'jotai';
5
5
  import { useAccount } from 'wagmi';
6
6
  import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
7
- import { useIsCrossChain } from '../../../widget/state/isCrosschainAtom.js';
8
- import { useWidgetConfig } from '../../../widget/state/configAtom.js';
7
+ import { useIsCrossChain } from '../../../core/state/isCrosschainAtom.js';
8
+ import { useWidgetConfig } from '../../../core/state/configAtom.js';
9
9
  import { useTokenTaxFee } from '../../tokens/useTokenTaxFee.js';
10
10
 
11
11
  function usePricesParams() {
@@ -1 +1 @@
1
- {"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"@/widget/inputs/state/inputAmountAtom\";\nimport {\n tokenFromAtom,\n tokenToAtom,\n} from \"@/widget/inputs/state/selectedTokenAtom\";\nimport { useAtomValue } from \"jotai\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useIsCrossChain } from \"@/widget/state/isCrosschainAtom\";\nimport { useWidgetConfig } from \"@/widget/state/configAtom\";\nimport { useTokenTaxFee } from \"@/hooks/tokens/useTokenTaxFee\";\n\ntype FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n | \"srcTokenDexTransferFee\"\n | \"destTokenDexTransferFee\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n\nexport function usePricesParams(): {\n priceParams: FetchPriceParams;\n isCrossChain: boolean;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n} {\n const fromToken = useAtomValue(tokenFromAtom);\n const toToken = useAtomValue(tokenToAtom);\n\n const payAmountWei = useAtomValue(payInputAmountWeiAtom);\n const receiveAmountWei = useAtomValue(receiveInputAmountWeiAtom) ?? \"0\";\n\n const { data: fromTokenTaxFee } = useTokenTaxFee({\n tokenAddress: fromToken.address,\n chainId: fromToken.network,\n });\n\n const { data: toTokenTaxFee } = useTokenTaxFee({\n tokenAddress: toToken?.address,\n chainId: toToken?.network,\n });\n\n const srcTokenDexTransferFee = fromTokenTaxFee?.sellTax?.toString();\n const destTokenDexTransferFee = toTokenTaxFee?.buyTax?.toString();\n\n const { address } = useAccount();\n\n const widgetConfig = useWidgetConfig();\n\n const partner = widgetConfig.partner;\n\n const isCrossChain = useIsCrossChain();\n\n const side = useSwapSide();\n const amount = side === \"SELL\" ? payAmountWei : receiveAmountWei;\n\n const priceParams: FetchPriceParams = {\n srcToken: fromToken.address,\n destToken: toToken?.address,\n srcDecimals: fromToken.decimals,\n destDecimals: toToken?.decimals,\n side,\n amount,\n userAddress: address,\n partner,\n ignoreBadUsdPrice: false, // safer to ignore for all tokens to allow those without USD price\n srcTokenDexTransferFee,\n destTokenDexTransferFee,\n };\n\n return {\n priceParams,\n isCrossChain,\n chainId: fromToken.network,\n destChainId: isCrossChain ? toToken?.network : undefined,\n };\n}\n"],"names":["usePricesParams","$","_c","fromToken","useAtomValue","tokenFromAtom","toToken","tokenToAtom","payAmountWei","payInputAmountWeiAtom","receiveAmountWei","receiveInputAmountWeiAtom","t0","address","network","tokenAddress","chainId","data","fromTokenTaxFee","useTokenTaxFee","t1","t2","t3","toTokenTaxFee","t4","sellTax","toString","srcTokenDexTransferFee","t5","buyTax","destTokenDexTransferFee","useAccount","widgetConfig","useWidgetConfig","partner","isCrossChain","useIsCrossChain","side","useSwapSide","amount","t6","t7","decimals","t8","srcToken","destToken","srcDecimals","destDecimals","userAddress","ignoreBadUsdPrice","priceParams","t9","undefined","t10","destChainId"],"mappings":"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"}
1
+ {"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"@/core/inputs/state/inputAmountAtom\";\nimport {\n tokenFromAtom,\n tokenToAtom,\n} from \"@/core/inputs/state/selectedTokenAtom\";\nimport { useAtomValue } from \"jotai\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\nimport { useTokenTaxFee } from \"@/hooks/tokens/useTokenTaxFee\";\n\ntype FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n | \"srcTokenDexTransferFee\"\n | \"destTokenDexTransferFee\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n\nexport function usePricesParams(): {\n priceParams: FetchPriceParams;\n isCrossChain: boolean;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n} {\n const fromToken = useAtomValue(tokenFromAtom);\n const toToken = useAtomValue(tokenToAtom);\n\n const payAmountWei = useAtomValue(payInputAmountWeiAtom);\n const receiveAmountWei = useAtomValue(receiveInputAmountWeiAtom) ?? \"0\";\n\n const { data: fromTokenTaxFee } = useTokenTaxFee({\n tokenAddress: fromToken.address,\n chainId: fromToken.network,\n });\n\n const { data: toTokenTaxFee } = useTokenTaxFee({\n tokenAddress: toToken?.address,\n chainId: toToken?.network,\n });\n\n const srcTokenDexTransferFee = fromTokenTaxFee?.sellTax?.toString();\n const destTokenDexTransferFee = toTokenTaxFee?.buyTax?.toString();\n\n const { address } = useAccount();\n\n const widgetConfig = useWidgetConfig();\n\n const partner = widgetConfig.partner;\n\n const isCrossChain = useIsCrossChain();\n\n const side = useSwapSide();\n const amount = side === \"SELL\" ? payAmountWei : receiveAmountWei;\n\n const priceParams: FetchPriceParams = {\n srcToken: fromToken.address,\n destToken: toToken?.address,\n srcDecimals: fromToken.decimals,\n destDecimals: toToken?.decimals,\n side,\n amount,\n userAddress: address,\n partner,\n ignoreBadUsdPrice: false, // safer to ignore for all tokens to allow those without USD price\n srcTokenDexTransferFee,\n destTokenDexTransferFee,\n };\n\n return {\n priceParams,\n isCrossChain,\n chainId: fromToken.network,\n destChainId: isCrossChain ? toToken?.network : undefined,\n };\n}\n"],"names":["usePricesParams","$","_c","fromToken","useAtomValue","tokenFromAtom","toToken","tokenToAtom","payAmountWei","payInputAmountWeiAtom","receiveAmountWei","receiveInputAmountWeiAtom","t0","address","network","tokenAddress","chainId","data","fromTokenTaxFee","useTokenTaxFee","t1","t2","t3","toTokenTaxFee","t4","sellTax","toString","srcTokenDexTransferFee","t5","buyTax","destTokenDexTransferFee","useAccount","widgetConfig","useWidgetConfig","partner","isCrossChain","useIsCrossChain","side","useSwapSide","amount","t6","t7","decimals","t8","srcToken","destToken","srcDecimals","destDecimals","userAddress","ignoreBadUsdPrice","priceParams","t9","undefined","t10","destChainId"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { useGenericTokenAllowanceMin } from '../../../tokens/allowance/useGeneri
6
6
  import { amountAfterSlippage } from '../../../../lib/utils/slippage.js';
7
7
  import { useSlippage } from '../../../useSlippage.js';
8
8
  import { useSignPermit1Or2 } from './useSignPermit1Or2.js';
9
- import { useLogger } from '../../../../widget/logger.js';
9
+ import { useLogger } from '../../../../core/logger.js';
10
10
 
11
11
  function useApproveOrPermit(t0) {
12
12
  const $ = distExports.c(50);