@velora-dex/widget 0.4.14 → 0.5.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.
- package/dist/components/web3/ConnectWallets/walletFlags.d.ts +90 -0
- package/dist/components/web3/ConnectWallets/walletFlags.d.ts.map +1 -0
- package/dist/components/web3/ConnectWallets/walletFlags.js +104 -0
- package/dist/components/web3/ConnectWallets/walletFlags.js.map +1 -0
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +4 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +23 -3
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +24 -14
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.js +44 -40
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts +15 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts.map +1 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js +66 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js.map +1 -0
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +5 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +75 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +85 -49
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js +33 -22
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts +7 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js +84 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts +12 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js +227 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts +8 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.js +20 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts +12 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js +49 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js.map +1 -0
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +38 -28
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +16 -18
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts +2 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +78 -64
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js +21 -14
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts +2 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js +66 -24
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js +11 -7
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +4 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js +20 -2
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +5 -4
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +15 -21
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/steps.d.ts +4 -0
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +22 -5
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +37 -11
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +4 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +133 -31
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts +7 -2
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +18 -14
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
- package/dist/core/state/widgetEventsAtom.js +51 -37
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/events/types/{cancel.d.ts → cancelOrder.d.ts} +5 -2
- package/dist/events/types/cancelOrder.d.ts.map +1 -0
- package/dist/events/types/cancelTx.d.ts +35 -0
- package/dist/events/types/cancelTx.d.ts.map +1 -0
- package/dist/events/types/index.d.ts +5 -2
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/events/types/swap.d.ts +11 -1
- package/dist/events/types/swap.d.ts.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.js +1 -0
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +20 -2
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +197 -74
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +0 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +6 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +37 -24
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts +2 -2
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +28 -42
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +6 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +16 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +10 -4
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +176 -145
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts +11 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js +69 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +24 -28
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts +6 -2
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js +8 -2
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.d.ts +6 -0
- package/dist/hooks/swap/tradeFlow/common/errors.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js +15 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +6 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +55 -19
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +2 -2
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +45 -57
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +6 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +26 -5
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts +4 -4
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +23 -37
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +13 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +93 -26
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +7 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +59 -42
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/txs/mutations/useReplaceTx.d.ts +86 -0
- package/dist/hooks/txs/mutations/useReplaceTx.d.ts.map +1 -0
- package/dist/hooks/txs/mutations/useReplaceTx.js +514 -0
- package/dist/hooks/txs/mutations/useReplaceTx.js.map +1 -0
- package/dist/hooks/txs/mutations/useSendTx.d.ts +7 -2
- package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAccountNonce.d.ts +9 -0
- package/dist/hooks/txs/queries/useAccountNonce.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useAccountNonce.js +31 -0
- package/dist/hooks/txs/queries/useAccountNonce.js.map +1 -0
- package/dist/hooks/txs/queries/useTxFees.d.ts +16 -0
- package/dist/hooks/txs/queries/useTxFees.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useTxFees.js +103 -0
- package/dist/hooks/txs/queries/useTxFees.js.map +1 -0
- package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js +3 -2
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/txs/queries/useTxResponse.d.ts +2390 -0
- package/dist/hooks/txs/queries/useTxResponse.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useTxResponse.js +75 -0
- package/dist/hooks/txs/queries/useTxResponse.js.map +1 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts +2 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js +30 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/styles.css +3 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts +16 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts.map +1 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js +23 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js.map +1 -0
- package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/transactions/queries/ensureTxResponse.d.ts +17 -0
- package/dist/transactions/queries/ensureTxResponse.d.ts.map +1 -0
- package/dist/transactions/queries/ensureTxResponse.js +23 -0
- package/dist/transactions/queries/ensureTxResponse.js.map +1 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts +7 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts.map +1 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js +10 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js.map +1 -0
- package/dist/transactions/state/transactionsActionAtom.d.ts +12 -0
- package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.js +40 -1
- package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
- package/dist/transactions/status.d.ts +1 -1
- package/dist/transactions/status.d.ts.map +1 -1
- package/dist/transactions/status.js +6 -0
- package/dist/transactions/status.js.map +1 -1
- package/dist/transactions/types.d.ts +15 -2
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/events/types/cancel.d.ts.map +0 -1
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
+
import { useChainId, useAccount } from 'wagmi';
|
|
3
|
+
import '@wagmi/core';
|
|
4
|
+
import { TransactionNotFoundError } from 'viem';
|
|
5
|
+
import { assert } from 'ts-essentials';
|
|
6
|
+
import { useSendArbitraryTx } from './useSendTx.js';
|
|
7
|
+
import { useTxResponse } from '../queries/useTxResponse.js';
|
|
8
|
+
import { passFeeValueTxTypesOnly, useTxFees, useGetChainFeeType } from '../queries/useTxFees.js';
|
|
9
|
+
import { useAwaitTx, useEnsureTxReceipt } from '../queries/useAwaitTx.js';
|
|
10
|
+
import { useMutation } from '@tanstack/react-query';
|
|
11
|
+
import { useLogger } from '../../../core/logger.js';
|
|
12
|
+
import { useGetAccountNonce } from '../queries/useAccountNonce.js';
|
|
13
|
+
import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
|
|
14
|
+
import { useWalletCanReplaceTx } from '../queries/useWalletCanReplaceTx.js';
|
|
15
|
+
import { useMarkTxAsDropped } from '../../../transactions/state/hooks/useMarkTxAsDropped.js';
|
|
16
|
+
|
|
17
|
+
const GAS_BUMP_FACTOR = {
|
|
18
|
+
num: 115n,
|
|
19
|
+
denom: 100n
|
|
20
|
+
};
|
|
21
|
+
function increaseGas(value, min = 0n) {
|
|
22
|
+
const increased = value * GAS_BUMP_FACTOR.num / GAS_BUMP_FACTOR.denom;
|
|
23
|
+
return increased < min ? min : increased;
|
|
24
|
+
}
|
|
25
|
+
function buildReplacementRequest({
|
|
26
|
+
action,
|
|
27
|
+
currentFees,
|
|
28
|
+
tx
|
|
29
|
+
}) {
|
|
30
|
+
assert(tx, "Transaction not found");
|
|
31
|
+
assert(tx.from, "Transaction has no from address");
|
|
32
|
+
assert(tx.nonce !== void 0, "Transaction has no nonce");
|
|
33
|
+
const base = {
|
|
34
|
+
from: tx.from,
|
|
35
|
+
nonce: tx.nonce,
|
|
36
|
+
gas: tx.gas
|
|
37
|
+
};
|
|
38
|
+
if (action === "cancel") {
|
|
39
|
+
base.to = tx.from;
|
|
40
|
+
base.value = 0n;
|
|
41
|
+
base.data = "0x";
|
|
42
|
+
} else {
|
|
43
|
+
assert(tx.to, "Transaction has no to address");
|
|
44
|
+
base.to = tx.to;
|
|
45
|
+
base.value = tx.value ?? 0n;
|
|
46
|
+
base.data = tx.input ?? "0x";
|
|
47
|
+
}
|
|
48
|
+
const hasEip1559 = "maxFeePerGas" in tx && tx.maxFeePerGas != null && "maxPriorityFeePerGas" in tx && tx.maxPriorityFeePerGas != null;
|
|
49
|
+
const hasLegacyGasPrice = "gasPrice" in tx && tx.gasPrice != null;
|
|
50
|
+
const isNotLegacyGasPrice = !hasLegacyGasPrice && tx.type !== "legacy";
|
|
51
|
+
if (hasEip1559 || isNotLegacyGasPrice) {
|
|
52
|
+
base.maxFeePerGas = increaseGas(tx.maxFeePerGas ?? 0n, currentFees.maxFeePerGas);
|
|
53
|
+
base.maxPriorityFeePerGas = increaseGas(tx.maxPriorityFeePerGas ?? 0n, currentFees.maxPriorityFeePerGas);
|
|
54
|
+
} else {
|
|
55
|
+
const gasPrice = "gasPrice" in tx ? tx.gasPrice ?? 0n : 0n;
|
|
56
|
+
base.gasPrice = increaseGas(gasPrice, currentFees.gasPrice);
|
|
57
|
+
}
|
|
58
|
+
return base;
|
|
59
|
+
}
|
|
60
|
+
const REPLACE_TX_MUTATION_KEY = "replaceTx";
|
|
61
|
+
function useReplaceTx(t0) {
|
|
62
|
+
const $ = distExports.c(86);
|
|
63
|
+
const {
|
|
64
|
+
txHash,
|
|
65
|
+
onSuccess,
|
|
66
|
+
onError,
|
|
67
|
+
onSettled,
|
|
68
|
+
chainId: _chainId,
|
|
69
|
+
cancelTxType,
|
|
70
|
+
enabled: t1
|
|
71
|
+
} = t0;
|
|
72
|
+
const enabled = t1 === void 0 ? true : t1;
|
|
73
|
+
const appChainId = useChainId();
|
|
74
|
+
const chainId = _chainId ?? appChainId;
|
|
75
|
+
const isWalletSupported = useWalletCanReplaceTx();
|
|
76
|
+
const queriesEnabled = isWalletSupported && enabled;
|
|
77
|
+
let t2;
|
|
78
|
+
if ($[0] !== chainId || $[1] !== queriesEnabled || $[2] !== txHash) {
|
|
79
|
+
t2 = {
|
|
80
|
+
hash: txHash,
|
|
81
|
+
chainId,
|
|
82
|
+
enabled: queriesEnabled
|
|
83
|
+
};
|
|
84
|
+
$[0] = chainId;
|
|
85
|
+
$[1] = queriesEnabled;
|
|
86
|
+
$[2] = txHash;
|
|
87
|
+
$[3] = t2;
|
|
88
|
+
} else {
|
|
89
|
+
t2 = $[3];
|
|
90
|
+
}
|
|
91
|
+
const {
|
|
92
|
+
query: txResponseQuery,
|
|
93
|
+
ensureTxResponse
|
|
94
|
+
} = useTxResponse(t2);
|
|
95
|
+
const originalTxResponse = txResponseQuery.data;
|
|
96
|
+
let t3;
|
|
97
|
+
if ($[4] !== originalTxResponse || $[5] !== txHash || $[6] !== txResponseQuery.error || $[7] !== txResponseQuery.isError || $[8] !== txResponseQuery.isPending || $[9] !== txResponseQuery.isSuccess) {
|
|
98
|
+
t3 = {
|
|
99
|
+
response: originalTxResponse,
|
|
100
|
+
hash: txHash,
|
|
101
|
+
isPending: txResponseQuery.isPending,
|
|
102
|
+
isSuccess: txResponseQuery.isSuccess,
|
|
103
|
+
isError: txResponseQuery.isError,
|
|
104
|
+
error: txResponseQuery.error
|
|
105
|
+
};
|
|
106
|
+
$[4] = originalTxResponse;
|
|
107
|
+
$[5] = txHash;
|
|
108
|
+
$[6] = txResponseQuery.error;
|
|
109
|
+
$[7] = txResponseQuery.isError;
|
|
110
|
+
$[8] = txResponseQuery.isPending;
|
|
111
|
+
$[9] = txResponseQuery.isSuccess;
|
|
112
|
+
$[10] = t3;
|
|
113
|
+
} else {
|
|
114
|
+
t3 = $[10];
|
|
115
|
+
}
|
|
116
|
+
const originalTx = t3;
|
|
117
|
+
let t4;
|
|
118
|
+
if ($[11] !== originalTxResponse) {
|
|
119
|
+
t4 = originalTxResponse?.type ? passFeeValueTxTypesOnly(originalTxResponse.type) : void 0;
|
|
120
|
+
$[11] = originalTxResponse;
|
|
121
|
+
$[12] = t4;
|
|
122
|
+
} else {
|
|
123
|
+
t4 = $[12];
|
|
124
|
+
}
|
|
125
|
+
let t5;
|
|
126
|
+
if ($[13] !== chainId || $[14] !== queriesEnabled || $[15] !== t4) {
|
|
127
|
+
t5 = {
|
|
128
|
+
chainId,
|
|
129
|
+
type: t4,
|
|
130
|
+
enabled: queriesEnabled
|
|
131
|
+
};
|
|
132
|
+
$[13] = chainId;
|
|
133
|
+
$[14] = queriesEnabled;
|
|
134
|
+
$[15] = t4;
|
|
135
|
+
$[16] = t5;
|
|
136
|
+
} else {
|
|
137
|
+
t5 = $[16];
|
|
138
|
+
}
|
|
139
|
+
const {
|
|
140
|
+
ensureEstimateFeesPerGas,
|
|
141
|
+
query: currentFeesQuery
|
|
142
|
+
} = useTxFees(t5);
|
|
143
|
+
const sendTxMut = useSendArbitraryTx();
|
|
144
|
+
const replacementTxHash = sendTxMut.txHash;
|
|
145
|
+
let t6;
|
|
146
|
+
if ($[17] !== queriesEnabled) {
|
|
147
|
+
t6 = {
|
|
148
|
+
enabled: queriesEnabled
|
|
149
|
+
};
|
|
150
|
+
$[17] = queriesEnabled;
|
|
151
|
+
$[18] = t6;
|
|
152
|
+
} else {
|
|
153
|
+
t6 = $[18];
|
|
154
|
+
}
|
|
155
|
+
let t7;
|
|
156
|
+
if ($[19] !== chainId || $[20] !== replacementTxHash || $[21] !== t6) {
|
|
157
|
+
t7 = {
|
|
158
|
+
chainId,
|
|
159
|
+
hash: replacementTxHash,
|
|
160
|
+
query: t6
|
|
161
|
+
};
|
|
162
|
+
$[19] = chainId;
|
|
163
|
+
$[20] = replacementTxHash;
|
|
164
|
+
$[21] = t6;
|
|
165
|
+
$[22] = t7;
|
|
166
|
+
} else {
|
|
167
|
+
t7 = $[22];
|
|
168
|
+
}
|
|
169
|
+
const replacementTxReceiptQuery = useAwaitTx(t7);
|
|
170
|
+
let t8;
|
|
171
|
+
if ($[23] !== replacementTxHash || $[24] !== replacementTxReceiptQuery.data || $[25] !== replacementTxReceiptQuery.error || $[26] !== replacementTxReceiptQuery.isError || $[27] !== replacementTxReceiptQuery.isPending || $[28] !== replacementTxReceiptQuery.isSuccess) {
|
|
172
|
+
t8 = {
|
|
173
|
+
hash: replacementTxHash,
|
|
174
|
+
receipt: replacementTxReceiptQuery.data,
|
|
175
|
+
isPending: replacementTxReceiptQuery.isPending,
|
|
176
|
+
isSuccess: replacementTxReceiptQuery.isSuccess,
|
|
177
|
+
isError: replacementTxReceiptQuery.isError,
|
|
178
|
+
error: replacementTxReceiptQuery.error
|
|
179
|
+
};
|
|
180
|
+
$[23] = replacementTxHash;
|
|
181
|
+
$[24] = replacementTxReceiptQuery.data;
|
|
182
|
+
$[25] = replacementTxReceiptQuery.error;
|
|
183
|
+
$[26] = replacementTxReceiptQuery.isError;
|
|
184
|
+
$[27] = replacementTxReceiptQuery.isPending;
|
|
185
|
+
$[28] = replacementTxReceiptQuery.isSuccess;
|
|
186
|
+
$[29] = t8;
|
|
187
|
+
} else {
|
|
188
|
+
t8 = $[29];
|
|
189
|
+
}
|
|
190
|
+
const replacementTx = t8;
|
|
191
|
+
const ensureTxReceipt = useEnsureTxReceipt();
|
|
192
|
+
const logger = useLogger("ReplaceTx");
|
|
193
|
+
const getAccountNonce = useGetAccountNonce();
|
|
194
|
+
const getChainFeeType = useGetChainFeeType();
|
|
195
|
+
const {
|
|
196
|
+
address: account
|
|
197
|
+
} = useAccount();
|
|
198
|
+
const {
|
|
199
|
+
onCancelTx
|
|
200
|
+
} = useWidgetEvents();
|
|
201
|
+
let t9;
|
|
202
|
+
if ($[30] !== account || $[31] !== cancelTxType || $[32] !== chainId || $[33] !== ensureEstimateFeesPerGas || $[34] !== ensureTxReceipt || $[35] !== ensureTxResponse || $[36] !== getAccountNonce || $[37] !== getChainFeeType || $[38] !== isWalletSupported || $[39] !== logger || $[40] !== onCancelTx || $[41] !== sendTxMut) {
|
|
203
|
+
t9 = async (t102) => {
|
|
204
|
+
const {
|
|
205
|
+
hash,
|
|
206
|
+
action,
|
|
207
|
+
onTxSent,
|
|
208
|
+
signal
|
|
209
|
+
} = t102;
|
|
210
|
+
assert(chainId != null, "Chain not selected");
|
|
211
|
+
assert(account, "Account not connected");
|
|
212
|
+
assert(isWalletSupported, "Wallet does not support replacement txs or txParams.nonce");
|
|
213
|
+
sendTxMut.reset();
|
|
214
|
+
signal?.throwIfAborted();
|
|
215
|
+
let originalTxObject = null;
|
|
216
|
+
try {
|
|
217
|
+
originalTxObject = await ensureTxResponse({
|
|
218
|
+
hash,
|
|
219
|
+
chainId
|
|
220
|
+
});
|
|
221
|
+
} catch (t112) {
|
|
222
|
+
const error = t112;
|
|
223
|
+
if (error instanceof TransactionNotFoundError) {
|
|
224
|
+
logger.error("Original tx not found", error);
|
|
225
|
+
} else {
|
|
226
|
+
throw error;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (!originalTxObject) {
|
|
230
|
+
const [nonce, feeType] = await Promise.all([getAccountNonce({
|
|
231
|
+
chainId,
|
|
232
|
+
address: account
|
|
233
|
+
}), getChainFeeType(chainId)]);
|
|
234
|
+
originalTxObject = {
|
|
235
|
+
from: account,
|
|
236
|
+
nonce,
|
|
237
|
+
type: feeType,
|
|
238
|
+
hash
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
signal?.throwIfAborted();
|
|
242
|
+
const currentFees = await ensureEstimateFeesPerGas({
|
|
243
|
+
chainId,
|
|
244
|
+
type: passFeeValueTxTypesOnly(originalTxObject.type)
|
|
245
|
+
});
|
|
246
|
+
signal?.throwIfAborted();
|
|
247
|
+
const replacementRequest = buildReplacementRequest({
|
|
248
|
+
action,
|
|
249
|
+
currentFees,
|
|
250
|
+
tx: originalTxObject
|
|
251
|
+
});
|
|
252
|
+
const replacementTxHash_0 = await sendTxMut.sendTransactionAsync({
|
|
253
|
+
...replacementRequest,
|
|
254
|
+
chainId
|
|
255
|
+
});
|
|
256
|
+
if (action === "cancel") {
|
|
257
|
+
onCancelTx?.({
|
|
258
|
+
event: {
|
|
259
|
+
name: "CancelTx:sent",
|
|
260
|
+
params: {
|
|
261
|
+
chainId,
|
|
262
|
+
txType: cancelTxType,
|
|
263
|
+
originalTxHash: originalTxObject.hash,
|
|
264
|
+
originalTx: originalTxObject,
|
|
265
|
+
replacementRequest,
|
|
266
|
+
replacementTxHash: replacementTxHash_0
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
signal?.throwIfAborted();
|
|
272
|
+
logger.log("Replacement tx sent", {
|
|
273
|
+
originalTx: originalTxObject,
|
|
274
|
+
replacementRequest,
|
|
275
|
+
replacementTxHash: replacementTxHash_0
|
|
276
|
+
});
|
|
277
|
+
const replacementTxReceiptPromise = ensureTxReceipt({
|
|
278
|
+
chainId,
|
|
279
|
+
hash: replacementTxHash_0
|
|
280
|
+
});
|
|
281
|
+
if (onTxSent) {
|
|
282
|
+
onTxSent({
|
|
283
|
+
chainId,
|
|
284
|
+
transactionHash: replacementTxHash_0,
|
|
285
|
+
action: "cancelSwap",
|
|
286
|
+
receiptPromise: replacementTxReceiptPromise,
|
|
287
|
+
transactionSpecificData: {
|
|
288
|
+
action: "cancelSwap",
|
|
289
|
+
swapTxHash: hash
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
const replacementTxReceipt = await replacementTxReceiptPromise;
|
|
294
|
+
return {
|
|
295
|
+
originalTx: originalTxObject,
|
|
296
|
+
replacementRequest,
|
|
297
|
+
replacementTxHash: replacementTxHash_0,
|
|
298
|
+
replacementTxReceipt
|
|
299
|
+
};
|
|
300
|
+
};
|
|
301
|
+
$[30] = account;
|
|
302
|
+
$[31] = cancelTxType;
|
|
303
|
+
$[32] = chainId;
|
|
304
|
+
$[33] = ensureEstimateFeesPerGas;
|
|
305
|
+
$[34] = ensureTxReceipt;
|
|
306
|
+
$[35] = ensureTxResponse;
|
|
307
|
+
$[36] = getAccountNonce;
|
|
308
|
+
$[37] = getChainFeeType;
|
|
309
|
+
$[38] = isWalletSupported;
|
|
310
|
+
$[39] = logger;
|
|
311
|
+
$[40] = onCancelTx;
|
|
312
|
+
$[41] = sendTxMut;
|
|
313
|
+
$[42] = t9;
|
|
314
|
+
} else {
|
|
315
|
+
t9 = $[42];
|
|
316
|
+
}
|
|
317
|
+
const replaceTx = t9;
|
|
318
|
+
const markTxAsDropped = useMarkTxAsDropped();
|
|
319
|
+
let t10;
|
|
320
|
+
if ($[43] === Symbol.for("react.memo_cache_sentinel")) {
|
|
321
|
+
t10 = [REPLACE_TX_MUTATION_KEY];
|
|
322
|
+
$[43] = t10;
|
|
323
|
+
} else {
|
|
324
|
+
t10 = $[43];
|
|
325
|
+
}
|
|
326
|
+
let t11;
|
|
327
|
+
if ($[44] !== cancelTxType || $[45] !== chainId || $[46] !== onCancelTx) {
|
|
328
|
+
t11 = (variables) => {
|
|
329
|
+
if (variables.action !== "cancel") {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
onCancelTx?.({
|
|
333
|
+
event: {
|
|
334
|
+
name: "CancelTx:request",
|
|
335
|
+
params: {
|
|
336
|
+
chainId,
|
|
337
|
+
txType: cancelTxType,
|
|
338
|
+
originalTxHash: variables.hash
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
};
|
|
343
|
+
$[44] = cancelTxType;
|
|
344
|
+
$[45] = chainId;
|
|
345
|
+
$[46] = onCancelTx;
|
|
346
|
+
$[47] = t11;
|
|
347
|
+
} else {
|
|
348
|
+
t11 = $[47];
|
|
349
|
+
}
|
|
350
|
+
let t12;
|
|
351
|
+
if ($[48] !== cancelTxType || $[49] !== chainId || $[50] !== logger || $[51] !== markTxAsDropped || $[52] !== onCancelTx || $[53] !== onSuccess) {
|
|
352
|
+
t12 = (data, variables_0) => {
|
|
353
|
+
logger.log("Replace tx success", data);
|
|
354
|
+
markTxAsDropped({
|
|
355
|
+
account: data.originalTx.from,
|
|
356
|
+
txHash: data.originalTx.hash,
|
|
357
|
+
action: variables_0.action,
|
|
358
|
+
replacementTxHash: data.replacementTxHash
|
|
359
|
+
});
|
|
360
|
+
onSuccess?.(data);
|
|
361
|
+
if (variables_0.action !== "cancel") {
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
onCancelTx?.({
|
|
365
|
+
event: {
|
|
366
|
+
name: "CancelTx:confirmed",
|
|
367
|
+
params: {
|
|
368
|
+
chainId,
|
|
369
|
+
txType: cancelTxType,
|
|
370
|
+
originalTxHash: data.originalTx.hash,
|
|
371
|
+
originalTx: data.originalTx,
|
|
372
|
+
replacementRequest: data.replacementRequest,
|
|
373
|
+
replacementTxHash: data.replacementTxHash,
|
|
374
|
+
replacementTxReceipt: data.replacementTxReceipt
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
};
|
|
379
|
+
$[48] = cancelTxType;
|
|
380
|
+
$[49] = chainId;
|
|
381
|
+
$[50] = logger;
|
|
382
|
+
$[51] = markTxAsDropped;
|
|
383
|
+
$[52] = onCancelTx;
|
|
384
|
+
$[53] = onSuccess;
|
|
385
|
+
$[54] = t12;
|
|
386
|
+
} else {
|
|
387
|
+
t12 = $[54];
|
|
388
|
+
}
|
|
389
|
+
let t13;
|
|
390
|
+
if ($[55] !== cancelTxType || $[56] !== chainId || $[57] !== logger || $[58] !== onCancelTx || $[59] !== onError) {
|
|
391
|
+
t13 = (error_0, variables_1) => {
|
|
392
|
+
logger.error("Replace tx error", error_0);
|
|
393
|
+
onError?.(error_0);
|
|
394
|
+
if (variables_1.action !== "cancel") {
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
onCancelTx?.({
|
|
398
|
+
event: {
|
|
399
|
+
name: "CancelTx:failed",
|
|
400
|
+
params: {
|
|
401
|
+
chainId,
|
|
402
|
+
txType: cancelTxType,
|
|
403
|
+
originalTxHash: variables_1.hash,
|
|
404
|
+
error: error_0
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
};
|
|
409
|
+
$[55] = cancelTxType;
|
|
410
|
+
$[56] = chainId;
|
|
411
|
+
$[57] = logger;
|
|
412
|
+
$[58] = onCancelTx;
|
|
413
|
+
$[59] = onError;
|
|
414
|
+
$[60] = t13;
|
|
415
|
+
} else {
|
|
416
|
+
t13 = $[60];
|
|
417
|
+
}
|
|
418
|
+
let t14;
|
|
419
|
+
if ($[61] !== logger || $[62] !== onSettled) {
|
|
420
|
+
t14 = () => {
|
|
421
|
+
onSettled?.();
|
|
422
|
+
logger.log("Replace tx settled");
|
|
423
|
+
};
|
|
424
|
+
$[61] = logger;
|
|
425
|
+
$[62] = onSettled;
|
|
426
|
+
$[63] = t14;
|
|
427
|
+
} else {
|
|
428
|
+
t14 = $[63];
|
|
429
|
+
}
|
|
430
|
+
let t15;
|
|
431
|
+
if ($[64] !== replaceTx || $[65] !== t11 || $[66] !== t12 || $[67] !== t13 || $[68] !== t14) {
|
|
432
|
+
t15 = {
|
|
433
|
+
mutationFn: replaceTx,
|
|
434
|
+
mutationKey: t10,
|
|
435
|
+
onMutate: t11,
|
|
436
|
+
onSuccess: t12,
|
|
437
|
+
onError: t13,
|
|
438
|
+
onSettled: t14
|
|
439
|
+
};
|
|
440
|
+
$[64] = replaceTx;
|
|
441
|
+
$[65] = t11;
|
|
442
|
+
$[66] = t12;
|
|
443
|
+
$[67] = t13;
|
|
444
|
+
$[68] = t14;
|
|
445
|
+
$[69] = t15;
|
|
446
|
+
} else {
|
|
447
|
+
t15 = $[69];
|
|
448
|
+
}
|
|
449
|
+
const replaceTxMut = useMutation(t15);
|
|
450
|
+
let t16;
|
|
451
|
+
if ($[70] !== replaceTxMut || $[71] !== sendTxMut) {
|
|
452
|
+
t16 = () => {
|
|
453
|
+
sendTxMut.reset();
|
|
454
|
+
replaceTxMut.reset();
|
|
455
|
+
};
|
|
456
|
+
$[70] = replaceTxMut;
|
|
457
|
+
$[71] = sendTxMut;
|
|
458
|
+
$[72] = t16;
|
|
459
|
+
} else {
|
|
460
|
+
t16 = $[72];
|
|
461
|
+
}
|
|
462
|
+
const reset = t16;
|
|
463
|
+
let step;
|
|
464
|
+
if (replaceTxMut.isPending) {
|
|
465
|
+
step = "order-cancellation-approval";
|
|
466
|
+
if (replacementTx.hash) {
|
|
467
|
+
step = "order-cancellation-execution";
|
|
468
|
+
}
|
|
469
|
+
} else {
|
|
470
|
+
if (replaceTxMut.isSuccess) {
|
|
471
|
+
step = "order-cancellation-success";
|
|
472
|
+
} else {
|
|
473
|
+
if (replaceTxMut.isError) {
|
|
474
|
+
step = "order-cancellation-error";
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
let t17;
|
|
479
|
+
if ($[73] !== currentFeesQuery.data || $[74] !== isWalletSupported || $[75] !== originalTx || $[76] !== replaceTxMut.data || $[77] !== replaceTxMut.error || $[78] !== replaceTxMut.isError || $[79] !== replaceTxMut.isPending || $[80] !== replaceTxMut.isSuccess || $[81] !== replaceTxMut.mutateAsync || $[82] !== replacementTx || $[83] !== reset || $[84] !== step) {
|
|
480
|
+
t17 = {
|
|
481
|
+
originalTxResponse: originalTx,
|
|
482
|
+
replacementTx,
|
|
483
|
+
minFees: currentFeesQuery.data,
|
|
484
|
+
replaceTx: replaceTxMut.mutateAsync,
|
|
485
|
+
isPending: replaceTxMut.isPending,
|
|
486
|
+
isSuccess: replaceTxMut.isSuccess,
|
|
487
|
+
isError: replaceTxMut.isError,
|
|
488
|
+
error: replaceTxMut.error,
|
|
489
|
+
result: replaceTxMut.data,
|
|
490
|
+
reset,
|
|
491
|
+
step,
|
|
492
|
+
isWalletSupported
|
|
493
|
+
};
|
|
494
|
+
$[73] = currentFeesQuery.data;
|
|
495
|
+
$[74] = isWalletSupported;
|
|
496
|
+
$[75] = originalTx;
|
|
497
|
+
$[76] = replaceTxMut.data;
|
|
498
|
+
$[77] = replaceTxMut.error;
|
|
499
|
+
$[78] = replaceTxMut.isError;
|
|
500
|
+
$[79] = replaceTxMut.isPending;
|
|
501
|
+
$[80] = replaceTxMut.isSuccess;
|
|
502
|
+
$[81] = replaceTxMut.mutateAsync;
|
|
503
|
+
$[82] = replacementTx;
|
|
504
|
+
$[83] = reset;
|
|
505
|
+
$[84] = step;
|
|
506
|
+
$[85] = t17;
|
|
507
|
+
} else {
|
|
508
|
+
t17 = $[85];
|
|
509
|
+
}
|
|
510
|
+
return t17;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
export { useReplaceTx };
|
|
514
|
+
//# sourceMappingURL=useReplaceTx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReplaceTx.js","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"],"names":["GAS_BUMP_FACTOR","num","denom","increaseGas","value","min","increased","buildReplacementRequest","action","currentFees","tx","assert","from","nonce","undefined","base","gas","to","data","input","hasEip1559","maxFeePerGas","maxPriorityFeePerGas","hasLegacyGasPrice","gasPrice","isNotLegacyGasPrice","type","REPLACE_TX_MUTATION_KEY","useReplaceTx","t0","$","_c","txHash","onSuccess","onError","onSettled","chainId","_chainId","cancelTxType","enabled","t1","appChainId","useChainId","isWalletSupported","useWalletCanReplaceTx","queriesEnabled","t2","hash","query","txResponseQuery","ensureTxResponse","useTxResponse","originalTxResponse","t3","error","isError","isPending","isSuccess","response","originalTx","t4","passFeeValueTxTypesOnly","t5","ensureEstimateFeesPerGas","currentFeesQuery","useTxFees","sendTxMut","useSendArbitraryTx","replacementTxHash","t6","t7","replacementTxReceiptQuery","useAwaitTx","t8","receipt","replacementTx","ensureTxReceipt","useEnsureTxReceipt","logger","useLogger","getAccountNonce","useGetAccountNonce","getChainFeeType","useGetChainFeeType","address","account","useAccount","onCancelTx","useWidgetEvents","t9","t10","onTxSent","signal","reset","throwIfAborted","originalTxObject","t11","TransactionNotFoundError","feeType","Promise","all","replacementRequest","replacementTxHash_0","sendTransactionAsync","event","name","params","txType","originalTxHash","log","replacementTxReceiptPromise","transactionHash","receiptPromise","transactionSpecificData","swapTxHash","replacementTxReceipt","replaceTx","markTxAsDropped","useMarkTxAsDropped","Symbol","for","variables","t12","variables_0","t13","error_0","variables_1","t14","t15","mutationFn","mutationKey","onMutate","replaceTxMut","useMutation","t16","step","t17","mutateAsync","minFees","result"],"mappings":";;;;;;;;;;;;;;;;AAqCA,MAAMA,eAAAA,GAAkB;AAAA,EAAEC,GAAAA,EAAK,IAAA;AAAA,EAAMC,KAAAA,EAAO;AAAK,CAAA;AAEjD,SAASC,WAAAA,CAAYC,KAAAA,EAAeC,GAAAA,GAAM,EAAA,EAAY;AACpD,EAAA,MAAMC,SAAAA,GAAaF,KAAAA,GAAQJ,eAAAA,CAAgBC,GAAAA,GAAOD,eAAAA,CAAgBE,KAAAA;AAClE,EAAA,OAAOI,SAAAA,GAAYD,MAAMA,GAAAA,GAAMC,SAAAA;AACjC;AAmEA,SAASC,uBAAAA,CAAwB;AAAA,EAC/BC,MAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC;AAC6B,CAAA,EAAuB;AACpDC,EAAAA,MAAAA,CAAOD,IAAI,uBAAuB,CAAA;AAClCC,EAAAA,MAAAA,CAAOD,EAAAA,CAAGE,MAAM,iCAAiC,CAAA;AACjDD,EAAAA,MAAAA,CAAOD,EAAAA,CAAGG,KAAAA,KAAUC,MAAAA,EAAW,0BAA0B,CAAA;AAEzD,EAAA,MAAMC,IAAAA,GAA2B;AAAA,IAC/BH,MAAMF,EAAAA,CAAGE,IAAAA;AAAAA,IACTC,OAAOH,EAAAA,CAAGG,KAAAA;AAAAA,IACVG,KAAKN,EAAAA,CAAGM;AAAAA,GACV;AAEA,EAAA,IAAIR,WAAW,QAAA,EAAU;AACvBO,IAAAA,IAAAA,CAAKE,KAAKP,EAAAA,CAAGE,IAAAA;AACbG,IAAAA,IAAAA,CAAKX,KAAAA,GAAQ,EAAA;AACbW,IAAAA,IAAAA,CAAKG,IAAAA,GAAO,IAAA;AAAA,EACd,CAAA,MAAO;AACLP,IAAAA,MAAAA,CAAOD,EAAAA,CAAGO,IAAI,+BAA+B,CAAA;AAC7CF,IAAAA,IAAAA,CAAKE,KAAKP,EAAAA,CAAGO,EAAAA;AACbF,IAAAA,IAAAA,CAAKX,KAAAA,GAAQM,GAAGN,KAAAA,IAAS,EAAA;AACzBW,IAAAA,IAAAA,CAAKG,IAAAA,GAAOR,GAAGS,KAAAA,IAAS,IAAA;AAAA,EAC1B;AAEA,EAAA,MAAMC,UAAAA,GACJ,kBAAkBV,EAAAA,IAClBA,EAAAA,CAAGW,gBAAgB,IAAA,IACnB,sBAAA,IAA0BX,EAAAA,IAC1BA,EAAAA,CAAGY,oBAAAA,IAAwB,IAAA;AAE7B,EAAA,MAAMC,iBAAAA,GAAoB,UAAA,IAAcb,EAAAA,IAAMA,EAAAA,CAAGc,QAAAA,IAAY,IAAA;AAC7D,EAAA,MAAMC,mBAAAA,GAAsB,CAACF,iBAAAA,IAAqBb,EAAAA,CAAGgB,IAAAA,KAAS,QAAA;AAE9D,EAAA,IAAIN,cAAcK,mBAAAA,EAAqB;AACrCV,IAAAA,IAAAA,CAAKM,eAAelB,WAAAA,CAClBO,EAAAA,CAAGW,YAAAA,IAAgB,EAAA,EACnBZ,YAAYY,YACd,CAAA;AACAN,IAAAA,IAAAA,CAAKO,uBAAuBnB,WAAAA,CAC1BO,EAAAA,CAAGY,oBAAAA,IAAwB,EAAA,EAC3Bb,YAAYa,oBACd,CAAA;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAME,QAAAA,GAAW,UAAA,IAAcd,EAAAA,GAAMA,EAAAA,CAAGc,YAAY,EAAA,GAAM,EAAA;AAC1DT,IAAAA,IAAAA,CAAKS,QAAAA,GAAWrB,WAAAA,CAAYqB,QAAAA,EAAUf,WAAAA,CAAYe,QAAQ,CAAA;AAAA,EAC5D;AAEA,EAAA,OAAOT,IAAAA;AACT;AAyBA,MAAMY,uBAAAA,GAA0B,WAAA;AAEzB,SAAAC,aAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAsB,EAAA,MAAA;AAAA,IAAAC,MAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,OAAAA,EAAAC,QAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,OAAAA,EAAAC;AAAAA,GAAA,GAAAX,EAAAA;AAO3B,EAAA,MAAAU,OAAAA,GAAAC,EAAAA,KAAA1B,MAAAA,GAAA,IAAA,GAAA0B,EAAAA;AAEA,EAAA,MAAAC,aAAmBC,UAAAA,EAAW;AAC9B,EAAA,MAAAN,UAAgBC,QAAAA,IAAAI,UAAAA;AAEhB,EAAA,MAAAE,oBAA0BC,qBAAAA,EAAsB;AAChD,EAAA,MAAAC,iBAAuBF,iBAAAA,IAAAJ,OAAAA;AAA6B,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAhB,CAAAA,CAAA,CAAA,CAAA,KAAAM,OAAAA,IAAAN,CAAAA,QAAAe,cAAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAE,MAAAA,EAAA;AAGec,IAAAA,EAAAA,GAAA;AAAA,MAAAC,IAAAA,EAC3Df,MAAAA;AAAAA,MAAMI,OAAAA;AAAAA,MAAAG,OAAAA,EAEHM;AAAAA,KACX;AAACf,IAAAA,CAAAA,MAAAM,OAAAA;AAAAN,IAAAA,CAAAA,MAAAe,cAAAA;AAAAf,IAAAA,CAAAA,MAAAE,MAAAA;AAAAF,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,CAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAA;AAAA,IAAAkB,KAAAA,EAAAC,eAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAqDC,cAAcL,EAIlE,CAAA;AAED,EAAA,MAAAM,qBAA2BH,eAAAA,CAAe/B,IAAAA;AAAM,EAAA,IAAAmC,EAAAA;AAAA,EAAA,IAAAvB,CAAAA,CAAA,CAAA,CAAA,KAAAsB,kBAAAA,IAAAtB,CAAAA,CAAA,CAAA,CAAA,KAAAE,MAAAA,IAAAF,CAAAA,CAAA,CAAA,CAAA,KAAAmB,eAAAA,CAAAK,KAAAA,IAAAxB,CAAAA,CAAA,CAAA,CAAA,KAAAmB,eAAAA,CAAAM,OAAAA,IAAAzB,CAAAA,CAAA,CAAA,CAAA,KAAAmB,eAAAA,CAAAO,SAAAA,IAAA1B,CAAAA,CAAA,CAAA,CAAA,KAAAmB,eAAAA,CAAAQ,SAAAA,EAAA;AAEaJ,IAAAA,EAAAA,GAAA;AAAA,MAAAK,QAAAA,EACjDN,kBAAAA;AAAAA,MAAkBL,IAAAA,EACtBf,MAAAA;AAAAA,MAAMwB,WACDP,eAAAA,CAAeO,SAAAA;AAAAA,MAAUC,WACzBR,eAAAA,CAAeQ,SAAAA;AAAAA,MAAUF,SAC3BN,eAAAA,CAAeM,OAAAA;AAAAA,MAAQD,OACzBL,eAAAA,CAAeK;AAAAA,KACxB;AAACxB,IAAAA,CAAAA,MAAAsB,kBAAAA;AAAAtB,IAAAA,CAAAA,MAAAE,MAAAA;AAAAF,IAAAA,CAAAA,CAAA,CAAA,IAAAmB,eAAAA,CAAAK,KAAAA;AAAAxB,IAAAA,CAAAA,CAAA,CAAA,IAAAmB,eAAAA,CAAAM,OAAAA;AAAAzB,IAAAA,CAAAA,CAAA,CAAA,IAAAmB,eAAAA,CAAAO,SAAAA;AAAA1B,IAAAA,CAAAA,CAAA,CAAA,IAAAmB,eAAAA,CAAAQ,SAAAA;AAAA3B,IAAAA,CAAAA,OAAAuB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAvB,EAAA,EAAA,CAAA;AAAA,EAAA;AAPD,EAAA,MAAA6B,UAAAA,GAA6DN,EAAAA;AAO3D,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAA9B,CAAAA,SAAAsB,kBAAAA,EAAA;AAKMQ,IAAAA,EAAAA,GAAAR,kBAAAA,EAAkB1B,IAAAA,GACpBmC,uBAAAA,CAAwBT,kBAAAA,CAAkB1B,IAClC,CAAA,GAFNZ,MAAAA;AAEOgB,IAAAA,CAAAA,OAAAsB,kBAAAA;AAAAtB,IAAAA,CAAAA,OAAA8B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA9B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAgC,EAAAA;AAAA,EAAA,IAAAhC,CAAAA,CAAA,EAAA,CAAA,KAAAM,OAAAA,IAAAN,CAAAA,SAAAe,cAAAA,IAAAf,CAAAA,CAAA,EAAA,CAAA,KAAA8B,EAAAA,EAAA;AAJyDE,IAAAA,EAAAA,GAAA;AAAA,MAAA1B,OAAAA;AAAAA,MAAAV,IAAAA,EAEhEkC,EAAAA;AAAAA,MAEOrB,OAAAA,EACJM;AAAAA,KACX;AAACf,IAAAA,CAAAA,OAAAM,OAAAA;AAAAN,IAAAA,CAAAA,OAAAe,cAAAA;AAAAf,IAAAA,CAAAA,OAAA8B,EAAAA;AAAA9B,IAAAA,CAAAA,OAAAgC,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhC,EAAA,EAAA,CAAA;AAAA,EAAA;AAND,EAAA,MAAA;AAAA,IAAAiC,wBAAAA;AAAAA,IAAAf,KAAAA,EAAAgB;AAAAA,GAAA,GAA8DC,UAAUH,EAMvE,CAAA;AAGD,EAAA,MAAAI,YAAkBC,kBAAAA,EAAmB;AAErC,EAAA,MAAAC,oBAA0BF,SAAAA,CAASlC,MAAAA;AAAQ,EAAA,IAAAqC,EAAAA;AAAA,EAAA,IAAAvC,CAAAA,SAAAe,cAAAA,EAAA;AAMlCwB,IAAAA,EAAAA,GAAA;AAAA,MAAA9B,OAAAA,EAAWM;AAAAA,KAAe;AAACf,IAAAA,CAAAA,OAAAe,cAAAA;AAAAf,IAAAA,CAAAA,OAAAuC,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAvC,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAwC,EAAAA;AAAA,EAAA,IAAAxC,CAAAA,CAAA,EAAA,CAAA,KAAAM,OAAAA,IAAAN,CAAAA,SAAAsC,iBAAAA,IAAAtC,CAAAA,CAAA,EAAA,CAAA,KAAAuC,EAAAA,EAAA;AAHSC,IAAAA,EAAAA,GAAA;AAAA,MAAAlC,OAAAA;AAAAA,MAAAW,IAAAA,EAErCqB,iBAAAA;AAAAA,MAAiBpB,KAAAA,EAChBqB;AAAAA,KACT;AAACvC,IAAAA,CAAAA,OAAAM,OAAAA;AAAAN,IAAAA,CAAAA,OAAAsC,iBAAAA;AAAAtC,IAAAA,CAAAA,OAAAuC,EAAAA;AAAAvC,IAAAA,CAAAA,OAAAwC,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxC,EAAA,EAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAAyC,yBAAAA,GAAkCC,WAAWF,EAI5C,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAA3C,CAAAA,CAAA,EAAA,CAAA,KAAAsC,iBAAAA,IAAAtC,CAAAA,CAAA,EAAA,CAAA,KAAAyC,yBAAAA,CAAArD,IAAAA,IAAAY,CAAAA,CAAA,EAAA,CAAA,KAAAyC,yBAAAA,CAAAjB,KAAAA,IAAAxB,CAAAA,CAAA,EAAA,CAAA,KAAAyC,yBAAAA,CAAAhB,OAAAA,IAAAzB,CAAAA,CAAA,EAAA,CAAA,KAAAyC,yBAAAA,CAAAf,SAAAA,IAAA1B,CAAAA,CAAA,EAAA,CAAA,KAAAyC,yBAAAA,CAAAd,SAAAA,EAAA;AAEwDgB,IAAAA,EAAAA,GAAA;AAAA,MAAA1B,IAAAA,EACnDqB,iBAAAA;AAAAA,MAAiBM,SACdH,yBAAAA,CAAyBrD,IAAAA;AAAAA,MAAKsC,WAC5Be,yBAAAA,CAAyBf,SAAAA;AAAAA,MAAUC,WACnCc,yBAAAA,CAAyBd,SAAAA;AAAAA,MAAUF,SACrCgB,yBAAAA,CAAyBhB,OAAAA;AAAAA,MAAQD,OACnCiB,yBAAAA,CAAyBjB;AAAAA,KAClC;AAACxB,IAAAA,CAAAA,OAAAsC,iBAAAA;AAAAtC,IAAAA,CAAAA,CAAA,EAAA,IAAAyC,yBAAAA,CAAArD,IAAAA;AAAAY,IAAAA,CAAAA,CAAA,EAAA,IAAAyC,yBAAAA,CAAAjB,KAAAA;AAAAxB,IAAAA,CAAAA,CAAA,EAAA,IAAAyC,yBAAAA,CAAAhB,OAAAA;AAAAzB,IAAAA,CAAAA,CAAA,EAAA,IAAAyC,yBAAAA,CAAAf,SAAAA;AAAA1B,IAAAA,CAAAA,CAAA,EAAA,IAAAyC,yBAAAA,CAAAd,SAAAA;AAAA3B,IAAAA,CAAAA,OAAA2C,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA3C,EAAA,EAAA,CAAA;AAAA,EAAA;AAPD,EAAA,MAAA6C,aAAAA,GAA2DF,EAAAA;AAS3D,EAAA,MAAAG,kBAAwBC,kBAAAA,EAAmB;AAE3C,EAAA,MAAAC,MAAAA,GAAeC,UAAU,WAAW,CAAA;AAEpC,EAAA,MAAAC,kBAAwBC,kBAAAA,EAAmB;AAC3C,EAAA,MAAAC,kBAAwBC,kBAAAA,EAAmB;AAE3C,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AAExC,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAAuBC,eAAAA,EAAgB;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAA3D,CAAAA,SAAAuD,OAAAA,IAAAvD,EAAA,EAAA,CAAA,KAAAQ,gBAAAR,CAAAA,CAAA,EAAA,MAAAM,OAAAA,IAAAN,CAAAA,SAAAiC,wBAAAA,IAAAjC,EAAA,EAAA,CAAA,KAAA8C,eAAAA,IAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAoB,oBAAApB,CAAAA,CAAA,EAAA,MAAAkD,eAAAA,IAAAlD,CAAAA,SAAAoD,eAAAA,IAAApD,CAAAA,CAAA,EAAA,CAAA,KAAAa,iBAAAA,IAAAb,EAAA,EAAA,CAAA,KAAAgD,UAAAhD,CAAAA,SAAAyD,UAAAA,IAAAzD,CAAAA,CAAA,EAAA,CAAA,KAAAoC,SAAAA,EAAA;AAEVuB,IAAAA,EAAAA,UAAAC,IAAAA,KAAA;AAAO,MAAA,MAAA;AAAA,QAAA3C,IAAAA;AAAAA,QAAAvC,MAAAA;AAAAA,QAAAmF,QAAAA;AAAAA,QAAAC;AAAAA,OAAA,GAAAF,IAAAA;AACpC/E,MAAAA,MAAAA,CAAOyB,OAAAA,IAAW,MAAM,oBAAoB,CAAA;AAC5CzB,MAAAA,MAAAA,CAAO0E,SAAS,uBAAuB,CAAA;AACvC1E,MAAAA,MAAAA,CACEgC,mBACA,2DACF,CAAA;AACAuB,MAAAA,SAAAA,CAAS2B,KAAAA,EAAO;AAEhBD,MAAAA,MAAAA,EAAME,cAAAA,EAAiB;AAGvB,MAAA,IAAAC,gBAAAA,GAA8C,IAAA;AAC9C,MAAA,IAAA;AACEA,QAAAA,gBAAAA,GAAmBA,MAAM7C,gBAAAA,CAAiB;AAAA,UAAAH,IAAAA;AAAAA,UAAAX;AAAAA,SAAiB,CAAA;AAAA,MAA3C,SAAA4D,IAAAA,EAAA;AACT1C,QAAAA,MAAAA,KAAAA,GAAAA,IAAAA;AACP,QAAA,IAAIA,iBAAiB2C,wBAAAA,EAAwB;AAE3CnB,UAAAA,MAAAA,CAAMxB,KAAAA,CAAO,yBAAyBA,KAAK,CAAA;AAAA,QAAC,CAAA,MAAA;AAE5C,UAAA,MAAMA,KAAAA;AAAAA,QAAM;AAAA,MACb;AAGH,MAAA,IAAI,CAACyC,gBAAAA,EAAgB;AACnB,QAAA,MAAA,CAAAlF,OAAAqF,OAAA,CAAA,GAAyB,MAAMC,OAAAA,CAAOC,GAAAA,CAAK,CAIzCpB,eAAAA,CAAgB;AAAA,UAAA5C,OAAAA;AAAAA,UAAAgD,OAAAA,EAAoBC;AAAAA,SAAS,CAAA,EAC7CH,eAAAA,CAAgB9C,OAAO,CAAC,CACzB,CAAA;AACD2D,QAAAA,gBAAAA,GAAmBA;AAAAA,UAAAA,IAAAA,EACXV,OAAAA;AAAAA,UAAOxE,KAAAA;AAAAA,UAAAa,IAAAA,EAEPwE,OAAAA;AAAAA,UAAOnD;AAAAA,SAEf;AAAA,MALgB;AAQlB6C,MAAAA,MAAAA,EAAME,cAAAA,EAAiB;AAGvB,MAAA,MAAArF,WAAAA,GAAoB,MAAMsD,wBAAAA,CAAyB;AAAA,QAAA3B,OAAAA;AAAAA,QAAAV,IAAAA,EAE3CmC,uBAAAA,CAAwBkC,gBAAAA,CAAgBrE,IAAK;AAAA,OACpD,CAAA;AAEDkE,MAAAA,MAAAA,EAAME,cAAAA,EAAiB;AAGvB,MAAA,MAAAO,qBAA2B9F,uBAAAA,CAAwB;AAAA,QAAAC,MAAAA;AAAAA,QAAAC,WAAAA;AAAAA,QAAAC,EAAAA,EAG7CqF;AAAAA,OACL,CAAA;AAGD,MAAA,MAAAO,mBAAAA,GAA0B,MAAMpC,SAAAA,CAASqC,oBAAAA,CAAsB;AAAA,QAAA,GAC1DF,kBAAAA;AAAAA,QAAkBjE;AAAAA,OAEtB,CAAA;AAED,MAAA,IAAI5B,WAAW,QAAA,EAAQ;AACrB+E,QAAAA,UAAAA,GAAa;AAAA,UAAAiB,KAAAA,EACJ;AAAA,YAAAC,IAAAA,EACC,eAAA;AAAA,YAAeC,MAAAA,EACb;AAAA,cAAAtE,OAAAA;AAAAA,cAAAuE,MAAAA,EAEErE,YAAAA;AAAAA,cAAYsE,gBACJb,gBAAAA,CAAgBhD,IAAAA;AAAAA,cAAKY,UAAAA,EACzBoC,gBAAAA;AAAAA,cAAgBM,kBAAAA;AAAAA,cAAAjC,iBAAAA,EAETA;AAAAA;AACrB;AACF,SACD,CAAA;AAAA,MAAC;AAEJwB,MAAAA,MAAAA,EAAME,cAAAA,EAAiB;AAEvBhB,MAAAA,MAAAA,CAAM+B,IAAK,qBAAA,EAAuB;AAAA,QAAAlD,UAAAA,EACpBoC,gBAAAA;AAAAA,QAAgBM,kBAAAA;AAAAA,QAAAjC,iBAAAA,EAE5BA;AAAAA,OACD,CAAA;AAGD,MAAA,MAAA0C,8BAAoClC,eAAAA,CAAgB;AAAA,QAAAxC,OAAAA;AAAAA,QAAAW,IAAAA,EAE5CqB;AAAAA,OACP,CAAA;AAED,MAAA,IAAIuB,QAAAA,EAAQ;AACVA,QAAAA,QAAAA,CAAS;AAAA,UAAAvD,OAAAA;AAAAA,UAAA2E,eAAAA,EAEU3C,mBAAAA;AAAAA,UAAiB5D,MAAAA,EAC1B,YAAA;AAAA,UAAYwG,cAAAA,EACJF,2BAAAA;AAAAA,UAA2BG,uBAAAA,EAClB;AAAA,YAAAzG,MAAAA,EACf,YAAA;AAAA,YAAY0G,UAAAA,EACRnE;AAAAA;AACd,SACD,CAAA;AAAA,MAAC;AAGJ,MAAA,MAAAoE,uBAA6B,MAAML,2BAAAA;AAA4B,MAAA,OAExD;AAAA,QAAAnD,UAAAA,EACOoC,gBAAAA;AAAAA,QAAgBM,kBAAAA;AAAAA,QAAAjC,iBAAAA,EAE5BA,mBAAAA;AAAAA,QAAiB+C;AAAAA,OAEnB;AAAA,IAAC,CAAA;AACFrF,IAAAA,CAAAA,OAAAuD,OAAAA;AAAAvD,IAAAA,CAAAA,OAAAQ,YAAAA;AAAAR,IAAAA,CAAAA,OAAAM,OAAAA;AAAAN,IAAAA,CAAAA,OAAAiC,wBAAAA;AAAAjC,IAAAA,CAAAA,OAAA8C,eAAAA;AAAA9C,IAAAA,CAAAA,OAAAoB,gBAAAA;AAAApB,IAAAA,CAAAA,OAAAkD,eAAAA;AAAAlD,IAAAA,CAAAA,OAAAoD,eAAAA;AAAApD,IAAAA,CAAAA,OAAAa,iBAAAA;AAAAb,IAAAA,CAAAA,OAAAgD,MAAAA;AAAAhD,IAAAA,CAAAA,OAAAyD,UAAAA;AAAAzD,IAAAA,CAAAA,OAAAoC,SAAAA;AAAApC,IAAAA,CAAAA,OAAA2D,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA3D,EAAA,EAAA,CAAA;AAAA,EAAA;AAjHD,EAAA,MAAAsF,SAAAA,GAA+B3B,EAAAA;AAmH/B,EAAA,MAAA4B,kBAAwBC,kBAAAA,EAAmB;AAAE,EAAA,IAAA5B,GAAAA;AAAA,EAAA,IAAA5D,EAAA,EAAA,CAAA,KAAAyF,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAI9B9B,IAAAA,GAAAA,GAAA,CAAC/D,uBAAuB,CAAA;AAACG,IAAAA,CAAAA,OAAA4D,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA5D,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAkE,GAAAA;AAAA,EAAA,IAAAlE,CAAAA,CAAA,EAAA,CAAA,KAAAQ,YAAAA,IAAAR,CAAAA,SAAAM,OAAAA,IAAAN,CAAAA,CAAA,EAAA,CAAA,KAAAyD,UAAAA,EAAA;AAC5BS,IAAAA,GAAAA,GAAAyB,CAAAA,SAAAA,KAAA;AACR,MAAA,IAAIA,SAAAA,CAASjH,WAAY,QAAA,EAAQ;AAAA,QAAA;AAAA,MAAA;AACjC+E,MAAAA,UAAAA,GAAa;AAAA,QAAAiB,KAAAA,EACJ;AAAA,UAAAC,IAAAA,EACC,kBAAA;AAAA,UAAkBC,MAAAA,EAChB;AAAA,YAAAtE,OAAAA;AAAAA,YAAAuE,MAAAA,EAEErE,YAAAA;AAAAA,YAAYsE,gBACJa,SAAAA,CAAS1E;AAAAA;AAC3B;AACF,OACD,CAAA;AAAA,IAAC,CAAA;AACHjB,IAAAA,CAAAA,OAAAQ,YAAAA;AAAAR,IAAAA,CAAAA,OAAAM,OAAAA;AAAAN,IAAAA,CAAAA,OAAAyD,UAAAA;AAAAzD,IAAAA,CAAAA,OAAAkE,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAlE,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA4F,GAAAA;AAAA,EAAA,IAAA5F,CAAAA,SAAAQ,YAAAA,IAAAR,EAAA,EAAA,CAAA,KAAAM,OAAAA,IAAAN,CAAAA,CAAA,EAAA,CAAA,KAAAgD,UAAAhD,CAAAA,CAAA,EAAA,CAAA,KAAAuF,eAAAA,IAAAvF,CAAAA,SAAAyD,UAAAA,IAAAzD,CAAAA,CAAA,EAAA,CAAA,KAAAG,SAAAA,EAAA;AACUyF,IAAAA,GAAAA,GAAAA,CAAAxG,MAAAyG,WAAAA,KAAA;AACT7C,MAAAA,MAAAA,CAAM+B,GAAAA,CAAK,sBAAsB3F,IAAI,CAAA;AACrCmG,MAAAA,eAAAA,CAAgB;AAAA,QAAAhC,OAAAA,EACLnE,KAAIyC,UAAAA,CAAW/C,IAAAA;AAAAA,QAAKoB,MAAAA,EACrBd,KAAIyC,UAAAA,CAAWZ,IAAAA;AAAAA,QAAKvC,QACpBiH,WAAAA,CAASjH,MAAAA;AAAAA,QAAO4D,mBACLlD,IAAAA,CAAIkD;AAAAA,OACxB,CAAA;AACDnC,MAAAA,SAAAA,GAAYf,IAAI,CAAA;AAChB,MAAA,IAAIuG,WAAAA,CAASjH,WAAY,QAAA,EAAQ;AAAA,QAAA;AAAA,MAAA;AACjC+E,MAAAA,UAAAA,GAAa;AAAA,QAAAiB,KAAAA,EACJ;AAAA,UAAAC,IAAAA,EACC,oBAAA;AAAA,UAAoBC,MAAAA,EAClB;AAAA,YAAAtE,OAAAA;AAAAA,YAAAuE,MAAAA,EAEErE,YAAAA;AAAAA,YAAYsE,cAAAA,EACJ1F,KAAIyC,UAAAA,CAAWZ,IAAAA;AAAAA,YAAKY,YACxBzC,IAAAA,CAAIyC,UAAAA;AAAAA,YAAW0C,oBACPnF,IAAAA,CAAImF,kBAAAA;AAAAA,YAAmBjC,mBACxBlD,IAAAA,CAAIkD,iBAAAA;AAAAA,YAAkB+C,sBACnBjG,IAAAA,CAAIiG;AAAAA;AAC5B;AACF,OACD,CAAA;AAAA,IAAC,CAAA;AACHrF,IAAAA,CAAAA,OAAAQ,YAAAA;AAAAR,IAAAA,CAAAA,OAAAM,OAAAA;AAAAN,IAAAA,CAAAA,OAAAgD,MAAAA;AAAAhD,IAAAA,CAAAA,OAAAuF,eAAAA;AAAAvF,IAAAA,CAAAA,OAAAyD,UAAAA;AAAAzD,IAAAA,CAAAA,OAAAG,SAAAA;AAAAH,IAAAA,CAAAA,OAAA4F,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA5F,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA8F,GAAAA;AAAA,EAAA,IAAA9F,EAAA,EAAA,CAAA,KAAAQ,gBAAAR,CAAAA,CAAA,EAAA,MAAAM,OAAAA,IAAAN,CAAAA,CAAA,EAAA,CAAA,KAAAgD,MAAAA,IAAAhD,EAAA,EAAA,CAAA,KAAAyD,cAAAzD,CAAAA,SAAAI,OAAAA,EAAA;AACQ0F,IAAAA,GAAAA,GAAAA,CAAAC,SAAAC,WAAAA,KAAA;AACPhD,MAAAA,MAAAA,CAAMxB,KAAAA,CAAO,oBAAoBA,OAAK,CAAA;AACtCpB,MAAAA,OAAAA,GAAUoB,OAAK,CAAA;AACf,MAAA,IAAImE,WAAAA,CAASjH,WAAY,QAAA,EAAQ;AAAA,QAAA;AAAA,MAAA;AACjC+E,MAAAA,UAAAA,GAAa;AAAA,QAAAiB,KAAAA,EACJ;AAAA,UAAAC,IAAAA,EACC,iBAAA;AAAA,UAAiBC,MAAAA,EACf;AAAA,YAAAtE,OAAAA;AAAAA,YAAAuE,MAAAA,EAEErE,YAAAA;AAAAA,YAAYsE,gBACJa,WAAAA,CAAS1E,IAAAA;AAAAA,YAAKO,KAAAA,EACvBA;AAAAA;AACT;AACF,OACD,CAAA;AAAA,IAAC,CAAA;AACHxB,IAAAA,CAAAA,OAAAQ,YAAAA;AAAAR,IAAAA,CAAAA,OAAAM,OAAAA;AAAAN,IAAAA,CAAAA,OAAAgD,MAAAA;AAAAhD,IAAAA,CAAAA,OAAAyD,UAAAA;AAAAzD,IAAAA,CAAAA,OAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,OAAA8F,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA9F,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAiG,GAAAA;AAAA,EAAA,IAAAjG,EAAA,EAAA,CAAA,KAAAgD,UAAAhD,CAAAA,SAAAK,SAAAA,EAAA;AACU4F,IAAAA,GAAAA,GAAAA,MAAA;AACT5F,MAAAA,SAAAA,IAAY;AACZ2C,MAAAA,MAAAA,CAAM+B,IAAK,oBAAoB,CAAA;AAAA,IAAC,CAAA;AACjC/E,IAAAA,CAAAA,OAAAgD,MAAAA;AAAAhD,IAAAA,CAAAA,OAAAK,SAAAA;AAAAL,IAAAA,CAAAA,OAAAiG,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAjG,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAkG,GAAAA;AAAA,EAAA,IAAAlG,EAAA,EAAA,CAAA,KAAAsF,aAAAtF,CAAAA,CAAA,EAAA,MAAAkE,GAAAA,IAAAlE,CAAAA,CAAA,EAAA,CAAA,KAAA4F,GAAAA,IAAA5F,EAAA,EAAA,CAAA,KAAA8F,OAAA9F,CAAAA,SAAAiG,GAAAA,EAAA;AA5D8BC,IAAAA,GAAAA,GAAA;AAAA,MAAAC,UAAAA,EACnBb,SAAAA;AAAAA,MAASc,WAAAA,EACRxC,GAAAA;AAAAA,MAAyByC,QAAAA,EAC5BnC,GAAAA;AAAAA,MAYT/D,SAAAA,EACUyF,GAAAA;AAAAA,MAwBVxF,OAAAA,EACQ0F,GAAAA;AAAAA,MAeRzF,SAAAA,EACU4F;AAAAA,KAIb;AAACjG,IAAAA,CAAAA,OAAAsF,SAAAA;AAAAtF,IAAAA,CAAAA,OAAAkE,GAAAA;AAAAlE,IAAAA,CAAAA,OAAA4F,GAAAA;AAAA5F,IAAAA,CAAAA,OAAA8F,GAAAA;AAAA9F,IAAAA,CAAAA,OAAAiG,GAAAA;AAAAjG,IAAAA,CAAAA,OAAAkG,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAlG,EAAA,EAAA,CAAA;AAAA,EAAA;AA7DD,EAAA,MAAAsG,YAAAA,GAAqBC,YAAYL,GA6DhC,CAAA;AAAE,EAAA,IAAAM,GAAAA;AAAA,EAAA,IAAAxG,EAAA,EAAA,CAAA,KAAAsG,gBAAAtG,CAAAA,SAAAoC,SAAAA,EAAA;AAEWoE,IAAAA,GAAAA,GAAAA,MAAA;AACZpE,MAAAA,SAAAA,CAAS2B,KAAAA,EAAO;AAChBuC,MAAAA,YAAAA,CAAYvC,KAAAA,EAAO;AAAA,IAAC,CAAA;AACrB/D,IAAAA,CAAAA,OAAAsG,YAAAA;AAAAtG,IAAAA,CAAAA,OAAAoC,SAAAA;AAAApC,IAAAA,CAAAA,OAAAwG,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAxG,EAAA,EAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA+D,KAAAA,GAAcyC,GAAAA;AAKVC,EAAAA,IAAAA,IAAAA;AACJ,EAAA,IAAIH,aAAY5E,SAAAA,EAAU;AAExB+E,IAAAA,IAAAA,GAAOA,6BAAAA;AACP,IAAA,IAAI5D,cAAa5B,IAAAA,EAAK;AAEpBwF,MAAAA,IAAAA,GAAOA,8BAAAA;AAAAA,IAAH;AAAA,EACL,CAAA,MAAA;AACI,IAAA,IAAIH,aAAY3E,SAAAA,EAAU;AAC/B8E,MAAAA,IAAAA,GAAOA,4BAAAA;AAAAA,IAAH,CAAA,MAAA;AACC,MAAA,IAAIH,aAAY7E,OAAAA,EAAQ;AAC7BgF,QAAAA,IAAAA,GAAOA,0BAAAA;AAAAA,MAAH;AAAA,IACL;AAAA,EAAA;AAAA,EAAA,IAAAC,GAAAA;AAAA,EAAA,IAAA1G,CAAAA,CAAA,EAAA,CAAA,KAAAkC,gBAAAA,CAAA9C,IAAAA,IAAAY,EAAA,EAAA,CAAA,KAAAa,iBAAAA,IAAAb,CAAAA,CAAA,EAAA,CAAA,KAAA6B,cAAA7B,CAAAA,CAAA,EAAA,CAAA,KAAAsG,YAAAA,CAAAlH,IAAAA,IAAAY,CAAAA,CAAA,EAAA,CAAA,KAAAsG,YAAAA,CAAA9E,KAAAA,IAAAxB,CAAAA,CAAA,EAAA,CAAA,KAAAsG,YAAAA,CAAA7E,WAAAzB,CAAAA,CAAA,EAAA,CAAA,KAAAsG,YAAAA,CAAA5E,SAAAA,IAAA1B,CAAAA,CAAA,EAAA,CAAA,KAAAsG,YAAAA,CAAA3E,SAAAA,IAAA3B,CAAAA,CAAA,EAAA,CAAA,KAAAsG,aAAAK,WAAAA,IAAA3G,CAAAA,CAAA,EAAA,CAAA,KAAA6C,aAAAA,IAAA7C,CAAAA,CAAA,EAAA,CAAA,KAAA+D,KAAAA,IAAA/D,CAAAA,CAAA,EAAA,CAAA,KAAAyG,IAAAA,EAAA;AAEMC,IAAAA,GAAAA,GAAA;AAAA,MAAApF,kBAAAA,EACeO,UAAAA;AAAAA,MAAUgB,aAAAA;AAAAA,MAAA+D,SAErB1E,gBAAAA,CAAgB9C,IAAAA;AAAAA,MAAKkG,WACnBgB,YAAAA,CAAYK,WAAAA;AAAAA,MAAYjF,WACxB4E,YAAAA,CAAY5E,SAAAA;AAAAA,MAAUC,WACtB2E,YAAAA,CAAY3E,SAAAA;AAAAA,MAAUF,SACxB6E,YAAAA,CAAY7E,OAAAA;AAAAA,MAAQD,OACtB8E,YAAAA,CAAY9E,KAAAA;AAAAA,MAAMqF,QACjBP,YAAAA,CAAYlH,IAAAA;AAAAA,MAAK2E,KAAAA;AAAAA,MAAA0C,IAAAA;AAAAA,MAAA5F;AAAAA,KAI3B;AAACb,IAAAA,CAAAA,CAAA,EAAA,IAAAkC,gBAAAA,CAAA9C,IAAAA;AAAAY,IAAAA,CAAAA,OAAAa,iBAAAA;AAAAb,IAAAA,CAAAA,OAAA6B,UAAAA;AAAA7B,IAAAA,CAAAA,CAAA,EAAA,IAAAsG,YAAAA,CAAAlH,IAAAA;AAAAY,IAAAA,CAAAA,CAAA,EAAA,IAAAsG,YAAAA,CAAA9E,KAAAA;AAAAxB,IAAAA,CAAAA,CAAA,EAAA,IAAAsG,YAAAA,CAAA7E,OAAAA;AAAAzB,IAAAA,CAAAA,CAAA,EAAA,IAAAsG,YAAAA,CAAA5E,SAAAA;AAAA1B,IAAAA,CAAAA,CAAA,EAAA,IAAAsG,YAAAA,CAAA3E,SAAAA;AAAA3B,IAAAA,CAAAA,CAAA,EAAA,IAAAsG,YAAAA,CAAAK,WAAAA;AAAA3G,IAAAA,CAAAA,OAAA6C,aAAAA;AAAA7C,IAAAA,CAAAA,OAAA+D,KAAAA;AAAA/D,IAAAA,CAAAA,OAAAyG,IAAAA;AAAAzG,IAAAA,CAAAA,OAAA0G,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA1G,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAbM0G,GAAAA;AAaN;;;;"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { Hash, TransactionRequest } from 'viem';
|
|
2
|
+
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
2
3
|
export type UseSendArbitraryTxInput = {
|
|
3
4
|
onSuccess?: (hash: Hash) => void;
|
|
4
5
|
onError?: (error: Error) => void;
|
|
5
6
|
};
|
|
7
|
+
type TxRequestWithChainId = TransactionRequest & {
|
|
8
|
+
chainId: SupportedChainId;
|
|
9
|
+
};
|
|
6
10
|
export type UseSendArbitraryTxReturn = {
|
|
7
|
-
sendTransaction: (txParams:
|
|
8
|
-
sendTransactionAsync: (txParams:
|
|
11
|
+
sendTransaction: (txParams: TxRequestWithChainId) => void;
|
|
12
|
+
sendTransactionAsync: (txParams: TxRequestWithChainId) => Promise<Hash>;
|
|
9
13
|
isPending: boolean;
|
|
10
14
|
isSuccess: boolean;
|
|
11
15
|
isError: boolean;
|
|
@@ -14,4 +18,5 @@ export type UseSendArbitraryTxReturn = {
|
|
|
14
18
|
reset: () => void;
|
|
15
19
|
};
|
|
16
20
|
export declare const useSendArbitraryTx: ({ onSuccess, onError, }?: UseSendArbitraryTxInput) => UseSendArbitraryTxReturn;
|
|
21
|
+
export {};
|
|
17
22
|
//# sourceMappingURL=useSendTx.d.ts.map
|
|
@@ -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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSendTx.js","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\";\n\nexport type UseSendArbitraryTxInput = {\n onSuccess?: (hash: Hash) => void;\n onError?: (error: Error) => void;\n};\n\nexport type UseSendArbitraryTxReturn = {\n sendTransaction: (txParams:
|
|
1
|
+
{"version":3,"file":"useSendTx.js","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"],"names":["useSendArbitraryTx","t0","$","_c","t1","undefined","onSuccess","onError","isConnected","useAccount","t2","mutation","sendTransaction","sendTransactionAsync","isPending","isSuccess","isError","error","data","txHash","reset","useSendTransaction","t3","txParams","assert","to","sendTx","t4","txParams_0","sendTxAsync","t5"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
2
|
+
import { Address } from 'viem';
|
|
3
|
+
type GetAccountNonceInput = {
|
|
4
|
+
chainId: SupportedChainId;
|
|
5
|
+
address: Address;
|
|
6
|
+
};
|
|
7
|
+
export declare function useGetAccountNonce(): (input: GetAccountNonceInput) => Promise<number>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=useAccountNonce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAccountNonce.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useAccountNonce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,CACpC,KAAK,EAAE,oBAAoB,KACxB,OAAO,CAAC,MAAM,CAAC,CAUnB"}
|