@velora-dex/widget 0.4.3 → 0.4.4-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +18 -23
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.d.ts +7 -0
- package/dist/components/widget/Button/CancelButton/CancelButton.d.ts.map +1 -0
- package/dist/components/widget/Button/CancelButton/CancelButton.js +102 -0
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -0
- package/dist/components/widget/Button/CancelButton/constants.d.ts +2 -0
- package/dist/components/widget/Button/CancelButton/constants.d.ts.map +1 -0
- package/dist/components/widget/Button/CancelButton/constants.js +4 -0
- package/dist/components/widget/Button/CancelButton/constants.js.map +1 -0
- package/dist/components/widget/Button/DismissButton.d.ts +4 -0
- package/dist/components/widget/Button/DismissButton.d.ts.map +1 -0
- package/dist/components/widget/Button/DismissButton.js +29 -0
- package/dist/components/widget/Button/DismissButton.js.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +2 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +2 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts +6 -4
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +133 -147
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts +2 -2
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js +138 -55
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts +2 -2
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js +2 -2
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.d.ts +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.d.ts.map +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js +87 -137
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/types.d.ts +3 -5
- package/dist/components/widget/PayReceiveInfo/types.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js +2 -2
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.d.ts +2 -2
- package/dist/components/widget/SwapRate/SwapRate.d.ts.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +87 -108
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js +12 -14
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +3 -3
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +101 -74
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
- 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 +63 -72
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +13 -16
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.d.ts +1 -2
- package/dist/components/widget/TradeOverview/Step/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.js +2 -4
- package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.d.ts +1 -1
- package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +62 -59
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +3 -5
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js +13 -181
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts +2 -2
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js +4 -4
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +2 -18
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +111 -145
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts +0 -2
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +58 -65
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/steps.d.ts +0 -32
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js +2 -12
- package/dist/components/widget/TradeOverview/steps.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +1 -13
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +1 -4
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js +1 -2
- package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts +0 -2
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +3 -236
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.js +18 -40
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +24 -46
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useMaxButtonProps.js +2 -2
- package/dist/core/inputs/hooks/useMaxButtonProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +2 -2
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +2 -2
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/events/types/cancel.d.ts +7 -1
- package/dist/events/types/cancel.d.ts.map +1 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +8 -9
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts +7 -0
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +1 -7
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +13 -85
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +11 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +87 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +32 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +248 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +3 -8
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +8 -11
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts +14 -0
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js +85 -0
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.d.ts +17 -0
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js +80 -0
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +44 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +262 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +13 -0
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/utils.js +23 -0
- package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +1 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +27 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts +109 -0
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js +170 -0
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +3 -2
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +8 -2
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +27 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +0 -9
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +1 -32
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +142 -149
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +35 -35
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +69 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +179 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +3 -5
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +1 -20
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +8 -5
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +68 -127
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +3 -4
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +98 -186
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +6 -4
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +56 -72
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +23 -33
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +1 -2
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +11 -37
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +0 -2
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +79 -161
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/utils.d.ts +2 -10
- package/dist/hooks/tokens/allowance/utils.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/utils.js +8 -19
- package/dist/hooks/tokens/allowance/utils.js.map +1 -1
- package/dist/hooks/useSDK.d.ts +3 -3
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +3 -3
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/lib/constants/index.d.ts +1 -0
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +2 -1
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/constants/urls.d.ts.map +1 -1
- package/dist/lib/constants/urls.js.map +1 -1
- package/dist/lib/utils/fee.js +1 -1
- package/dist/lib/utils/fee.js.map +1 -1
- package/dist/lib/utils/slippage.d.ts.map +1 -1
- package/dist/lib/utils/slippage.js +1 -1
- package/dist/lib/utils/slippage.js.map +1 -1
- package/dist/lib/utils/toDecimal.d.ts.map +1 -1
- package/dist/lib/utils/toDecimal.js +3 -5
- package/dist/lib/utils/toDecimal.js.map +1 -1
- package/dist/styles.css +3 -0
- package/dist/transactions/types.d.ts +9 -1
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.d.ts +0 -4
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.d.ts.map +0 -1
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js +0 -6
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js.map +0 -1
|
@@ -8,7 +8,7 @@ import { useLogger } from '../../../../core/logger.js';
|
|
|
8
8
|
import { useTokensByAddress } from '../../../tokens/useTokensByAddress.js';
|
|
9
9
|
import { useApproveOrPermitEvents } from './useApproveOrPermitEvents.js';
|
|
10
10
|
import { useRequiredAllowanceForOrders } from './useRequiredAllowanceForOrders.js';
|
|
11
|
-
import { allowanceWithSlippage
|
|
11
|
+
import { allowanceWithSlippage } from '../../../tokens/allowance/utils.js';
|
|
12
12
|
|
|
13
13
|
function useApproveOrPermit(params) {
|
|
14
14
|
const $ = distExports.c(57);
|
|
@@ -249,56 +249,56 @@ function useCombinedAllowance(t0) {
|
|
|
249
249
|
resolvedSlippage
|
|
250
250
|
} = useSlippage(tradeMode);
|
|
251
251
|
let t1;
|
|
252
|
-
if ($[0] !==
|
|
253
|
-
t1 =
|
|
254
|
-
allowance: srcAmount,
|
|
255
|
-
swapSide,
|
|
256
|
-
slippage: resolvedSlippage
|
|
257
|
-
});
|
|
258
|
-
$[0] = resolvedSlippage;
|
|
259
|
-
$[1] = srcAmount;
|
|
260
|
-
$[2] = swapSide;
|
|
261
|
-
$[3] = t1;
|
|
262
|
-
} else {
|
|
263
|
-
t1 = $[3];
|
|
264
|
-
}
|
|
265
|
-
const allowanceToSetWithSlippage = t1;
|
|
266
|
-
let t2;
|
|
267
|
-
if ($[4] !== allowanceToSetWithSlippage || $[5] !== includeCurrentOrdersAllowance || $[6] !== spenderContractType || $[7] !== srcToken) {
|
|
268
|
-
t2 = {
|
|
252
|
+
if ($[0] !== includeCurrentOrdersAllowance || $[1] !== spenderContractType || $[2] !== srcAmount || $[3] !== srcToken) {
|
|
253
|
+
t1 = {
|
|
269
254
|
tokenAddress: srcToken,
|
|
270
|
-
increaseByAmount:
|
|
255
|
+
increaseByAmount: srcAmount,
|
|
271
256
|
spenderContractType,
|
|
272
257
|
includeCurrentOrdersAllowance
|
|
273
258
|
};
|
|
274
|
-
$[
|
|
275
|
-
$[
|
|
276
|
-
$[
|
|
277
|
-
$[
|
|
278
|
-
$[
|
|
259
|
+
$[0] = includeCurrentOrdersAllowance;
|
|
260
|
+
$[1] = spenderContractType;
|
|
261
|
+
$[2] = srcAmount;
|
|
262
|
+
$[3] = srcToken;
|
|
263
|
+
$[4] = t1;
|
|
279
264
|
} else {
|
|
280
|
-
|
|
265
|
+
t1 = $[4];
|
|
281
266
|
}
|
|
282
267
|
const {
|
|
283
268
|
combinedAllowance: srcCombinedAllowance
|
|
284
|
-
} = useRequiredAllowanceForOrders(
|
|
285
|
-
let
|
|
286
|
-
if ($[
|
|
287
|
-
|
|
269
|
+
} = useRequiredAllowanceForOrders(t1);
|
|
270
|
+
let t2;
|
|
271
|
+
if ($[5] !== chainId || $[6] !== spenderContractType || $[7] !== srcCombinedAllowance || $[8] !== srcToken) {
|
|
272
|
+
t2 = {
|
|
288
273
|
tokenAddress: srcToken,
|
|
289
274
|
amountToApproveInWei: srcCombinedAllowance,
|
|
290
275
|
spenderContractType,
|
|
291
276
|
chainId
|
|
292
277
|
};
|
|
293
|
-
$[
|
|
294
|
-
$[
|
|
295
|
-
$[
|
|
296
|
-
$[
|
|
278
|
+
$[5] = chainId;
|
|
279
|
+
$[6] = spenderContractType;
|
|
280
|
+
$[7] = srcCombinedAllowance;
|
|
281
|
+
$[8] = srcToken;
|
|
282
|
+
$[9] = t2;
|
|
283
|
+
} else {
|
|
284
|
+
t2 = $[9];
|
|
285
|
+
}
|
|
286
|
+
const combinedAllowance = useGenericTokenAllowanceMin(t2);
|
|
287
|
+
let t3;
|
|
288
|
+
if ($[10] !== combinedAllowance || $[11] !== resolvedSlippage || $[12] !== swapSide) {
|
|
289
|
+
t3 = allowanceWithSlippage({
|
|
290
|
+
allowance: combinedAllowance,
|
|
291
|
+
swapSide,
|
|
292
|
+
slippage: resolvedSlippage
|
|
293
|
+
});
|
|
294
|
+
$[10] = combinedAllowance;
|
|
295
|
+
$[11] = resolvedSlippage;
|
|
296
|
+
$[12] = swapSide;
|
|
297
297
|
$[13] = t3;
|
|
298
298
|
} else {
|
|
299
299
|
t3 = $[13];
|
|
300
300
|
}
|
|
301
|
-
return
|
|
301
|
+
return t3;
|
|
302
302
|
}
|
|
303
303
|
function useSingleUseAllowance(t0) {
|
|
304
304
|
const $ = distExports.c(9);
|
|
@@ -332,7 +332,7 @@ function useSingleUseAllowance(t0) {
|
|
|
332
332
|
const singleUseAllowance = useGenericTokenAllowanceMin(t1);
|
|
333
333
|
let t2;
|
|
334
334
|
if ($[5] !== resolvedSlippage || $[6] !== singleUseAllowance || $[7] !== swapSide) {
|
|
335
|
-
t2 =
|
|
335
|
+
t2 = allowanceWithSlippage({
|
|
336
336
|
allowance: singleUseAllowance,
|
|
337
337
|
swapSide,
|
|
338
338
|
slippage: resolvedSlippage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApproveOrPermit.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/useApproveOrPermit.ts"],"sourcesContent":["import { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { Address } from \"viem\";\nimport { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport type { ApprovalFlowResult, SignPermitFlowResult } from \"./types\";\nimport type { UseApproveResult } from \"@/hooks/txs/mutations/useApprove\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useSignPermit1Or2, type PermitMut } from \"./useSignPermit1Or2\";\nimport { useLogger } from \"@/core/logger\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useTokensByAddress } from \"@/hooks/tokens/useTokensByAddress\";\nimport {\n useApproveOrPermitEvents,\n type ApproveOrPermitEvents,\n} from \"./useApproveOrPermitEvents\";\nimport { useRequiredAllowanceForOrders } from \"./useRequiredAllowanceForOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n allowanceWithSlippage,\n genericAllowanceWithSlippage,\n} from \"@/hooks/tokens/allowance/utils\";\n\ntype UseApproveOrPermitInput = {\n srcToken?: string;\n srcAmount?: string | bigint;\n spenderContractType: SpenderContractType;\n swapSide: \"BUY\" | \"SELL\";\n tradeMode: TradeMode;\n /** @description Whether to include the allowance of currently active Orders in the combined allowance */\n includeCurrentOrdersAllowance?: boolean;\n chainId: SupportedChainId;\n};\n\ntype UseApproveOrPermitResult = {\n approval: ApprovalFlowResult;\n approveTxMut: UseApproveResult;\n signPermit: SignPermitFlowResult;\n signPermitMut: PermitMut;\n events: ApproveOrPermitEvents;\n};\n\nexport function useApproveOrPermit(\n params: UseApproveOrPermitInput\n): UseApproveOrPermitResult {\n const logger = useLogger(\"ApproveOrPermit\");\n\n const { srcToken, tradeMode, chainId } = params;\n\n /* 1. gather Allowance data */\n\n const {\n combinedAllowance: allowanceToSetWithSlippage,\n // Permit2 allowance is usually unlimited if the user traded this token in Uniswap before\n // for Delta Orders permit2 amount and deadline have to match with order.srcAmount and order.deadline\n // that user signs when creating the order in useDeltaFlow\n singleUseAllowance: permit2Allowance,\n } = useAllowanceToApprove(params);\n\n /* 2.1. submit Approve tx */\n\n const approveTxMut = useApprove({\n token: srcToken ? { address: srcToken } : undefined,\n allowanceData: allowanceToSetWithSlippage,\n spender: allowanceToSetWithSlippage.spender,\n onSuccess: () => {\n logger.log(\"Approve tx success\");\n },\n onError: (error) => {\n logger.error(\"Approve tx error\", error);\n },\n });\n\n /* 2.2. or sign Permit1/Permit2 */\n\n const { signPermit, signPermitMut } = useSignPermit1Or2({\n srcToken: srcToken as Address | undefined,\n chainId,\n allowance: {\n spender: allowanceToSetWithSlippage.spender,\n needsApproval: allowanceToSetWithSlippage.needsApproval,\n permit1AllowanceToSet: allowanceToSetWithSlippage.allowanceToSet,\n permit2AllowanceToSet: permit2Allowance.allowanceToSet,\n },\n });\n\n /* 3. await Approve tx (if sent) */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const tokensMap = useTokensByAddress(chainId);\n const tokenObject = srcToken ? tokensMap[srcToken.toLowerCase()] : undefined;\n\n const approval: ApprovalFlowResult = {\n token: srcToken as Address | undefined,\n tokenObject,\n chainId,\n /* allowance fetching */\n needsApproval: allowanceToSetWithSlippage.needsApproval,\n allowanceToSet: allowanceToSetWithSlippage.allowanceToSet,\n currentAllowance: allowanceToSetWithSlippage.allowance,\n spender: allowanceToSetWithSlippage.spender,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowanceToSetWithSlippage.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowanceToSetWithSlippage.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowanceToSetWithSlippage.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess:\n !allowanceToSetWithSlippage.needsApproval || approveTxMined.isSuccess, // final success\n error: allowanceToSetWithSlippage.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n const events = useApproveOrPermitEvents({\n approval,\n signPermit,\n allowanceToApprove: allowanceToSetWithSlippage.allowanceToSet,\n permit2Allowance: permit2Allowance.allowanceToSet,\n chainId,\n tradeMode,\n });\n\n return {\n approval,\n approveTxMut,\n signPermit,\n signPermitMut,\n events,\n };\n}\n\nfunction useAllowanceToApprove(params: UseApproveOrPermitInput) {\n const combinedAllowance = useCombinedAllowance(params);\n const singleUseAllowance = useSingleUseAllowance(params);\n\n return {\n combinedAllowance, // allowance for any open Delta/OTC orders + new order, with slippage if BUY\n singleUseAllowance, // exact allowance for srcAmount, with slippage if BUY\n };\n}\n\n// amount for the new Delta/OTC order + amount required to cover allowance of current Delta/OTC orders\n// if includeCurrentOrdersAllowance=true (only for SpenderContractType=ParaswapDelta)\n// =exact required? + (single * slippage if BUY)\nfunction useCombinedAllowance({\n srcToken,\n srcAmount,\n spenderContractType,\n swapSide,\n tradeMode,\n includeCurrentOrdersAllowance,\n chainId,\n}: UseApproveOrPermitInput) {\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n const allowanceToSetWithSlippage = allowanceWithSlippage({\n allowance: srcAmount,\n swapSide,\n slippage: resolvedSlippage,\n });\n\n const { combinedAllowance: srcCombinedAllowance } =\n useRequiredAllowanceForOrders({\n tokenAddress: srcToken,\n increaseByAmount: allowanceToSetWithSlippage,\n spenderContractType,\n includeCurrentOrdersAllowance,\n });\n\n return useGenericTokenAllowanceMin({\n tokenAddress: srcToken,\n amountToApproveInWei: srcCombinedAllowance,\n spenderContractType,\n chainId,\n });\n}\n\n// =exact srcAmount * slippage if BUY\nfunction useSingleUseAllowance({\n srcToken,\n srcAmount,\n spenderContractType,\n chainId,\n swapSide,\n tradeMode,\n}: UseApproveOrPermitInput) {\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n const singleUseAllowance = useGenericTokenAllowanceMin({\n tokenAddress: srcToken,\n amountToApproveInWei: srcAmount,\n spenderContractType,\n chainId,\n });\n\n return genericAllowanceWithSlippage({\n allowance: singleUseAllowance,\n swapSide,\n slippage: resolvedSlippage,\n });\n}\n"],"names":["useApproveOrPermit","params","$","_c","logger","useLogger","srcToken","tradeMode","chainId","combinedAllowance","allowanceToSetWithSlippage","singleUseAllowance","permit2Allowance","useAllowanceToApprove","t0","address","undefined","t1","t2","log","error","t3","token","allowanceData","spender","onSuccess","onError","approveTxMut","useApprove","t4","t5","allowanceToSet","needsApproval","permit1AllowanceToSet","permit2AllowanceToSet","t6","allowance","signPermit","signPermitMut","useSignPermit1Or2","t7","txHash","hash","approveTxMined","useAwaitTx","tokensMap","useTokensByAddress","t8","toLowerCase","tokenObject","t9","t10","isPending","isLoading","t11","isError","t12","isSuccess","t13","t14","isLoadingPrerequisites","data","currentAllowance","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","approval","t15","allowanceToApprove","events","useApproveOrPermitEvents","t16","useCombinedAllowance","useSingleUseAllowance","srcAmount","spenderContractType","swapSide","includeCurrentOrdersAllowance","resolvedSlippage","useSlippage","allowanceWithSlippage","slippage","tokenAddress","increaseByAmount","srcCombinedAllowance","useRequiredAllowanceForOrders","amountToApproveInWei","useGenericTokenAllowanceMin","genericAllowanceWithSlippage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useApproveOrPermit.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/useApproveOrPermit.ts"],"sourcesContent":["import { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { Address } from \"viem\";\nimport { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport type { ApprovalFlowResult, SignPermitFlowResult } from \"./types\";\nimport type { UseApproveResult } from \"@/hooks/txs/mutations/useApprove\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useSignPermit1Or2, type PermitMut } from \"./useSignPermit1Or2\";\nimport { useLogger } from \"@/core/logger\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useTokensByAddress } from \"@/hooks/tokens/useTokensByAddress\";\nimport {\n useApproveOrPermitEvents,\n type ApproveOrPermitEvents,\n} from \"./useApproveOrPermitEvents\";\nimport { useRequiredAllowanceForOrders } from \"./useRequiredAllowanceForOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { allowanceWithSlippage } from \"@/hooks/tokens/allowance/utils\";\n\ntype UseApproveOrPermitInput = {\n srcToken?: string;\n srcAmount?: string | bigint;\n spenderContractType: SpenderContractType;\n swapSide: \"BUY\" | \"SELL\";\n tradeMode: TradeMode;\n /** @description Whether to include the allowance of currently active Orders in the combined allowance */\n includeCurrentOrdersAllowance?: boolean;\n chainId: SupportedChainId;\n};\n\ntype UseApproveOrPermitResult = {\n approval: ApprovalFlowResult;\n approveTxMut: UseApproveResult;\n signPermit: SignPermitFlowResult;\n signPermitMut: PermitMut;\n events: ApproveOrPermitEvents;\n};\n\nexport function useApproveOrPermit(\n params: UseApproveOrPermitInput\n): UseApproveOrPermitResult {\n const logger = useLogger(\"ApproveOrPermit\");\n\n const { srcToken, tradeMode, chainId } = params;\n\n /* 1. gather Allowance data */\n\n const {\n combinedAllowance: allowanceToSetWithSlippage,\n // Permit2 allowance is usually unlimited if the user traded this token in Uniswap before\n // for Delta Orders permit2 amount and deadline have to match with order.srcAmount and order.deadline\n // that user signs when creating the order in useDeltaFlow\n singleUseAllowance: permit2Allowance,\n } = useAllowanceToApprove(params);\n\n /* 2.1. submit Approve tx */\n\n const approveTxMut = useApprove({\n token: srcToken ? { address: srcToken } : undefined,\n allowanceData: allowanceToSetWithSlippage,\n spender: allowanceToSetWithSlippage.spender,\n onSuccess: () => {\n logger.log(\"Approve tx success\");\n },\n onError: (error) => {\n logger.error(\"Approve tx error\", error);\n },\n });\n\n /* 2.2. or sign Permit1/Permit2 */\n\n const { signPermit, signPermitMut } = useSignPermit1Or2({\n srcToken: srcToken as Address | undefined,\n chainId,\n allowance: {\n spender: allowanceToSetWithSlippage.spender,\n needsApproval: allowanceToSetWithSlippage.needsApproval,\n permit1AllowanceToSet: allowanceToSetWithSlippage.allowanceToSet,\n permit2AllowanceToSet: permit2Allowance.allowanceToSet,\n },\n });\n\n /* 3. await Approve tx (if sent) */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const tokensMap = useTokensByAddress(chainId);\n const tokenObject = srcToken ? tokensMap[srcToken.toLowerCase()] : undefined;\n\n const approval: ApprovalFlowResult = {\n token: srcToken as Address | undefined,\n tokenObject,\n chainId,\n /* allowance fetching */\n needsApproval: allowanceToSetWithSlippage.needsApproval,\n allowanceToSet: allowanceToSetWithSlippage.allowanceToSet,\n currentAllowance: allowanceToSetWithSlippage.allowance,\n spender: allowanceToSetWithSlippage.spender,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowanceToSetWithSlippage.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowanceToSetWithSlippage.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowanceToSetWithSlippage.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess:\n !allowanceToSetWithSlippage.needsApproval || approveTxMined.isSuccess, // final success\n error: allowanceToSetWithSlippage.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n const events = useApproveOrPermitEvents({\n approval,\n signPermit,\n allowanceToApprove: allowanceToSetWithSlippage.allowanceToSet,\n permit2Allowance: permit2Allowance.allowanceToSet,\n chainId,\n tradeMode,\n });\n\n return {\n approval,\n approveTxMut,\n signPermit,\n signPermitMut,\n events,\n };\n}\n\nfunction useAllowanceToApprove(params: UseApproveOrPermitInput) {\n const combinedAllowance = useCombinedAllowance(params);\n const singleUseAllowance = useSingleUseAllowance(params);\n\n return {\n combinedAllowance, // allowance for any open Delta/OTC orders + new order, with slippage if BUY\n singleUseAllowance, // exact allowance for srcAmount, with slippage if BUY\n };\n}\n\n// =amount required to cover allowance of current Delta/OTC orders + amount for the new Delta/OTC order if includeCurrentOrdersAllowance=true (only for SpenderContractType=ParaswapDelta)\nfunction useCombinedAllowance({\n srcToken,\n srcAmount,\n spenderContractType,\n swapSide,\n tradeMode,\n includeCurrentOrdersAllowance,\n chainId,\n}: UseApproveOrPermitInput) {\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n const { combinedAllowance: srcCombinedAllowance } =\n useRequiredAllowanceForOrders({\n tokenAddress: srcToken,\n increaseByAmount: srcAmount,\n spenderContractType,\n includeCurrentOrdersAllowance,\n });\n\n const combinedAllowance = useGenericTokenAllowanceMin({\n tokenAddress: srcToken,\n amountToApproveInWei: srcCombinedAllowance,\n spenderContractType,\n chainId,\n });\n\n return allowanceWithSlippage({\n allowance: combinedAllowance,\n swapSide,\n slippage: resolvedSlippage,\n });\n}\n\n// =exact srcAmount + slippage if BUY\nfunction useSingleUseAllowance({\n srcToken,\n srcAmount,\n spenderContractType,\n chainId,\n swapSide,\n tradeMode,\n}: UseApproveOrPermitInput) {\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n const singleUseAllowance = useGenericTokenAllowanceMin({\n tokenAddress: srcToken,\n amountToApproveInWei: srcAmount,\n spenderContractType,\n chainId,\n });\n\n return allowanceWithSlippage({\n allowance: singleUseAllowance,\n swapSide,\n slippage: resolvedSlippage,\n });\n}\n"],"names":["useApproveOrPermit","params","$","_c","logger","useLogger","srcToken","tradeMode","chainId","combinedAllowance","allowanceToSetWithSlippage","singleUseAllowance","permit2Allowance","useAllowanceToApprove","t0","address","undefined","t1","t2","log","error","t3","token","allowanceData","spender","onSuccess","onError","approveTxMut","useApprove","t4","t5","allowanceToSet","needsApproval","permit1AllowanceToSet","permit2AllowanceToSet","t6","allowance","signPermit","signPermitMut","useSignPermit1Or2","t7","txHash","hash","approveTxMined","useAwaitTx","tokensMap","useTokensByAddress","t8","toLowerCase","tokenObject","t9","t10","isPending","isLoading","t11","isError","t12","isSuccess","t13","t14","isLoadingPrerequisites","data","currentAllowance","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","approval","t15","allowanceToApprove","events","useApproveOrPermitEvents","t16","useCombinedAllowance","useSingleUseAllowance","srcAmount","spenderContractType","swapSide","includeCurrentOrdersAllowance","resolvedSlippage","useSlippage","tokenAddress","increaseByAmount","srcCombinedAllowance","useRequiredAllowanceForOrders","amountToApproveInWei","useGenericTokenAllowanceMin","allowanceWithSlippage","slippage"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Address, TransactionReceipt } from 'viem';
|
|
2
|
+
import { SubmittedDeltaOrderFromAPI } from '../../prices/delta/queries/useDeltaOrders';
|
|
3
|
+
import { SupportedChainId } from '../../../../lib/web3/wagmi/types';
|
|
4
|
+
import { LoggerInstance } from '../../../../lib/utils/logger';
|
|
5
|
+
import { DeltaOrderApiResponse, MinViemClient } from '@velora-dex/sdk';
|
|
6
|
+
import { CreateDeltaOrderInput } from '../../prices/delta/mutations/useCreateDeltaOrder';
|
|
7
|
+
import { TxSentObject } from '../../../../lib/utils/transactionHandlers';
|
|
8
|
+
import { PreSignDeltaOrderToPost } from '../../prices/delta/mutations/types';
|
|
9
|
+
export type DeltaOrderDepositResult = {
|
|
10
|
+
depositPrep: {
|
|
11
|
+
order?: PreSignDeltaOrderToPost;
|
|
12
|
+
isCreatingOrder: boolean;
|
|
13
|
+
isOrderHashReady: boolean;
|
|
14
|
+
isPending: boolean;
|
|
15
|
+
isError: boolean;
|
|
16
|
+
isSuccess: boolean;
|
|
17
|
+
error: Error | null;
|
|
18
|
+
};
|
|
19
|
+
depositTx: {
|
|
20
|
+
txHash?: Address;
|
|
21
|
+
receipt?: TransactionReceipt;
|
|
22
|
+
isConfirmingTX: boolean;
|
|
23
|
+
isConfirmingTxError: boolean;
|
|
24
|
+
isTxSent: boolean;
|
|
25
|
+
isTxPending: boolean;
|
|
26
|
+
isTxMined: boolean;
|
|
27
|
+
isTxAwaitingError: boolean;
|
|
28
|
+
isPending: boolean;
|
|
29
|
+
isSuccess: boolean;
|
|
30
|
+
isError: boolean;
|
|
31
|
+
error: Error | null;
|
|
32
|
+
};
|
|
33
|
+
postingOrder: {
|
|
34
|
+
order?: SubmittedDeltaOrderFromAPI;
|
|
35
|
+
isPostingOrder: boolean;
|
|
36
|
+
isOrderSent: boolean;
|
|
37
|
+
isPending: boolean;
|
|
38
|
+
isError: boolean;
|
|
39
|
+
isSuccess: boolean;
|
|
40
|
+
error: Error | null;
|
|
41
|
+
};
|
|
42
|
+
order?: SubmittedDeltaOrderFromAPI;
|
|
43
|
+
isCreatingOrder: boolean;
|
|
44
|
+
isOrderSent: boolean;
|
|
45
|
+
isPending: boolean;
|
|
46
|
+
isError: boolean;
|
|
47
|
+
isSuccess: boolean;
|
|
48
|
+
error: Error | null;
|
|
49
|
+
};
|
|
50
|
+
type UseDepositAndSubmitDeltaOrderInput = {
|
|
51
|
+
chainId: SupportedChainId;
|
|
52
|
+
account?: Address;
|
|
53
|
+
logger: LoggerInstance;
|
|
54
|
+
viemClient?: MinViemClient;
|
|
55
|
+
};
|
|
56
|
+
type UseDepositAndSubmitDeltaOrderResult = {
|
|
57
|
+
deltaOrderDeposit: DeltaOrderDepositResult;
|
|
58
|
+
depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc;
|
|
59
|
+
reset: () => void;
|
|
60
|
+
};
|
|
61
|
+
export declare function useDepositAndSubmitDeltaOrder({ chainId, account, logger, viemClient, }: UseDepositAndSubmitDeltaOrderInput): UseDepositAndSubmitDeltaOrderResult;
|
|
62
|
+
type DepositAndSubmitDeltaOrderInput = {
|
|
63
|
+
createDeltaOrderInput: CreateDeltaOrderInput;
|
|
64
|
+
depositAmount: string;
|
|
65
|
+
onTxSent?: (txSent: TxSentObject) => void;
|
|
66
|
+
};
|
|
67
|
+
type DepositAndSubmitDeltaOrderFunc = (input: DepositAndSubmitDeltaOrderInput) => Promise<DeltaOrderApiResponse>;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=useDepositAndSubmitDeltaOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDepositAndSubmitDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { useFetchOnlySDK } from '../../../useSDK.js';
|
|
2
|
+
import 'viem';
|
|
3
|
+
import { deltaOrdersQueryKey } from '../../prices/delta/queries/useDeltaOrders.js';
|
|
4
|
+
import { usePostDeltaOrder } from '../../prices/delta/mutations/usePostDeltaOrder.js';
|
|
5
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
6
|
+
import { assert } from 'ts-essentials';
|
|
7
|
+
import { useAwaitTx, useEnsureTxReceipt } from '../../../txs/queries/useAwaitTx.js';
|
|
8
|
+
import { isETHaddress } from '../../../../tokens/utils/eth.js';
|
|
9
|
+
import { useDeltaOrderToPost } from '../../prices/delta/mutations/useDeltaOrderToPost.js';
|
|
10
|
+
import { useSendDepositPreSignDeltaOrderTx } from '../../prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js';
|
|
11
|
+
|
|
12
|
+
function useDepositAndSubmitDeltaOrder({
|
|
13
|
+
chainId,
|
|
14
|
+
account,
|
|
15
|
+
logger,
|
|
16
|
+
viemClient
|
|
17
|
+
}) {
|
|
18
|
+
const queryClient = useQueryClient();
|
|
19
|
+
const deltaOrderToPostMut = useDeltaOrderToPost({
|
|
20
|
+
chainId,
|
|
21
|
+
client: viemClient
|
|
22
|
+
});
|
|
23
|
+
const {
|
|
24
|
+
sdk: fetchOnlySDK
|
|
25
|
+
} = useFetchOnlySDK({
|
|
26
|
+
chainId
|
|
27
|
+
});
|
|
28
|
+
const depositPrep = {
|
|
29
|
+
isCreatingOrder: deltaOrderToPostMut.isPending,
|
|
30
|
+
isOrderHashReady: deltaOrderToPostMut.isSuccess,
|
|
31
|
+
order: deltaOrderToPostMut.data,
|
|
32
|
+
isPending: deltaOrderToPostMut.isPending,
|
|
33
|
+
isError: deltaOrderToPostMut.isError,
|
|
34
|
+
isSuccess: deltaOrderToPostMut.isSuccess,
|
|
35
|
+
error: deltaOrderToPostMut.error
|
|
36
|
+
};
|
|
37
|
+
const sendDepositTxMut = useSendDepositPreSignDeltaOrderTx({
|
|
38
|
+
chainId,
|
|
39
|
+
client: viemClient
|
|
40
|
+
});
|
|
41
|
+
const awaitDepositTx = useAwaitTx({
|
|
42
|
+
hash: sendDepositTxMut.data,
|
|
43
|
+
chainId
|
|
44
|
+
});
|
|
45
|
+
const depositTx = {
|
|
46
|
+
txHash: sendDepositTxMut.data,
|
|
47
|
+
receipt: awaitDepositTx.data,
|
|
48
|
+
/* tx sending */
|
|
49
|
+
isConfirmingTX: sendDepositTxMut.isPending,
|
|
50
|
+
isConfirmingTxError: sendDepositTxMut.isError,
|
|
51
|
+
isTxSent: sendDepositTxMut.isSuccess,
|
|
52
|
+
/* tx awaiting */
|
|
53
|
+
isTxPending: awaitDepositTx.isLoading,
|
|
54
|
+
isTxMined: awaitDepositTx.isSuccess,
|
|
55
|
+
isTxAwaitingError: awaitDepositTx.isError,
|
|
56
|
+
/* combined */
|
|
57
|
+
isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,
|
|
58
|
+
isSuccess: awaitDepositTx.isSuccess,
|
|
59
|
+
// final success
|
|
60
|
+
isError: sendDepositTxMut.isError || awaitDepositTx.isError,
|
|
61
|
+
error: sendDepositTxMut.error || awaitDepositTx.error
|
|
62
|
+
};
|
|
63
|
+
const postOrderMut = usePostDeltaOrder({
|
|
64
|
+
chainId,
|
|
65
|
+
account,
|
|
66
|
+
client: viemClient,
|
|
67
|
+
mutationOptions: {
|
|
68
|
+
onSuccess: (order) => {
|
|
69
|
+
logger.log("[DepositAndSubmit] Create Delta Order success", order);
|
|
70
|
+
queryClient.invalidateQueries({
|
|
71
|
+
queryKey: deltaOrdersQueryKey({
|
|
72
|
+
userAddress: order.user
|
|
73
|
+
}),
|
|
74
|
+
exact: false
|
|
75
|
+
});
|
|
76
|
+
},
|
|
77
|
+
onError: (error) => {
|
|
78
|
+
logger.error("[DepositAndSubmit] Create Delta Order error", error);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
const deltaOrderPosting = {
|
|
83
|
+
order: postOrderMut.data,
|
|
84
|
+
isPostingOrder: postOrderMut.isPending,
|
|
85
|
+
isOrderSent: postOrderMut.isSuccess,
|
|
86
|
+
isPending: postOrderMut.isPending,
|
|
87
|
+
isError: postOrderMut.isError,
|
|
88
|
+
isSuccess: postOrderMut.isSuccess,
|
|
89
|
+
error: postOrderMut.error
|
|
90
|
+
};
|
|
91
|
+
const deltaOrderDeposit = {
|
|
92
|
+
order: postOrderMut.data,
|
|
93
|
+
depositPrep,
|
|
94
|
+
depositTx,
|
|
95
|
+
postingOrder: deltaOrderPosting,
|
|
96
|
+
isCreatingOrder: depositPrep.isCreatingOrder || depositTx.isPending || deltaOrderPosting.isPostingOrder,
|
|
97
|
+
isOrderSent: deltaOrderPosting.isOrderSent,
|
|
98
|
+
isPending: depositPrep.isPending || depositTx.isPending || deltaOrderPosting.isPending,
|
|
99
|
+
isError: depositPrep.isError || depositTx.isError || deltaOrderPosting.isError,
|
|
100
|
+
isSuccess: deltaOrderPosting.isSuccess,
|
|
101
|
+
error: depositPrep.error || depositTx.error || deltaOrderPosting.error
|
|
102
|
+
};
|
|
103
|
+
const ensureTxReceipt = useEnsureTxReceipt();
|
|
104
|
+
const depositAndSubmitDeltaOrder = async ({
|
|
105
|
+
depositAmount: _depositAmount,
|
|
106
|
+
createDeltaOrderInput,
|
|
107
|
+
onTxSent
|
|
108
|
+
}) => {
|
|
109
|
+
const depositAmount = BigInt(_depositAmount);
|
|
110
|
+
assert(isETHaddress(createDeltaOrderInput.orderInput.srcToken), "srcToken must be ETH");
|
|
111
|
+
assert(depositAmount > 0n, "depositAmount must be greater than 0");
|
|
112
|
+
const {
|
|
113
|
+
signal
|
|
114
|
+
} = createDeltaOrderInput;
|
|
115
|
+
signal?.throwIfAborted();
|
|
116
|
+
const orderToPost = await deltaOrderToPostMut.mutateAsync(createDeltaOrderInput);
|
|
117
|
+
signal?.throwIfAborted();
|
|
118
|
+
let orderIsPosted = false;
|
|
119
|
+
const sendUnsentOrderOnPageHide = () => {
|
|
120
|
+
if (orderIsPosted) return;
|
|
121
|
+
orderIsPosted = true;
|
|
122
|
+
fetchOnlySDK?.postDeltaOrder(orderToPost);
|
|
123
|
+
};
|
|
124
|
+
window.addEventListener("pagehide", sendUnsentOrderOnPageHide, {
|
|
125
|
+
once: true
|
|
126
|
+
});
|
|
127
|
+
try {
|
|
128
|
+
const depositTxHash = await sendDepositTxMut.mutateAsync({
|
|
129
|
+
orderHash: orderToPost.orderHash,
|
|
130
|
+
depositAmount: depositAmount.toString(),
|
|
131
|
+
signal
|
|
132
|
+
});
|
|
133
|
+
logger.log("[DepositAndSubmit] awaiting depositNativeAndPreSign txHash:", depositTxHash);
|
|
134
|
+
const depositTxReceiptPromise = ensureTxReceipt({
|
|
135
|
+
hash: depositTxHash,
|
|
136
|
+
chainId,
|
|
137
|
+
onReplaced: (data) => {
|
|
138
|
+
logger.log("[DepositAndSubmit] onReplaced:txHash", depositTxHash, data);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
if (onTxSent) {
|
|
142
|
+
onTxSent({
|
|
143
|
+
chainId,
|
|
144
|
+
action: "depositNativeAndPreSign",
|
|
145
|
+
receiptPromise: depositTxReceiptPromise,
|
|
146
|
+
transactionHash: depositTxHash,
|
|
147
|
+
transactionSpecificData: {
|
|
148
|
+
action: "depositNativeAndPreSign",
|
|
149
|
+
order: orderToPost,
|
|
150
|
+
depositAmount
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
const depositTxReceipt = await depositTxReceiptPromise;
|
|
155
|
+
logger.log("[DepositAndSubmit] depositNativeAndPreSign tx mined, receipt:", depositTxReceipt);
|
|
156
|
+
const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);
|
|
157
|
+
orderIsPosted = true;
|
|
158
|
+
return orderFromAPI;
|
|
159
|
+
} catch (error_0) {
|
|
160
|
+
logger.error("[DepositAndSubmit] error", error_0);
|
|
161
|
+
throw error_0;
|
|
162
|
+
} finally {
|
|
163
|
+
window.removeEventListener("pagehide", sendUnsentOrderOnPageHide);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
const reset = () => {
|
|
167
|
+
deltaOrderToPostMut.reset();
|
|
168
|
+
sendDepositTxMut.reset();
|
|
169
|
+
postOrderMut.reset();
|
|
170
|
+
};
|
|
171
|
+
return {
|
|
172
|
+
deltaOrderDeposit,
|
|
173
|
+
depositAndSubmitDeltaOrder,
|
|
174
|
+
reset
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export { useDepositAndSubmitDeltaOrder };
|
|
179
|
+
//# sourceMappingURL=useDepositAndSubmitDeltaOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDepositAndSubmitDeltaOrder.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.ts"],"sourcesContent":["import { useFetchOnlySDK } from \"@/hooks/useSDK\";\n\nimport { type Address, type TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../../prices/delta/queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { DeltaOrderApiResponse, MinViemClient } from \"@velora-dex/sdk\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useDeltaOrderToPost } from \"../../prices/delta/mutations/useDeltaOrderToPost\";\nimport { useSendDepositPreSignDeltaOrderTx } from \"../../prices/delta/mutations/useSendDepositPreSignDeltaOrderTx\";\nimport type { PreSignDeltaOrderToPost } from \"../../prices/delta/mutations/types\";\n\nexport type DeltaOrderDepositResult = {\n depositPrep: {\n order?: PreSignDeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n depositTx: {\n txHash?: Address;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n postingOrder: {\n order?: SubmittedDeltaOrderFromAPI;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UseDepositAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UseDepositAndSubmitDeltaOrderResult = {\n deltaOrderDeposit: DeltaOrderDepositResult;\n depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UseDepositAndSubmitDeltaOrderInput): UseDepositAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const deltaOrderToPostMut = useDeltaOrderToPost({\n chainId,\n client: viemClient,\n });\n\n const { sdk: fetchOnlySDK } = useFetchOnlySDK({\n chainId,\n });\n\n const depositPrep: DeltaOrderDepositResult[\"depositPrep\"] = {\n isCreatingOrder: deltaOrderToPostMut.isPending,\n isOrderHashReady: deltaOrderToPostMut.isSuccess,\n order: deltaOrderToPostMut.data,\n isPending: deltaOrderToPostMut.isPending,\n isError: deltaOrderToPostMut.isError,\n isSuccess: deltaOrderToPostMut.isSuccess,\n error: deltaOrderToPostMut.error,\n };\n\n /* 1. submit depositNativeAndPreSign tx */\n const sendDepositTxMut = useSendDepositPreSignDeltaOrderTx({\n chainId,\n client: viemClient,\n });\n\n /* 2. await depositNativeAndPreSign tx */\n const awaitDepositTx = useAwaitTx({\n hash: sendDepositTxMut.data,\n chainId,\n });\n\n const depositTx = {\n txHash: sendDepositTxMut.data,\n receipt: awaitDepositTx.data,\n /* tx sending */\n isConfirmingTX: sendDepositTxMut.isPending,\n isConfirmingTxError: sendDepositTxMut.isError,\n isTxSent: sendDepositTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: awaitDepositTx.isLoading,\n isTxMined: awaitDepositTx.isSuccess,\n isTxAwaitingError: awaitDepositTx.isError,\n /* combined */\n isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,\n isSuccess: awaitDepositTx.isSuccess, // final success\n isError: sendDepositTxMut.isError || awaitDepositTx.isError,\n error: sendDepositTxMut.error || awaitDepositTx.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostDeltaOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"[DepositAndSubmit] Create Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"[DepositAndSubmit] Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderDepositResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const deltaOrderDeposit: DeltaOrderDepositResult = {\n order: postOrderMut.data,\n depositPrep: depositPrep,\n depositTx,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n depositPrep.isCreatingOrder ||\n depositTx.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n depositPrep.isPending ||\n depositTx.isPending ||\n deltaOrderPosting.isPending,\n isError:\n depositPrep.isError || depositTx.isError || deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess,\n error: depositPrep.error || depositTx.error || deltaOrderPosting.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc = async ({\n depositAmount: _depositAmount,\n createDeltaOrderInput,\n onTxSent,\n }) => {\n const depositAmount = BigInt(_depositAmount);\n\n assert(\n isETHaddress(createDeltaOrderInput.orderInput.srcToken),\n \"srcToken must be ETH\"\n );\n assert(depositAmount > 0n, \"depositAmount must be greater than 0\");\n\n // deposit ETH + depositTx + POST order\n\n const { signal } = createDeltaOrderInput;\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const orderToPost = await deltaOrderToPostMut.mutateAsync(\n createDeltaOrderInput\n );\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n let orderIsPosted = false;\n\n const sendUnsentOrderOnPageHide = () => {\n if (orderIsPosted) return;\n orderIsPosted = true;\n fetchOnlySDK?.postDeltaOrder(orderToPost);\n };\n\n // subscribe to `pagehide` event\n // in that case POST the Order just in case the page is never reloaded or localStorage survives until then.\n window.addEventListener(\"pagehide\", sendUnsentOrderOnPageHide, {\n once: true,\n });\n\n try {\n const depositTxHash = await sendDepositTxMut.mutateAsync({\n orderHash: orderToPost.orderHash,\n depositAmount: depositAmount.toString(),\n signal,\n });\n\n logger.log(\n \"[DepositAndSubmit] awaiting depositNativeAndPreSign txHash:\",\n depositTxHash\n );\n\n const depositTxReceiptPromise = ensureTxReceipt({\n hash: depositTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\n \"[DepositAndSubmit] onReplaced:txHash\",\n depositTxHash,\n data\n );\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"depositNativeAndPreSign\",\n receiptPromise: depositTxReceiptPromise,\n transactionHash: depositTxHash,\n transactionSpecificData: {\n action: \"depositNativeAndPreSign\",\n order: orderToPost,\n depositAmount,\n },\n });\n }\n\n // 5. wait for the depositNativeAndPreSign tx to be mined\n const depositTxReceipt = await depositTxReceiptPromise;\n\n logger.log(\n \"[DepositAndSubmit] depositNativeAndPreSign tx mined, receipt:\",\n depositTxReceipt\n );\n\n // 6. POST the Order to API with signature=0x\n const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);\n orderIsPosted = true;\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"[DepositAndSubmit] error\", error);\n throw error;\n } finally {\n window.removeEventListener(\"pagehide\", sendUnsentOrderOnPageHide);\n }\n };\n\n const reset = () => {\n deltaOrderToPostMut.reset();\n sendDepositTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderDeposit,\n depositAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype DepositAndSubmitDeltaOrderInput = {\n createDeltaOrderInput: CreateDeltaOrderInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype DepositAndSubmitDeltaOrderFunc = (\n input: DepositAndSubmitDeltaOrderInput\n) => Promise<DeltaOrderApiResponse>;\n"],"names":["useDepositAndSubmitDeltaOrder","chainId","account","logger","viemClient","queryClient","useQueryClient","deltaOrderToPostMut","useDeltaOrderToPost","client","sdk","fetchOnlySDK","useFetchOnlySDK","depositPrep","isCreatingOrder","isPending","isOrderHashReady","isSuccess","order","data","isError","error","sendDepositTxMut","useSendDepositPreSignDeltaOrderTx","awaitDepositTx","useAwaitTx","hash","depositTx","txHash","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isLoading","isTxMined","isTxAwaitingError","postOrderMut","usePostDeltaOrder","mutationOptions","onSuccess","log","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","onError","deltaOrderPosting","isPostingOrder","isOrderSent","deltaOrderDeposit","postingOrder","ensureTxReceipt","useEnsureTxReceipt","depositAndSubmitDeltaOrder","depositAmount","_depositAmount","createDeltaOrderInput","onTxSent","BigInt","assert","isETHaddress","orderInput","srcToken","signal","throwIfAborted","orderToPost","mutateAsync","orderIsPosted","sendUnsentOrderOnPageHide","postDeltaOrder","window","addEventListener","once","depositTxHash","orderHash","toString","depositTxReceiptPromise","onReplaced","action","receiptPromise","transactionHash","transactionSpecificData","depositTxReceipt","orderFromAPI","removeEventListener","reset"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PreSignDeltaOrderToPost } from '../../prices/delta/mutations/types';
|
|
2
2
|
import { Address } from 'viem';
|
|
3
3
|
import { SubmittedDeltaOrderFromAPI } from '../../prices/delta/queries/useDeltaOrders';
|
|
4
4
|
import { SupportedChainId } from '../../../../lib/web3/wagmi/types';
|
|
@@ -10,7 +10,7 @@ import { ApprovalFlowResult, BatchTxStepResult, SignPermitFlowResult } from './t
|
|
|
10
10
|
export type DeltaOrderPreSignResult = {
|
|
11
11
|
canPreSignBatch: boolean;
|
|
12
12
|
preSignPrep: {
|
|
13
|
-
order?:
|
|
13
|
+
order?: PreSignDeltaOrderToPost;
|
|
14
14
|
isCreatingOrder: boolean;
|
|
15
15
|
isOrderHashReady: boolean;
|
|
16
16
|
isPending: boolean;
|
|
@@ -53,13 +53,11 @@ export declare function usePreSignAndSubmitDeltaOrder({ chainId, account, logger
|
|
|
53
53
|
type PreSignAndSubmitDeltaOrderInput = {
|
|
54
54
|
createDeltaOrderInput: CreateDeltaOrderInput;
|
|
55
55
|
approval: Pick<ApprovalFlowResult, "spender" | "allowanceToSet" | "token" | "chainId">;
|
|
56
|
-
preWrapETH?: boolean;
|
|
57
56
|
onTxSent?: (txSent: CallsSentObject) => void;
|
|
58
57
|
};
|
|
59
58
|
type PreSignAndSubmitDeltaOrderFunc = (input: PreSignAndSubmitDeltaOrderInput) => Promise<DeltaOrderApiResponse>;
|
|
60
59
|
type ShouldApproveOrBatchInput = {
|
|
61
60
|
approval: Pick<ApprovalFlowResult, "needsApproval" | "allowanceToSet">;
|
|
62
|
-
preWrapETH?: boolean;
|
|
63
61
|
signPermit: Pick<SignPermitFlowResult, "isPermitSupported" | "isPermitReadyToSign">;
|
|
64
62
|
canBatchTxs?: boolean;
|
|
65
63
|
isConnectedToSafe: boolean;
|
|
@@ -69,6 +67,6 @@ type ShouldApproveOrBatchResult = {
|
|
|
69
67
|
tryPermit: boolean;
|
|
70
68
|
shouldPreSignBatch: boolean;
|
|
71
69
|
};
|
|
72
|
-
export declare function shouldApproveOrBatch({ approval,
|
|
70
|
+
export declare function shouldApproveOrBatch({ approval, signPermit, canBatchTxs, isConnectedToSafe, }: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult;
|
|
73
71
|
export {};
|
|
74
72
|
//# sourceMappingURL=usePreSignAndSubmitDeltaOrder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreSignAndSubmitDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"usePreSignAndSubmitDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAWlF,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAK5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAIjB,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE;QACX,KAAK,CAAC,EAAE,uBAAuB,CAAC;QAChC,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,YAAY,EAAE,iBAAiB,CAAC;IAChC,YAAY,EAAE;QACZ,KAAK,CAAC,EAAE,0BAA0B,CAAC;QACnC,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,0BAA0B,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,kCAAkC,GAAG;IACxC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,GACX,EAAE,kCAAkC,GAAG,mCAAmC,CAiR1E;AAED,KAAK,+BAA+B,GAAG;IACrC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,EAAE,IAAI,CACZ,kBAAkB,EAClB,SAAS,GAAG,gBAAgB,GAAG,OAAO,GAAG,SAAS,CACnD,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,KAAK,8BAA8B,GAAG,CACpC,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,eAAe,GAAG,gBAAgB,CAAC,CAAC;IACvE,UAAU,EAAE,IAAI,CACd,oBAAoB,EACpB,mBAAmB,GAAG,qBAAqB,CAC5C,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,0BAA0B,EAAE,OAAO,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,UAAU,EACV,WAAW,EACX,iBAAiB,GAClB,EAAE,yBAAyB,GAAG,0BAA0B,CAkDxD"}
|
|
@@ -9,8 +9,6 @@ import { useConnectedSafe } from '../../../connectors/useIsConnectedSafe.js';
|
|
|
9
9
|
import { useCanBatchTxs } from '../../../batch/useCanBatchTxs.js';
|
|
10
10
|
import { usePostDeltaOrder } from '../../prices/delta/mutations/usePostDeltaOrder.js';
|
|
11
11
|
import { useQueryClient } from '@tanstack/react-query';
|
|
12
|
-
import { wrappedNativeCurrency } from '../../../../lib/constants/weth.js';
|
|
13
|
-
import { depositWETHCalldata } from './utils.js';
|
|
14
12
|
import { assert } from 'ts-essentials';
|
|
15
13
|
import { useEnsureContractsQuery } from '../../prices/market/queries/useSpenderAndContracts.js';
|
|
16
14
|
|
|
@@ -126,13 +124,11 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
126
124
|
});
|
|
127
125
|
const preSignAndSubmitDeltaOrder = async ({
|
|
128
126
|
createDeltaOrderInput,
|
|
129
|
-
preWrapETH,
|
|
130
127
|
approval,
|
|
131
128
|
onTxSent
|
|
132
129
|
}) => {
|
|
133
130
|
const {
|
|
134
|
-
signal
|
|
135
|
-
orderInput
|
|
131
|
+
signal
|
|
136
132
|
} = createDeltaOrderInput;
|
|
137
133
|
const {
|
|
138
134
|
orderToPost,
|
|
@@ -153,16 +149,6 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
153
149
|
chainId
|
|
154
150
|
}];
|
|
155
151
|
const needToApprove = approval.allowanceToSet && approval.allowanceToSet > 0n && approval.spender;
|
|
156
|
-
if (preWrapETH) {
|
|
157
|
-
const wrapAmount = BigInt(orderInput.srcAmount);
|
|
158
|
-
txsParams.unshift({
|
|
159
|
-
to: wrappedNativeCurrency[chainId],
|
|
160
|
-
account,
|
|
161
|
-
data: depositWETHCalldata,
|
|
162
|
-
value: wrapAmount,
|
|
163
|
-
chainId
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
152
|
const approveProps = needToApprove ? [{
|
|
167
153
|
spender: approval.spender,
|
|
168
154
|
allowanceToSet: approval.allowanceToSet,
|
|
@@ -235,7 +221,6 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
235
221
|
}
|
|
236
222
|
function shouldApproveOrBatch({
|
|
237
223
|
approval,
|
|
238
|
-
preWrapETH,
|
|
239
224
|
signPermit,
|
|
240
225
|
canBatchTxs,
|
|
241
226
|
isConnectedToSafe
|
|
@@ -245,10 +230,6 @@ function shouldApproveOrBatch({
|
|
|
245
230
|
const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;
|
|
246
231
|
let numberOfActions = 1;
|
|
247
232
|
let numberOfTxs = 0;
|
|
248
|
-
if (preWrapETH) {
|
|
249
|
-
numberOfActions++;
|
|
250
|
-
numberOfTxs++;
|
|
251
|
-
}
|
|
252
233
|
if (tokenNeedsApproval) {
|
|
253
234
|
numberOfActions++;
|
|
254
235
|
if (!tryPermit) {
|