@velora-dex/widget 0.9.0 → 0.10.1

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 (267) hide show
  1. package/dist/components/web3/AccountButton.js +1 -1
  2. package/dist/components/web3/AccountButton.js.map +1 -1
  3. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts.map +1 -1
  4. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +22 -21
  5. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  6. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js.map +1 -1
  7. package/dist/components/web3/ConnectExternalProvider/utils.js +1 -1
  8. package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -1
  9. package/dist/components/web3/ConnectWallets/index.d.ts.map +1 -1
  10. package/dist/components/web3/ConnectWallets/index.js +67 -66
  11. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  12. package/dist/components/web3/ConnectWallets/privy/iframe.js +1 -1
  13. package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
  14. package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
  15. package/dist/components/web3/ConnectWallets/walletIcons.js +1 -1
  16. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  17. package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -1
  18. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +27 -26
  19. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
  20. package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
  21. package/dist/components/widget/AppHeader/Activities/hooks.js +9 -9
  22. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  23. package/dist/components/widget/AppHeader/Activities/utils.d.ts.map +1 -1
  24. package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -1
  25. package/dist/components/widget/AppHeader/AppHeader.js +1 -1
  26. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  27. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +1 -1
  28. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
  29. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  30. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +2 -2
  31. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
  32. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  33. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts.map +1 -1
  34. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
  35. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js +1 -1
  36. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
  37. package/dist/components/widget/OtcOrderItem/utils.js.map +1 -1
  38. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +1 -1
  39. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  40. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js +1 -1
  41. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
  42. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  43. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  44. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  45. package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
  46. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  47. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts.map +1 -1
  48. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -1
  49. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +2 -2
  50. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  51. package/dist/core/LimitOrderButton.js +1 -1
  52. package/dist/core/LimitOrderButton.js.map +1 -1
  53. package/dist/core/OtcOrderButton.js +1 -1
  54. package/dist/core/OtcOrderButton.js.map +1 -1
  55. package/dist/core/TradeFlowScreenButton.js +1 -1
  56. package/dist/core/TradeFlowScreenButton.js.map +1 -1
  57. package/dist/core/across/utils.js.map +1 -1
  58. package/dist/core/index.js +1 -1
  59. package/dist/core/index.js.map +1 -1
  60. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  61. package/dist/core/inputs/state/guards.d.ts.map +1 -1
  62. package/dist/core/inputs/state/guards.js.map +1 -1
  63. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  64. package/dist/core/limit/state/limitInputAmountAtom.d.ts.map +1 -1
  65. package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
  66. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  67. package/dist/core/otc/state/otcInputAmountAtom.d.ts.map +1 -1
  68. package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -1
  69. package/dist/core/state/configAtom.js +2 -2
  70. package/dist/core/state/configAtom.js.map +1 -1
  71. package/dist/core/state/getSelectableDestChains.d.ts +1 -1
  72. package/dist/core/state/getSelectableDestChains.d.ts.map +1 -1
  73. package/dist/core/state/getSelectableDestChains.js.map +1 -1
  74. package/dist/core/twap/state/twapInputAmountAtom.d.ts.map +1 -1
  75. package/dist/core/twap/state/twapInputAmountAtom.js.map +1 -1
  76. package/dist/events/getters/limit.js +1 -1
  77. package/dist/events/getters/limit.js.map +1 -1
  78. package/dist/events/getters/otc.js +1 -1
  79. package/dist/events/getters/otc.js.map +1 -1
  80. package/dist/events/getters/swap.js +1 -1
  81. package/dist/events/getters/swap.js.map +1 -1
  82. package/dist/events/getters/twap.js +1 -1
  83. package/dist/events/getters/twap.js.map +1 -1
  84. package/dist/events/getters/widgetState.js +1 -1
  85. package/dist/events/getters/widgetState.js.map +1 -1
  86. package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
  87. package/dist/events/hooks/useOnWalletConnect.js +1 -1
  88. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  89. package/dist/events/types/swap.d.ts.map +1 -1
  90. package/dist/hooks/batch/useBatchWithApproveTxs.js +1 -1
  91. package/dist/hooks/batch/useBatchWithApproveTxs.js.map +1 -1
  92. package/dist/hooks/batch/useCanBatchTxs.d.ts +0 -1
  93. package/dist/hooks/batch/useCanBatchTxs.d.ts.map +1 -1
  94. package/dist/hooks/batch/useCanBatchTxs.js +20 -29
  95. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  96. package/dist/hooks/batch/useSendBatchTx.d.ts.map +1 -1
  97. package/dist/hooks/batch/useSendBatchTx.js +1 -1
  98. package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
  99. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  100. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts.map +1 -1
  101. package/dist/hooks/connectors/useIsGnosisSafeConnector.js +1 -1
  102. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  103. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -1
  104. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +1 -1
  105. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  106. package/dist/hooks/getCode/useIsAccountContract.d.ts +1 -1
  107. package/dist/hooks/getCode/useIsAccountContract.d.ts.map +1 -1
  108. package/dist/hooks/getCode/useIsAccountContract.js +1 -1
  109. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
  110. package/dist/hooks/getCode/useIsContractAtAddress.d.ts +1 -1
  111. package/dist/hooks/getCode/useIsContractAtAddress.d.ts.map +1 -1
  112. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +2 -2
  113. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
  114. package/dist/hooks/otc/queries/useLimitOrders.d.ts.map +1 -1
  115. package/dist/hooks/otc/queries/useLimitOrders.js +1 -1
  116. package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
  117. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +3 -3
  118. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  119. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +3 -3
  120. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  121. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.d.ts.map +1 -1
  122. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js +2 -2
  123. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
  124. package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js +1 -1
  125. package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
  126. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js +1 -1
  127. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
  128. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +1 -1
  129. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  130. package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts +2 -2
  131. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +1 -1
  132. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
  133. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js +1 -1
  134. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
  135. package/dist/hooks/permit/utils/types.d.ts +1 -1
  136. package/dist/hooks/permit/utils/types.d.ts.map +1 -1
  137. package/dist/hooks/swap/prices/delta/bridge/utils.d.ts.map +1 -1
  138. package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
  139. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts.map +1 -1
  140. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -1
  141. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts.map +1 -1
  142. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -1
  143. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js +1 -1
  144. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -1
  145. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
  146. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
  147. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  148. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  149. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js +1 -1
  150. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -1
  151. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +1 -1
  152. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -1
  153. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js +1 -1
  154. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -1
  155. package/dist/hooks/swap/prices/delta/orders/types.d.ts.map +1 -1
  156. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  157. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  158. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -1
  159. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -1
  160. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -1
  161. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -1
  162. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -1
  163. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -1
  164. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -1
  165. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.d.ts +11 -6
  166. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.d.ts.map +1 -1
  167. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.js +1 -1
  168. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.js.map +1 -1
  169. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderRequiredBalance.js +2 -2
  170. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderRequiredBalance.js.map +1 -1
  171. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js +1 -1
  172. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  173. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  174. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  175. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  176. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  177. package/dist/hooks/swap/prices/usePricesParams.js +4 -4
  178. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  179. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  180. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  181. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +1 -1
  182. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  183. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  184. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +3 -3
  185. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  186. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
  187. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  188. package/dist/hooks/swap/tradeFlow/useTwapFlow.js +1 -1
  189. package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -1
  190. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js +1 -1
  191. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
  192. package/dist/hooks/tokens/allowance/useTokenAllowance.js +1 -1
  193. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  194. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +1 -1
  195. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
  196. package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
  197. package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
  198. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +1 -1
  199. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
  200. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +1 -1
  201. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
  202. package/dist/hooks/tokens/balances/useTokenBalance.d.ts +0 -11
  203. package/dist/hooks/tokens/balances/useTokenBalance.d.ts.map +1 -1
  204. package/dist/hooks/tokens/balances/useTokenBalance.js +11 -11
  205. package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
  206. package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
  207. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  208. package/dist/hooks/txs/mutations/useApprove.d.ts.map +1 -1
  209. package/dist/hooks/txs/mutations/useApprove.js +2 -2
  210. package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
  211. package/dist/hooks/txs/mutations/useDepositWeth.js +1 -1
  212. package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
  213. package/dist/hooks/txs/mutations/useReplaceTx.js +3 -3
  214. package/dist/hooks/txs/mutations/useReplaceTx.js.map +1 -1
  215. package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
  216. package/dist/hooks/txs/mutations/useSendTx.js +2 -2
  217. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  218. package/dist/hooks/txs/queries/useAwaitTx.js +4 -4
  219. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  220. package/dist/hooks/txs/queries/useTxResponse.d.ts +88 -1
  221. package/dist/hooks/txs/queries/useTxResponse.d.ts.map +1 -1
  222. package/dist/hooks/txs/queries/useWalletCanReplaceTx.js +1 -1
  223. package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -1
  224. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  225. package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
  226. package/dist/hooks/useBridgeInfo.js.map +1 -1
  227. package/dist/hooks/useChainMatches.js +2 -2
  228. package/dist/hooks/useChainMatches.js.map +1 -1
  229. package/dist/hooks/useConnections.d.ts +3 -0
  230. package/dist/hooks/useConnections.d.ts.map +1 -0
  231. package/dist/hooks/useConnections.js +24 -0
  232. package/dist/hooks/useConnections.js.map +1 -0
  233. package/dist/hooks/useDisconnect.d.ts +3 -0
  234. package/dist/hooks/useDisconnect.d.ts.map +1 -0
  235. package/dist/hooks/useDisconnect.js +29 -0
  236. package/dist/hooks/useDisconnect.js.map +1 -0
  237. package/dist/hooks/useMinViemClient.d.ts.map +1 -1
  238. package/dist/hooks/useMinViemClient.js +9 -9
  239. package/dist/hooks/useMinViemClient.js.map +1 -1
  240. package/dist/hooks/useSDK.d.ts.map +1 -1
  241. package/dist/hooks/useSDK.js.map +1 -1
  242. package/dist/hooks/useSwitchChainWithGuard.js +1 -1
  243. package/dist/hooks/useSwitchChainWithGuard.js.map +1 -1
  244. package/dist/lib/constants/urls.js +1 -1
  245. package/dist/lib/constants/urls.js.map +1 -1
  246. package/dist/lib/utils/twap.js.map +1 -1
  247. package/dist/lib/web3/wagmi/config.d.ts +40 -6
  248. package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
  249. package/dist/lib/web3/wagmi/config.js.map +1 -1
  250. package/dist/lib/web3/wagmi/constants.d.ts +40 -1
  251. package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
  252. package/dist/lib/web3/wagmi/external.js +1 -1
  253. package/dist/lib/web3/wagmi/external.js.map +1 -1
  254. package/dist/lib/web3/wagmi/switchChain.d.ts +40 -1
  255. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  256. package/dist/lib/web3/wagmi/switchChain.js +1 -1
  257. package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
  258. package/dist/tokens/lists/lists.js.map +1 -1
  259. package/dist/tokens/lists/lists.json.d.ts +12 -31
  260. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  261. package/dist/transactions/queries/ensureCallsStatus.js +1 -1
  262. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  263. package/dist/transactions/queries/ensureTxReceipt.js +1 -1
  264. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  265. package/dist/wagmi-register.d.ts +7 -0
  266. package/dist/wagmi-register.d.ts.map +1 -0
  267. package/package.json +13 -11
@@ -1 +1 @@
1
- {"version":3,"file":"useOtcOrderFlow.js","names":["useAccount","useChainId","assert","useEnsureTxReceipt","Address","Hash","TransactionReceipt","ApprovalFlowResult","SubmitTxResult","useCreateLimitOrder","useCancelOtcOrderAndWait","useCancelOtcOrderEventCallbacks","useMinViemClient","useMutation","useRef","SupportedChainId","UserCancelledError","handleTxSent","CallsSentObject","TxSentObject","useApproveOrPermit","useLogger","OTCOrderFromApi","useOtcDeadline","useOtcReceiverAddressValue","useOTCOrderByHashQuery","useWidgetEvents","shouldApproveOrBatchWrapAndApprove","useBatchWrapAndApprove","BatchTxStepResult","useChainMatches","useSwitchChainWithGuard","CancelOrderStepKey","otcOrderFlowType","UserDefinedOtcPrice","srcTokenAddress","destTokenAddress","srcAmount","destAmount","UseOtcOrderFlowInput","otcPrice","preWrapETH","SubmitOtcOrderResult","tradeFlowType","approve","wrapAndApproveBatch","otcOrder","sentOrder","lastOrderState","account","receiverAddress","OnTxSent","txSent","RunOtcOrderOptions","onTxSent","UseOtcOrderFlowResult","chainId","runOtcOrderFlow","options","Promise","reset","cancelFlow","retryFlow","cancelOtcOrder","approval","wrapAndApprovalBatch","otcOrderSubmission","order","isCreatingOrder","isOrderSent","isPending","isError","isSuccess","error","Error","otcOrderCancelation","txHash","receipt","isCancelingOrder","isOrderCanceled","step","result","OTC_ORDER_MUTATION_KEY","useOtcOrderFlow","logger","approveTxMut","events","approveOrPermitEvents","srcToken","spenderContractType","swapSide","tradeMode","address","minClient","batchWrapAndApprove","resetBatchWrapAndApprove","canBatchTxs","wrapAndApproveBatchResult","createOrderMut","client","mutationOptions","onSuccess","log","onError","data","limitOrderQuery","orderParams","orderHash","cancelOrderEvents","orderChainId","forcedChainMatchesWalletChain","mutateAsync","switchChain","cancelOrderMut","onMutate","variables","txReceipt","vars","isCancelTxSucceeded","status","isCancelTxReverted","state","const","transactionHash","ensureTxReceipt","currentAbortControllerRef","AbortController","current","abort","deadline","onOTCOrder","submitOtcOrder","abortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDoApprovalTx","shouldWrapAndApproveBatch","sendCallsResult","wrapAmount","BigInt","lastCallsReceipt","receipts","length","callsId","id","callsReceipt","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","failed","event","name","params","price","orderFromAPI","orderInput","expiry","makerAsset","takerAsset","makerAmount","takerAmount","maker","taker","otcOrderMut","mutationFn","mutationKey","onSettled","orderToCancel","cancelledOrder"],"sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\nimport { useCreateLimitOrder } from \"../mutations/useCreateLimitOrder\";\nimport {\n useCancelOtcOrderAndWait,\n useCancelOtcOrderEventCallbacks,\n} from \"../mutations/useCancelLimitOrder\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n handleTxSent,\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { OTCOrderFromApi } from \"@velora-dex/sdk\";\nimport { useOtcDeadline } from \"@/core/otc/state/deadlineAtom\";\nimport { useOtcReceiverAddressValue } from \"@/core/otc/state/receiverAddressAtom\";\nimport { useOTCOrderByHashQuery } from \"../queries/useLimitOrders\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatchWrapAndApprove,\n useBatchWrapAndApprove,\n} from \"@/hooks/swap/tradeFlow/common/useBatchWrapAndApprove\";\nimport type { BatchTxStepResult } from \"@/hooks/swap/tradeFlow/common/types\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useSwitchChainWithGuard } from \"@/hooks/useSwitchChainWithGuard\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nconst otcOrderFlowType = \"otcOrder\";\n\nexport type UserDefinedOtcPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n};\n\nexport type UseOtcOrderFlowInput = {\n otcPrice?: UserDefinedOtcPrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitOtcOrderResult = {\n tradeFlowType: typeof otcOrderFlowType;\n approve: SubmitTxResult;\n wrapAndApproveBatch: SubmitTxResult;\n otcOrder: {\n sentOrder: OTCOrderFromApi;\n lastOrderState?: OTCOrderFromApi;\n };\n otcPrice: UserDefinedOtcPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseOtcOrderFlowResult = {\n tradeFlowType: typeof otcOrderFlowType;\n chainId: SupportedChainId;\n runOtcOrderFlow: (\n options?: RunOtcOrderOptions\n ) => Promise<SubmitOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunOtcOrderOptions) => Promise<SubmitOtcOrderResult>; // reset and retry flow\n cancelOtcOrder: () => void;\n approval: ApprovalFlowResult;\n wrapAndApprovalBatch: BatchTxStepResult;\n otcOrderSubmission: {\n order?: OTCOrderFromApi;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n otcOrderCancelation: {\n txHash?: string;\n receipt?: TransactionReceipt;\n isCancelingOrder: boolean;\n isOrderCanceled: boolean;\n lastOrderState?: OTCOrderFromApi;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n step?: CancelOrderStepKey;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitOtcOrderResult;\n otcPrice?: UserDefinedOtcPrice;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runOtcOrderFlow\";\n\nexport function useOtcOrderFlow({\n otcPrice,\n preWrapETH,\n}: UseOtcOrderFlowInput): UseOtcOrderFlowResult {\n const logger = useLogger(\"OtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: otcPrice?.srcTokenAddress,\n srcAmount: otcPrice?.srcAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n chainId,\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n /* 2.2. Or submit Batch tx (Wrap ETH + Approve WETH) */\n const {\n batchWrapAndApprove,\n reset: resetBatchWrapAndApprove,\n canBatchTxs,\n wrapAndApproveBatchResult: wrapAndApprovalBatch,\n } = useBatchWrapAndApprove({\n chainId,\n account,\n logger,\n tradeMode: \"otc\",\n });\n\n /* 4. Build and Submit OTC Order */\n const createOrderMut = useCreateLimitOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create OTC Order error\", error);\n },\n },\n });\n\n const otcOrderSubmission: UseOtcOrderFlowResult[\"otcOrderSubmission\"] = {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /// CANCELATION\n\n const limitOrderQuery = useOTCOrderByHashQuery({\n orderParams: otcOrderSubmission.order?.orderHash,\n });\n\n const cancelOrderEvents = useCancelOtcOrderEventCallbacks(\n otcOrderSubmission.order\n );\n\n const orderChainId = otcOrderSubmission.order?.chainId as\n | SupportedChainId\n | undefined;\n const { forcedChainMatchesWalletChain } = useChainMatches(orderChainId);\n const { mutateAsync: switchChain } = useSwitchChainWithGuard();\n\n const cancelOrderMut = useCancelOtcOrderAndWait({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onMutate: async (variables) => {\n assert(orderChainId, \"orderChainId is undefined\");\n if (!forcedChainMatchesWalletChain) {\n await switchChain({\n chainId: orderChainId,\n });\n }\n cancelOrderEvents.onMutate?.(variables);\n },\n onSuccess: (txReceipt, vars) => {\n logger.log(\"Cancel Order success\", txReceipt);\n\n cancelOrderEvents.onSuccess?.(txReceipt, vars);\n },\n onError: (error, vars) => {\n logger.error(\"Cancel Order error\", error);\n cancelOrderEvents.onError?.(error, vars);\n },\n },\n });\n\n const isCancelTxSucceeded = cancelOrderMut.result?.status === \"success\";\n const isCancelTxReverted = cancelOrderMut.result?.status === \"reverted\";\n\n const lastOrderState =\n limitOrderQuery.data && isCancelTxSucceeded && cancelOrderMut.result\n ? {\n // optimistically update order state to CANCELLED\n // because API won't return the updated order state immediately\n // as it depends on the subgraph indexing\n ...limitOrderQuery.data,\n state: \"CANCELLED\" as const,\n transactionHash: cancelOrderMut.result.transactionHash,\n }\n : limitOrderQuery.data;\n\n const otcOrderCancelation: UseOtcOrderFlowResult[\"otcOrderCancelation\"] = {\n txHash: cancelOrderMut.txHash,\n receipt: cancelOrderMut.receipt,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCanceled: isCancelTxSucceeded,\n lastOrderState,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError || isCancelTxReverted,\n isSuccess: cancelOrderMut.isSuccess && isCancelTxSucceeded,\n error: cancelOrderMut.error,\n step: cancelOrderMut.step,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useOtcReceiverAddressValue();\n const deadline = useOtcDeadline();\n\n const { onOTCOrder } = useWidgetEvents();\n\n const submitOtcOrder = async ({\n onTxSent,\n }: RunOtcOrderOptions = {}): Promise<SubmitOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createOrderMut.reset();\n cancelOrderMut.reset();\n resetBatchWrapAndApprove();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(otcPrice, \"Otc price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n let wrapAndApproveBatch: SubmitTxResult = {};\n\n const allowanceToSet = approval.allowanceToSet;\n\n const { shouldDoApprovalTx, shouldWrapAndApproveBatch } =\n shouldApproveOrBatchWrapAndApprove({\n approval,\n preWrapETH,\n canBatchTxs,\n });\n\n try {\n if (shouldWrapAndApproveBatch) {\n const sendCallsResult = await batchWrapAndApprove({\n approval,\n preWrapETH: {\n wrapAmount: BigInt(otcPrice.srcAmount),\n },\n onTxSent,\n signal,\n });\n\n const lastCallsReceipt =\n sendCallsResult?.receipts?.[sendCallsResult.receipts.length - 1];\n wrapAndApproveBatch = {\n callsId: sendCallsResult?.id,\n callsReceipt: lastCallsReceipt,\n };\n\n logger.log(\"~ wrap and approve batch tx ~ receipt:\", lastCallsReceipt);\n } else if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n } catch (error) {\n logger.error(\"Approve tx error\", error);\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n assert(otcPrice, \"otcPrice is not available\");\n assert(receiverAddress, \"Receiver address is not set\");\n\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:request\",\n params: {\n price: otcPrice,\n },\n },\n });\n\n const orderFromAPI = await createOrderMut.mutateAsync({\n signal,\n orderInput: {\n expiry: deadline,\n makerAsset: otcPrice.srcTokenAddress,\n takerAsset: otcPrice.destTokenAddress,\n makerAmount: otcPrice.srcAmount,\n takerAmount: otcPrice.destAmount,\n maker: account,\n taker: receiverAddress,\n },\n });\n\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:sent\",\n params: {\n price: otcPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: otcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n wrapAndApproveBatch,\n otcOrder: {\n sentOrder: orderFromAPI,\n },\n otcPrice: otcPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:failed\",\n params: {\n price: otcPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const otcOrderMut = useMutation({\n mutationFn: submitOtcOrder,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runOtcOrderFlow = otcOrderMut.mutateAsync;\n const cancelOtcOrder = async () => {\n const orderToCancel = otcOrderSubmission.order;\n assert(orderToCancel, \"No order to cancel\");\n return cancelOrderMut.cancelOtcOrder({\n orderHash: orderToCancel.orderHash,\n onTxSent: ({ chainId, transactionHash, receiptPromise }) => {\n handleTxSent({\n chainId,\n transactionHash,\n action: \"cancelOtcOrder\",\n transactionSpecificData: {\n action: \"cancelOtcOrder\",\n cancelledOrder: orderToCancel,\n },\n receiptPromise,\n });\n cancelOrderEvents.onTxSent?.({\n chainId,\n txHash: transactionHash,\n });\n },\n });\n };\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n otcOrderMut.reset();\n cancelOrderMut.reset();\n resetBatchWrapAndApprove();\n };\n\n const retryFlow = (\n options?: RunOtcOrderOptions\n ): Promise<SubmitOtcOrderResult> => {\n reset();\n return runOtcOrderFlow(options);\n };\n\n /* 5. return result */\n\n let result = otcOrderMut.data;\n if (result && otcOrderCancelation.lastOrderState) {\n result = {\n ...result,\n otcOrder: {\n sentOrder: result.otcOrder.sentOrder,\n lastOrderState: otcOrderCancelation.lastOrderState,\n },\n };\n }\n\n return {\n tradeFlowType: otcOrderFlowType,\n chainId,\n runOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelOtcOrder,\n approval,\n wrapAndApprovalBatch,\n otcOrderSubmission,\n otcOrderCancelation,\n // otcOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: otcOrderMut.isPending,\n isSuccess: otcOrderSubmission.isSuccess, // approval is an optional step\n isError: otcOrderMut.isError,\n error: otcOrderMut.error,\n result,\n otcPrice,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useOtcOrderFlow.js","names":["useConnection","useChainId","assert","useEnsureTxReceipt","Address","Hash","TransactionReceipt","ApprovalFlowResult","SubmitTxResult","useCreateLimitOrder","useCancelOtcOrderAndWait","useCancelOtcOrderEventCallbacks","useMinViemClient","useMutation","useRef","SupportedChainId","UserCancelledError","handleTxSent","CallsSentObject","TxSentObject","useApproveOrPermit","useLogger","OTCOrderFromApi","useOtcDeadline","useOtcReceiverAddressValue","useOTCOrderByHashQuery","useWidgetEvents","shouldApproveOrBatchWrapAndApprove","useBatchWrapAndApprove","BatchTxStepResult","useChainMatches","useSwitchChainWithGuard","CancelOrderStepKey","otcOrderFlowType","UserDefinedOtcPrice","srcTokenAddress","destTokenAddress","srcAmount","destAmount","UseOtcOrderFlowInput","otcPrice","preWrapETH","SubmitOtcOrderResult","tradeFlowType","approve","wrapAndApproveBatch","otcOrder","sentOrder","lastOrderState","account","receiverAddress","OnTxSent","txSent","RunOtcOrderOptions","onTxSent","UseOtcOrderFlowResult","chainId","runOtcOrderFlow","options","Promise","reset","cancelFlow","retryFlow","cancelOtcOrder","approval","wrapAndApprovalBatch","otcOrderSubmission","order","isCreatingOrder","isOrderSent","isPending","isError","isSuccess","error","Error","otcOrderCancelation","txHash","receipt","isCancelingOrder","isOrderCanceled","step","result","OTC_ORDER_MUTATION_KEY","useOtcOrderFlow","logger","approveTxMut","events","approveOrPermitEvents","srcToken","spenderContractType","swapSide","tradeMode","address","minClient","batchWrapAndApprove","resetBatchWrapAndApprove","canBatchTxs","wrapAndApproveBatchResult","createOrderMut","client","mutationOptions","onSuccess","log","onError","data","limitOrderQuery","orderParams","orderHash","cancelOrderEvents","orderChainId","forcedChainMatchesWalletChain","mutateAsync","switchChain","cancelOrderMut","onMutate","variables","txReceipt","vars","isCancelTxSucceeded","status","isCancelTxReverted","state","const","transactionHash","ensureTxReceipt","currentAbortControllerRef","AbortController","current","abort","deadline","onOTCOrder","submitOtcOrder","abortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDoApprovalTx","shouldWrapAndApproveBatch","sendCallsResult","wrapAmount","BigInt","lastCallsReceipt","receipts","length","callsId","id","callsReceipt","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","failed","event","name","params","price","orderFromAPI","orderInput","expiry","makerAsset","takerAsset","makerAmount","takerAmount","maker","taker","otcOrderMut","mutationFn","mutationKey","onSettled","orderToCancel","cancelledOrder"],"sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderFlow.ts"],"sourcesContent":["import { useConnection, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\nimport { useCreateLimitOrder } from \"../mutations/useCreateLimitOrder\";\nimport {\n useCancelOtcOrderAndWait,\n useCancelOtcOrderEventCallbacks,\n} from \"../mutations/useCancelLimitOrder\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n handleTxSent,\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { OTCOrderFromApi } from \"@velora-dex/sdk\";\nimport { useOtcDeadline } from \"@/core/otc/state/deadlineAtom\";\nimport { useOtcReceiverAddressValue } from \"@/core/otc/state/receiverAddressAtom\";\nimport { useOTCOrderByHashQuery } from \"../queries/useLimitOrders\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatchWrapAndApprove,\n useBatchWrapAndApprove,\n} from \"@/hooks/swap/tradeFlow/common/useBatchWrapAndApprove\";\nimport type { BatchTxStepResult } from \"@/hooks/swap/tradeFlow/common/types\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useSwitchChainWithGuard } from \"@/hooks/useSwitchChainWithGuard\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nconst otcOrderFlowType = \"otcOrder\";\n\nexport type UserDefinedOtcPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n};\n\nexport type UseOtcOrderFlowInput = {\n otcPrice?: UserDefinedOtcPrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitOtcOrderResult = {\n tradeFlowType: typeof otcOrderFlowType;\n approve: SubmitTxResult;\n wrapAndApproveBatch: SubmitTxResult;\n otcOrder: {\n sentOrder: OTCOrderFromApi;\n lastOrderState?: OTCOrderFromApi;\n };\n otcPrice: UserDefinedOtcPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseOtcOrderFlowResult = {\n tradeFlowType: typeof otcOrderFlowType;\n chainId: SupportedChainId;\n runOtcOrderFlow: (\n options?: RunOtcOrderOptions\n ) => Promise<SubmitOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunOtcOrderOptions) => Promise<SubmitOtcOrderResult>; // reset and retry flow\n cancelOtcOrder: () => void;\n approval: ApprovalFlowResult;\n wrapAndApprovalBatch: BatchTxStepResult;\n otcOrderSubmission: {\n order?: OTCOrderFromApi;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n otcOrderCancelation: {\n txHash?: string;\n receipt?: TransactionReceipt;\n isCancelingOrder: boolean;\n isOrderCanceled: boolean;\n lastOrderState?: OTCOrderFromApi;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n step?: CancelOrderStepKey;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitOtcOrderResult;\n otcPrice?: UserDefinedOtcPrice;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runOtcOrderFlow\";\n\nexport function useOtcOrderFlow({\n otcPrice,\n preWrapETH,\n}: UseOtcOrderFlowInput): UseOtcOrderFlowResult {\n const logger = useLogger(\"OtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: otcPrice?.srcTokenAddress,\n srcAmount: otcPrice?.srcAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n chainId,\n });\n\n const { address: account } = useConnection();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n /* 2.2. Or submit Batch tx (Wrap ETH + Approve WETH) */\n const {\n batchWrapAndApprove,\n reset: resetBatchWrapAndApprove,\n canBatchTxs,\n wrapAndApproveBatchResult: wrapAndApprovalBatch,\n } = useBatchWrapAndApprove({\n chainId,\n account,\n logger,\n tradeMode: \"otc\",\n });\n\n /* 4. Build and Submit OTC Order */\n const createOrderMut = useCreateLimitOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create OTC Order error\", error);\n },\n },\n });\n\n const otcOrderSubmission: UseOtcOrderFlowResult[\"otcOrderSubmission\"] = {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /// CANCELATION\n\n const limitOrderQuery = useOTCOrderByHashQuery({\n orderParams: otcOrderSubmission.order?.orderHash,\n });\n\n const cancelOrderEvents = useCancelOtcOrderEventCallbacks(\n otcOrderSubmission.order\n );\n\n const orderChainId = otcOrderSubmission.order?.chainId as\n | SupportedChainId\n | undefined;\n const { forcedChainMatchesWalletChain } = useChainMatches(orderChainId);\n const { mutateAsync: switchChain } = useSwitchChainWithGuard();\n\n const cancelOrderMut = useCancelOtcOrderAndWait({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onMutate: async (variables) => {\n assert(orderChainId, \"orderChainId is undefined\");\n if (!forcedChainMatchesWalletChain) {\n await switchChain({\n chainId: orderChainId,\n });\n }\n cancelOrderEvents.onMutate?.(variables);\n },\n onSuccess: (txReceipt, vars) => {\n logger.log(\"Cancel Order success\", txReceipt);\n\n cancelOrderEvents.onSuccess?.(txReceipt, vars);\n },\n onError: (error, vars) => {\n logger.error(\"Cancel Order error\", error);\n cancelOrderEvents.onError?.(error, vars);\n },\n },\n });\n\n const isCancelTxSucceeded = cancelOrderMut.result?.status === \"success\";\n const isCancelTxReverted = cancelOrderMut.result?.status === \"reverted\";\n\n const lastOrderState =\n limitOrderQuery.data && isCancelTxSucceeded && cancelOrderMut.result\n ? {\n // optimistically update order state to CANCELLED\n // because API won't return the updated order state immediately\n // as it depends on the subgraph indexing\n ...limitOrderQuery.data,\n state: \"CANCELLED\" as const,\n transactionHash: cancelOrderMut.result.transactionHash,\n }\n : limitOrderQuery.data;\n\n const otcOrderCancelation: UseOtcOrderFlowResult[\"otcOrderCancelation\"] = {\n txHash: cancelOrderMut.txHash,\n receipt: cancelOrderMut.receipt,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCanceled: isCancelTxSucceeded,\n lastOrderState,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError || isCancelTxReverted,\n isSuccess: cancelOrderMut.isSuccess && isCancelTxSucceeded,\n error: cancelOrderMut.error,\n step: cancelOrderMut.step,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useOtcReceiverAddressValue();\n const deadline = useOtcDeadline();\n\n const { onOTCOrder } = useWidgetEvents();\n\n const submitOtcOrder = async ({\n onTxSent,\n }: RunOtcOrderOptions = {}): Promise<SubmitOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createOrderMut.reset();\n cancelOrderMut.reset();\n resetBatchWrapAndApprove();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(otcPrice, \"Otc price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n let wrapAndApproveBatch: SubmitTxResult = {};\n\n const allowanceToSet = approval.allowanceToSet;\n\n const { shouldDoApprovalTx, shouldWrapAndApproveBatch } =\n shouldApproveOrBatchWrapAndApprove({\n approval,\n preWrapETH,\n canBatchTxs,\n });\n\n try {\n if (shouldWrapAndApproveBatch) {\n const sendCallsResult = await batchWrapAndApprove({\n approval,\n preWrapETH: {\n wrapAmount: BigInt(otcPrice.srcAmount),\n },\n onTxSent,\n signal,\n });\n\n const lastCallsReceipt =\n sendCallsResult?.receipts?.[sendCallsResult.receipts.length - 1];\n wrapAndApproveBatch = {\n callsId: sendCallsResult?.id,\n callsReceipt: lastCallsReceipt,\n };\n\n logger.log(\"~ wrap and approve batch tx ~ receipt:\", lastCallsReceipt);\n } else if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n } catch (error) {\n logger.error(\"Approve tx error\", error);\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n assert(otcPrice, \"otcPrice is not available\");\n assert(receiverAddress, \"Receiver address is not set\");\n\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:request\",\n params: {\n price: otcPrice,\n },\n },\n });\n\n const orderFromAPI = await createOrderMut.mutateAsync({\n signal,\n orderInput: {\n expiry: deadline,\n makerAsset: otcPrice.srcTokenAddress,\n takerAsset: otcPrice.destTokenAddress,\n makerAmount: otcPrice.srcAmount,\n takerAmount: otcPrice.destAmount,\n maker: account,\n taker: receiverAddress,\n },\n });\n\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:sent\",\n params: {\n price: otcPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: otcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n wrapAndApproveBatch,\n otcOrder: {\n sentOrder: orderFromAPI,\n },\n otcPrice: otcPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:failed\",\n params: {\n price: otcPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const otcOrderMut = useMutation({\n mutationFn: submitOtcOrder,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runOtcOrderFlow = otcOrderMut.mutateAsync;\n const cancelOtcOrder = async () => {\n const orderToCancel = otcOrderSubmission.order;\n assert(orderToCancel, \"No order to cancel\");\n return cancelOrderMut.cancelOtcOrder({\n orderHash: orderToCancel.orderHash,\n onTxSent: ({ chainId, transactionHash, receiptPromise }) => {\n handleTxSent({\n chainId,\n transactionHash,\n action: \"cancelOtcOrder\",\n transactionSpecificData: {\n action: \"cancelOtcOrder\",\n cancelledOrder: orderToCancel,\n },\n receiptPromise,\n });\n cancelOrderEvents.onTxSent?.({\n chainId,\n txHash: transactionHash,\n });\n },\n });\n };\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n otcOrderMut.reset();\n cancelOrderMut.reset();\n resetBatchWrapAndApprove();\n };\n\n const retryFlow = (\n options?: RunOtcOrderOptions\n ): Promise<SubmitOtcOrderResult> => {\n reset();\n return runOtcOrderFlow(options);\n };\n\n /* 5. return result */\n\n let result = otcOrderMut.data;\n if (result && otcOrderCancelation.lastOrderState) {\n result = {\n ...result,\n otcOrder: {\n sentOrder: result.otcOrder.sentOrder,\n lastOrderState: otcOrderCancelation.lastOrderState,\n },\n };\n }\n\n return {\n tradeFlowType: otcOrderFlowType,\n chainId,\n runOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelOtcOrder,\n approval,\n wrapAndApprovalBatch,\n otcOrderSubmission,\n otcOrderCancelation,\n // otcOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: otcOrderMut.isPending,\n isSuccess: otcOrderSubmission.isSuccess, // approval is an optional step\n isError: otcOrderMut.isError,\n error: otcOrderMut.error,\n result,\n otcPrice,\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSignArbitraryTypedData.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/common/useSignArbitraryTypedData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,aAAa,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC3D,kBAAkB,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,0BAGvC,gCAAqC,KAAG,iCAkD1C,CAAC"}
1
+ {"version":3,"file":"useSignArbitraryTypedData.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/common/useSignArbitraryTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,aAAa,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC3D,kBAAkB,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,0BAGvC,gCAAqC,KAAG,iCAkD1C,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import { c as e } from "react-compiler-runtime";
2
2
  import { assert as t } from "ts-essentials";
3
3
  import "viem";
4
- import { useAccount as n, useSignTypedData as r } from "wagmi";
4
+ import { useConnection as n, useSignTypedData as r } from "wagmi";
5
5
  //#region src/hooks/permit/hooks/common/useSignArbitraryTypedData.ts
6
6
  var i = (i) => {
7
7
  let a = e(21), o;
8
8
  a[0] === i ? o = a[1] : (o = i === void 0 ? {} : i, a[0] = i, a[1] = o);
9
- let { onSuccess: s, onError: c } = o, { isConnected: l } = n(), { signTypedData: u, signTypedDataAsync: d, isPending: f, isSuccess: p, isError: m, error: h, data: g, reset: _ } = r(), v;
9
+ let { onSuccess: s, onError: c } = o, { isConnected: l } = n(), { mutate: u, mutateAsync: d, isPending: f, isSuccess: p, isError: m, error: h, data: g, reset: _ } = r(), v;
10
10
  a[2] !== l || a[3] !== c || a[4] !== s || a[5] !== u ? (v = (e) => {
11
11
  t(l, "Wallet not connected"), t(e, "Typed data is required"), u(e, {
12
12
  onSuccess: s,
@@ -1 +1 @@
1
- {"version":3,"file":"useSignArbitraryTypedData.js","names":["useSignTypedData","Hash","useAccount","assert","SignTypedDataVariables","UseSignedArbitraryTypedDataInput","onSuccess","signature","onError","error","Error","UseSignedArbitraryTypedDataReturn","signTypedData","typedData","signTypedDataAsync","Promise","isPending","isSuccess","isError","reset","useSignArbitraryTypedData","t0","$","_c","t1","undefined","isConnected","data","t2","signTx","t3","typedData_0","signTxAsync","t4"],"sources":["../../../../../src/hooks/permit/hooks/common/useSignArbitraryTypedData.ts"],"sourcesContent":["import { useSignTypedData } from \"wagmi\";\nimport { type Hash } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { SignTypedDataVariables } from \"wagmi/query\";\n\nexport type UseSignedArbitraryTypedDataInput = {\n onSuccess?: (signature: Hash) => void;\n onError?: (error: Error) => void;\n};\n\nexport type UseSignedArbitraryTypedDataReturn = {\n signTypedData: (typedData: SignTypedDataVariables) => void;\n signTypedDataAsync: (typedData: SignTypedDataVariables) => Promise<Hash>;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n signature?: Hash;\n reset: () => void;\n};\n\nexport const useSignArbitraryTypedData = ({\n onSuccess,\n onError,\n}: UseSignedArbitraryTypedDataInput = {}): UseSignedArbitraryTypedDataReturn => {\n const { isConnected } = useAccount();\n\n const {\n signTypedData,\n signTypedDataAsync,\n isPending,\n isSuccess,\n isError,\n error,\n data: signature,\n reset,\n } = useSignTypedData();\n\n const signTx = (typedData: SignTypedDataVariables) => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(typedData, \"Typed data is required\");\n\n // Execute signature\n signTypedData(typedData, {\n onSuccess,\n onError,\n });\n };\n\n const signTxAsync = async (\n typedData: SignTypedDataVariables\n ): Promise<Hash> => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(typedData, \"Typed data is required\");\n\n // Execute signature and return the hash\n return signTypedDataAsync(typedData, {\n onSuccess,\n onError,\n });\n };\n\n return {\n signTypedData: signTx,\n signTypedDataAsync: signTxAsync,\n isPending,\n isSuccess,\n isError,\n error,\n signature,\n reset,\n };\n};\n"],"mappings":";;;;;AAsBA,IAAaoB,KAA4BC,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAAC;CAAA,AAAAF,EAAA,OAAAD,IAGDG,IAAAF,EAAA,MAHEE,IAAAH,MAAAI,KAAAA,IAAA,EAGF,GAHEJ,GAGFC,EAAA,KAAAD,GAAAC,EAAA,KAAAE;CAHE,IAAA,EAAAlB,cAAAE,eAAAgB,GAIxC,EAAAE,mBAAwBxB,GAAY,EAEpC,EAAAU,kBAAAE,uBAAAE,cAAAC,cAAAC,YAAAT,UAAAkB,MAAApB,GAAAY,aASInB,GAAkB,EAAC4B;CAAA,AAAAN,EAAA,OAAAI,KAAAJ,EAAA,OAAAd,KAAAc,EAAA,OAAAhB,KAAAgB,EAAA,OAAAV,KAERgB,KAAAf,MAAA;EAMbD,AAJAT,EAAOuB,GAAa,uBAAuB,EAC3CvB,EAAOU,GAAW,yBAAyB,EAG3CD,EAAcC,GAAW;GAAAP;GAAAE;GAGxB,CAAC;IACHc,EAAA,KAAAI,GAAAJ,EAAA,KAAAd,GAAAc,EAAA,KAAAhB,GAAAgB,EAAA,KAAAV,GAAAU,EAAA,KAAAM,KAAAA,IAAAN,EAAA;CAVD,IAAAO,IAAeD,GAUbE;CAAA,AAAAR,EAAA,OAAAI,KAAAJ,EAAA,OAAAd,KAAAc,EAAA,OAAAhB,KAAAgB,EAAA,QAAAR,KAEkBgB,IAAA,OAAAC,OAIlB5B,EAAOuB,GAAa,uBAAuB,EAC3CvB,EAAOU,GAAW,yBAAyB,EAGpCC,EAAmBD,GAAW;EAAAP;EAAAE;EAGpC,CAAC,GACHc,EAAA,KAAAI,GAAAJ,EAAA,KAAAd,GAAAc,EAAA,KAAAhB,GAAAgB,EAAA,MAAAR,GAAAQ,EAAA,MAAAQ,KAAAA,IAAAR,EAAA;CAZD,IAAAU,IAAoBF,GAYlBG;CAWD,OAXCX,EAAA,QAAAb,KAAAa,EAAA,QAAAJ,KAAAI,EAAA,QAAAN,KAAAM,EAAA,QAAAL,KAAAK,EAAA,QAAAH,KAAAG,EAAA,QAAAO,KAAAP,EAAA,QAAAU,KAAAV,EAAA,QAAAf,KAEK0B,IAAA;EAAArB,eACUiB;EAAMf,oBACDkB;EAAWhB;EAAAC;EAAAC;EAAAT;EAAAF;EAAAY;EAOhC,EAAAG,EAAA,MAAAb,GAAAa,EAAA,MAAAJ,GAAAI,EAAA,MAAAN,GAAAM,EAAA,MAAAL,GAAAK,EAAA,MAAAH,GAAAG,EAAA,MAAAO,GAAAP,EAAA,MAAAU,GAAAV,EAAA,MAAAf,GAAAe,EAAA,MAAAW,KAAAA,IAAAX,EAAA,KATMW"}
1
+ {"version":3,"file":"useSignArbitraryTypedData.js","names":["Hash","useConnection","useSignTypedData","assert","SignTypedDataVariables","UseSignedArbitraryTypedDataInput","onSuccess","signature","onError","error","Error","UseSignedArbitraryTypedDataReturn","signTypedData","typedData","signTypedDataAsync","Promise","isPending","isSuccess","isError","reset","useSignArbitraryTypedData","t0","$","_c","t1","undefined","isConnected","mutate","mutateAsync","data","t2","signTx","t3","typedData_0","signTxAsync","t4"],"sources":["../../../../../src/hooks/permit/hooks/common/useSignArbitraryTypedData.ts"],"sourcesContent":["import { type Hash } from \"viem\";\nimport { useConnection, useSignTypedData } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { SignTypedDataVariables } from \"wagmi/query\";\n\nexport type UseSignedArbitraryTypedDataInput = {\n onSuccess?: (signature: Hash) => void;\n onError?: (error: Error) => void;\n};\n\nexport type UseSignedArbitraryTypedDataReturn = {\n signTypedData: (typedData: SignTypedDataVariables) => void;\n signTypedDataAsync: (typedData: SignTypedDataVariables) => Promise<Hash>;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n signature?: Hash;\n reset: () => void;\n};\n\nexport const useSignArbitraryTypedData = ({\n onSuccess,\n onError,\n}: UseSignedArbitraryTypedDataInput = {}): UseSignedArbitraryTypedDataReturn => {\n const { isConnected } = useConnection();\n\n const {\n mutate: signTypedData,\n mutateAsync: signTypedDataAsync,\n isPending,\n isSuccess,\n isError,\n error,\n data: signature,\n reset,\n } = useSignTypedData();\n\n const signTx = (typedData: SignTypedDataVariables) => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(typedData, \"Typed data is required\");\n\n // Execute signature\n signTypedData(typedData, {\n onSuccess,\n onError,\n });\n };\n\n const signTxAsync = async (\n typedData: SignTypedDataVariables\n ): Promise<Hash> => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(typedData, \"Typed data is required\");\n\n // Execute signature and return the hash\n return signTypedDataAsync(typedData, {\n onSuccess,\n onError,\n });\n };\n\n return {\n signTypedData: signTx,\n signTypedDataAsync: signTxAsync,\n isPending,\n isSuccess,\n isError,\n error,\n signature,\n reset,\n };\n};\n"],"mappings":";;;;;AAqBA,IAAaoB,KAA4BC,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAAC;CAAA,AAAAF,EAAA,OAAAD,IAGDG,IAAAF,EAAA,MAHEE,IAAAH,MAAAI,KAAAA,IAAA,EAGF,GAHEJ,GAGFC,EAAA,KAAAD,GAAAC,EAAA,KAAAE;CAHE,IAAA,EAAAlB,cAAAE,eAAAgB,GAIxC,EAAAE,mBAAwBzB,GAAe,EAEvC,EAAA0B,QAAAf,GAAAgB,aAAAd,GAAAE,cAAAC,cAAAC,YAAAT,UAAAoB,MAAAtB,GAAAY,aASIjB,GAAkB,EAAC4B;CAAA,AAAAR,EAAA,OAAAI,KAAAJ,EAAA,OAAAd,KAAAc,EAAA,OAAAhB,KAAAgB,EAAA,OAAAV,KAERkB,KAAAjB,MAAA;EAMbD,AAJAT,EAAOuB,GAAa,uBAAuB,EAC3CvB,EAAOU,GAAW,yBAAyB,EAG3CD,EAAcC,GAAW;GAAAP;GAAAE;GAGxB,CAAC;IACHc,EAAA,KAAAI,GAAAJ,EAAA,KAAAd,GAAAc,EAAA,KAAAhB,GAAAgB,EAAA,KAAAV,GAAAU,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAVD,IAAAS,IAAeD,GAUbE;CAAA,AAAAV,EAAA,OAAAI,KAAAJ,EAAA,OAAAd,KAAAc,EAAA,OAAAhB,KAAAgB,EAAA,QAAAR,KAEkBkB,IAAA,OAAAC,OAIlB9B,EAAOuB,GAAa,uBAAuB,EAC3CvB,EAAOU,GAAW,yBAAyB,EAGpCC,EAAmBD,GAAW;EAAAP;EAAAE;EAGpC,CAAC,GACHc,EAAA,KAAAI,GAAAJ,EAAA,KAAAd,GAAAc,EAAA,KAAAhB,GAAAgB,EAAA,MAAAR,GAAAQ,EAAA,MAAAU,KAAAA,IAAAV,EAAA;CAZD,IAAAY,IAAoBF,GAYlBG;CAWD,OAXCb,EAAA,QAAAb,KAAAa,EAAA,QAAAJ,KAAAI,EAAA,QAAAN,KAAAM,EAAA,QAAAL,KAAAK,EAAA,QAAAH,KAAAG,EAAA,QAAAS,KAAAT,EAAA,QAAAY,KAAAZ,EAAA,QAAAf,KAEK4B,IAAA;EAAAvB,eACUmB;EAAMjB,oBACDoB;EAAWlB;EAAAC;EAAAC;EAAAT;EAAAF;EAAAY;EAOhC,EAAAG,EAAA,MAAAb,GAAAa,EAAA,MAAAJ,GAAAI,EAAA,MAAAN,GAAAM,EAAA,MAAAL,GAAAK,EAAA,MAAAH,GAAAG,EAAA,MAAAS,GAAAT,EAAA,MAAAY,GAAAZ,EAAA,MAAAf,GAAAe,EAAA,MAAAa,KAAAA,IAAAb,EAAA,KATMa"}
@@ -6,7 +6,7 @@ import { produceSignatureDeadline as a } from "../../utils/deadlines.js";
6
6
  import { useWalletSupportsPermit as o } from "../common/useWalletSupportsPermit.js";
7
7
  import { c as s } from "react-compiler-runtime";
8
8
  import { assert as c } from "ts-essentials";
9
- import { useAccount as l } from "wagmi";
9
+ import { useConnection as l } from "wagmi";
10
10
  //#region src/hooks/permit/hooks/permit1/useSignTokenPermit1.ts
11
11
  function u(e) {
12
12
  let u = s(54), { onSuccess: d, onError: f, token: p, value: m, spender: h, enabled: ee } = e, te = ee === void 0 ? !0 : ee, { permit1: ne } = o(), g = te && ne, _ = p?.address, v = p?.network, y;
@@ -1 +1 @@
1
- {"version":3,"file":"useSignTokenPermit1.js","names":["useAccount","useMarkNonceAsUsed","usePermit1Nonce","Address","Hash","Hex","useSignPermit","DaiPermitInput","Permit1Input","Token","useGetSafePermitInfo","assert","encodePermit1MethodArgs","SupportedChainId","produceSignatureDeadline","useWalletSupportsPermit","UseSignTokenPermit1Params","onSuccess","signature","onError","error","Error","token","Pick","value","spender","enabled","QueryMutState","isPending","isError","isSuccess","SignedPermit1Result","permit1EncodedArgs","signedPermitData","SignPermit1Input","UseSignTokenPermit1Result","signPermit1","params","signPermit1Async","Promise","encodePermitArgs","isPermitSupported","isPermitReadyToSign","permitFetchingState","permitSigningState","reset","useSignTokenPermit1","t0","$","_c","t1","undefined","permit1","isPermit1Supported","queriesEnabled","t2","address","t3","network","t4","tokenAddress","chainId","permitInfoQueryResult","owner","t5","t6","t7","nonceQueryResult","t8","isLoading","t9","t10","t11","t12","safePermitInfo","nonceToUse","t13","signMut","t14","nonce","permitInfo","t15","_spender","_value","deadline","type","input","input_0","holder","expiry","allowed","producePermitInput","t16","params_0","input_1","signPermitAsync","encodedArgs","t17","params_1","input_2","signPermit","paramsNotAvailable","t18","params_2","_spender_0","_value_0","input_3","t19","UseMarkPermit1NonceAsUsedParams","UseMarkPermit1NonceAsUsedResult","markNonceAsUsed","clearNonce","useMarkPermit1NonceAsUsed","nonceUsedMarker","domain","verifyingContract","usedNonce","signedPermitData_0","permitInfo_0","address_0","network_0","owner_0"],"sources":["../../../../../src/hooks/permit/hooks/permit1/useSignTokenPermit1.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useMarkNonceAsUsed, usePermit1Nonce } from \"./usePermit1Nonce\";\nimport type { Address, Hash, Hex } from \"viem\";\nimport { useSignPermit } from \"../common/useSignPermit\";\nimport type { DaiPermitInput, Permit1Input } from \"../../utils/construct\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useGetSafePermitInfo } from \"./useGetSafePermitInfo\";\nimport { assert } from \"ts-essentials\";\nimport { encodePermit1MethodArgs } from \"../../utils/encodeArgs\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { produceSignatureDeadline } from \"../../utils/deadlines\";\nimport { useWalletSupportsPermit } from \"../common/useWalletSupportsPermit\";\n\ntype UseSignTokenPermit1Params = {\n onSuccess?: (signature: Hex) => void;\n onError?: (error: Error) => void;\n token?: Pick<Token, \"address\" | \"network\">;\n value?: bigint;\n spender?: Address;\n enabled?: boolean;\n};\n\ntype QueryMutState = {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type SignedPermit1Result = {\n signature: Hash;\n permit1EncodedArgs: Hash;\n signedPermitData: Permit1Input | DaiPermitInput;\n};\n\nexport type SignPermit1Input = Pick<\n UseSignTokenPermit1Params,\n \"value\" | \"spender\"\n>;\n\nexport type UseSignTokenPermit1Result = {\n signPermit1: (params?: SignPermit1Input) => void;\n signPermit1Async: (params?: SignPermit1Input) => Promise<SignedPermit1Result>;\n encodePermitArgs: (params?: SignPermit1Input) => Hash | undefined;\n isPermitSupported: boolean;\n isPermitReadyToSign: boolean;\n permitFetchingState: QueryMutState;\n permitSigningState: QueryMutState;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n reset: () => void;\n signature?: Hash;\n permit1EncodedArgs?: Hash;\n};\n\nexport function useSignTokenPermit1({\n onSuccess,\n onError,\n token,\n value,\n spender,\n enabled = true,\n}: UseSignTokenPermit1Params): UseSignTokenPermit1Result {\n const { permit1: isPermit1Supported } = useWalletSupportsPermit();\n\n const queriesEnabled = enabled && isPermit1Supported;\n\n const permitInfoQueryResult = useGetSafePermitInfo({\n tokenAddress: token?.address as Address,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const { address: owner } = useAccount();\n\n const nonceQueryResult = usePermit1Nonce({\n token: token?.address as Address,\n owner,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const permitFetchingState = {\n isPending: permitInfoQueryResult.isLoading || nonceQueryResult.isLoading,\n isError: permitInfoQueryResult.isError || nonceQueryResult.isError,\n isSuccess: permitInfoQueryResult.isSuccess || nonceQueryResult.isSuccess,\n error: permitInfoQueryResult.error || nonceQueryResult.error,\n };\n\n const isPermitSupported =\n !!permitInfoQueryResult.safePermitInfo && isPermit1Supported;\n const isPermitReadyToSign =\n isPermitSupported &&\n !!owner &&\n typeof nonceQueryResult.nonceToUse === \"bigint\";\n\n const signMut = useSignPermit({\n onSuccess,\n onError,\n });\n\n const permitSigningState = {\n isPending: signMut.isPending,\n isError: signMut.isError,\n isSuccess: signMut.isSuccess,\n error: signMut.error,\n };\n\n const isPending =\n permitFetchingState.isPending || permitSigningState.isPending;\n const isError = permitFetchingState.isError || permitSigningState.isError;\n const isSuccess =\n permitFetchingState.isSuccess || permitSigningState.isSuccess;\n const error = permitFetchingState.error || permitSigningState.error;\n\n const nonce = nonceQueryResult.nonceToUse;\n const permitInfo = permitInfoQueryResult.safePermitInfo;\n\n const producePermitInput = (params?: SignPermit1Input) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n assert(permitInfo, \"Permit info not found\");\n assert(owner, \"Account not connected\");\n assert(typeof nonce === \"bigint\", \"Nonce not available\");\n assert(_spender, \"Spender not available\");\n assert(_value, \"Value not available or 0\");\n\n const deadline = produceSignatureDeadline();\n\n if (permitInfo.type === \"eip2612\") {\n const input: Permit1Input = {\n type: \"permit1\",\n permitInfo,\n owner,\n spender: _spender,\n value: _value,\n nonce,\n deadline,\n };\n return input;\n }\n const input: DaiPermitInput = {\n type: \"dai\",\n permitInfo,\n holder: owner,\n spender: _spender,\n nonce,\n expiry: deadline,\n allowed: true,\n };\n return input;\n };\n\n const signPermit1Async: UseSignTokenPermit1Result[\"signPermit1Async\"] =\n async (params) => {\n const input = producePermitInput(params);\n const signature = await signMut.signPermitAsync(input);\n\n const encodedArgs = encodePermit1MethodArgs({\n ...input,\n signature,\n });\n\n return {\n signature,\n permit1EncodedArgs: encodedArgs,\n signedPermitData: input,\n };\n };\n\n const signPermit1: UseSignTokenPermit1Result[\"signPermit1\"] = (params) => {\n const input = producePermitInput(params);\n signMut.signPermit(input);\n };\n\n const paramsNotAvailable = !permitInfo || typeof nonce !== \"bigint\" || !owner;\n\n const encodePermitArgs: UseSignTokenPermit1Result[\"encodePermitArgs\"] = (\n params\n ) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n if (!signMut.signature || paramsNotAvailable || !_spender || !_value) {\n return;\n }\n const input = producePermitInput({\n spender: _spender,\n value: _value,\n });\n return encodePermit1MethodArgs({\n ...input,\n signature: signMut.signature,\n });\n };\n\n return {\n signPermit1,\n signPermit1Async,\n encodePermitArgs,\n isPermitSupported,\n isPermitReadyToSign,\n permitFetchingState,\n permitSigningState,\n isPending,\n isSuccess,\n isError,\n error,\n reset: signMut.reset,\n signature: signMut.signature,\n };\n}\n\ntype UseMarkPermit1NonceAsUsedParams = {\n chainId: SupportedChainId;\n};\n\ntype UseMarkPermit1NonceAsUsedResult = {\n markNonceAsUsed: (signedPermitData: Permit1Input | DaiPermitInput) => void;\n clearNonce: (signedPermitData: Permit1Input | DaiPermitInput) => void;\n};\n\nexport function useMarkPermit1NonceAsUsed({\n chainId,\n}: UseMarkPermit1NonceAsUsedParams): UseMarkPermit1NonceAsUsedResult {\n const nonceUsedMarker = useMarkNonceAsUsed();\n\n const markNonceAsUsed: UseMarkPermit1NonceAsUsedResult[\"markNonceAsUsed\"] = (\n signedPermitData\n ) => {\n const permitInfo = signedPermitData.permitInfo;\n\n const address = permitInfo.domain.verifyingContract;\n const network = (permitInfo.domain.chainId as SupportedChainId) ?? chainId;\n\n const owner =\n signedPermitData.type === \"dai\"\n ? signedPermitData.holder\n : signedPermitData.owner;\n\n const nonce = signedPermitData.nonce;\n\n nonceUsedMarker.markNonceAsUsed({\n token: {\n address,\n network,\n },\n owner,\n usedNonce: nonce,\n });\n };\n\n const clearNonce: UseMarkPermit1NonceAsUsedResult[\"clearNonce\"] = (\n signedPermitData\n ) => {\n const permitInfo = signedPermitData.permitInfo;\n\n const address = permitInfo.domain.verifyingContract;\n const network = (permitInfo.domain.chainId as SupportedChainId) ?? chainId;\n\n const owner =\n signedPermitData.type === \"dai\"\n ? signedPermitData.holder\n : signedPermitData.owner;\n\n nonceUsedMarker.clearNonce({\n token: {\n address,\n network,\n },\n owner,\n });\n };\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSignTokenPermit1.js","names":["useConnection","useMarkNonceAsUsed","usePermit1Nonce","Address","Hash","Hex","useSignPermit","DaiPermitInput","Permit1Input","Token","useGetSafePermitInfo","assert","encodePermit1MethodArgs","SupportedChainId","produceSignatureDeadline","useWalletSupportsPermit","UseSignTokenPermit1Params","onSuccess","signature","onError","error","Error","token","Pick","value","spender","enabled","QueryMutState","isPending","isError","isSuccess","SignedPermit1Result","permit1EncodedArgs","signedPermitData","SignPermit1Input","UseSignTokenPermit1Result","signPermit1","params","signPermit1Async","Promise","encodePermitArgs","isPermitSupported","isPermitReadyToSign","permitFetchingState","permitSigningState","reset","useSignTokenPermit1","t0","$","_c","t1","undefined","permit1","isPermit1Supported","queriesEnabled","t2","address","t3","network","t4","tokenAddress","chainId","permitInfoQueryResult","owner","t5","t6","t7","nonceQueryResult","t8","isLoading","t9","t10","t11","t12","safePermitInfo","nonceToUse","t13","signMut","t14","nonce","permitInfo","t15","_spender","_value","deadline","type","input","input_0","holder","expiry","allowed","producePermitInput","t16","params_0","input_1","signPermitAsync","encodedArgs","t17","params_1","input_2","signPermit","paramsNotAvailable","t18","params_2","_spender_0","_value_0","input_3","t19","UseMarkPermit1NonceAsUsedParams","UseMarkPermit1NonceAsUsedResult","markNonceAsUsed","clearNonce","useMarkPermit1NonceAsUsed","nonceUsedMarker","domain","verifyingContract","usedNonce","signedPermitData_0","permitInfo_0","address_0","network_0","owner_0"],"sources":["../../../../../src/hooks/permit/hooks/permit1/useSignTokenPermit1.ts"],"sourcesContent":["import { useConnection } from \"wagmi\";\nimport { useMarkNonceAsUsed, usePermit1Nonce } from \"./usePermit1Nonce\";\nimport type { Address, Hash, Hex } from \"viem\";\nimport { useSignPermit } from \"../common/useSignPermit\";\nimport type { DaiPermitInput, Permit1Input } from \"../../utils/construct\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useGetSafePermitInfo } from \"./useGetSafePermitInfo\";\nimport { assert } from \"ts-essentials\";\nimport { encodePermit1MethodArgs } from \"../../utils/encodeArgs\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { produceSignatureDeadline } from \"../../utils/deadlines\";\nimport { useWalletSupportsPermit } from \"../common/useWalletSupportsPermit\";\n\ntype UseSignTokenPermit1Params = {\n onSuccess?: (signature: Hex) => void;\n onError?: (error: Error) => void;\n token?: Pick<Token, \"address\" | \"network\">;\n value?: bigint;\n spender?: Address;\n enabled?: boolean;\n};\n\ntype QueryMutState = {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type SignedPermit1Result = {\n signature: Hash;\n permit1EncodedArgs: Hash;\n signedPermitData: Permit1Input | DaiPermitInput;\n};\n\nexport type SignPermit1Input = Pick<\n UseSignTokenPermit1Params,\n \"value\" | \"spender\"\n>;\n\nexport type UseSignTokenPermit1Result = {\n signPermit1: (params?: SignPermit1Input) => void;\n signPermit1Async: (params?: SignPermit1Input) => Promise<SignedPermit1Result>;\n encodePermitArgs: (params?: SignPermit1Input) => Hash | undefined;\n isPermitSupported: boolean;\n isPermitReadyToSign: boolean;\n permitFetchingState: QueryMutState;\n permitSigningState: QueryMutState;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n reset: () => void;\n signature?: Hash;\n permit1EncodedArgs?: Hash;\n};\n\nexport function useSignTokenPermit1({\n onSuccess,\n onError,\n token,\n value,\n spender,\n enabled = true,\n}: UseSignTokenPermit1Params): UseSignTokenPermit1Result {\n const { permit1: isPermit1Supported } = useWalletSupportsPermit();\n\n const queriesEnabled = enabled && isPermit1Supported;\n\n const permitInfoQueryResult = useGetSafePermitInfo({\n tokenAddress: token?.address as Address,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const { address: owner } = useConnection();\n\n const nonceQueryResult = usePermit1Nonce({\n token: token?.address as Address,\n owner,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const permitFetchingState = {\n isPending: permitInfoQueryResult.isLoading || nonceQueryResult.isLoading,\n isError: permitInfoQueryResult.isError || nonceQueryResult.isError,\n isSuccess: permitInfoQueryResult.isSuccess || nonceQueryResult.isSuccess,\n error: permitInfoQueryResult.error || nonceQueryResult.error,\n };\n\n const isPermitSupported =\n !!permitInfoQueryResult.safePermitInfo && isPermit1Supported;\n const isPermitReadyToSign =\n isPermitSupported &&\n !!owner &&\n typeof nonceQueryResult.nonceToUse === \"bigint\";\n\n const signMut = useSignPermit({\n onSuccess,\n onError,\n });\n\n const permitSigningState = {\n isPending: signMut.isPending,\n isError: signMut.isError,\n isSuccess: signMut.isSuccess,\n error: signMut.error,\n };\n\n const isPending =\n permitFetchingState.isPending || permitSigningState.isPending;\n const isError = permitFetchingState.isError || permitSigningState.isError;\n const isSuccess =\n permitFetchingState.isSuccess || permitSigningState.isSuccess;\n const error = permitFetchingState.error || permitSigningState.error;\n\n const nonce = nonceQueryResult.nonceToUse;\n const permitInfo = permitInfoQueryResult.safePermitInfo;\n\n const producePermitInput = (params?: SignPermit1Input) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n assert(permitInfo, \"Permit info not found\");\n assert(owner, \"Account not connected\");\n assert(typeof nonce === \"bigint\", \"Nonce not available\");\n assert(_spender, \"Spender not available\");\n assert(_value, \"Value not available or 0\");\n\n const deadline = produceSignatureDeadline();\n\n if (permitInfo.type === \"eip2612\") {\n const input: Permit1Input = {\n type: \"permit1\",\n permitInfo,\n owner,\n spender: _spender,\n value: _value,\n nonce,\n deadline,\n };\n return input;\n }\n const input: DaiPermitInput = {\n type: \"dai\",\n permitInfo,\n holder: owner,\n spender: _spender,\n nonce,\n expiry: deadline,\n allowed: true,\n };\n return input;\n };\n\n const signPermit1Async: UseSignTokenPermit1Result[\"signPermit1Async\"] =\n async (params) => {\n const input = producePermitInput(params);\n const signature = await signMut.signPermitAsync(input);\n\n const encodedArgs = encodePermit1MethodArgs({\n ...input,\n signature,\n });\n\n return {\n signature,\n permit1EncodedArgs: encodedArgs,\n signedPermitData: input,\n };\n };\n\n const signPermit1: UseSignTokenPermit1Result[\"signPermit1\"] = (params) => {\n const input = producePermitInput(params);\n signMut.signPermit(input);\n };\n\n const paramsNotAvailable = !permitInfo || typeof nonce !== \"bigint\" || !owner;\n\n const encodePermitArgs: UseSignTokenPermit1Result[\"encodePermitArgs\"] = (\n params\n ) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n if (!signMut.signature || paramsNotAvailable || !_spender || !_value) {\n return;\n }\n const input = producePermitInput({\n spender: _spender,\n value: _value,\n });\n return encodePermit1MethodArgs({\n ...input,\n signature: signMut.signature,\n });\n };\n\n return {\n signPermit1,\n signPermit1Async,\n encodePermitArgs,\n isPermitSupported,\n isPermitReadyToSign,\n permitFetchingState,\n permitSigningState,\n isPending,\n isSuccess,\n isError,\n error,\n reset: signMut.reset,\n signature: signMut.signature,\n };\n}\n\ntype UseMarkPermit1NonceAsUsedParams = {\n chainId: SupportedChainId;\n};\n\ntype UseMarkPermit1NonceAsUsedResult = {\n markNonceAsUsed: (signedPermitData: Permit1Input | DaiPermitInput) => void;\n clearNonce: (signedPermitData: Permit1Input | DaiPermitInput) => void;\n};\n\nexport function useMarkPermit1NonceAsUsed({\n chainId,\n}: UseMarkPermit1NonceAsUsedParams): UseMarkPermit1NonceAsUsedResult {\n const nonceUsedMarker = useMarkNonceAsUsed();\n\n const markNonceAsUsed: UseMarkPermit1NonceAsUsedResult[\"markNonceAsUsed\"] = (\n signedPermitData\n ) => {\n const permitInfo = signedPermitData.permitInfo;\n\n const address = permitInfo.domain.verifyingContract;\n const network = (permitInfo.domain.chainId as SupportedChainId) ?? chainId;\n\n const owner =\n signedPermitData.type === \"dai\"\n ? signedPermitData.holder\n : signedPermitData.owner;\n\n const nonce = signedPermitData.nonce;\n\n nonceUsedMarker.markNonceAsUsed({\n token: {\n address,\n network,\n },\n owner,\n usedNonce: nonce,\n });\n };\n\n const clearNonce: UseMarkPermit1NonceAsUsedResult[\"clearNonce\"] = (\n signedPermitData\n ) => {\n const permitInfo = signedPermitData.permitInfo;\n\n const address = permitInfo.domain.verifyingContract;\n const network = (permitInfo.domain.chainId as SupportedChainId) ?? chainId;\n\n const owner =\n signedPermitData.type === \"dai\"\n ? signedPermitData.holder\n : signedPermitData.owner;\n\n nonceUsedMarker.clearNonce({\n token: {\n address,\n network,\n },\n owner,\n });\n };\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { useSwapTokenFrom as e } from "../../../../core/inputs/state/selectedTok
2
2
  import { usePermit1Nonce as t } from "./usePermit1Nonce.js";
3
3
  import { c as n } from "react-compiler-runtime";
4
4
  import "viem";
5
- import { useAccount as r } from "wagmi";
5
+ import { useConnection as r } from "wagmi";
6
6
  //#region src/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.ts
7
7
  function i(i) {
8
8
  let a = n(10), o;
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenFromPermit1Nonce.js","names":["useSwapTokenFrom","Address","Token","usePermit1Nonce","UsePermit1NonceResult","useAccount","UseTokenFromPermitInfoParameters","enabled","useTokenFromPermit1Nonce","t0","$","_c","t1","undefined","t2","tokenFrom","address","owner","t3","t4","network","token","chainId","queryResult","t5"],"sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.ts"],"sourcesContent":["import { useSwapTokenFrom } 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 = useSwapTokenFrom();\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"],"mappings":";;;;;;AAWA,SAAOQ,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAAC;CAAA,AAAAF,EAAA,OAAAD,IAEiCG,IAAAF,EAAA,MAFCE,IAAAH,MAAAI,KAAAA,IAAA,EAED,GAFCJ,GAEDC,EAAA,KAAAD,GAAAC,EAAA,KAAAE;CAFC,IAAA,EAAAL,SAAAO,MAAAF,GACvCL,IAAAO,MAAAD,KAAAA,IAAA,KAAAC,GAIAC,IAAkBf,GAAkB,EACpC,EAAAgB,SAAAC,MAA2BZ,GAAY,EAE9Ba,IAAAH,EAASC,SAAmBG;CAAA,AAAAT,EAAA,OAAAH,KAAAG,EAAA,OAAAO,KAAAP,EAAA,OAAAQ,KAAAR,EAAA,OAAAK,EAAAK,WADDD,IAAA;EAAAE,OAC3BH;EAA4BD;EAAAK,SAE1BP,EAASK;EAAQb;EAE3B,EAAAG,EAAA,KAAAH,GAAAG,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,GAAAR,EAAA,KAAAK,EAAAK,SAAAV,EAAA,KAAAS,KAAAA,IAAAT,EAAA;CALD,IAAAa,IAAoBpB,EAAgBgB,EAKlC,EAACK;CAKF,OALEd,EAAA,OAAAa,KAAAb,EAAA,OAAAK,KAEIS,IAAA;EAAA,GACFD;EAAWF,OACPN;EACR,EAAAL,EAAA,KAAAa,GAAAb,EAAA,KAAAK,GAAAL,EAAA,KAAAc,KAAAA,IAAAd,EAAA,IAHMc"}
1
+ {"version":3,"file":"useTokenFromPermit1Nonce.js","names":["useSwapTokenFrom","Address","Token","usePermit1Nonce","UsePermit1NonceResult","useConnection","UseTokenFromPermitInfoParameters","enabled","useTokenFromPermit1Nonce","t0","$","_c","t1","undefined","t2","tokenFrom","address","owner","t3","t4","network","token","chainId","queryResult","t5"],"sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.ts"],"sourcesContent":["import { useSwapTokenFrom } 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 { useConnection } 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 = useSwapTokenFrom();\n const { address: owner } = useConnection();\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"],"mappings":";;;;;;AAWA,SAAOQ,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAAC;CAAA,AAAAF,EAAA,OAAAD,IAEiCG,IAAAF,EAAA,MAFCE,IAAAH,MAAAI,KAAAA,IAAA,EAED,GAFCJ,GAEDC,EAAA,KAAAD,GAAAC,EAAA,KAAAE;CAFC,IAAA,EAAAL,SAAAO,MAAAF,GACvCL,IAAAO,MAAAD,KAAAA,IAAA,KAAAC,GAIAC,IAAkBf,GAAkB,EACpC,EAAAgB,SAAAC,MAA2BZ,GAAe,EAEjCa,IAAAH,EAASC,SAAmBG;CAAA,AAAAT,EAAA,OAAAH,KAAAG,EAAA,OAAAO,KAAAP,EAAA,OAAAQ,KAAAR,EAAA,OAAAK,EAAAK,WADDD,IAAA;EAAAE,OAC3BH;EAA4BD;EAAAK,SAE1BP,EAASK;EAAQb;EAE3B,EAAAG,EAAA,KAAAH,GAAAG,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,GAAAR,EAAA,KAAAK,EAAAK,SAAAV,EAAA,KAAAS,KAAAA,IAAAT,EAAA;CALD,IAAAa,IAAoBpB,EAAgBgB,EAKlC,EAACK;CAKF,OALEd,EAAA,OAAAa,KAAAb,EAAA,OAAAK,KAEIS,IAAA;EAAA,GACFD;EAAWF,OACPN;EACR,EAAAL,EAAA,KAAAa,GAAAb,EAAA,KAAAK,GAAAL,EAAA,KAAAc,KAAAA,IAAAd,EAAA,IAHMc"}
@@ -3,7 +3,7 @@ import { isETH as t } from "../../../../tokens/utils/eth.js";
3
3
  import { useTokenAllowance as n } from "../../../tokens/allowance/useTokenAllowance.js";
4
4
  import { PERMIT2_ADDRESS as r } from "../../utils/construct.js";
5
5
  import { c as i } from "react-compiler-runtime";
6
- import { useAccount as a } from "wagmi";
6
+ import { useConnection as a } from "wagmi";
7
7
  //#region src/hooks/permit/hooks/permit2/usePermit2Allowance.ts
8
8
  function o(n) {
9
9
  let r = i(14), { token: o, amount: c, enabled: l } = n, u = l === void 0 ? !0 : l, d = e("PERMIT2::Allowance"), { address: f } = a(), p;
@@ -1 +1 @@
1
- {"version":3,"file":"usePermit2Allowance.js","names":["useAccount","Token","isETH","useTokenAllowance","useLogger","PERMIT2_ADDRESS","UsePermit2AllowanceParams","token","Pick","amount","enabled","UsePermit2AllowanceResult","canUsePermit2","enoughAllowanceForPermit2","isLoading","isError","isSuccess","error","Error","refetch","permit2Allowance","usePermit2Allowance","t0","$","_c","t1","undefined","logger","address","user","t2","tokenNotETH","t3","allowanceForPermit2Query","usePermit2AllowanceQuery","data","once","log","allowance","t4","t5","network","tokenAddress","spender","chainId"],"sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\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 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 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 = usePermit2AllowanceQuery({\n token,\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 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\nexport function usePermit2AllowanceQuery({\n token,\n enabled = true,\n}: Pick<UsePermit2AllowanceParams, \"token\" | \"enabled\">) {\n return useTokenAllowance({\n tokenAddress: token?.address,\n spender: PERMIT2_ADDRESS,\n chainId: token?.network,\n enabled,\n });\n}\n"],"mappings":";;;;;;;AAwBA,SAAOqB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAA6B,EAAAjB,UAAAE,WAAAC,SAAAe,MAAAH,GAGlCZ,IAAAe,MAAAC,KAAAA,IAAA,KAAAD,GAEAE,IAAevB,EAAU,qBAAqB,EAC9C,EAAAwB,SAAAC,MAA0B7B,GAAY,EAAC8B;CAAA,AAAAP,EAAA,OAAAhB,IAEGuB,IAAAP,EAAA,MAAtBO,IAAAvB,KAAA,CAAUL,EAAMK,EAAM,EAAAgB,EAAA,KAAAhB,GAAAgB,EAAA,KAAAO;CAA1C,IAAAC,IAAoBD,GAAuBE;CAAA,AAAAT,EAAA,OAAAb,KAAAa,EAAA,OAAAhB,KAEeyB,IAAA;EAAAzB;EAAAG;EAGzD,EAAAa,EAAA,KAAAb,GAAAa,EAAA,KAAAhB,GAAAgB,EAAA,KAAAS,KAAAA,IAAAT,EAAA;CAHD,IAAAU,IAAiCC,EAAyBF,EAGxD,EAEFnB,IAAkC,CAAC,EACjCJ,KACAwB,EAAwBE,QACxBF,EAAwBE,QAAS1B,IAGnCG,IAAsB,CAAC,EACrBmB,KAAAF,KAAApB,KAAAI;CAMFc,EAAMS,KAAKC,IAAK;EAAAzB;EAAAC;EAAAyB,WAGHL,EAAwBE;EAAKlB,OACjCgB,EAAwBhB;EAChC,CAAC;CASkB,IAAAsB,IAAAN,EAAwBE,QAAxB,MAAqCK;CAExD,OAFwDjB,EAAA,OAAAU,EAAAhB,SAAAM,EAAA,OAAAU,EAAAlB,WAAAQ,EAAA,OAAAU,EAAAnB,aAAAS,EAAA,OAAAU,EAAAjB,aAAAO,EAAA,OAAAU,EAAAd,WAAAI,EAAA,QAAAX,KAAAW,EAAA,QAAAV,KAAAU,EAAA,QAAAgB,KAPlDC,IAAA;EAAA5B;EAAAC;EAAAC,WAGMmB,EAAwBnB;EAAUC,SACpCkB,EAAwBlB;EAAQC,WAC9BiB,EAAwBjB;EAAUC,OACtCgB,EAAwBhB;EAAMG,kBACnBmB;EAAqCpB,SAC9Cc,EAAwBd;EAClC,EAAAI,EAAA,KAAAU,EAAAhB,OAAAM,EAAA,KAAAU,EAAAlB,SAAAQ,EAAA,KAAAU,EAAAnB,WAAAS,EAAA,KAAAU,EAAAjB,WAAAO,EAAA,KAAAU,EAAAd,SAAAI,EAAA,MAAAX,GAAAW,EAAA,MAAAV,GAAAU,EAAA,MAAAgB,GAAAhB,EAAA,MAAAiB,KAAAA,IAAAjB,EAAA,KATMiB;;AAYT,SAAON,EAAAZ,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAkC,EAAAjB,UAAAG,SAAAe,MAAAH,GAEvCZ,IAAAe,MAAAC,KAAAA,IAAA,KAAAD,GAGgBK,IAAAvB,GAAKqB,SAEVI,IAAAzB,GAAKkC,SAASF;CAExB,OAFwBhB,EAAA,OAAAb,KAAAa,EAAA,OAAAO,KAAAP,EAAA,OAAAS,KAHAO,IAAA;EAAAG,cACTZ;EAAca,SACnBtC;EAAeuC,SACfZ;EAActB;EAExB,EAAAa,EAAA,KAAAb,GAAAa,EAAA,KAAAO,GAAAP,EAAA,KAAAS,GAAAT,EAAA,KAAAgB,KAAAA,IAAAhB,EAAA,IALMpB,EAAkBoC,EAKvB"}
1
+ {"version":3,"file":"usePermit2Allowance.js","names":["useConnection","Token","isETH","useTokenAllowance","useLogger","PERMIT2_ADDRESS","UsePermit2AllowanceParams","token","Pick","amount","enabled","UsePermit2AllowanceResult","canUsePermit2","enoughAllowanceForPermit2","isLoading","isError","isSuccess","error","Error","refetch","permit2Allowance","usePermit2Allowance","t0","$","_c","t1","undefined","logger","address","user","t2","tokenNotETH","t3","allowanceForPermit2Query","usePermit2AllowanceQuery","data","once","log","allowance","t4","t5","network","tokenAddress","spender","chainId"],"sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"sourcesContent":["import { useConnection } from \"wagmi\";\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 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 amount,\n enabled = true,\n}: UsePermit2AllowanceParams): UsePermit2AllowanceResult {\n const logger = useLogger(\"PERMIT2::Allowance\");\n const { address: user } = useConnection();\n\n const tokenNotETH = token && !isETH(token);\n\n const allowanceForPermit2Query = usePermit2AllowanceQuery({\n token,\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 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\nexport function usePermit2AllowanceQuery({\n token,\n enabled = true,\n}: Pick<UsePermit2AllowanceParams, \"token\" | \"enabled\">) {\n return useTokenAllowance({\n tokenAddress: token?.address,\n spender: PERMIT2_ADDRESS,\n chainId: token?.network,\n enabled,\n });\n}\n"],"mappings":";;;;;;;AAwBA,SAAOqB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAA6B,EAAAjB,UAAAE,WAAAC,SAAAe,MAAAH,GAGlCZ,IAAAe,MAAAC,KAAAA,IAAA,KAAAD,GAEAE,IAAevB,EAAU,qBAAqB,EAC9C,EAAAwB,SAAAC,MAA0B7B,GAAe,EAAC8B;CAAA,AAAAP,EAAA,OAAAhB,IAEAuB,IAAAP,EAAA,MAAtBO,IAAAvB,KAAA,CAAUL,EAAMK,EAAM,EAAAgB,EAAA,KAAAhB,GAAAgB,EAAA,KAAAO;CAA1C,IAAAC,IAAoBD,GAAuBE;CAAA,AAAAT,EAAA,OAAAb,KAAAa,EAAA,OAAAhB,KAEeyB,IAAA;EAAAzB;EAAAG;EAGzD,EAAAa,EAAA,KAAAb,GAAAa,EAAA,KAAAhB,GAAAgB,EAAA,KAAAS,KAAAA,IAAAT,EAAA;CAHD,IAAAU,IAAiCC,EAAyBF,EAGxD,EAEFnB,IAAkC,CAAC,EACjCJ,KACAwB,EAAwBE,QACxBF,EAAwBE,QAAS1B,IAGnCG,IAAsB,CAAC,EACrBmB,KAAAF,KAAApB,KAAAI;CAMFc,EAAMS,KAAKC,IAAK;EAAAzB;EAAAC;EAAAyB,WAGHL,EAAwBE;EAAKlB,OACjCgB,EAAwBhB;EAChC,CAAC;CASkB,IAAAsB,IAAAN,EAAwBE,QAAxB,MAAqCK;CAExD,OAFwDjB,EAAA,OAAAU,EAAAhB,SAAAM,EAAA,OAAAU,EAAAlB,WAAAQ,EAAA,OAAAU,EAAAnB,aAAAS,EAAA,OAAAU,EAAAjB,aAAAO,EAAA,OAAAU,EAAAd,WAAAI,EAAA,QAAAX,KAAAW,EAAA,QAAAV,KAAAU,EAAA,QAAAgB,KAPlDC,IAAA;EAAA5B;EAAAC;EAAAC,WAGMmB,EAAwBnB;EAAUC,SACpCkB,EAAwBlB;EAAQC,WAC9BiB,EAAwBjB;EAAUC,OACtCgB,EAAwBhB;EAAMG,kBACnBmB;EAAqCpB,SAC9Cc,EAAwBd;EAClC,EAAAI,EAAA,KAAAU,EAAAhB,OAAAM,EAAA,KAAAU,EAAAlB,SAAAQ,EAAA,KAAAU,EAAAnB,WAAAS,EAAA,KAAAU,EAAAjB,WAAAO,EAAA,KAAAU,EAAAd,SAAAI,EAAA,MAAAX,GAAAW,EAAA,MAAAV,GAAAU,EAAA,MAAAgB,GAAAhB,EAAA,MAAAiB,KAAAA,IAAAjB,EAAA,KATMiB;;AAYT,SAAON,EAAAZ,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAkC,EAAAjB,UAAAG,SAAAe,MAAAH,GAEvCZ,IAAAe,MAAAC,KAAAA,IAAA,KAAAD,GAGgBK,IAAAvB,GAAKqB,SAEVI,IAAAzB,GAAKkC,SAASF;CAExB,OAFwBhB,EAAA,OAAAb,KAAAa,EAAA,OAAAO,KAAAP,EAAA,OAAAS,KAHAO,IAAA;EAAAG,cACTZ;EAAca,SACnBtC;EAAeuC,SACfZ;EAActB;EAExB,EAAAa,EAAA,KAAAb,GAAAa,EAAA,KAAAO,GAAAP,EAAA,KAAAS,GAAAT,EAAA,KAAAgB,KAAAA,IAAAhB,EAAA,IALMpB,EAAkBoC,EAKvB"}
@@ -43,13 +43,13 @@ export type UsePermit2TransferFromNonceResult = {
43
43
  * - If it's 0, it's free and can be used
44
44
  */
45
45
  export declare function usePermit2TransferFromNonce({ owner, chainId, initWord, enabled, }: UsePermit2TransferFromNonceOptions): {
46
- nonceState: NonceState | null | undefined;
46
+ nonceState: NoInfer<NonceState | null> | undefined;
47
47
  nonceToUse: bigint | null | undefined;
48
48
  isLoading: boolean;
49
49
  isError: boolean;
50
50
  isSuccess: boolean;
51
51
  error: Error | null;
52
- refetch: (options?: RefetchOptions) => Promise<QueryObserverResult<NonceState | null, Error>>;
52
+ refetch: (options?: RefetchOptions) => Promise<QueryObserverResult<NoInfer<NonceState | null>, Error>>;
53
53
  };
54
54
  type SetNonceInput = {
55
55
  owner: Address;
@@ -7,7 +7,7 @@ import { useWalletSupportsPermit as ee } from "../common/useWalletSupportsPermit
7
7
  import { c as o } from "react-compiler-runtime";
8
8
  import { assert as s } from "ts-essentials";
9
9
  import { isAddress as c, parseSignature as l, serializeCompactSignature as te, signatureToCompactSignature as ne } from "viem";
10
- import { useAccount as u } from "wagmi";
10
+ import { useConnection as u } from "wagmi";
11
11
  //#region src/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.ts
12
12
  function d(e) {
13
13
  let d = o(55), { onSuccess: f, onError: p, token: m, value: h, spender: g, enabled: _ } = e, v = _ === void 0 ? !0 : _, { permit2: y } = ee(), b = v && y, x;
@@ -1 +1 @@
1
- {"version":3,"file":"useSignTokenPermit2TransferFrom.js","names":["useAccount","isAddress","parseSignature","serializeCompactSignature","signatureToCompactSignature","Address","Hash","Hex","useSignPermit","Permit2Input","Token","assert","encodePermit2TransferFromMethodArgs","usePermit2Allowance","useMarkNonceAsUsed","usePermit2TransferFromNonce","produceSignatureDeadline","useWalletSupportsPermit","UseSignTokenPermit2TransferFromParams","onSuccess","signature","onError","error","Error","token","Pick","value","spender","enabled","QueryMutState","isPending","isError","isSuccess","SignedPermit2Result","permit2TransferFromEncodedArgs","signedPermitData","variant","owner","SignPermit2TransferFromInput","deadline","UseSignTokenPermit2TransferFromResult","signPermit2","params","signPermit2Async","Promise","encodePermitArgs","isPermitSupported","isPermitReadyToSign","permitFetchingState","permitSigningState","reset","useSignTokenPermit2TransferFrom","t0","$","_c","t1","undefined","permit2","isPermit2Supported","queriesEnabled","t2","amount","permit2AllowanceQueryResult","address","t3","network","t4","chainId","nonceQueryResult","t5","isLoading","t6","t7","t8","t9","canUsePermit2","enoughAllowanceForPermit2","nonceToUse","t10","signMut","t11","nonce","t12","_spender","_value","permit2Input","type","expiration","const","producePermitInput","t13","params_0","_input","input","signPermitAsync","compactSignature","encodedArgs","t14","params_1","input_0","signPermit","paramsNotAvailable","t15","params_2","_spender_0","_value_0","input_1","t16","UseMarkPermit2NonceAsUsedResult","markNonceAsUsed","useMarkPermit2NonceAsUsed","nonceUsedMarker","usedNonce"],"sources":["../../../../../src/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport {\n isAddress,\n parseSignature,\n serializeCompactSignature,\n signatureToCompactSignature,\n type Address,\n type Hash,\n type Hex,\n} from \"viem\";\nimport { useSignPermit } from \"../common/useSignPermit\";\nimport type { Permit2Input } from \"../../utils/construct\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { assert } from \"ts-essentials\";\nimport { encodePermit2TransferFromMethodArgs } from \"../../utils/encodeArgs\";\nimport { usePermit2Allowance } from \"./usePermit2Allowance\";\nimport {\n useMarkNonceAsUsed,\n usePermit2TransferFromNonce,\n} from \"./usePermit2TransferFromNonce\";\nimport { produceSignatureDeadline } from \"../../utils/deadlines\";\nimport { useWalletSupportsPermit } from \"../common/useWalletSupportsPermit\";\n\ntype UseSignTokenPermit2TransferFromParams = {\n onSuccess?: (signature: Hex) => void;\n onError?: (error: Error) => void;\n token?: Pick<Token, \"address\" | \"network\">;\n value?: bigint;\n spender?: Address;\n enabled?: boolean;\n};\n\ntype QueryMutState = {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type SignedPermit2Result = {\n signature: Hash;\n permit2TransferFromEncodedArgs: Hash;\n signedPermitData: Permit2Input & {\n variant: \"transferFrom\";\n owner: Address;\n };\n};\n\nexport type SignPermit2TransferFromInput = {\n // sometimes we need specific deadline that is available only outside the hook\n deadline?: bigint;\n // e.g. on delta the order.deadline must exactly match permit2.deadline\n} & Pick<UseSignTokenPermit2TransferFromParams, \"value\" | \"spender\">;\n\nexport type UseSignTokenPermit2TransferFromResult = {\n signPermit2: (params?: SignPermit2TransferFromInput) => void;\n signPermit2Async: (\n params?: SignPermit2TransferFromInput\n ) => Promise<SignedPermit2Result>;\n encodePermitArgs: (params?: SignPermit2TransferFromInput) => Hash | undefined;\n isPermitSupported: boolean;\n isPermitReadyToSign: boolean;\n permitFetchingState: QueryMutState;\n permitSigningState: QueryMutState;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n reset: () => void;\n signature?: Hash;\n};\n\nexport function useSignTokenPermit2TransferFrom({\n onSuccess,\n onError,\n token,\n value,\n spender,\n enabled = true,\n}: UseSignTokenPermit2TransferFromParams): UseSignTokenPermit2TransferFromResult {\n const { permit2: isPermit2Supported } = useWalletSupportsPermit();\n\n const queriesEnabled = enabled && isPermit2Supported;\n\n const permit2AllowanceQueryResult = usePermit2Allowance({\n token,\n amount: value,\n enabled: queriesEnabled,\n });\n\n const { address: owner } = useAccount();\n\n const nonceQueryResult = usePermit2TransferFromNonce({\n owner,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const permitFetchingState = {\n isPending:\n permit2AllowanceQueryResult.isLoading || nonceQueryResult.isLoading,\n isError: permit2AllowanceQueryResult.isError || nonceQueryResult.isError,\n isSuccess:\n permit2AllowanceQueryResult.isSuccess || nonceQueryResult.isSuccess,\n error: permit2AllowanceQueryResult.error || nonceQueryResult.error,\n };\n\n const isPermitSupported =\n permit2AllowanceQueryResult.canUsePermit2 &&\n permit2AllowanceQueryResult.enoughAllowanceForPermit2 &&\n isPermit2Supported;\n const isPermitReadyToSign =\n isPermitSupported &&\n !!owner &&\n typeof nonceQueryResult.nonceToUse === \"bigint\";\n\n const signMut = useSignPermit({\n onSuccess,\n onError,\n });\n\n const permitSigningState = {\n isPending: signMut.isPending,\n isError: signMut.isError,\n isSuccess: signMut.isSuccess,\n error: signMut.error,\n };\n\n const isPending =\n permitFetchingState.isPending || permitSigningState.isPending;\n const isError = permitFetchingState.isError || permitSigningState.isError;\n const isSuccess =\n permitFetchingState.isSuccess || permitSigningState.isSuccess;\n const error = permitFetchingState.error || permitSigningState.error;\n\n const nonce = nonceQueryResult.nonceToUse;\n\n const producePermitInput = (params?: SignPermit2TransferFromInput) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n const deadline = params?.deadline || produceSignatureDeadline();\n\n assert(owner, \"Account not connected\");\n assert(typeof nonce === \"bigint\", \"Nonce not available\");\n assert(_spender, \"Spender not available\");\n assert(_value, \"Value not available or 0\");\n assert(token?.address && isAddress(token.address), \"Token not available\");\n\n const permit2Input = {\n type: \"permit2\",\n variant: \"transferFrom\",\n token: token.address,\n spender: _spender,\n nonce,\n amount: _value,\n expiration: deadline,\n chainId: token.network,\n } as const satisfies Permit2Input;\n return permit2Input;\n };\n\n const signPermit2Async: UseSignTokenPermit2TransferFromResult[\"signPermit2Async\"] =\n async (params) => {\n assert(owner, \"Account not connected\");\n const _input = producePermitInput(params);\n const input = {\n ..._input,\n owner,\n };\n const signature = await signMut.signPermitAsync(input);\n\n // contract requires Compact Signature\n const compactSignature = serializeCompactSignature(\n // this is unusable with Multisig Smart Wallets, because signature is non-standard length and it can'be parsed\n signatureToCompactSignature(parseSignature(signature))\n );\n\n const encodedArgs = encodePermit2TransferFromMethodArgs({\n ...input,\n signature: compactSignature,\n });\n\n return {\n signature: compactSignature,\n permit2TransferFromEncodedArgs: encodedArgs,\n signedPermitData: input,\n };\n };\n\n const signPermit2: UseSignTokenPermit2TransferFromResult[\"signPermit2\"] = (\n params\n ) => {\n const input = producePermitInput(params);\n signMut.signPermit(input);\n };\n\n const paramsNotAvailable = typeof nonce !== \"bigint\" || !owner;\n\n const encodePermitArgs: UseSignTokenPermit2TransferFromResult[\"encodePermitArgs\"] =\n (params) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n if (!signMut.signature || paramsNotAvailable || !_spender || !_value) {\n return;\n }\n const input = producePermitInput({\n spender: _spender,\n value: _value,\n });\n\n return encodePermit2TransferFromMethodArgs({\n ...input,\n signature: signMut.signature,\n owner,\n });\n };\n\n return {\n signPermit2,\n signPermit2Async,\n encodePermitArgs,\n isPermitSupported,\n isPermitReadyToSign,\n permitFetchingState,\n permitSigningState,\n isPending,\n isSuccess,\n isError,\n error,\n reset: signMut.reset,\n signature: signMut.signature,\n };\n}\n\ntype UseMarkPermit2NonceAsUsedResult = {\n markNonceAsUsed: (\n signedPermitData: Permit2Input & { owner: Address }\n ) => void;\n};\n\nexport function useMarkPermit2NonceAsUsed(): UseMarkPermit2NonceAsUsedResult {\n const nonceUsedMarker = useMarkNonceAsUsed();\n\n const markNonceAsUsed: UseMarkPermit2NonceAsUsedResult[\"markNonceAsUsed\"] = ({\n owner,\n chainId,\n nonce,\n }) => {\n nonceUsedMarker.markNonceAsUsed({\n owner,\n chainId,\n usedNonce: nonce,\n });\n };\n\n return {\n markNonceAsUsed,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSignTokenPermit2TransferFrom.js","names":["useConnection","isAddress","parseSignature","serializeCompactSignature","signatureToCompactSignature","Address","Hash","Hex","useSignPermit","Permit2Input","Token","assert","encodePermit2TransferFromMethodArgs","usePermit2Allowance","useMarkNonceAsUsed","usePermit2TransferFromNonce","produceSignatureDeadline","useWalletSupportsPermit","UseSignTokenPermit2TransferFromParams","onSuccess","signature","onError","error","Error","token","Pick","value","spender","enabled","QueryMutState","isPending","isError","isSuccess","SignedPermit2Result","permit2TransferFromEncodedArgs","signedPermitData","variant","owner","SignPermit2TransferFromInput","deadline","UseSignTokenPermit2TransferFromResult","signPermit2","params","signPermit2Async","Promise","encodePermitArgs","isPermitSupported","isPermitReadyToSign","permitFetchingState","permitSigningState","reset","useSignTokenPermit2TransferFrom","t0","$","_c","t1","undefined","permit2","isPermit2Supported","queriesEnabled","t2","amount","permit2AllowanceQueryResult","address","t3","network","t4","chainId","nonceQueryResult","t5","isLoading","t6","t7","t8","t9","canUsePermit2","enoughAllowanceForPermit2","nonceToUse","t10","signMut","t11","nonce","t12","_spender","_value","permit2Input","type","expiration","const","producePermitInput","t13","params_0","_input","input","signPermitAsync","compactSignature","encodedArgs","t14","params_1","input_0","signPermit","paramsNotAvailable","t15","params_2","_spender_0","_value_0","input_1","t16","UseMarkPermit2NonceAsUsedResult","markNonceAsUsed","useMarkPermit2NonceAsUsed","nonceUsedMarker","usedNonce"],"sources":["../../../../../src/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.ts"],"sourcesContent":["import { useConnection } from \"wagmi\";\nimport {\n isAddress,\n parseSignature,\n serializeCompactSignature,\n signatureToCompactSignature,\n type Address,\n type Hash,\n type Hex,\n} from \"viem\";\nimport { useSignPermit } from \"../common/useSignPermit\";\nimport type { Permit2Input } from \"../../utils/construct\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { assert } from \"ts-essentials\";\nimport { encodePermit2TransferFromMethodArgs } from \"../../utils/encodeArgs\";\nimport { usePermit2Allowance } from \"./usePermit2Allowance\";\nimport {\n useMarkNonceAsUsed,\n usePermit2TransferFromNonce,\n} from \"./usePermit2TransferFromNonce\";\nimport { produceSignatureDeadline } from \"../../utils/deadlines\";\nimport { useWalletSupportsPermit } from \"../common/useWalletSupportsPermit\";\n\ntype UseSignTokenPermit2TransferFromParams = {\n onSuccess?: (signature: Hex) => void;\n onError?: (error: Error) => void;\n token?: Pick<Token, \"address\" | \"network\">;\n value?: bigint;\n spender?: Address;\n enabled?: boolean;\n};\n\ntype QueryMutState = {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type SignedPermit2Result = {\n signature: Hash;\n permit2TransferFromEncodedArgs: Hash;\n signedPermitData: Permit2Input & {\n variant: \"transferFrom\";\n owner: Address;\n };\n};\n\nexport type SignPermit2TransferFromInput = {\n // sometimes we need specific deadline that is available only outside the hook\n deadline?: bigint;\n // e.g. on delta the order.deadline must exactly match permit2.deadline\n} & Pick<UseSignTokenPermit2TransferFromParams, \"value\" | \"spender\">;\n\nexport type UseSignTokenPermit2TransferFromResult = {\n signPermit2: (params?: SignPermit2TransferFromInput) => void;\n signPermit2Async: (\n params?: SignPermit2TransferFromInput\n ) => Promise<SignedPermit2Result>;\n encodePermitArgs: (params?: SignPermit2TransferFromInput) => Hash | undefined;\n isPermitSupported: boolean;\n isPermitReadyToSign: boolean;\n permitFetchingState: QueryMutState;\n permitSigningState: QueryMutState;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n reset: () => void;\n signature?: Hash;\n};\n\nexport function useSignTokenPermit2TransferFrom({\n onSuccess,\n onError,\n token,\n value,\n spender,\n enabled = true,\n}: UseSignTokenPermit2TransferFromParams): UseSignTokenPermit2TransferFromResult {\n const { permit2: isPermit2Supported } = useWalletSupportsPermit();\n\n const queriesEnabled = enabled && isPermit2Supported;\n\n const permit2AllowanceQueryResult = usePermit2Allowance({\n token,\n amount: value,\n enabled: queriesEnabled,\n });\n\n const { address: owner } = useConnection();\n\n const nonceQueryResult = usePermit2TransferFromNonce({\n owner,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const permitFetchingState = {\n isPending:\n permit2AllowanceQueryResult.isLoading || nonceQueryResult.isLoading,\n isError: permit2AllowanceQueryResult.isError || nonceQueryResult.isError,\n isSuccess:\n permit2AllowanceQueryResult.isSuccess || nonceQueryResult.isSuccess,\n error: permit2AllowanceQueryResult.error || nonceQueryResult.error,\n };\n\n const isPermitSupported =\n permit2AllowanceQueryResult.canUsePermit2 &&\n permit2AllowanceQueryResult.enoughAllowanceForPermit2 &&\n isPermit2Supported;\n const isPermitReadyToSign =\n isPermitSupported &&\n !!owner &&\n typeof nonceQueryResult.nonceToUse === \"bigint\";\n\n const signMut = useSignPermit({\n onSuccess,\n onError,\n });\n\n const permitSigningState = {\n isPending: signMut.isPending,\n isError: signMut.isError,\n isSuccess: signMut.isSuccess,\n error: signMut.error,\n };\n\n const isPending =\n permitFetchingState.isPending || permitSigningState.isPending;\n const isError = permitFetchingState.isError || permitSigningState.isError;\n const isSuccess =\n permitFetchingState.isSuccess || permitSigningState.isSuccess;\n const error = permitFetchingState.error || permitSigningState.error;\n\n const nonce = nonceQueryResult.nonceToUse;\n\n const producePermitInput = (params?: SignPermit2TransferFromInput) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n const deadline = params?.deadline || produceSignatureDeadline();\n\n assert(owner, \"Account not connected\");\n assert(typeof nonce === \"bigint\", \"Nonce not available\");\n assert(_spender, \"Spender not available\");\n assert(_value, \"Value not available or 0\");\n assert(token?.address && isAddress(token.address), \"Token not available\");\n\n const permit2Input = {\n type: \"permit2\",\n variant: \"transferFrom\",\n token: token.address,\n spender: _spender,\n nonce,\n amount: _value,\n expiration: deadline,\n chainId: token.network,\n } as const satisfies Permit2Input;\n return permit2Input;\n };\n\n const signPermit2Async: UseSignTokenPermit2TransferFromResult[\"signPermit2Async\"] =\n async (params) => {\n assert(owner, \"Account not connected\");\n const _input = producePermitInput(params);\n const input = {\n ..._input,\n owner,\n };\n const signature = await signMut.signPermitAsync(input);\n\n // contract requires Compact Signature\n const compactSignature = serializeCompactSignature(\n // this is unusable with Multisig Smart Wallets, because signature is non-standard length and it can'be parsed\n signatureToCompactSignature(parseSignature(signature))\n );\n\n const encodedArgs = encodePermit2TransferFromMethodArgs({\n ...input,\n signature: compactSignature,\n });\n\n return {\n signature: compactSignature,\n permit2TransferFromEncodedArgs: encodedArgs,\n signedPermitData: input,\n };\n };\n\n const signPermit2: UseSignTokenPermit2TransferFromResult[\"signPermit2\"] = (\n params\n ) => {\n const input = producePermitInput(params);\n signMut.signPermit(input);\n };\n\n const paramsNotAvailable = typeof nonce !== \"bigint\" || !owner;\n\n const encodePermitArgs: UseSignTokenPermit2TransferFromResult[\"encodePermitArgs\"] =\n (params) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n if (!signMut.signature || paramsNotAvailable || !_spender || !_value) {\n return;\n }\n const input = producePermitInput({\n spender: _spender,\n value: _value,\n });\n\n return encodePermit2TransferFromMethodArgs({\n ...input,\n signature: signMut.signature,\n owner,\n });\n };\n\n return {\n signPermit2,\n signPermit2Async,\n encodePermitArgs,\n isPermitSupported,\n isPermitReadyToSign,\n permitFetchingState,\n permitSigningState,\n isPending,\n isSuccess,\n isError,\n error,\n reset: signMut.reset,\n signature: signMut.signature,\n };\n}\n\ntype UseMarkPermit2NonceAsUsedResult = {\n markNonceAsUsed: (\n signedPermitData: Permit2Input & { owner: Address }\n ) => void;\n};\n\nexport function useMarkPermit2NonceAsUsed(): UseMarkPermit2NonceAsUsedResult {\n const nonceUsedMarker = useMarkNonceAsUsed();\n\n const markNonceAsUsed: UseMarkPermit2NonceAsUsedResult[\"markNonceAsUsed\"] = ({\n owner,\n chainId,\n nonce,\n }) => {\n nonceUsedMarker.markNonceAsUsed({\n owner,\n chainId,\n usedNonce: nonce,\n });\n };\n\n return {\n markNonceAsUsed,\n };\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { useSwapTokenFrom as e } from "../../../../core/inputs/state/selectedTokenAtom.js";
2
2
  import { usePermit2TransferFromNonce as t } from "./usePermit2TransferFromNonce.js";
3
3
  import { c as n } from "react-compiler-runtime";
4
- import { useAccount as r } from "wagmi";
4
+ import { useConnection as r } from "wagmi";
5
5
  //#region src/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.ts
6
6
  function i(i) {
7
7
  let a = n(9), o;
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenFromPermit2TransferFromNonce.js","names":["useSwapTokenFrom","Token","useAccount","usePermit2TransferFromNonce","UsePermit2TransferFromNonceResult","UseTokenFromPermitInfoParameters","enabled","useTokenFromPermit2TransferFromNonce","t0","$","_c","t1","undefined","t2","tokenFrom","address","owner","t3","network","chainId","queryResult","t4","token"],"sources":["../../../../../src/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.ts"],"sourcesContent":["import { useSwapTokenFrom } 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 = useSwapTokenFrom();\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"],"mappings":";;;;;AAYA,SAAOO,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAAC;CAAA,AAAAF,EAAA,OAAAD,IAEiCG,IAAAF,EAAA,MAFaE,IAAAH,MAAAI,KAAAA,IAAA,EAEb,GAFaJ,GAEbC,EAAA,KAAAD,GAAAC,EAAA,KAAAE;CAFa,IAAA,EAAAL,SAAAO,MAAAF,GACnDL,IAAAO,MAAAD,KAAAA,IAAA,KAAAC,GAIAC,IAAkBd,GAAkB,EACpC,EAAAe,SAAAC,MAA2Bd,GAAY,EAACe;CAAA,AAAAR,EAAA,OAAAH,KAAAG,EAAA,OAAAO,KAAAP,EAAA,OAAAK,EAAAI,WACQD,IAAA;EAAAD;EAAAG,SAIrCL,EAASI;EAAQZ;EAE3B,EAAAG,EAAA,KAAAH,GAAAG,EAAA,KAAAO,GAAAP,EAAA,KAAAK,EAAAI,SAAAT,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAND,IAAAW,IAAoBjB,EAA4Bc,EAM9C,EAACI;CAKF,OALEZ,EAAA,OAAAW,KAAAX,EAAA,OAAAK,KAEIO,IAAA;EAAA,GACFD;EAAWE,OACPR;EACR,EAAAL,EAAA,KAAAW,GAAAX,EAAA,KAAAK,GAAAL,EAAA,KAAAY,KAAAA,IAAAZ,EAAA,IAHMY"}
1
+ {"version":3,"file":"useTokenFromPermit2TransferFromNonce.js","names":["useSwapTokenFrom","Token","useConnection","usePermit2TransferFromNonce","UsePermit2TransferFromNonceResult","UseTokenFromPermitInfoParameters","enabled","useTokenFromPermit2TransferFromNonce","t0","$","_c","t1","undefined","t2","tokenFrom","address","owner","t3","network","chainId","queryResult","t4","token"],"sources":["../../../../../src/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.ts"],"sourcesContent":["import { useSwapTokenFrom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useConnection } 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 = useSwapTokenFrom();\n const { address: owner } = useConnection();\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"],"mappings":";;;;;AAYA,SAAOO,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAAC;CAAA,AAAAF,EAAA,OAAAD,IAEiCG,IAAAF,EAAA,MAFaE,IAAAH,MAAAI,KAAAA,IAAA,EAEb,GAFaJ,GAEbC,EAAA,KAAAD,GAAAC,EAAA,KAAAE;CAFa,IAAA,EAAAL,SAAAO,MAAAF,GACnDL,IAAAO,MAAAD,KAAAA,IAAA,KAAAC,GAIAC,IAAkBd,GAAkB,EACpC,EAAAe,SAAAC,MAA2Bd,GAAe,EAACe;CAAA,AAAAR,EAAA,OAAAH,KAAAG,EAAA,OAAAO,KAAAP,EAAA,OAAAK,EAAAI,WACKD,IAAA;EAAAD;EAAAG,SAIrCL,EAASI;EAAQZ;EAE3B,EAAAG,EAAA,KAAAH,GAAAG,EAAA,KAAAO,GAAAP,EAAA,KAAAK,EAAAI,SAAAT,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAND,IAAAW,IAAoBjB,EAA4Bc,EAM9C,EAACI;CAKF,OALEZ,EAAA,OAAAW,KAAAX,EAAA,OAAAK,KAEIO,IAAA;EAAA,GACFD;EAAWE,OACPR;EACR,EAAAL,EAAA,KAAAW,GAAAX,EAAA,KAAAK,GAAAL,EAAA,KAAAY,KAAAA,IAAAZ,EAAA,IAHMY"}
@@ -14,7 +14,7 @@ export interface EIP712Parameter {
14
14
  name: string;
15
15
  type: string;
16
16
  }
17
- export declare type EIP712ObjectValue = string | number | boolean | EIP712Object;
17
+ export type EIP712ObjectValue = string | number | boolean | EIP712Object;
18
18
  export interface EIP712Object {
19
19
  [key: string]: EIP712ObjectValue;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mEAAmE,CAAC;AAK1G,MAAM,MAAM,qBAAqB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,GACd,IAAI,IAAI,qBAAqB,CAE/B;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,CAUlE;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAAE,EACpB,YAAY,EAAE,MAAM,GACnB,UAAU,GAAG,SAAS,CAGxB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,EAAE,gBAAgB,GAC3B,UAAU,GAAG,SAAS,CAIxB;AAGD,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,GAAG,UAAU,CAeb"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mEAAmE,CAAC;AAI1G,MAAM,MAAM,qBAAqB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,GACd,IAAI,IAAI,qBAAqB,CAE/B;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,CAUlE;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAAE,EACpB,YAAY,EAAE,MAAM,GACnB,UAAU,GAAG,SAAS,CAGxB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,EAAE,gBAAgB,GAC3B,UAAU,GAAG,SAAS,CAIxB;AAGD,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,GAAG,UAAU,CAeb"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["QueryMeta","DeltaPrice","DeltaRoute","BridgePreference","RefetchMetaWithTiming","startedQueryAt","isMetaWithTimeStart","meta","getAllBridgeRoutes","price","seen","Set","result","route","alternatives","protocol","bridge","toLowerCase","has","add","push","findRouteByProtocolName","routes","protocolName","lowered","find","r","findRouteByPreference","preference","tag","tags","includes","extractSelectedBridgePrice","bridgePreference","selected","filter"],"sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"sourcesContent":["import type { QueryMeta } from \"@tanstack/react-query\";\nimport type { DeltaPrice, DeltaRoute } from \"@velora-dex/sdk\";\nimport type { BridgePreference } from \"@/components/widget/TradeParameters/state/bridgePreferences/types\";\n\n\n// ------------------- Generic Utils -------------------\n\nexport type RefetchMetaWithTiming = { startedQueryAt: number };\nexport function isMetaWithTimeStart(\n meta: QueryMeta\n): meta is RefetchMetaWithTiming {\n return \"startedQueryAt\" in meta && typeof meta[\"startedQueryAt\"] === \"number\";\n}\n\n// ------------------- Bridge Route Selection -------------------\n\n// Routes are deduped by protocol; the primary route in `price.route` is preferred over alternatives.\nexport function getAllBridgeRoutes(price: DeltaPrice): DeltaRoute[] {\n const seen = new Set<string>();\n const result: DeltaRoute[] = [];\n for (const route of [price.route, ...price.alternatives]) {\n const protocol = route.bridge?.protocol.toLowerCase();\n if (!protocol || seen.has(protocol)) continue;\n seen.add(protocol);\n result.push(route);\n }\n return result;\n}\n\nexport function findRouteByProtocolName(\n routes: DeltaRoute[],\n protocolName: string\n): DeltaRoute | undefined {\n const lowered = protocolName.toLowerCase();\n return routes.find((r) => r.bridge?.protocol.toLowerCase() === lowered);\n}\n\nexport function findRouteByPreference(\n routes: DeltaRoute[],\n preference: BridgePreference\n): DeltaRoute | undefined {\n if (preference === \"auto\") return;\n const tag = preference === \"fastest\" ? \"fastest\" : \"best-return\";\n return routes.find((r) => r.bridge?.tags.includes(tag));\n}\n\n// Returns a DeltaPrice with the selected route as `route` and the rest as `alternatives`.\nexport function extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n}: {\n price: DeltaPrice;\n protocolName?: string;\n bridgePreference: BridgePreference;\n}): DeltaPrice {\n const routes = getAllBridgeRoutes(price);\n\n const selected =\n (protocolName && findRouteByProtocolName(routes, protocolName)) ||\n findRouteByPreference(routes, bridgePreference) ||\n price.route;\n\n if (selected === price.route) return price;\n\n return {\n ...price,\n route: selected,\n alternatives: routes.filter((r) => r !== selected),\n };\n}\n"],"mappings":";AAiBA,SAAgBQ,EAAmBC,GAAiC;CAClE,IAAMC,oBAAO,IAAIC,KAAa,EACxBC,IAAuB,EAAE;CAC/B,KAAK,IAAMC,KAAS,CAACJ,EAAMI,OAAO,GAAGJ,EAAMK,aAAa,EAAE;EACxD,IAAMC,IAAWF,EAAMG,QAAQD,SAASE,aAAa;EACjD,CAACF,KAAYL,EAAKQ,IAAIH,EAAS,KACnCL,EAAKS,IAAIJ,EAAS,EAClBH,EAAOQ,KAAKP,EAAM;;CAEpB,OAAOD;;AAGT,SAAgBS,EACdC,GACAC,GACwB;CACxB,IAAMC,IAAUD,EAAaN,aAAa;CAC1C,OAAOK,EAAOG,MAAMC,MAAMA,EAAEV,QAAQD,SAASE,aAAa,KAAKO,EAAQ;;AAGzE,SAAgBG,EACdL,GACAM,GACwB;CACxB,IAAIA,MAAe,QAAQ;CAC3B,IAAMC,IAAMD,MAAe,YAAY,YAAY;CACnD,OAAON,EAAOG,MAAMC,MAAMA,EAAEV,QAAQc,KAAKC,SAASF,EAAI,CAAC;;AAIzD,SAAgBG,EAA2B,EACzCvB,UACAc,iBACAU,uBAKa;CACb,IAAMX,IAASd,EAAmBC,EAAM,EAElCyB,IACHX,KAAgBF,EAAwBC,GAAQC,EAAa,IAC9DI,EAAsBL,GAAQW,EAAiB,IAC/CxB,EAAMI;CAIR,OAFIqB,MAAazB,EAAMI,QAAcJ,IAE9B;EACL,GAAGA;EACHI,OAAOqB;EACPpB,cAAcQ,EAAOa,QAAQT,MAAMA,MAAMQ,EAAQ;EAClD"}
1
+ {"version":3,"file":"utils.js","names":["QueryMeta","DeltaPrice","DeltaRoute","BridgePreference","RefetchMetaWithTiming","startedQueryAt","isMetaWithTimeStart","meta","getAllBridgeRoutes","price","seen","Set","result","route","alternatives","protocol","bridge","toLowerCase","has","add","push","findRouteByProtocolName","routes","protocolName","lowered","find","r","findRouteByPreference","preference","tag","tags","includes","extractSelectedBridgePrice","bridgePreference","selected","filter"],"sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"sourcesContent":["import type { QueryMeta } from \"@tanstack/react-query\";\nimport type { DeltaPrice, DeltaRoute } from \"@velora-dex/sdk\";\nimport type { BridgePreference } from \"@/components/widget/TradeParameters/state/bridgePreferences/types\";\n\n// ------------------- Generic Utils -------------------\n\nexport type RefetchMetaWithTiming = { startedQueryAt: number };\nexport function isMetaWithTimeStart(\n meta: QueryMeta\n): meta is RefetchMetaWithTiming {\n return \"startedQueryAt\" in meta && typeof meta[\"startedQueryAt\"] === \"number\";\n}\n\n// ------------------- Bridge Route Selection -------------------\n\n// Routes are deduped by protocol; the primary route in `price.route` is preferred over alternatives.\nexport function getAllBridgeRoutes(price: DeltaPrice): DeltaRoute[] {\n const seen = new Set<string>();\n const result: DeltaRoute[] = [];\n for (const route of [price.route, ...price.alternatives]) {\n const protocol = route.bridge?.protocol.toLowerCase();\n if (!protocol || seen.has(protocol)) continue;\n seen.add(protocol);\n result.push(route);\n }\n return result;\n}\n\nexport function findRouteByProtocolName(\n routes: DeltaRoute[],\n protocolName: string\n): DeltaRoute | undefined {\n const lowered = protocolName.toLowerCase();\n return routes.find((r) => r.bridge?.protocol.toLowerCase() === lowered);\n}\n\nexport function findRouteByPreference(\n routes: DeltaRoute[],\n preference: BridgePreference\n): DeltaRoute | undefined {\n if (preference === \"auto\") return;\n const tag = preference === \"fastest\" ? \"fastest\" : \"best-return\";\n return routes.find((r) => r.bridge?.tags.includes(tag));\n}\n\n// Returns a DeltaPrice with the selected route as `route` and the rest as `alternatives`.\nexport function extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n}: {\n price: DeltaPrice;\n protocolName?: string;\n bridgePreference: BridgePreference;\n}): DeltaPrice {\n const routes = getAllBridgeRoutes(price);\n\n const selected =\n (protocolName && findRouteByProtocolName(routes, protocolName)) ||\n findRouteByPreference(routes, bridgePreference) ||\n price.route;\n\n if (selected === price.route) return price;\n\n return {\n ...price,\n route: selected,\n alternatives: routes.filter((r) => r !== selected),\n };\n}\n"],"mappings":";AAgBA,SAAgBQ,EAAmBC,GAAiC;CAClE,IAAMC,oBAAO,IAAIC,KAAa,EACxBC,IAAuB,EAAE;CAC/B,KAAK,IAAMC,KAAS,CAACJ,EAAMI,OAAO,GAAGJ,EAAMK,aAAa,EAAE;EACxD,IAAMC,IAAWF,EAAMG,QAAQD,SAASE,aAAa;EACjD,CAACF,KAAYL,EAAKQ,IAAIH,EAAS,KACnCL,EAAKS,IAAIJ,EAAS,EAClBH,EAAOQ,KAAKP,EAAM;;CAEpB,OAAOD;;AAGT,SAAgBS,EACdC,GACAC,GACwB;CACxB,IAAMC,IAAUD,EAAaN,aAAa;CAC1C,OAAOK,EAAOG,MAAMC,MAAMA,EAAEV,QAAQD,SAASE,aAAa,KAAKO,EAAQ;;AAGzE,SAAgBG,EACdL,GACAM,GACwB;CACxB,IAAIA,MAAe,QAAQ;CAC3B,IAAMC,IAAMD,MAAe,YAAY,YAAY;CACnD,OAAON,EAAOG,MAAMC,MAAMA,EAAEV,QAAQc,KAAKC,SAASF,EAAI,CAAC;;AAIzD,SAAgBG,EAA2B,EACzCvB,UACAc,iBACAU,uBAKa;CACb,IAAMX,IAASd,EAAmBC,EAAM,EAElCyB,IACHX,KAAgBF,EAAwBC,GAAQC,EAAa,IAC9DI,EAAsBL,GAAQW,EAAiB,IAC/CxB,EAAMI;CAIR,OAFIqB,MAAazB,EAAMI,QAAcJ,IAE9B;EACL,GAAGA;EACHI,OAAOqB;EACPpB,cAAcQ,EAAOa,QAAQT,MAAMA,MAAMQ,EAAQ;EAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateTwapOrder.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,yBAAyB,EACzB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGpE,KAAK,8BAA8B,GAAG,yBAAyB,CAAC;AAChE,KAAK,8BAA8B,GAAG,yBAAyB,CAAC;AAEhE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,UAAU,EAAE,8BAA8B,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,IAAI,CAAC,EAAE,QAAQ,CAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,uCAAuC,GAAG,IAAI,CACjD,kBAAkB,CAChB,8BAA8B,EAC9B,KAAK,EACL,6BAA6B,EAC7B,IAAI,CACL,EACD,YAAY,CACb,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,eAAe,CAAC,EAAE,uCAAuC,CAAC;IAC1D,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,KAAK,8BAA8B,GAAG;IACpC,MAAM,EAAE,CAAC,SAAS,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC3D,WAAW,EAAE,CACX,SAAS,EAAE,6BAA6B,KACrC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,CAAC,EAAE,yBAAyB,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,EAC1C,eAAe,EACf,OAAO,EACP,OAAO,EACP,MAAM,GACP,EAAE,gCAAgC,GAAG,8BAA8B,CAyFnE"}
1
+ {"version":3,"file":"useCreateTwapOrder.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGpE,KAAK,8BAA8B,GAAG,yBAAyB,CAAC;AAChE,KAAK,8BAA8B,GAAG,yBAAyB,CAAC;AAEhE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,UAAU,EAAE,8BAA8B,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,IAAI,CAAC,EAAE,QAAQ,CAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,uCAAuC,GAAG,IAAI,CACjD,kBAAkB,CAChB,8BAA8B,EAC9B,KAAK,EACL,6BAA6B,EAC7B,IAAI,CACL,EACD,YAAY,CACb,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,eAAe,CAAC,EAAE,uCAAuC,CAAC;IAC1D,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,KAAK,8BAA8B,GAAG;IACpC,MAAM,EAAE,CAAC,SAAS,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC3D,WAAW,EAAE,CACX,SAAS,EAAE,6BAA6B,KACrC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,CAAC,EAAE,yBAAyB,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,EAC1C,eAAe,EACf,OAAO,EACP,OAAO,EACP,MAAM,GACP,EAAE,gCAAgC,GAAG,8BAA8B,CAyFnE"}