@velora-dex/widget 0.8.5-dev.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) 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/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js +1 -1
  39. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
  40. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  41. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  42. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  43. package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
  44. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  45. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts.map +1 -1
  46. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -1
  47. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +2 -2
  48. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  49. package/dist/core/LimitOrderButton.js +1 -1
  50. package/dist/core/LimitOrderButton.js.map +1 -1
  51. package/dist/core/OtcOrderButton.js +1 -1
  52. package/dist/core/OtcOrderButton.js.map +1 -1
  53. package/dist/core/TradeFlowScreenButton.js +1 -1
  54. package/dist/core/TradeFlowScreenButton.js.map +1 -1
  55. package/dist/core/across/utils.js.map +1 -1
  56. package/dist/core/index.js +1 -1
  57. package/dist/core/index.js.map +1 -1
  58. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  59. package/dist/core/inputs/state/guards.d.ts.map +1 -1
  60. package/dist/core/inputs/state/guards.js.map +1 -1
  61. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  62. package/dist/core/limit/state/limitInputAmountAtom.d.ts.map +1 -1
  63. package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
  64. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  65. package/dist/core/otc/state/otcInputAmountAtom.d.ts.map +1 -1
  66. package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -1
  67. package/dist/core/state/configAtom.js +2 -2
  68. package/dist/core/state/configAtom.js.map +1 -1
  69. package/dist/core/state/getSelectableDestChains.d.ts +1 -1
  70. package/dist/core/state/getSelectableDestChains.d.ts.map +1 -1
  71. package/dist/core/state/getSelectableDestChains.js.map +1 -1
  72. package/dist/core/twap/state/twapInputAmountAtom.d.ts.map +1 -1
  73. package/dist/core/twap/state/twapInputAmountAtom.js.map +1 -1
  74. package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
  75. package/dist/events/hooks/useOnWalletConnect.js +1 -1
  76. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  77. package/dist/events/types/swap.d.ts.map +1 -1
  78. package/dist/hooks/batch/useBatchWithApproveTxs.js +1 -1
  79. package/dist/hooks/batch/useBatchWithApproveTxs.js.map +1 -1
  80. package/dist/hooks/batch/useCanBatchTxs.js +3 -3
  81. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  82. package/dist/hooks/batch/useSendBatchTx.d.ts.map +1 -1
  83. package/dist/hooks/batch/useSendBatchTx.js +1 -1
  84. package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
  85. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts.map +1 -1
  86. package/dist/hooks/connectors/useIsGnosisSafeConnector.js +1 -1
  87. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  88. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -1
  89. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +1 -1
  90. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  91. package/dist/hooks/getCode/useIsAccountContract.d.ts +1 -1
  92. package/dist/hooks/getCode/useIsAccountContract.d.ts.map +1 -1
  93. package/dist/hooks/getCode/useIsAccountContract.js +1 -1
  94. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
  95. package/dist/hooks/getCode/useIsContractAtAddress.d.ts +1 -1
  96. package/dist/hooks/getCode/useIsContractAtAddress.d.ts.map +1 -1
  97. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +2 -2
  98. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
  99. package/dist/hooks/otc/queries/useLimitOrders.d.ts.map +1 -1
  100. package/dist/hooks/otc/queries/useLimitOrders.js +1 -1
  101. package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
  102. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +3 -3
  103. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  104. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +3 -3
  105. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  106. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.d.ts.map +1 -1
  107. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js +2 -2
  108. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
  109. package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js +1 -1
  110. package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
  111. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js +1 -1
  112. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
  113. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +1 -1
  114. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  115. package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts +2 -2
  116. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +1 -1
  117. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
  118. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js +1 -1
  119. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
  120. package/dist/hooks/swap/prices/delta/bridge/utils.d.ts.map +1 -1
  121. package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
  122. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts.map +1 -1
  123. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -1
  124. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts.map +1 -1
  125. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -1
  126. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js +1 -1
  127. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -1
  128. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
  129. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
  130. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  131. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  132. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js +1 -1
  133. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -1
  134. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +1 -1
  135. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -1
  136. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js +1 -1
  137. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -1
  138. package/dist/hooks/swap/prices/delta/orders/types.d.ts.map +1 -1
  139. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  140. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  141. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -1
  142. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -1
  143. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -1
  144. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -1
  145. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -1
  146. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -1
  147. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -1
  148. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.d.ts +11 -6
  149. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.d.ts.map +1 -1
  150. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.js +1 -1
  151. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.js.map +1 -1
  152. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderRequiredBalance.js +2 -2
  153. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderRequiredBalance.js.map +1 -1
  154. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js +1 -1
  155. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  156. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  157. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  158. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  159. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  160. package/dist/hooks/swap/prices/usePricesParams.js +4 -4
  161. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  162. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  163. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  164. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +1 -1
  165. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  166. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  167. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +3 -3
  168. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  169. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
  170. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  171. package/dist/hooks/swap/tradeFlow/useTwapFlow.js +1 -1
  172. package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -1
  173. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js +1 -1
  174. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
  175. package/dist/hooks/tokens/allowance/useTokenAllowance.js +1 -1
  176. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  177. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +1 -1
  178. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
  179. package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
  180. package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
  181. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +1 -1
  182. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
  183. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +1 -1
  184. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
  185. package/dist/hooks/tokens/balances/useTokenBalance.d.ts +0 -11
  186. package/dist/hooks/tokens/balances/useTokenBalance.d.ts.map +1 -1
  187. package/dist/hooks/tokens/balances/useTokenBalance.js +11 -11
  188. package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
  189. package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
  190. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  191. package/dist/hooks/txs/mutations/useApprove.d.ts.map +1 -1
  192. package/dist/hooks/txs/mutations/useApprove.js +2 -2
  193. package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
  194. package/dist/hooks/txs/mutations/useDepositWeth.js +1 -1
  195. package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
  196. package/dist/hooks/txs/mutations/useReplaceTx.js +3 -3
  197. package/dist/hooks/txs/mutations/useReplaceTx.js.map +1 -1
  198. package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
  199. package/dist/hooks/txs/mutations/useSendTx.js +2 -2
  200. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  201. package/dist/hooks/txs/queries/useAwaitTx.js +4 -4
  202. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  203. package/dist/hooks/txs/queries/useTxResponse.d.ts +88 -1
  204. package/dist/hooks/txs/queries/useTxResponse.d.ts.map +1 -1
  205. package/dist/hooks/txs/queries/useWalletCanReplaceTx.js +1 -1
  206. package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -1
  207. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  208. package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
  209. package/dist/hooks/useBridgeInfo.js.map +1 -1
  210. package/dist/hooks/useChainMatches.js +2 -2
  211. package/dist/hooks/useChainMatches.js.map +1 -1
  212. package/dist/hooks/useConnections.d.ts +3 -0
  213. package/dist/hooks/useConnections.d.ts.map +1 -0
  214. package/dist/hooks/useConnections.js +24 -0
  215. package/dist/hooks/useConnections.js.map +1 -0
  216. package/dist/hooks/useDisconnect.d.ts +3 -0
  217. package/dist/hooks/useDisconnect.d.ts.map +1 -0
  218. package/dist/hooks/useDisconnect.js +29 -0
  219. package/dist/hooks/useDisconnect.js.map +1 -0
  220. package/dist/hooks/useMinViemClient.d.ts.map +1 -1
  221. package/dist/hooks/useMinViemClient.js +9 -9
  222. package/dist/hooks/useMinViemClient.js.map +1 -1
  223. package/dist/hooks/useSDK.d.ts.map +1 -1
  224. package/dist/hooks/useSDK.js.map +1 -1
  225. package/dist/hooks/useSwitchChainWithGuard.js +1 -1
  226. package/dist/hooks/useSwitchChainWithGuard.js.map +1 -1
  227. package/dist/lib/constants/urls.js +1 -1
  228. package/dist/lib/constants/urls.js.map +1 -1
  229. package/dist/lib/utils/twap.js.map +1 -1
  230. package/dist/lib/web3/wagmi/config.d.ts +40 -1
  231. package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
  232. package/dist/lib/web3/wagmi/constants.d.ts +40 -1
  233. package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
  234. package/dist/lib/web3/wagmi/switchChain.d.ts +40 -1
  235. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  236. package/dist/tokens/lists/lists.js.map +1 -1
  237. package/dist/tokens/lists/lists.json.d.ts +12 -31
  238. package/package.json +13 -11
@@ -1 +1 @@
1
- {"version":3,"file":"useReplaceTx.js","names":["useAccount","useChainId","EstimateFeesPerGasReturnType","TransactionNotFoundError","Address","Hash","Hex","TransactionReceipt","TransactionRequest","assert","SupportedChainId","useSendArbitraryTx","useTxResponse","passFeeValueTxTypesOnly","useGetChainFeeType","useTxFees","useAwaitTx","useEnsureTxReceipt","TxResponse","useMutation","useLogger","TxSentObject","CancelOrderStepKey","useGetAccountNonce","useWidgetEvents","CancelEventTxType","useWalletCanReplaceTx","useMarkTxAsDropped","GAS_BUMP_FACTOR","num","denom","increaseGas","value","min","increased","UseReplaceTxInput","txHash","onSuccess","result","ReplaceTxResult","onSettled","onError","error","Error","chainId","cancelTxType","enabled","UseReplaceTxReturn","replaceTx","ReplaceTxFn","isPending","isSuccess","isError","step","reset","originalTxResponse","response","hash","replacementTx","receipt","minFees","isWalletSupported","TxForReplacement","from","nonce","to","input","gas","gasPrice","maxFeePerGas","maxPriorityFeePerGas","ReplacementTxAction","BuildReplacementRequestParams","tx","Pick","TxMockResponse","action","currentFees","buildReplacementRequest","undefined","base","data","hasEip1559","hasLegacyGasPrice","isNotLegacyGasPrice","type","originalTx","replacementRequest","replacementTxHash","replacementTxReceipt","ReplaceTxInput","onTxSent","OnTxSent","signal","AbortSignal","txSent","Promise","REPLACE_TX_MUTATION_KEY","useReplaceTx","t0","$","_c","_chainId","t1","appChainId","queriesEnabled","t2","query","txResponseQuery","ensureTxResponse","t3","t4","t5","ensureEstimateFeesPerGas","currentFeesQuery","sendTxMut","t6","t7","replacementTxReceiptQuery","t8","ensureTxReceipt","logger","getAccountNonce","getChainFeeType","address","account","onCancelTx","t9","t10","throwIfAborted","originalTxObject","t11","feeType","all","replacementTxHash_0","sendTransactionAsync","event","name","params","txType","originalTxHash","log","replacementTxReceiptPromise","transactionHash","receiptPromise","transactionSpecificData","swapTxHash","markTxAsDropped","Symbol","for","variables","t12","variables_0","t13","error_0","variables_1","t14","t15","mutationFn","mutationKey","onMutate","replaceTxMut","t16","t17","mutateAsync"],"sources":["../../../../src/hooks/txs/mutations/useReplaceTx.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { type EstimateFeesPerGasReturnType } from \"@wagmi/core\";\nimport {\n TransactionNotFoundError,\n type Address,\n type Hash,\n type Hex,\n type TransactionReceipt,\n type TransactionRequest,\n} from \"viem\";\nimport { assert } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useSendArbitraryTx } from \"./useSendTx\";\nimport { useTxResponse } from \"../queries/useTxResponse\";\nimport {\n passFeeValueTxTypesOnly,\n useGetChainFeeType,\n useTxFees,\n} from \"../queries/useTxFees\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"../queries/useAwaitTx\";\nimport type { TxResponse } from \"@/transactions/queries/ensureTxResponse\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useLogger } from \"@/core/logger\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport { useGetAccountNonce } from \"../queries/useAccountNonce\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { CancelEventTxType } from \"@/events/types/cancelTx\";\nimport { useWalletCanReplaceTx } from \"../queries/useWalletCanReplaceTx\";\nimport { useMarkTxAsDropped } from \"@/transactions/state/hooks/useMarkTxAsDropped\";\n\n/**\n * 15% gas bump for replacement txs (BigInt-safe: 115/100).\n * Standard nodes (Geth, Besu, Reth) require ≥10%; we use 15% for a small safety\n * margin so replacements are accepted across varied RPCs and node configs\n * without overpaying (e.g. vs 20%).\n */\nconst GAS_BUMP_FACTOR = { num: 115n, denom: 100n };\n\nfunction increaseGas(value: bigint, min = 0n): bigint {\n const increased = (value * GAS_BUMP_FACTOR.num) / GAS_BUMP_FACTOR.denom;\n return increased < min ? min : increased;\n}\n\ntype UseReplaceTxInput = {\n txHash?: Hash;\n onSuccess?: (result: ReplaceTxResult) => void;\n onSettled?: () => void;\n onError?: (error: Error) => void;\n chainId?: SupportedChainId;\n cancelTxType: CancelEventTxType;\n enabled?: boolean;\n};\n\ntype UseReplaceTxReturn = {\n replaceTx: ReplaceTxFn;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: ReplaceTxResult;\n step?: CancelOrderStepKey;\n reset: () => void;\n originalTxResponse: {\n response?: TxResponse;\n hash?: Hash;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n replacementTx: {\n hash?: Hash;\n receipt?: TransactionReceipt;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n minFees?: EstimateFeesPerGasReturnType;\n isWalletSupported: boolean;\n};\n\n/** Minimal tx shape needed to build a replacement (legacy or EIP-1559). */\ntype TxForReplacement = {\n from: Address;\n nonce: number;\n to?: Address | null;\n value?: bigint;\n input?: Hex;\n gas?: bigint;\n chainId?: number;\n} & (\n | { gasPrice?: bigint; maxFeePerGas?: never; maxPriorityFeePerGas?: never }\n | {\n maxFeePerGas?: bigint;\n maxPriorityFeePerGas?: bigint;\n gasPrice?: never;\n }\n);\n\nexport type ReplacementTxAction = \"cancel\" | \"speedUp\";\n\ntype BuildReplacementRequestParams = {\n tx: TxForReplacement & Pick<TxMockResponse, \"type\">;\n action: ReplacementTxAction;\n currentFees: EstimateFeesPerGasReturnType;\n};\n\nfunction buildReplacementRequest({\n action,\n currentFees,\n tx,\n}: BuildReplacementRequestParams): TransactionRequest {\n assert(tx, \"Transaction not found\");\n assert(tx.from, \"Transaction has no from address\");\n assert(tx.nonce !== undefined, \"Transaction has no nonce\");\n\n const base: TransactionRequest = {\n from: tx.from,\n nonce: tx.nonce,\n gas: tx.gas,\n };\n\n if (action === \"cancel\") {\n base.to = tx.from;\n base.value = 0n;\n base.data = \"0x\";\n } else {\n assert(tx.to, \"Transaction has no to address\");\n base.to = tx.to;\n base.value = tx.value ?? 0n;\n base.data = tx.input ?? \"0x\";\n }\n\n const hasEip1559 =\n \"maxFeePerGas\" in tx &&\n tx.maxFeePerGas != null &&\n \"maxPriorityFeePerGas\" in tx &&\n tx.maxPriorityFeePerGas != null;\n\n const hasLegacyGasPrice = \"gasPrice\" in tx && tx.gasPrice != null;\n const isNotLegacyGasPrice = !hasLegacyGasPrice && tx.type !== \"legacy\";\n\n if (hasEip1559 || isNotLegacyGasPrice) {\n base.maxFeePerGas = increaseGas(\n tx.maxFeePerGas ?? 0n,\n currentFees.maxFeePerGas\n );\n base.maxPriorityFeePerGas = increaseGas(\n tx.maxPriorityFeePerGas ?? 0n,\n currentFees.maxPriorityFeePerGas\n );\n } else {\n const gasPrice = \"gasPrice\" in tx ? (tx.gasPrice ?? 0n) : 0n;\n base.gasPrice = increaseGas(gasPrice, currentFees.gasPrice);\n }\n\n return base;\n}\n\ntype TxMockResponse = TxForReplacement & {\n type: TxResponse[\"type\"];\n hash: Hash;\n};\n\nexport type ReplaceTxResult = {\n originalTx: TxResponse | TxMockResponse;\n replacementRequest: TransactionRequest;\n replacementTxHash: Hash;\n replacementTxReceipt: TransactionReceipt;\n};\n\ntype ReplaceTxInput = {\n action: ReplacementTxAction;\n hash: Hash;\n onTxSent?: OnTxSent;\n signal?: AbortSignal;\n};\n\ntype OnTxSent = (txSent: TxSentObject & { action: \"cancelSwap\" }) => void;\n\ntype ReplaceTxFn = (input: ReplaceTxInput) => Promise<ReplaceTxResult>;\n\nconst REPLACE_TX_MUTATION_KEY = \"replaceTx\";\n\nexport function useReplaceTx({\n txHash,\n onSuccess,\n onError,\n onSettled,\n chainId: _chainId,\n cancelTxType,\n enabled = true,\n}: UseReplaceTxInput): UseReplaceTxReturn {\n const appChainId = useChainId();\n const chainId = _chainId ?? appChainId;\n\n const isWalletSupported = useWalletCanReplaceTx();\n const queriesEnabled = isWalletSupported && enabled;\n\n /** 1. Get the original tx response */\n const { query: txResponseQuery, ensureTxResponse } = useTxResponse({\n hash: txHash,\n chainId,\n enabled: queriesEnabled,\n });\n\n const originalTxResponse = txResponseQuery.data;\n\n const originalTx: UseReplaceTxReturn[\"originalTxResponse\"] = {\n response: originalTxResponse,\n hash: txHash,\n isPending: txResponseQuery.isPending,\n isSuccess: txResponseQuery.isSuccess,\n isError: txResponseQuery.isError,\n error: txResponseQuery.error,\n };\n\n /** 2. Get the estimated fees for transactions at this */\n const { ensureEstimateFeesPerGas, query: currentFeesQuery } = useTxFees({\n chainId,\n type: originalTxResponse?.type\n ? passFeeValueTxTypesOnly(originalTxResponse.type)\n : undefined,\n enabled: queriesEnabled,\n });\n\n /** 3. Send a replacement tx */\n const sendTxMut = useSendArbitraryTx();\n\n const replacementTxHash = sendTxMut.txHash;\n\n /** 4. Wait for the replacement tx to be mined */\n const replacementTxReceiptQuery = useAwaitTx({\n chainId,\n hash: replacementTxHash,\n query: { enabled: queriesEnabled },\n });\n\n const replacementTx: UseReplaceTxReturn[\"replacementTx\"] = {\n hash: replacementTxHash,\n receipt: replacementTxReceiptQuery.data,\n isPending: replacementTxReceiptQuery.isPending,\n isSuccess: replacementTxReceiptQuery.isSuccess,\n isError: replacementTxReceiptQuery.isError,\n error: replacementTxReceiptQuery.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const logger = useLogger(\"ReplaceTx\");\n\n const getAccountNonce = useGetAccountNonce();\n const getChainFeeType = useGetChainFeeType();\n\n const { address: account } = useAccount();\n\n const { onCancelTx } = useWidgetEvents();\n\n const replaceTx: ReplaceTxFn = async ({ hash, action, onTxSent, signal }) => {\n assert(chainId != null, \"Chain not selected\");\n assert(account, \"Account not connected\");\n assert(\n isWalletSupported,\n \"Wallet does not support replacement txs or txParams.nonce\"\n );\n sendTxMut.reset();\n\n signal?.throwIfAborted();\n\n /** 1. Get the original tx response */\n let originalTxObject: TxMockResponse | null = null;\n try {\n originalTxObject = await ensureTxResponse({ hash, chainId });\n } catch (error) {\n if (error instanceof TransactionNotFoundError) {\n // tx with low gas may never be found\n logger.error(\"Original tx not found\", error);\n } else {\n throw error;\n }\n }\n\n if (!originalTxObject) {\n const [nonce, feeType] = await Promise.all([\n // a guess at the nonce we need to cancel the original tx,\n // gets nonce at the latest block\n // excluding the possibly pending (or dropped/not discovered tx) at pending block\n getAccountNonce({ chainId, address: account }),\n getChainFeeType(chainId),\n ]);\n originalTxObject = {\n from: account,\n nonce,\n type: feeType,\n hash,\n };\n }\n\n signal?.throwIfAborted();\n\n /** 2. Get the estimated fees for transactions at this */\n const currentFees = await ensureEstimateFeesPerGas({\n chainId,\n type: passFeeValueTxTypesOnly(originalTxObject.type),\n });\n\n signal?.throwIfAborted();\n\n /** 3. Build the replacement request */\n const replacementRequest = buildReplacementRequest({\n action,\n currentFees,\n tx: originalTxObject,\n });\n\n /** 4. Send the replacement tx */\n const replacementTxHash = await sendTxMut.sendTransactionAsync({\n ...replacementRequest,\n chainId,\n });\n\n if (action === \"cancel\") {\n onCancelTx?.({\n event: {\n name: \"CancelTx:sent\",\n params: {\n chainId,\n txType: cancelTxType,\n originalTxHash: originalTxObject.hash,\n originalTx: originalTxObject,\n replacementRequest: replacementRequest,\n replacementTxHash: replacementTxHash,\n },\n },\n });\n }\n signal?.throwIfAborted();\n\n logger.log(\"Replacement tx sent\", {\n originalTx: originalTxObject,\n replacementRequest,\n replacementTxHash,\n });\n\n /** 5. Wait for the replacement tx to be mined */\n const replacementTxReceiptPromise = ensureTxReceipt({\n chainId,\n hash: replacementTxHash,\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: replacementTxHash,\n action: \"cancelSwap\",\n receiptPromise: replacementTxReceiptPromise,\n transactionSpecificData: {\n action: \"cancelSwap\",\n swapTxHash: hash,\n },\n });\n }\n\n const replacementTxReceipt = await replacementTxReceiptPromise;\n\n return {\n originalTx: originalTxObject,\n replacementRequest,\n replacementTxHash,\n replacementTxReceipt,\n };\n };\n\n const markTxAsDropped = useMarkTxAsDropped();\n\n const replaceTxMut = useMutation({\n mutationFn: replaceTx,\n mutationKey: [REPLACE_TX_MUTATION_KEY],\n onMutate: (variables) => {\n if (variables.action !== \"cancel\") return;\n onCancelTx?.({\n event: {\n name: \"CancelTx:request\",\n params: {\n chainId,\n txType: cancelTxType,\n originalTxHash: variables.hash,\n },\n },\n });\n },\n onSuccess: (data, variables) => {\n logger.log(\"Replace tx success\", data);\n markTxAsDropped({\n account: data.originalTx.from,\n txHash: data.originalTx.hash,\n action: variables.action,\n replacementTxHash: data.replacementTxHash,\n });\n onSuccess?.(data);\n if (variables.action !== \"cancel\") return;\n onCancelTx?.({\n event: {\n name: \"CancelTx:confirmed\",\n params: {\n chainId,\n txType: cancelTxType,\n originalTxHash: data.originalTx.hash,\n originalTx: data.originalTx,\n replacementRequest: data.replacementRequest,\n replacementTxHash: data.replacementTxHash,\n replacementTxReceipt: data.replacementTxReceipt,\n },\n },\n });\n },\n onError: (error, variables) => {\n logger.error(\"Replace tx error\", error);\n onError?.(error);\n if (variables.action !== \"cancel\") return;\n onCancelTx?.({\n event: {\n name: \"CancelTx:failed\",\n params: {\n chainId,\n txType: cancelTxType,\n originalTxHash: variables.hash,\n error: error,\n },\n },\n });\n },\n onSettled: () => {\n onSettled?.();\n logger.log(\"Replace tx settled\");\n },\n });\n\n const reset = () => {\n sendTxMut.reset();\n replaceTxMut.reset();\n };\n\n let step: CancelOrderStepKey | undefined;\n if (replaceTxMut.isPending) {\n // Waiting for wallet confirmation / signature\n step = \"order-cancellation-approval\";\n if (replacementTx.hash) {\n // Tx submitted; waiting for it to be mined\n step = \"order-cancellation-execution\";\n }\n } else if (replaceTxMut.isSuccess) {\n step = \"order-cancellation-success\";\n } else if (replaceTxMut.isError) {\n step = \"order-cancellation-error\";\n }\n\n return {\n originalTxResponse: originalTx,\n replacementTx,\n minFees: currentFeesQuery.data,\n replaceTx: replaceTxMut.mutateAsync,\n isPending: replaceTxMut.isPending,\n isSuccess: replaceTxMut.isSuccess,\n isError: replaceTxMut.isError,\n error: replaceTxMut.error,\n result: replaceTxMut.data,\n reset,\n step,\n isWalletSupported,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useReplaceTx.js","names":["useConnection","useChainId","EstimateFeesPerGasReturnType","TransactionNotFoundError","Address","Hash","Hex","TransactionReceipt","TransactionRequest","assert","SupportedChainId","useSendArbitraryTx","useTxResponse","passFeeValueTxTypesOnly","useGetChainFeeType","useTxFees","useAwaitTx","useEnsureTxReceipt","TxResponse","useMutation","useLogger","TxSentObject","CancelOrderStepKey","useGetAccountNonce","useWidgetEvents","CancelEventTxType","useWalletCanReplaceTx","useMarkTxAsDropped","GAS_BUMP_FACTOR","num","denom","increaseGas","value","min","increased","UseReplaceTxInput","txHash","onSuccess","result","ReplaceTxResult","onSettled","onError","error","Error","chainId","cancelTxType","enabled","UseReplaceTxReturn","replaceTx","ReplaceTxFn","isPending","isSuccess","isError","step","reset","originalTxResponse","response","hash","replacementTx","receipt","minFees","isWalletSupported","TxForReplacement","from","nonce","to","input","gas","gasPrice","maxFeePerGas","maxPriorityFeePerGas","ReplacementTxAction","BuildReplacementRequestParams","tx","Pick","TxMockResponse","action","currentFees","buildReplacementRequest","undefined","base","data","hasEip1559","hasLegacyGasPrice","isNotLegacyGasPrice","type","originalTx","replacementRequest","replacementTxHash","replacementTxReceipt","ReplaceTxInput","onTxSent","OnTxSent","signal","AbortSignal","txSent","Promise","REPLACE_TX_MUTATION_KEY","useReplaceTx","t0","$","_c","_chainId","t1","appChainId","queriesEnabled","t2","query","txResponseQuery","ensureTxResponse","t3","t4","t5","ensureEstimateFeesPerGas","currentFeesQuery","sendTxMut","t6","t7","replacementTxReceiptQuery","t8","ensureTxReceipt","logger","getAccountNonce","getChainFeeType","address","account","onCancelTx","t9","t10","throwIfAborted","originalTxObject","t11","feeType","all","replacementTxHash_0","sendTransactionAsync","event","name","params","txType","originalTxHash","log","replacementTxReceiptPromise","transactionHash","receiptPromise","transactionSpecificData","swapTxHash","markTxAsDropped","Symbol","for","variables","t12","variables_0","t13","error_0","variables_1","t14","t15","mutationFn","mutationKey","onMutate","replaceTxMut","t16","t17","mutateAsync"],"sources":["../../../../src/hooks/txs/mutations/useReplaceTx.ts"],"sourcesContent":["import { useConnection, useChainId } from \"wagmi\";\nimport { type EstimateFeesPerGasReturnType } from \"@wagmi/core\";\nimport {\n TransactionNotFoundError,\n type Address,\n type Hash,\n type Hex,\n type TransactionReceipt,\n type TransactionRequest,\n} from \"viem\";\nimport { assert } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useSendArbitraryTx } from \"./useSendTx\";\nimport { useTxResponse } from \"../queries/useTxResponse\";\nimport {\n passFeeValueTxTypesOnly,\n useGetChainFeeType,\n useTxFees,\n} from \"../queries/useTxFees\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"../queries/useAwaitTx\";\nimport type { TxResponse } from \"@/transactions/queries/ensureTxResponse\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useLogger } from \"@/core/logger\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport { useGetAccountNonce } from \"../queries/useAccountNonce\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { CancelEventTxType } from \"@/events/types/cancelTx\";\nimport { useWalletCanReplaceTx } from \"../queries/useWalletCanReplaceTx\";\nimport { useMarkTxAsDropped } from \"@/transactions/state/hooks/useMarkTxAsDropped\";\n\n/**\n * 15% gas bump for replacement txs (BigInt-safe: 115/100).\n * Standard nodes (Geth, Besu, Reth) require ≥10%; we use 15% for a small safety\n * margin so replacements are accepted across varied RPCs and node configs\n * without overpaying (e.g. vs 20%).\n */\nconst GAS_BUMP_FACTOR = { num: 115n, denom: 100n };\n\nfunction increaseGas(value: bigint, min = 0n): bigint {\n const increased = (value * GAS_BUMP_FACTOR.num) / GAS_BUMP_FACTOR.denom;\n return increased < min ? min : increased;\n}\n\ntype UseReplaceTxInput = {\n txHash?: Hash;\n onSuccess?: (result: ReplaceTxResult) => void;\n onSettled?: () => void;\n onError?: (error: Error) => void;\n chainId?: SupportedChainId;\n cancelTxType: CancelEventTxType;\n enabled?: boolean;\n};\n\ntype UseReplaceTxReturn = {\n replaceTx: ReplaceTxFn;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: ReplaceTxResult;\n step?: CancelOrderStepKey;\n reset: () => void;\n originalTxResponse: {\n response?: TxResponse;\n hash?: Hash;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n replacementTx: {\n hash?: Hash;\n receipt?: TransactionReceipt;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n minFees?: EstimateFeesPerGasReturnType;\n isWalletSupported: boolean;\n};\n\n/** Minimal tx shape needed to build a replacement (legacy or EIP-1559). */\ntype TxForReplacement = {\n from: Address;\n nonce: number;\n to?: Address | null;\n value?: bigint;\n input?: Hex;\n gas?: bigint;\n chainId?: number;\n} & (\n | { gasPrice?: bigint; maxFeePerGas?: never; maxPriorityFeePerGas?: never }\n | {\n maxFeePerGas?: bigint;\n maxPriorityFeePerGas?: bigint;\n gasPrice?: never;\n }\n);\n\nexport type ReplacementTxAction = \"cancel\" | \"speedUp\";\n\ntype BuildReplacementRequestParams = {\n tx: TxForReplacement & Pick<TxMockResponse, \"type\">;\n action: ReplacementTxAction;\n currentFees: EstimateFeesPerGasReturnType;\n};\n\nfunction buildReplacementRequest({\n action,\n currentFees,\n tx,\n}: BuildReplacementRequestParams): TransactionRequest {\n assert(tx, \"Transaction not found\");\n assert(tx.from, \"Transaction has no from address\");\n assert(tx.nonce !== undefined, \"Transaction has no nonce\");\n\n const base: TransactionRequest = {\n from: tx.from,\n nonce: tx.nonce,\n gas: tx.gas,\n };\n\n if (action === \"cancel\") {\n base.to = tx.from;\n base.value = 0n;\n base.data = \"0x\";\n } else {\n assert(tx.to, \"Transaction has no to address\");\n base.to = tx.to;\n base.value = tx.value ?? 0n;\n base.data = tx.input ?? \"0x\";\n }\n\n const hasEip1559 =\n \"maxFeePerGas\" in tx &&\n tx.maxFeePerGas != null &&\n \"maxPriorityFeePerGas\" in tx &&\n tx.maxPriorityFeePerGas != null;\n\n const hasLegacyGasPrice = \"gasPrice\" in tx && tx.gasPrice != null;\n const isNotLegacyGasPrice = !hasLegacyGasPrice && tx.type !== \"legacy\";\n\n if (hasEip1559 || isNotLegacyGasPrice) {\n base.maxFeePerGas = increaseGas(\n tx.maxFeePerGas ?? 0n,\n currentFees.maxFeePerGas\n );\n base.maxPriorityFeePerGas = increaseGas(\n tx.maxPriorityFeePerGas ?? 0n,\n currentFees.maxPriorityFeePerGas\n );\n } else {\n const gasPrice = \"gasPrice\" in tx ? (tx.gasPrice ?? 0n) : 0n;\n base.gasPrice = increaseGas(gasPrice, currentFees.gasPrice);\n }\n\n return base;\n}\n\ntype TxMockResponse = TxForReplacement & {\n type: TxResponse[\"type\"];\n hash: Hash;\n};\n\nexport type ReplaceTxResult = {\n originalTx: TxResponse | TxMockResponse;\n replacementRequest: TransactionRequest;\n replacementTxHash: Hash;\n replacementTxReceipt: TransactionReceipt;\n};\n\ntype ReplaceTxInput = {\n action: ReplacementTxAction;\n hash: Hash;\n onTxSent?: OnTxSent;\n signal?: AbortSignal;\n};\n\ntype OnTxSent = (txSent: TxSentObject & { action: \"cancelSwap\" }) => void;\n\ntype ReplaceTxFn = (input: ReplaceTxInput) => Promise<ReplaceTxResult>;\n\nconst REPLACE_TX_MUTATION_KEY = \"replaceTx\";\n\nexport function useReplaceTx({\n txHash,\n onSuccess,\n onError,\n onSettled,\n chainId: _chainId,\n cancelTxType,\n enabled = true,\n}: UseReplaceTxInput): UseReplaceTxReturn {\n const appChainId = useChainId();\n const chainId = _chainId ?? appChainId;\n\n const isWalletSupported = useWalletCanReplaceTx();\n const queriesEnabled = isWalletSupported && enabled;\n\n /** 1. Get the original tx response */\n const { query: txResponseQuery, ensureTxResponse } = useTxResponse({\n hash: txHash,\n chainId,\n enabled: queriesEnabled,\n });\n\n const originalTxResponse = txResponseQuery.data;\n\n const originalTx: UseReplaceTxReturn[\"originalTxResponse\"] = {\n response: originalTxResponse,\n hash: txHash,\n isPending: txResponseQuery.isPending,\n isSuccess: txResponseQuery.isSuccess,\n isError: txResponseQuery.isError,\n error: txResponseQuery.error,\n };\n\n /** 2. Get the estimated fees for transactions at this */\n const { ensureEstimateFeesPerGas, query: currentFeesQuery } = useTxFees({\n chainId,\n type: originalTxResponse?.type\n ? passFeeValueTxTypesOnly(originalTxResponse.type)\n : undefined,\n enabled: queriesEnabled,\n });\n\n /** 3. Send a replacement tx */\n const sendTxMut = useSendArbitraryTx();\n\n const replacementTxHash = sendTxMut.txHash;\n\n /** 4. Wait for the replacement tx to be mined */\n const replacementTxReceiptQuery = useAwaitTx({\n chainId,\n hash: replacementTxHash,\n query: { enabled: queriesEnabled },\n });\n\n const replacementTx: UseReplaceTxReturn[\"replacementTx\"] = {\n hash: replacementTxHash,\n receipt: replacementTxReceiptQuery.data,\n isPending: replacementTxReceiptQuery.isPending,\n isSuccess: replacementTxReceiptQuery.isSuccess,\n isError: replacementTxReceiptQuery.isError,\n error: replacementTxReceiptQuery.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const logger = useLogger(\"ReplaceTx\");\n\n const getAccountNonce = useGetAccountNonce();\n const getChainFeeType = useGetChainFeeType();\n\n const { address: account } = useConnection();\n\n const { onCancelTx } = useWidgetEvents();\n\n const replaceTx: ReplaceTxFn = async ({ hash, action, onTxSent, signal }) => {\n assert(chainId != null, \"Chain not selected\");\n assert(account, \"Account not connected\");\n assert(\n isWalletSupported,\n \"Wallet does not support replacement txs or txParams.nonce\"\n );\n sendTxMut.reset();\n\n signal?.throwIfAborted();\n\n /** 1. Get the original tx response */\n let originalTxObject: TxMockResponse | null = null;\n try {\n originalTxObject = await ensureTxResponse({ hash, chainId });\n } catch (error) {\n if (error instanceof TransactionNotFoundError) {\n // tx with low gas may never be found\n logger.error(\"Original tx not found\", error);\n } else {\n throw error;\n }\n }\n\n if (!originalTxObject) {\n const [nonce, feeType] = await Promise.all([\n // a guess at the nonce we need to cancel the original tx,\n // gets nonce at the latest block\n // excluding the possibly pending (or dropped/not discovered tx) at pending block\n getAccountNonce({ chainId, address: account }),\n getChainFeeType(chainId),\n ]);\n originalTxObject = {\n from: account,\n nonce,\n type: feeType,\n hash,\n };\n }\n\n signal?.throwIfAborted();\n\n /** 2. Get the estimated fees for transactions at this */\n const currentFees = await ensureEstimateFeesPerGas({\n chainId,\n type: passFeeValueTxTypesOnly(originalTxObject.type),\n });\n\n signal?.throwIfAborted();\n\n /** 3. Build the replacement request */\n const replacementRequest = buildReplacementRequest({\n action,\n currentFees,\n tx: originalTxObject,\n });\n\n /** 4. Send the replacement tx */\n const replacementTxHash = await sendTxMut.sendTransactionAsync({\n ...replacementRequest,\n chainId,\n });\n\n if (action === \"cancel\") {\n onCancelTx?.({\n event: {\n name: \"CancelTx:sent\",\n params: {\n chainId,\n txType: cancelTxType,\n originalTxHash: originalTxObject.hash,\n originalTx: originalTxObject,\n replacementRequest: replacementRequest,\n replacementTxHash: replacementTxHash,\n },\n },\n });\n }\n signal?.throwIfAborted();\n\n logger.log(\"Replacement tx sent\", {\n originalTx: originalTxObject,\n replacementRequest,\n replacementTxHash,\n });\n\n /** 5. Wait for the replacement tx to be mined */\n const replacementTxReceiptPromise = ensureTxReceipt({\n chainId,\n hash: replacementTxHash,\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: replacementTxHash,\n action: \"cancelSwap\",\n receiptPromise: replacementTxReceiptPromise,\n transactionSpecificData: {\n action: \"cancelSwap\",\n swapTxHash: hash,\n },\n });\n }\n\n const replacementTxReceipt = await replacementTxReceiptPromise;\n\n return {\n originalTx: originalTxObject,\n replacementRequest,\n replacementTxHash,\n replacementTxReceipt,\n };\n };\n\n const markTxAsDropped = useMarkTxAsDropped();\n\n const replaceTxMut = useMutation({\n mutationFn: replaceTx,\n mutationKey: [REPLACE_TX_MUTATION_KEY],\n onMutate: (variables) => {\n if (variables.action !== \"cancel\") return;\n onCancelTx?.({\n event: {\n name: \"CancelTx:request\",\n params: {\n chainId,\n txType: cancelTxType,\n originalTxHash: variables.hash,\n },\n },\n });\n },\n onSuccess: (data, variables) => {\n logger.log(\"Replace tx success\", data);\n markTxAsDropped({\n account: data.originalTx.from,\n txHash: data.originalTx.hash,\n action: variables.action,\n replacementTxHash: data.replacementTxHash,\n });\n onSuccess?.(data);\n if (variables.action !== \"cancel\") return;\n onCancelTx?.({\n event: {\n name: \"CancelTx:confirmed\",\n params: {\n chainId,\n txType: cancelTxType,\n originalTxHash: data.originalTx.hash,\n originalTx: data.originalTx,\n replacementRequest: data.replacementRequest,\n replacementTxHash: data.replacementTxHash,\n replacementTxReceipt: data.replacementTxReceipt,\n },\n },\n });\n },\n onError: (error, variables) => {\n logger.error(\"Replace tx error\", error);\n onError?.(error);\n if (variables.action !== \"cancel\") return;\n onCancelTx?.({\n event: {\n name: \"CancelTx:failed\",\n params: {\n chainId,\n txType: cancelTxType,\n originalTxHash: variables.hash,\n error: error,\n },\n },\n });\n },\n onSettled: () => {\n onSettled?.();\n logger.log(\"Replace tx settled\");\n },\n });\n\n const reset = () => {\n sendTxMut.reset();\n replaceTxMut.reset();\n };\n\n let step: CancelOrderStepKey | undefined;\n if (replaceTxMut.isPending) {\n // Waiting for wallet confirmation / signature\n step = \"order-cancellation-approval\";\n if (replacementTx.hash) {\n // Tx submitted; waiting for it to be mined\n step = \"order-cancellation-execution\";\n }\n } else if (replaceTxMut.isSuccess) {\n step = \"order-cancellation-success\";\n } else if (replaceTxMut.isError) {\n step = \"order-cancellation-error\";\n }\n\n return {\n originalTxResponse: originalTx,\n replacementTx,\n minFees: currentFeesQuery.data,\n replaceTx: replaceTxMut.mutateAsync,\n isPending: replaceTxMut.isPending,\n isSuccess: replaceTxMut.isSuccess,\n isError: replaceTxMut.isError,\n error: replaceTxMut.error,\n result: replaceTxMut.data,\n reset,\n step,\n isWalletSupported,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAqCA,IAAM4B,IAAkB;CAAEC,KAAK;CAAMC,OAAO;CAAM;AAElD,SAASC,EAAYC,GAAeC,IAAM,IAAY;CACpD,IAAMC,IAAaF,IAAQJ,EAAgBC,MAAOD,EAAgBE;CAClE,OAAOI,IAAYD,IAAMA,IAAMC;;AAoEjC,SAAS4C,GAAwB,EAC/BF,WACAC,gBACAJ,SACoD;CAGpDhE,AAFAA,EAAOgE,GAAI,wBAAwB,EACnChE,EAAOgE,EAAGV,MAAM,kCAAkC,EAClDtD,EAAOgE,EAAGT,UAAUe,KAAAA,GAAW,2BAA2B;CAE1D,IAAMC,IAA2B;EAC/BjB,MAAMU,EAAGV;EACTC,OAAOS,EAAGT;EACVG,KAAKM,EAAGN;EACT;CAED,AAAIS,MAAW,YACbI,EAAKf,KAAKQ,EAAGV,MACbiB,EAAKhD,QAAQ,IACbgD,EAAKC,OAAO,SAEZxE,EAAOgE,EAAGR,IAAI,gCAAgC,EAC9Ce,EAAKf,KAAKQ,EAAGR,IACbe,EAAKhD,QAAQyC,EAAGzC,SAAS,IACzBgD,EAAKC,OAAOR,EAAGP,SAAS;CAG1B,IAAMgB,IACJ,kBAAkBT,KAClBA,EAAGJ,gBAAgB,QACnB,0BAA0BI,KAC1BA,EAAGH,wBAAwB,MAGvBc,IAAsB,EADF,cAAcX,KAAMA,EAAGL,YAAY,SACXK,EAAGY,SAAS;CAgB9D,OAdIH,KAAcE,KAChBJ,EAAKX,eAAetC,EAClB0C,EAAGJ,gBAAgB,IACnBQ,EAAYR,aACb,EACDW,EAAKV,uBAAuBvC,EAC1B0C,EAAGH,wBAAwB,IAC3BO,EAAYP,qBACb,IAGDU,EAAKZ,WAAWrC,EADC,cAAc0C,IAAMA,EAAGL,YAAY,KAAM,IACpBS,EAAYT,SAAS,EAGtDY;;AA0BT,IAAMiB,KAA0B;AAEhC,SAAOC,EAAAC,GAAA;CAAA,IAAAC,IAAAC,GAAA,GAAA,EAAsB,EAAAjE,WAAAC,eAAAI,YAAAD,cAAAI,SAAA0D,IAAAzD,iBAAAC,SAAAyD,OAAAJ,GAO3BrD,KAAAyD,OAAAxB,KAAAA,IAAA,KAAAwB,IAEAC,KAAmBvG,IAAY,EAC/B2C,IAAgB0D,MAAAE,IAEhB3C,IAA0BnC,GAAuB,EACjD+E,IAAuB5C,KAAAf,IAA6B4D;CAAA,AAAAN,EAAA,OAAAxD,KAAAwD,EAAA,OAAAK,KAAAL,EAAA,OAAAhE,KAGesE,IAAA;EAAAjD,MAC3DrB;EAAMQ;EAAAE,SAEH2D;EACV,EAAAL,EAAA,KAAAxD,GAAAwD,EAAA,KAAAK,GAAAL,EAAA,KAAAhE,GAAAgE,EAAA,KAAAM,KAAAA,IAAAN,EAAA;CAJD,IAAA,EAAAO,OAAAC,GAAAC,wBAAqDjG,EAAc8F,EAIjE,EAEFnD,IAA2BqD,EAAe3B,MAAM6B;CAAA,AAAAV,EAAA,OAAA7C,KAAA6C,EAAA,OAAAhE,KAAAgE,EAAA,OAAAQ,EAAAlE,SAAA0D,EAAA,OAAAQ,EAAAxD,WAAAgD,EAAA,OAAAQ,EAAA1D,aAAAkD,EAAA,OAAAQ,EAAAzD,aAEa2D,IAAA;EAAAtD,UACjDD;EAAkBE,MACtBrB;EAAMc,WACD0D,EAAe1D;EAAUC,WACzByD,EAAezD;EAAUC,SAC3BwD,EAAexD;EAAQV,OACzBkE,EAAelE;EACvB,EAAA0D,EAAA,KAAA7C,GAAA6C,EAAA,KAAAhE,GAAAgE,EAAA,KAAAQ,EAAAlE,OAAA0D,EAAA,KAAAQ,EAAAxD,SAAAgD,EAAA,KAAAQ,EAAA1D,WAAAkD,EAAA,KAAAQ,EAAAzD,WAAAiD,EAAA,MAAAU,KAAAA,IAAAV,EAAA;CAPD,IAAAd,IAA6DwB,GAO3DC;CAAA,AAAAX,EAAA,QAAA7C,IAOawD,IAAAX,EAAA,OAFPW,IAAAxD,GAAkB8B,OACpBxE,GAAwB0C,EAAkB8B,KACjC,GAFPN,KAAAA,GAEOqB,EAAA,MAAA7C,GAAA6C,EAAA,MAAAW;CAAA,IAAAC;CAAA,AAAAZ,EAAA,QAAAxD,KAAAwD,EAAA,QAAAK,KAAAL,EAAA,QAAAW,KAJyDC,IAAA;EAAApE;EAAAyC,MAEhE0B;EAEOjE,SACJ2D;EACV,EAAAL,EAAA,MAAAxD,GAAAwD,EAAA,MAAAK,GAAAL,EAAA,MAAAW,GAAAX,EAAA,MAAAY,KAAAA,IAAAZ,EAAA;CAND,IAAA,EAAAa,6BAAAN,OAAAO,MAA8DnG,EAAUiG,EAMtE,EAGFG,IAAkBxG,GAAoB,EAEtC6E,IAA0B2B,EAAS/E,QAAQgF;CAAA,AAAAhB,EAAA,QAAAK,IAMPW,IAAAhB,EAAA,OAA3BgB,IAAA,EAAAtE,SAAW2D,GAAgB,EAAAL,EAAA,MAAAK,GAAAL,EAAA,MAAAgB;CAAA,IAAAC;CAAA,AAAAjB,EAAA,QAAAxD,KAAAwD,EAAA,QAAAZ,KAAAY,EAAA,QAAAgB,KAHSC,IAAA;EAAAzE;EAAAa,MAErC+B;EAAiBmB,OAChBS;EACR,EAAAhB,EAAA,MAAAxD,GAAAwD,EAAA,MAAAZ,GAAAY,EAAA,MAAAgB,GAAAhB,EAAA,MAAAiB,KAAAA,IAAAjB,EAAA;CAJD,IAAAkB,IAAkCtG,EAAWqG,EAI3C,EAACE;CAAA,AAAAnB,EAAA,QAAAZ,KAAAY,EAAA,QAAAkB,EAAArC,QAAAmB,EAAA,QAAAkB,EAAA5E,SAAA0D,EAAA,QAAAkB,EAAAlE,WAAAgD,EAAA,QAAAkB,EAAApE,aAAAkD,EAAA,QAAAkB,EAAAnE,aAEwDoE,IAAA;EAAA9D,MACnD+B;EAAiB7B,SACd2D,EAAyBrC;EAAK/B,WAC5BoE,EAAyBpE;EAAUC,WACnCmE,EAAyBnE;EAAUC,SACrCkE,EAAyBlE;EAAQV,OACnC4E,EAAyB5E;EACjC,EAAA0D,EAAA,MAAAZ,GAAAY,EAAA,MAAAkB,EAAArC,MAAAmB,EAAA,MAAAkB,EAAA5E,OAAA0D,EAAA,MAAAkB,EAAAlE,SAAAgD,EAAA,MAAAkB,EAAApE,WAAAkD,EAAA,MAAAkB,EAAAnE,WAAAiD,EAAA,MAAAmB,KAAAA,IAAAnB,EAAA;CAPD,IAAA1C,IAA2D6D,GAS3DC,IAAwBvG,GAAoB,EAE5CwG,IAAerG,EAAU,YAAY,EAErCsG,IAAwBnG,GAAoB,EAC5CoG,IAAwB7G,IAAoB,EAE5C,EAAA8G,SAAAC,MAA6B7H,IAAe,EAE5C,EAAA8H,kBAAuBtG,GAAiB,EAACuG;CAAA,AAAA3B,EAAA,QAAAyB,KAAAzB,EAAA,QAAAvD,KAAAuD,EAAA,QAAAxD,KAAAwD,EAAA,QAAAa,KAAAb,EAAA,QAAAoB,KAAApB,EAAA,QAAAS,KAAAT,EAAA,QAAAsB,KAAAtB,EAAA,QAAAuB,KAAAvB,EAAA,QAAAvC,KAAAuC,EAAA,QAAAqB,KAAArB,EAAA,QAAA0B,KAAA1B,EAAA,QAAAe,KAEVY,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAvE,SAAAmB,WAAAe,aAAAE,cAAAmC;EASpCnC,AARApF,EAAOmC,KAAW,MAAM,qBAAqB,EAC7CnC,EAAOoH,GAAS,wBAAwB,EACxCpH,EACEoD,GACA,4DACD,EACDsD,EAAS7D,OAAQ,EAEjBuC,GAAMoC,gBAAkB;EAGxB,IAAAC,IAA8C;EAC9C,IAAA;GACEA,IAAmBA,MAAMrB,EAAiB;IAAApD;IAAAb;IAAiB,CAAC;WAA5CuF,GAAA;GACTzF,IAAAA,IAAAA;GACP,IAAIA,aAAiBvC,IAEnBsH,EAAM/E,MAAO,yBAAyBA,EAAM;QAE5C,MAAMA;;EAIV,IAAI,CAACwF,GAAgB;GACnB,IAAA,CAAAlE,GAAAoE,KAAyB,MAAMpC,QAAOqC,IAAK,CAIzCX,EAAgB;IAAA9E;IAAAgF,SAAoBC;IAAS,CAAC,EAC9CF,EAAgB/E,EAAQ,CACzB,CAAC;GACFsF,IAAmBA;IAAAA,MACXL;IAAO7D;IAAAqB,MAEP+C;IAAO3E;IAEd;;EAGHoC,GAAMoC,gBAAkB;EAGxB,IAAApD,KAAoB,MAAMoC,EAAyB;GAAArE;GAAAyC,MAE3CxE,GAAwBqH,EAAgB7C,KAAK;GACpD,CAAC;EAEFQ,GAAMoC,gBAAkB;EAGxB,IAAA1C,IAA2BT,GAAwB;GAAAF;GAAAC;GAAAJ,IAG7CyD;GACL,CAAC,EAGFI,IAA0B,MAAMnB,EAASoB,qBAAsB;GAAA,GAC1DhD;GAAkB3C;GAEtB,CAAC;EAmBF6E,AAjBI7C,MAAW,YACbkD,IAAa,EAAAU,OACJ;GAAAC,MACC;GAAeC,QACb;IAAA9F;IAAA+F,QAEE9F;IAAY+F,gBACJV,EAAgBzE;IAAK6B,YACzB4C;IAAgB3C;IAAAC,mBAETA;IACrB;GACF,EACD,CAAC,EAEJK,GAAMoC,gBAAkB,EAExBR,EAAMoB,IAAK,uBAAuB;GAAAvD,YACpB4C;GAAgB3C;GAAAC,mBAE5BA;GACD,CAAC;EAGF,IAAAsD,IAAoCtB,EAAgB;GAAA5E;GAAAa,MAE5C+B;GACP,CAAC;EAEF,AAAIG,KACFA,EAAS;GAAA/C;GAAAmG,iBAEUvD;GAAiBZ,QAC1B;GAAYoE,gBACJF;GAA2BG,yBAClB;IAAArE,QACf;IAAYsE,YACRzF;IACd;GACD,CAAC;EAGJ,IAAAgC,KAA6B,MAAMqD;EAA4B,OAExD;GAAAxD,YACO4C;GAAgB3C;GAAAC,mBAE5BA;GAAiBC;GAElB;IACFW,EAAA,MAAAyB,GAAAzB,EAAA,MAAAvD,GAAAuD,EAAA,MAAAxD,GAAAwD,EAAA,MAAAa,GAAAb,EAAA,MAAAoB,GAAApB,EAAA,MAAAS,GAAAT,EAAA,MAAAsB,GAAAtB,EAAA,MAAAuB,GAAAvB,EAAA,MAAAvC,GAAAuC,EAAA,MAAAqB,GAAArB,EAAA,MAAA0B,GAAA1B,EAAA,MAAAe,GAAAf,EAAA,MAAA2B,KAAAA,IAAA3B,EAAA;CAjHD,IAAApD,IAA+B+E,GAmH/BoB,KAAwBxH,IAAoB,EAACqG;CAAA,AAAA5B,EAAA,QAAAgD,OAAAC,IAAA,4BAAA,IAI9BrB,IAAA,CAAC/B,GAAwB,EAAAG,EAAA,MAAA4B,KAAAA,IAAA5B,EAAA;CAAA,IAAA+B;CAAA,AAAA/B,EAAA,QAAAvD,KAAAuD,EAAA,QAAAxD,KAAAwD,EAAA,QAAA0B,KAC5BK,KAAAmB,MAAA;EACJA,EAAS1E,WAAY,YACzBkD,IAAa,EAAAU,OACJ;GAAAC,MACC;GAAkBC,QAChB;IAAA9F;IAAA+F,QAEE9F;IAAY+F,gBACJU,EAAS7F;IAC3B;GACF,EACD,CAAC;IACH2C,EAAA,MAAAvD,GAAAuD,EAAA,MAAAxD,GAAAwD,EAAA,MAAA0B,GAAA1B,EAAA,MAAA+B,KAAAA,IAAA/B,EAAA;CAAA,IAAAmD;CAAA,AAAAnD,EAAA,QAAAvD,KAAAuD,EAAA,QAAAxD,KAAAwD,EAAA,QAAAqB,KAAArB,EAAA,QAAA+C,MAAA/C,EAAA,QAAA0B,KAAA1B,EAAA,QAAA/D,MACUkH,KAAAtE,GAAAuE,MAAA;EACT/B,EAAMoB,IAAK,sBAAsB5D,EAAK,EACtCkE,GAAgB;GAAAtB,SACL5C,EAAIK,WAAWvB;GAAK3B,QACrB6C,EAAIK,WAAW7B;GAAKmB,QACpB0E,EAAS1E;GAAOY,mBACLP,EAAIO;GACxB,CAAC,EACFnD,KAAY4C,EAAK,EACbqE,EAAS1E,WAAY,YACzBkD,IAAa,EAAAU,OACJ;GAAAC,MACC;GAAoBC,QAClB;IAAA9F;IAAA+F,QAEE9F;IAAY+F,gBACJ3D,EAAIK,WAAW7B;IAAK6B,YACxBL,EAAIK;IAAWC,oBACPN,EAAIM;IAAmBC,mBACxBP,EAAIO;IAAkBC,sBACnBR,EAAIQ;IAC5B;GACF,EACD,CAAC;IACHW,EAAA,MAAAvD,GAAAuD,EAAA,MAAAxD,GAAAwD,EAAA,MAAAqB,GAAArB,EAAA,MAAA+C,IAAA/C,EAAA,MAAA0B,GAAA1B,EAAA,MAAA/D,IAAA+D,EAAA,MAAAmD,KAAAA,IAAAnD,EAAA;CAAA,IAAAqD;CAAA,AAAArD,EAAA,QAAAvD,KAAAuD,EAAA,QAAAxD,KAAAwD,EAAA,QAAAqB,KAAArB,EAAA,QAAA0B,KAAA1B,EAAA,QAAA3D,KACQgH,KAAAC,GAAAC,MAAA;EACPlC,EAAM/E,MAAO,oBAAoBA,EAAM,EACvCD,IAAUC,EAAM,EACZ4G,EAAS1E,WAAY,YACzBkD,IAAa,EAAAU,OACJ;GAAAC,MACC;GAAiBC,QACf;IAAA9F;IAAA+F,QAEE9F;IAAY+F,gBACJU,EAAS7F;IAAKf,OACvBA;IACT;GACF,EACD,CAAC;IACH0D,EAAA,MAAAvD,GAAAuD,EAAA,MAAAxD,GAAAwD,EAAA,MAAAqB,GAAArB,EAAA,MAAA0B,GAAA1B,EAAA,MAAA3D,GAAA2D,EAAA,MAAAqD,KAAAA,IAAArD,EAAA;CAAA,IAAAwD;CAAA,AAAAxD,EAAA,QAAAqB,KAAArB,EAAA,QAAA5D,KACUoH,UAAA;EAETnC,AADAjF,KAAa,EACbiF,EAAMoB,IAAK,qBAAqB;IACjCzC,EAAA,MAAAqB,GAAArB,EAAA,MAAA5D,GAAA4D,EAAA,MAAAwD,KAAAA,IAAAxD,EAAA;CAAA,IAAAyD;CAAA,AAAAzD,EAAA,QAAApD,KAAAoD,EAAA,QAAA+B,KAAA/B,EAAA,QAAAmD,KAAAnD,EAAA,QAAAqD,KAAArD,EAAA,QAAAwD,KA5D8BC,IAAA;EAAAC,YACnB9G;EAAS+G,aACR/B;EAAyBgC,UAC5B7B;EAYT9F,WACUkH;EAwBV9G,SACQgH;EAeRjH,WACUoH;EAIZ,EAAAxD,EAAA,MAAApD,GAAAoD,EAAA,MAAA+B,GAAA/B,EAAA,MAAAmD,GAAAnD,EAAA,MAAAqD,GAAArD,EAAA,MAAAwD,GAAAxD,EAAA,MAAAyD,KAAAA,IAAAzD,EAAA;CA7DD,IAAA6D,IAAqB9I,GAAY0I,EA6D/B,EAACK;CAAA,AAAA9D,EAAA,QAAA6D,KAAA7D,EAAA,QAAAe,KAEW+C,UAAA;EAEZD,AADA9C,EAAS7D,OAAQ,EACjB2G,EAAY3G,OAAQ;IACrB8C,EAAA,MAAA6D,GAAA7D,EAAA,MAAAe,GAAAf,EAAA,MAAA8D,KAAAA,IAAA9D,EAAA;CAHD,IAAA9C,KAAc4G,GAKV7G;CACJ,AAAI4G,EAAY/G,aAEdG,IAAOA,+BACHK,EAAaD,SAEfJ,IAAOA,mCAEA4G,EAAY9G,YACrBE,IAAOA,+BACE4G,EAAY7G,YACrBC,IAAOA;CACR,IAAA8G;CAeA,OAfA/D,EAAA,QAAAc,EAAAjC,QAAAmB,EAAA,QAAAvC,KAAAuC,EAAA,QAAAd,KAAAc,EAAA,QAAA6D,EAAAhF,QAAAmB,EAAA,QAAA6D,EAAAvH,SAAA0D,EAAA,QAAA6D,EAAA7G,WAAAgD,EAAA,QAAA6D,EAAA/G,aAAAkD,EAAA,QAAA6D,EAAA9G,aAAAiD,EAAA,QAAA6D,EAAAG,eAAAhE,EAAA,QAAA1C,KAAA0C,EAAA,QAAA9C,MAAA8C,EAAA,QAAA/C,KAEM8G,IAAA;EAAA5G,oBACe+B;EAAU5B;EAAAE,SAErBsD,EAAgBjC;EAAKjC,WACnBiH,EAAYG;EAAYlH,WACxB+G,EAAY/G;EAAUC,WACtB8G,EAAY9G;EAAUC,SACxB6G,EAAY7G;EAAQV,OACtBuH,EAAYvH;EAAMJ,QACjB2H,EAAYhF;EAAK3B;EAAAD;EAAAQ;EAI1B,EAAAuC,EAAA,MAAAc,EAAAjC,MAAAmB,EAAA,MAAAvC,GAAAuC,EAAA,MAAAd,GAAAc,EAAA,MAAA6D,EAAAhF,MAAAmB,EAAA,MAAA6D,EAAAvH,OAAA0D,EAAA,MAAA6D,EAAA7G,SAAAgD,EAAA,MAAA6D,EAAA/G,WAAAkD,EAAA,MAAA6D,EAAA9G,WAAAiD,EAAA,MAAA6D,EAAAG,aAAAhE,EAAA,MAAA1C,GAAA0C,EAAA,MAAA9C,IAAA8C,EAAA,MAAA/C,GAAA+C,EAAA,MAAA+D,KAAAA,IAAA/D,EAAA,KAbM+D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSendTx.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/mutations/useSendTx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAG1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,KAAK,oBAAoB,GAAG,kBAAkB,GAAG;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,0BAGhC,uBAA4B,KAAG,wBAiDjC,CAAC"}
1
+ {"version":3,"file":"useSendTx.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/mutations/useSendTx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAG1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,KAAK,oBAAoB,GAAG,kBAAkB,GAAG;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,0BAGhC,uBAA4B,KAAG,wBAiDjC,CAAC"}
@@ -1,7 +1,7 @@
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, useSendTransaction as r } from "wagmi";
4
+ import { useConnection as n, useSendTransaction as r } from "wagmi";
5
5
  //#region src/hooks/txs/mutations/useSendTx.ts
6
6
  var i = (i) => {
7
7
  let a = e(20), o;
@@ -11,7 +11,7 @@ var i = (i) => {
11
11
  onSuccess: s,
12
12
  onError: c
13
13
  } }, a[2] = c, a[3] = s, a[4] = u) : u = a[4];
14
- let { sendTransaction: d, sendTransactionAsync: f, isPending: p, isSuccess: m, isError: h, error: g, data: _, reset: v } = r(u), y;
14
+ let { mutate: d, mutateAsync: f, isPending: p, isSuccess: m, isError: h, error: g, data: _, reset: v } = r(u), y;
15
15
  a[5] !== l || a[6] !== d ? (y = (e) => {
16
16
  t(l, "Wallet not connected"), t(e, "Transaction is required"), t(e.to, "Transaction recipient (to) is required"), d(e);
17
17
  }, a[5] = l, a[6] = d, a[7] = y) : y = a[7];
@@ -1 +1 @@
1
- {"version":3,"file":"useSendTx.js","names":["useSendTransaction","Hash","TransactionRequest","useAccount","assert","SupportedChainId","UseSendArbitraryTxInput","onSuccess","hash","onError","error","Error","TxRequestWithChainId","chainId","UseSendArbitraryTxReturn","sendTransaction","txParams","sendTransactionAsync","Promise","isPending","isSuccess","isError","txHash","reset","useSendArbitraryTx","t0","$","_c","t1","undefined","isConnected","t2","mutation","data","t3","to","sendTx","t4","txParams_0","sendTxAsync","t5"],"sources":["../../../../src/hooks/txs/mutations/useSendTx.ts"],"sourcesContent":["import { useSendTransaction } from \"wagmi\";\nimport { type Hash, type TransactionRequest } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport type UseSendArbitraryTxInput = {\n onSuccess?: (hash: Hash) => void;\n onError?: (error: Error) => void;\n};\n\ntype TxRequestWithChainId = TransactionRequest & { chainId: SupportedChainId };\n\nexport type UseSendArbitraryTxReturn = {\n sendTransaction: (txParams: TxRequestWithChainId) => void;\n sendTransactionAsync: (txParams: TxRequestWithChainId) => Promise<Hash>;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n txHash?: Hash;\n reset: () => void;\n};\n\nexport const useSendArbitraryTx = ({\n onSuccess,\n onError,\n}: UseSendArbitraryTxInput = {}): UseSendArbitraryTxReturn => {\n const { isConnected } = useAccount();\n\n const {\n sendTransaction,\n sendTransactionAsync,\n isPending,\n isSuccess,\n isError,\n error,\n data: txHash,\n reset,\n } = useSendTransaction({\n mutation: {\n onSuccess,\n onError,\n },\n });\n\n const sendTx = (txParams: TxRequestWithChainId) => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(txParams, \"Transaction is required\");\n assert(txParams.to, \"Transaction recipient (to) is required\");\n\n // Execute transaction\n sendTransaction(txParams);\n };\n\n const sendTxAsync = async (txParams: TxRequestWithChainId): Promise<Hash> => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(txParams, \"Transaction is required\");\n assert(txParams.to, \"Transaction recipient (to) is required\");\n\n // Execute transaction and return the hash\n return sendTransactionAsync(txParams);\n };\n\n return {\n sendTransaction: sendTx,\n sendTransactionAsync: sendTxAsync,\n isPending,\n isSuccess,\n isError,\n error,\n txHash,\n reset,\n };\n};\n"],"mappings":";;;;;AAwBA,IAAawB,KAAqBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAAC;CAAA,AAAAF,EAAA,OAAAD,IAGHG,IAAAF,EAAA,MAHIE,IAAAH,MAAAI,KAAAA,IAAA,EAGJ,GAHIJ,GAGJC,EAAA,KAAAD,GAAAC,EAAA,KAAAE;CAHI,IAAA,EAAArB,cAAAE,eAAAmB,GAIjC,EAAAE,mBAAwB3B,GAAY,EAAC4B;CAAA,AAAAL,EAAA,OAAAjB,KAAAiB,EAAA,OAAAnB,KAWdwB,IAAA,EAAAC,UACX;EAAAzB;EAAAE;EAGV,EACD,EAAAiB,EAAA,KAAAjB,GAAAiB,EAAA,KAAAnB,GAAAmB,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAdD,IAAA,EAAAX,oBAAAE,yBAAAE,cAAAC,cAAAC,YAAAX,UAAAuB,MAAAX,GAAAC,aASIvB,EAAmB+B,EAKrB,EAACG;CAAA,AAAAR,EAAA,OAAAI,KAAAJ,EAAA,OAAAX,KAEYmB,KAAAlB,MAAA;EAObD,AALAX,EAAO0B,GAAa,uBAAuB,EAC3C1B,EAAOY,GAAU,0BAA0B,EAC3CZ,EAAOY,EAAQmB,IAAK,yCAAyC,EAG7DpB,EAAgBC,EAAS;IAC1BU,EAAA,KAAAI,GAAAJ,EAAA,KAAAX,GAAAW,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CARD,IAAAU,IAAeF,GAQbG;CAAA,AAAAX,EAAA,OAAAI,KAAAJ,EAAA,OAAAT,KAEkBoB,IAAA,OAAAC,OAElBlC,EAAO0B,GAAa,uBAAuB,EAC3C1B,EAAOY,GAAU,0BAA0B,EAC3CZ,EAAOY,EAAQmB,IAAK,yCAAyC,EAGtDlB,EAAqBD,EAAS,GACtCU,EAAA,KAAAI,GAAAJ,EAAA,KAAAT,GAAAS,EAAA,MAAAW,KAAAA,IAAAX,EAAA;CARD,IAAAa,IAAoBF,GAQlBG;CAWD,OAXCd,EAAA,QAAAhB,KAAAgB,EAAA,QAAAL,KAAAK,EAAA,QAAAP,KAAAO,EAAA,QAAAN,KAAAM,EAAA,QAAAH,KAAAG,EAAA,QAAAU,KAAAV,EAAA,QAAAa,KAAAb,EAAA,QAAAJ,KAEKkB,IAAA;EAAAzB,iBACYqB;EAAMnB,sBACDsB;EAAWpB;EAAAC;EAAAC;EAAAX;EAAAY;EAAAC;EAOlC,EAAAG,EAAA,MAAAhB,GAAAgB,EAAA,MAAAL,GAAAK,EAAA,MAAAP,GAAAO,EAAA,MAAAN,GAAAM,EAAA,MAAAH,GAAAG,EAAA,MAAAU,GAAAV,EAAA,MAAAa,GAAAb,EAAA,MAAAJ,GAAAI,EAAA,MAAAc,KAAAA,IAAAd,EAAA,KATMc"}
1
+ {"version":3,"file":"useSendTx.js","names":["Hash","TransactionRequest","useConnection","useSendTransaction","assert","SupportedChainId","UseSendArbitraryTxInput","onSuccess","hash","onError","error","Error","TxRequestWithChainId","chainId","UseSendArbitraryTxReturn","sendTransaction","txParams","sendTransactionAsync","Promise","isPending","isSuccess","isError","txHash","reset","useSendArbitraryTx","t0","$","_c","t1","undefined","isConnected","t2","mutation","mutate","mutateAsync","data","t3","to","sendTx","t4","txParams_0","sendTxAsync","t5"],"sources":["../../../../src/hooks/txs/mutations/useSendTx.ts"],"sourcesContent":["import { type Hash, type TransactionRequest } from \"viem\";\nimport { useConnection, useSendTransaction } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport type UseSendArbitraryTxInput = {\n onSuccess?: (hash: Hash) => void;\n onError?: (error: Error) => void;\n};\n\ntype TxRequestWithChainId = TransactionRequest & { chainId: SupportedChainId };\n\nexport type UseSendArbitraryTxReturn = {\n sendTransaction: (txParams: TxRequestWithChainId) => void;\n sendTransactionAsync: (txParams: TxRequestWithChainId) => Promise<Hash>;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n txHash?: Hash;\n reset: () => void;\n};\n\nexport const useSendArbitraryTx = ({\n onSuccess,\n onError,\n}: UseSendArbitraryTxInput = {}): UseSendArbitraryTxReturn => {\n const { isConnected } = useConnection();\n\n const {\n mutate: sendTransaction,\n mutateAsync: sendTransactionAsync,\n isPending,\n isSuccess,\n isError,\n error,\n data: txHash,\n reset,\n } = useSendTransaction({\n mutation: {\n onSuccess,\n onError,\n },\n });\n\n const sendTx = (txParams: TxRequestWithChainId) => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(txParams, \"Transaction is required\");\n assert(txParams.to, \"Transaction recipient (to) is required\");\n\n // Execute transaction\n sendTransaction(txParams);\n };\n\n const sendTxAsync = async (txParams: TxRequestWithChainId): Promise<Hash> => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(txParams, \"Transaction is required\");\n assert(txParams.to, \"Transaction recipient (to) is required\");\n\n // Execute transaction and return the hash\n return sendTransactionAsync(txParams);\n };\n\n return {\n sendTransaction: sendTx,\n sendTransactionAsync: sendTxAsync,\n isPending,\n isSuccess,\n isError,\n error,\n txHash,\n reset,\n };\n};\n"],"mappings":";;;;;AAuBA,IAAawB,KAAqBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAAC;CAAA,AAAAF,EAAA,OAAAD,IAGHG,IAAAF,EAAA,MAHIE,IAAAH,MAAAI,KAAAA,IAAA,EAGJ,GAHIJ,GAGJC,EAAA,KAAAD,GAAAC,EAAA,KAAAE;CAHI,IAAA,EAAArB,cAAAE,eAAAmB,GAIjC,EAAAE,mBAAwB5B,GAAe,EAAC6B;CAAA,AAAAL,EAAA,OAAAjB,KAAAiB,EAAA,OAAAnB,KAWjBwB,IAAA,EAAAC,UACX;EAAAzB;EAAAE;EAGV,EACD,EAAAiB,EAAA,KAAAjB,GAAAiB,EAAA,KAAAnB,GAAAmB,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAdD,IAAA,EAAAO,QAAAlB,GAAAmB,aAAAjB,GAAAE,cAAAC,cAAAC,YAAAX,UAAAyB,MAAAb,GAAAC,aASIpB,EAAmB4B,EAKrB,EAACK;CAAA,AAAAV,EAAA,OAAAI,KAAAJ,EAAA,OAAAX,KAEYqB,KAAApB,MAAA;EAObD,AALAX,EAAO0B,GAAa,uBAAuB,EAC3C1B,EAAOY,GAAU,0BAA0B,EAC3CZ,EAAOY,EAAQqB,IAAK,yCAAyC,EAG7DtB,EAAgBC,EAAS;IAC1BU,EAAA,KAAAI,GAAAJ,EAAA,KAAAX,GAAAW,EAAA,KAAAU,KAAAA,IAAAV,EAAA;CARD,IAAAY,IAAeF,GAQbG;CAAA,AAAAb,EAAA,OAAAI,KAAAJ,EAAA,OAAAT,KAEkBsB,IAAA,OAAAC,OAElBpC,EAAO0B,GAAa,uBAAuB,EAC3C1B,EAAOY,GAAU,0BAA0B,EAC3CZ,EAAOY,EAAQqB,IAAK,yCAAyC,EAGtDpB,EAAqBD,EAAS,GACtCU,EAAA,KAAAI,GAAAJ,EAAA,KAAAT,GAAAS,EAAA,MAAAa,KAAAA,IAAAb,EAAA;CARD,IAAAe,IAAoBF,GAQlBG;CAWD,OAXChB,EAAA,QAAAhB,KAAAgB,EAAA,QAAAL,KAAAK,EAAA,QAAAP,KAAAO,EAAA,QAAAN,KAAAM,EAAA,QAAAH,KAAAG,EAAA,QAAAY,KAAAZ,EAAA,QAAAe,KAAAf,EAAA,QAAAJ,KAEKoB,IAAA;EAAA3B,iBACYuB;EAAMrB,sBACDwB;EAAWtB;EAAAC;EAAAC;EAAAX;EAAAY;EAAAC;EAOlC,EAAAG,EAAA,MAAAhB,GAAAgB,EAAA,MAAAL,GAAAK,EAAA,MAAAP,GAAAO,EAAA,MAAAN,GAAAM,EAAA,MAAAH,GAAAG,EAAA,MAAAY,GAAAZ,EAAA,MAAAe,GAAAf,EAAA,MAAAJ,GAAAI,EAAA,MAAAgB,KAAAA,IAAAhB,EAAA,KATMgB"}
@@ -7,16 +7,16 @@ import { useAwaitCalls as o } from "../../batch/useAwaitCalls.js";
7
7
  import { c as s } from "react-compiler-runtime";
8
8
  import { useQueryClient as c } from "@tanstack/react-query";
9
9
  import { assert as l } from "ts-essentials";
10
- import { useAccount as u, useConfig as d, useConnectorClient as f, useWaitForTransactionReceipt as p } from "wagmi";
10
+ import { useConfig as u, useConnection as d, useConnectorClient as f, useWaitForTransactionReceipt as p } from "wagmi";
11
11
  import "wagmi/query";
12
12
  //#region src/hooks/txs/queries/useAwaitTx.ts
13
13
  function m(r) {
14
- let c = s(25), { chainId: m, confirmations: h, hash: g, query: _ } = r, v = t("AwaitTx"), y = i(), b = a(), x = n(), S = y ? e : void 0, { address: C } = u(), w;
14
+ let c = s(25), { chainId: m, confirmations: h, hash: g, query: _ } = r, v = t("AwaitTx"), y = i(), b = a(), x = n(), S = y ? e : void 0, { address: C } = d(), w;
15
15
  c[0] !== C || c[1] !== m ? (w = {
16
16
  chainId: m,
17
17
  account: C
18
18
  }, c[0] = C, c[1] = m, c[2] = w) : w = c[2];
19
- let { data: T } = f(w), E = d(), D = E, O = g, k;
19
+ let { data: T } = f(w), E = u(), D = E, O = g, k;
20
20
  if (x) k = g;
21
21
  else if (b && T) {
22
22
  let e;
@@ -52,7 +52,7 @@ function m(r) {
52
52
  }, c[17] = m, c[18] = D, c[19] = h, c[20] = _, c[21] = O, c[22] = I, c[23] = S, c[24] = L) : L = c[24], p(L);
53
53
  }
54
54
  function h() {
55
- let e = s(4), t = c(), n = d(), a = i(), o;
55
+ let e = s(4), t = c(), n = u(), a = i(), o;
56
56
  return e[0] !== a || e[1] !== t || e[2] !== n ? (o = r({
57
57
  queryClient: t,
58
58
  wagmiConfig: n,
@@ -1 +1 @@
1
- {"version":3,"file":"useAwaitTx.js","names":["wagmiConfig","SupportedChainId","useQueryClient","useAccount","useConfig","useConnectorClient","useWaitForTransactionReceipt","UseWaitForTransactionReceiptParameters","UseWaitForTransactionReceiptReturnType","WaitForTransactionReceiptData","useLogger","ensureTxReceiptFactory","EnsureTxReceiptFn","useConnectedSafe","useConnectedToSafeIframe","SAFE_CALLS_WAIT_TIMEOUT","assert","useIsSafeThroughWalletConnect","useAwaitCalls","UseAwaitTxParameters","DefaultTxReceiptSelect","chainId","confirmations","hash","query","SelectData","UseAwaitTxReturnType","TxReceiptFromWagmi","useAwaitTx","t0","$","_c","logger","isSafe","isConnectedToSafeIframe","isConnectedToSafeThroughWalletConnect","timeout","undefined","address","account","t1","data","connectorClient","config","realtxHash","sendCallsId","t2","options","t3","getClient","callsQueryEnabled","enabled","id","sendCallsReceipt","error","sendCallsError","lastCallsReceiptTxHash","receipts","length","transactionHash","t4","log","t5","onReplaced","queryResult","useEnsureTxReceipt","queryClient"],"sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"sourcesContent":["import type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n useAccount,\n useConfig,\n useConnectorClient,\n useWaitForTransactionReceipt,\n type UseWaitForTransactionReceiptParameters,\n type UseWaitForTransactionReceiptReturnType,\n} from \"wagmi\";\nimport { type WaitForTransactionReceiptData } from \"wagmi/query\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n ensureTxReceiptFactory,\n type EnsureTxReceiptFn,\n} from \"@/transactions/queries/ensureTxReceipt\";\nimport {\n useConnectedSafe,\n useConnectedToSafeIframe,\n} from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { assert } from \"ts-essentials\";\nimport { useIsSafeThroughWalletConnect } from \"@/hooks/connectors/useIsSafeThroughWalletConnect\";\nimport { useAwaitCalls } from \"@/hooks/batch/useAwaitCalls\";\n\nexport type UseAwaitTxParameters<SelectData = DefaultTxReceiptSelect> = {\n chainId: SupportedChainId;\n confirmations?: number;\n hash?: `0x${string}`;\n query?: UseWaitForTransactionReceiptParameters<\n typeof wagmiConfig,\n SupportedChainId,\n SelectData\n >[\"query\"];\n};\n\nexport type DefaultTxReceiptSelect = WaitForTransactionReceiptData<\n typeof wagmiConfig,\n SupportedChainId\n>;\n\nexport type UseAwaitTxReturnType<SelectData = DefaultTxReceiptSelect> =\n UseWaitForTransactionReceiptReturnType<\n typeof wagmiConfig,\n SupportedChainId,\n SelectData\n >;\n\nexport type TxReceiptFromWagmi = DefaultTxReceiptSelect;\n\nexport function useAwaitTx<SelectData = DefaultTxReceiptSelect>({\n chainId,\n confirmations,\n hash,\n query,\n}: UseAwaitTxParameters<SelectData>): UseAwaitTxReturnType<SelectData> {\n const logger = useLogger(\"AwaitTx\");\n\n // connected to Safe through WalletConnect or in Safe App\n const isSafe = useConnectedSafe();\n // connected to Safe in Safe App (either directly or through external provider)\n const isConnectedToSafeIframe = useConnectedToSafeIframe();\n\n const isConnectedToSafeThroughWalletConnect = useIsSafeThroughWalletConnect();\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n const { address: account } = useAccount();\n\n const { data: connectorClient } = useConnectorClient({\n chainId,\n account,\n });\n\n const wagmiConfig = useConfig();\n\n let config = wagmiConfig;\n let realtxHash = hash;\n let sendCallsId: string | undefined;\n\n if (isConnectedToSafeThroughWalletConnect) {\n /** Same logic as {@link ensureTxReceiptFactory} (Safe+WalletConnect branch). Full rationale and refs there. */\n sendCallsId = hash; // will disable calls query if no hash\n } else if (isConnectedToSafeIframe && connectorClient) {\n // always use connector client if connected through native safe connector.\n // safe provider returns a safeTxHash that is different from a real tx hash.\n // if connected to safe through WalletConnect - publicClient returns a real tx hash.\n config = {\n ...wagmiConfig,\n // doesn't work with Safe through WalletConnect connector\n getClient: (options) => {\n // either no chainId passed in options or chainId matches the expected chainId\n assert(\n !options?.chainId || options.chainId === chainId,\n \"chainId mismatch\"\n );\n return connectorClient;\n },\n } as typeof wagmiConfig;\n }\n\n // will disable calls query if disabled through query.input\n const callsQueryEnabled =\n typeof query?.enabled === \"boolean\" ? query.enabled : true;\n\n const { data: sendCallsReceipt, error: sendCallsError } = useAwaitCalls({\n id: sendCallsId,\n query: {\n enabled: callsQueryEnabled,\n },\n });\n\n const lastCallsReceiptTxHash =\n sendCallsReceipt?.receipts?.[sendCallsReceipt.receipts.length - 1]\n ?.transactionHash;\n if (isConnectedToSafeThroughWalletConnect) {\n realtxHash = lastCallsReceiptTxHash; // will disable txReceipt query if no lastCallsReceiptTxHash,\n // after callsStatus is updated to success or failure, realtxHash will be updated and txReceipt query will be enabled\n\n if (!realtxHash && sendCallsError) {\n // it is possible Safe through WalletConnect could be connected but called with a past non-Safe tx from localStorage,\n // in that case we should try to get the tx receipt normally\n realtxHash = hash;\n }\n }\n\n const queryResult = useWaitForTransactionReceipt<\n typeof wagmiConfig,\n SupportedChainId,\n SelectData\n >({\n config,\n chainId,\n confirmations,\n timeout,\n hash: realtxHash,\n query,\n onReplaced: (data) => {\n // @TODO connect to some atom if needed to detect cancelled/sped-up txs,\n // but sped-up txs may be detected correct internally and re-awaited with a new hash,\n // need to test\n // https://viem.sh/docs/actions/public/waitForTransactionReceipt.html#json-rpc-methods\n logger.log(\"onReplaced:tx\", hash, data);\n },\n });\n\n return queryResult;\n}\n\nexport function useEnsureTxReceipt(): EnsureTxReceiptFn {\n const queryClient = useQueryClient();\n const wagmiConfig = useConfig();\n const isSafe = useConnectedSafe();\n\n return ensureTxReceiptFactory({ queryClient, wagmiConfig, isSafe });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useAwaitTx.js","names":["wagmiConfig","SupportedChainId","useQueryClient","useConnection","useConfig","useConnectorClient","useWaitForTransactionReceipt","UseWaitForTransactionReceiptParameters","UseWaitForTransactionReceiptReturnType","WaitForTransactionReceiptData","useLogger","ensureTxReceiptFactory","EnsureTxReceiptFn","useConnectedSafe","useConnectedToSafeIframe","SAFE_CALLS_WAIT_TIMEOUT","assert","useIsSafeThroughWalletConnect","useAwaitCalls","UseAwaitTxParameters","DefaultTxReceiptSelect","chainId","confirmations","hash","query","SelectData","UseAwaitTxReturnType","TxReceiptFromWagmi","useAwaitTx","t0","$","_c","logger","isSafe","isConnectedToSafeIframe","isConnectedToSafeThroughWalletConnect","timeout","undefined","address","account","t1","data","connectorClient","config","realtxHash","sendCallsId","t2","options","t3","getClient","callsQueryEnabled","enabled","id","sendCallsReceipt","error","sendCallsError","lastCallsReceiptTxHash","receipts","length","transactionHash","t4","log","t5","onReplaced","queryResult","useEnsureTxReceipt","queryClient"],"sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"sourcesContent":["import type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n useConnection,\n useConfig,\n useConnectorClient,\n useWaitForTransactionReceipt,\n type UseWaitForTransactionReceiptParameters,\n type UseWaitForTransactionReceiptReturnType,\n} from \"wagmi\";\nimport { type WaitForTransactionReceiptData } from \"wagmi/query\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n ensureTxReceiptFactory,\n type EnsureTxReceiptFn,\n} from \"@/transactions/queries/ensureTxReceipt\";\nimport {\n useConnectedSafe,\n useConnectedToSafeIframe,\n} from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { assert } from \"ts-essentials\";\nimport { useIsSafeThroughWalletConnect } from \"@/hooks/connectors/useIsSafeThroughWalletConnect\";\nimport { useAwaitCalls } from \"@/hooks/batch/useAwaitCalls\";\n\nexport type UseAwaitTxParameters<SelectData = DefaultTxReceiptSelect> = {\n chainId: SupportedChainId;\n confirmations?: number;\n hash?: `0x${string}`;\n query?: UseWaitForTransactionReceiptParameters<\n typeof wagmiConfig,\n SupportedChainId,\n SelectData\n >[\"query\"];\n};\n\nexport type DefaultTxReceiptSelect = WaitForTransactionReceiptData<\n typeof wagmiConfig,\n SupportedChainId\n>;\n\nexport type UseAwaitTxReturnType<SelectData = DefaultTxReceiptSelect> =\n UseWaitForTransactionReceiptReturnType<\n typeof wagmiConfig,\n SupportedChainId,\n SelectData\n >;\n\nexport type TxReceiptFromWagmi = DefaultTxReceiptSelect;\n\nexport function useAwaitTx<SelectData = DefaultTxReceiptSelect>({\n chainId,\n confirmations,\n hash,\n query,\n}: UseAwaitTxParameters<SelectData>): UseAwaitTxReturnType<SelectData> {\n const logger = useLogger(\"AwaitTx\");\n\n // connected to Safe through WalletConnect or in Safe App\n const isSafe = useConnectedSafe();\n // connected to Safe in Safe App (either directly or through external provider)\n const isConnectedToSafeIframe = useConnectedToSafeIframe();\n\n const isConnectedToSafeThroughWalletConnect = useIsSafeThroughWalletConnect();\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n const { address: account } = useConnection();\n\n const { data: connectorClient } = useConnectorClient({\n chainId,\n account,\n });\n\n const wagmiConfig = useConfig();\n\n let config = wagmiConfig;\n let realtxHash = hash;\n let sendCallsId: string | undefined;\n\n if (isConnectedToSafeThroughWalletConnect) {\n /** Same logic as {@link ensureTxReceiptFactory} (Safe+WalletConnect branch). Full rationale and refs there. */\n sendCallsId = hash; // will disable calls query if no hash\n } else if (isConnectedToSafeIframe && connectorClient) {\n // always use connector client if connected through native safe connector.\n // safe provider returns a safeTxHash that is different from a real tx hash.\n // if connected to safe through WalletConnect - publicClient returns a real tx hash.\n config = {\n ...wagmiConfig,\n // doesn't work with Safe through WalletConnect connector\n getClient: (options) => {\n // either no chainId passed in options or chainId matches the expected chainId\n assert(\n !options?.chainId || options.chainId === chainId,\n \"chainId mismatch\"\n );\n return connectorClient;\n },\n } as typeof wagmiConfig;\n }\n\n // will disable calls query if disabled through query.input\n const callsQueryEnabled =\n typeof query?.enabled === \"boolean\" ? query.enabled : true;\n\n const { data: sendCallsReceipt, error: sendCallsError } = useAwaitCalls({\n id: sendCallsId,\n query: {\n enabled: callsQueryEnabled,\n },\n });\n\n const lastCallsReceiptTxHash =\n sendCallsReceipt?.receipts?.[sendCallsReceipt.receipts.length - 1]\n ?.transactionHash;\n if (isConnectedToSafeThroughWalletConnect) {\n realtxHash = lastCallsReceiptTxHash; // will disable txReceipt query if no lastCallsReceiptTxHash,\n // after callsStatus is updated to success or failure, realtxHash will be updated and txReceipt query will be enabled\n\n if (!realtxHash && sendCallsError) {\n // it is possible Safe through WalletConnect could be connected but called with a past non-Safe tx from localStorage,\n // in that case we should try to get the tx receipt normally\n realtxHash = hash;\n }\n }\n\n const queryResult = useWaitForTransactionReceipt<\n typeof wagmiConfig,\n SupportedChainId,\n SelectData\n >({\n config,\n chainId,\n confirmations,\n timeout,\n hash: realtxHash,\n query,\n onReplaced: (data) => {\n // @TODO connect to some atom if needed to detect cancelled/sped-up txs,\n // but sped-up txs may be detected correct internally and re-awaited with a new hash,\n // need to test\n // https://viem.sh/docs/actions/public/waitForTransactionReceipt.html#json-rpc-methods\n logger.log(\"onReplaced:tx\", hash, data);\n },\n });\n\n return queryResult;\n}\n\nexport function useEnsureTxReceipt(): EnsureTxReceiptFn {\n const queryClient = useQueryClient();\n const wagmiConfig = useConfig();\n const isSafe = useConnectedSafe();\n\n return ensureTxReceiptFactory({ queryClient, wagmiConfig, isSafe });\n}\n"],"mappings":"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"}