@velora-dex/widget 0.4.2-dev.3 → 0.4.3
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 +23 -18
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- 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 +4 -6
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +147 -133
- 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 +55 -138
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.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 +137 -87
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/types.d.ts +5 -3
- 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 +108 -87
- 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 +14 -12
- 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 +74 -101
- 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 +72 -63
- 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 +16 -13
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.d.ts +2 -1
- package/dist/components/widget/TradeOverview/Step/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.js +4 -2
- 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 +59 -62
- 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 +5 -3
- 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 +181 -13
- 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 +18 -2
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +145 -111
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts +2 -0
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +65 -58
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/steps.d.ts +32 -0
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js +12 -2
- 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 +13 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.d.ts +4 -0
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js +6 -0
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js.map +1 -0
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +4 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js +2 -1
- 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 +2 -0
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +236 -3
- 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 +40 -18
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +46 -24
- 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/events/types/cancel.d.ts +1 -7
- 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 +9 -8
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +7 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +85 -13
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +1 -13
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +1 -80
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +2 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +1 -27
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +2 -3
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +2 -8
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +1 -27
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +9 -0
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +32 -1
- 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 +149 -142
- 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/usePreSignAndSubmitDeltaOrder.d.ts +3 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +20 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +5 -8
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +127 -68
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +4 -3
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +186 -98
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +4 -6
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +72 -56
- 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 +33 -23
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +37 -11
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +2 -0
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +161 -79
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/utils.d.ts +10 -2
- package/dist/hooks/tokens/allowance/utils.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/utils.js +19 -8
- 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/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 +5 -3
- package/dist/lib/utils/toDecimal.js.map +1 -1
- package/dist/styles.css +0 -3
- package/dist/transactions/types.d.ts +1 -9
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/components/widget/Button/CancelButton/CancelButton.d.ts +0 -7
- package/dist/components/widget/Button/CancelButton/CancelButton.d.ts.map +0 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.js +0 -102
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +0 -1
- package/dist/components/widget/Button/CancelButton/constants.d.ts +0 -2
- package/dist/components/widget/Button/CancelButton/constants.d.ts.map +0 -1
- package/dist/components/widget/Button/CancelButton/constants.js +0 -4
- package/dist/components/widget/Button/CancelButton/constants.js.map +0 -1
- package/dist/components/widget/Button/DismissButton.d.ts +0 -4
- package/dist/components/widget/Button/DismissButton.d.ts.map +0 -1
- package/dist/components/widget/Button/DismissButton.js +0 -29
- package/dist/components/widget/Button/DismissButton.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +0 -11
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +0 -87
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +0 -31
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +0 -246
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +0 -44
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +0 -268
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts +0 -108
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js +0 -168
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +0 -69
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +0 -192
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.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 } from '../../../tokens/allowance/utils.js';
|
|
11
|
+
import { allowanceWithSlippage, genericAllowanceWithSlippage } 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 = {
|
|
252
|
+
if ($[0] !== resolvedSlippage || $[1] !== srcAmount || $[2] !== swapSide) {
|
|
253
|
+
t1 = allowanceWithSlippage({
|
|
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 = {
|
|
254
269
|
tokenAddress: srcToken,
|
|
255
|
-
increaseByAmount:
|
|
270
|
+
increaseByAmount: allowanceToSetWithSlippage,
|
|
256
271
|
spenderContractType,
|
|
257
272
|
includeCurrentOrdersAllowance
|
|
258
273
|
};
|
|
259
|
-
$[
|
|
260
|
-
$[
|
|
261
|
-
$[
|
|
262
|
-
$[
|
|
263
|
-
$[
|
|
274
|
+
$[4] = allowanceToSetWithSlippage;
|
|
275
|
+
$[5] = includeCurrentOrdersAllowance;
|
|
276
|
+
$[6] = spenderContractType;
|
|
277
|
+
$[7] = srcToken;
|
|
278
|
+
$[8] = t2;
|
|
264
279
|
} else {
|
|
265
|
-
|
|
280
|
+
t2 = $[8];
|
|
266
281
|
}
|
|
267
282
|
const {
|
|
268
283
|
combinedAllowance: srcCombinedAllowance
|
|
269
|
-
} = useRequiredAllowanceForOrders(
|
|
270
|
-
let
|
|
271
|
-
if ($[
|
|
272
|
-
|
|
284
|
+
} = useRequiredAllowanceForOrders(t2);
|
|
285
|
+
let t3;
|
|
286
|
+
if ($[9] !== chainId || $[10] !== spenderContractType || $[11] !== srcCombinedAllowance || $[12] !== srcToken) {
|
|
287
|
+
t3 = {
|
|
273
288
|
tokenAddress: srcToken,
|
|
274
289
|
amountToApproveInWei: srcCombinedAllowance,
|
|
275
290
|
spenderContractType,
|
|
276
291
|
chainId
|
|
277
292
|
};
|
|
278
|
-
$[
|
|
279
|
-
$[
|
|
280
|
-
$[
|
|
281
|
-
$[
|
|
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;
|
|
293
|
+
$[9] = chainId;
|
|
294
|
+
$[10] = spenderContractType;
|
|
295
|
+
$[11] = srcCombinedAllowance;
|
|
296
|
+
$[12] = srcToken;
|
|
297
297
|
$[13] = t3;
|
|
298
298
|
} else {
|
|
299
299
|
t3 = $[13];
|
|
300
300
|
}
|
|
301
|
-
return t3;
|
|
301
|
+
return useGenericTokenAllowanceMin(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 = genericAllowanceWithSlippage({
|
|
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 { 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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"}
|
|
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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"}
|
|
@@ -53,11 +53,13 @@ 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;
|
|
56
57
|
onTxSent?: (txSent: CallsSentObject) => void;
|
|
57
58
|
};
|
|
58
59
|
type PreSignAndSubmitDeltaOrderFunc = (input: PreSignAndSubmitDeltaOrderInput) => Promise<DeltaOrderApiResponse>;
|
|
59
60
|
type ShouldApproveOrBatchInput = {
|
|
60
61
|
approval: Pick<ApprovalFlowResult, "needsApproval" | "allowanceToSet">;
|
|
62
|
+
preWrapETH?: boolean;
|
|
61
63
|
signPermit: Pick<SignPermitFlowResult, "isPermitSupported" | "isPermitReadyToSign">;
|
|
62
64
|
canBatchTxs?: boolean;
|
|
63
65
|
isConnectedToSafe: boolean;
|
|
@@ -67,6 +69,6 @@ type ShouldApproveOrBatchResult = {
|
|
|
67
69
|
tryPermit: boolean;
|
|
68
70
|
shouldPreSignBatch: boolean;
|
|
69
71
|
};
|
|
70
|
-
export declare function shouldApproveOrBatch({ approval, signPermit, canBatchTxs, isConnectedToSafe, }: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult;
|
|
72
|
+
export declare function shouldApproveOrBatch({ approval, preWrapETH, signPermit, canBatchTxs, isConnectedToSafe, }: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult;
|
|
71
73
|
export {};
|
|
72
74
|
//# 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,EAEL,KAAK,gBAAgB,EACtB,MAAM,6DAA6D,CAAC;AAUrE,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;
|
|
1
|
+
{"version":3,"file":"usePreSignAndSubmitDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ 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';
|
|
12
14
|
import { assert } from 'ts-essentials';
|
|
13
15
|
import { useEnsureContractsQuery } from '../../prices/market/queries/useSpenderAndContracts.js';
|
|
14
16
|
|
|
@@ -124,11 +126,13 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
124
126
|
});
|
|
125
127
|
const preSignAndSubmitDeltaOrder = async ({
|
|
126
128
|
createDeltaOrderInput,
|
|
129
|
+
preWrapETH,
|
|
127
130
|
approval,
|
|
128
131
|
onTxSent
|
|
129
132
|
}) => {
|
|
130
133
|
const {
|
|
131
|
-
signal
|
|
134
|
+
signal,
|
|
135
|
+
orderInput
|
|
132
136
|
} = createDeltaOrderInput;
|
|
133
137
|
const {
|
|
134
138
|
orderToPost,
|
|
@@ -149,6 +153,16 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
149
153
|
chainId
|
|
150
154
|
}];
|
|
151
155
|
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
|
+
}
|
|
152
166
|
const approveProps = needToApprove ? [{
|
|
153
167
|
spender: approval.spender,
|
|
154
168
|
allowanceToSet: approval.allowanceToSet,
|
|
@@ -221,6 +235,7 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
221
235
|
}
|
|
222
236
|
function shouldApproveOrBatch({
|
|
223
237
|
approval,
|
|
238
|
+
preWrapETH,
|
|
224
239
|
signPermit,
|
|
225
240
|
canBatchTxs,
|
|
226
241
|
isConnectedToSafe
|
|
@@ -230,6 +245,10 @@ function shouldApproveOrBatch({
|
|
|
230
245
|
const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;
|
|
231
246
|
let numberOfActions = 1;
|
|
232
247
|
let numberOfTxs = 0;
|
|
248
|
+
if (preWrapETH) {
|
|
249
|
+
numberOfActions++;
|
|
250
|
+
numberOfTxs++;
|
|
251
|
+
}
|
|
233
252
|
if (tokenNeedsApproval) {
|
|
234
253
|
numberOfActions++;
|
|
235
254
|
if (!tryPermit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreSignAndSubmitDeltaOrder.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"sourcesContent":["import { useFetchOnlySDK } from \"@/hooks/useSDK\";\nimport {\n useCreatePreSignableDeltaOrder,\n type DeltaOrderToPost,\n} from \"../../prices/delta/mutations/useCreatePreSignableDeltaOrder\";\nimport {\n useBatchWithApproveTxs,\n type TxParams,\n} from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { isAddress, type Address } 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 { useConnectedSafe } from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type {\n ApprovalFlowResult,\n BatchTxStepResult,\n SignPermitFlowResult,\n} from \"./types\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureContractsQuery } from \"../../prices/market/queries/useSpenderAndContracts\";\n\nexport type DeltaOrderPreSignResult = {\n canPreSignBatch: boolean;\n preSignPrep: {\n order?: DeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n preSignBatch: BatchTxStepResult;\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 UsePreSignAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UsePreSignAndSubmitDeltaOrderResult = {\n deltaOrderPreSign: DeltaOrderPreSignResult;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UsePreSignAndSubmitDeltaOrderInput): UsePreSignAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const isConnectedToSafe = useConnectedSafe();\n\n /* 1. submit Batch tx (Approve + Delta pre-sign) */\n\n const createPreSignableOrderMut = useCreatePreSignableDeltaOrder({\n chainId,\n client: viemClient,\n });\n\n const { sdk: fetchOnlySDK } = useFetchOnlySDK({\n chainId,\n });\n\n const preSignPreparations: DeltaOrderPreSignResult[\"preSignPrep\"] = {\n isCreatingOrder: createPreSignableOrderMut.isPending,\n isOrderHashReady: createPreSignableOrderMut.isSuccess,\n order: createPreSignableOrderMut.data?.orderToPost,\n isPending: createPreSignableOrderMut.isPending,\n isError: createPreSignableOrderMut.isError,\n isSuccess: createPreSignableOrderMut.isSuccess,\n error: createPreSignableOrderMut.error,\n };\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const deltaPreSignBatch: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.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(\"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(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderPreSignResult[\"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 deltaOrderPreSign: DeltaOrderPreSignResult = {\n canPreSignBatch: !!canBatchTxs,\n order: postOrderMut.data,\n preSignPrep: preSignPreparations,\n preSignBatch: deltaPreSignBatch,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n preSignPreparations.isCreatingOrder ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n preSignPreparations.isPending ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPending,\n isError:\n preSignPreparations.isError ||\n deltaPreSignBatch.isError ||\n deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess,\n error:\n preSignPreparations.error ||\n deltaPreSignBatch.error ||\n deltaOrderPosting.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc = async ({\n createDeltaOrderInput,\n approval,\n onTxSent,\n }) => {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3 construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n const { signal } = createDeltaOrderInput;\n\n const { orderToPost, preSignCalldata } =\n await createPreSignableOrderMut.mutateAsync(createDeltaOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n const txsParams: [TxParams, ...TxParams[]] = [\n {\n to: DeltaContract,\n account,\n data: preSignCalldata,\n value: 0n,\n chainId,\n },\n ];\n\n const needToApprove =\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender;\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n // 4. construct a sendCalls batch with Approve Token + setPreSignature call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\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 // check if the page was closed after sendCalls succeeded but before the Order was posted.\n // in that case POST the Order just in case the page is never reloaded or localStorage survives until then.\n // `pagehide` event is more reliable on desktop and does not fire on tab switching in browser,\n // but on mobile minimizing the browser doesn't fire `pagehide` event but does `visibilitychange`.\n // with `visibilitychange` though we can't reliably resume the flow because navigator.sendBeacon doesn't return response\n window.addEventListener(\"pagehide\", sendUnsentOrderOnPageHide, {\n once: true,\n });\n // prepared to POST Order in case of page close before sending the Approve+setPreSignature batch tx request,\n // because inside Safe it's very easy to switch page and go to Transactions page by clicking in a popup,\n // so the Widget state will be lost but the Safe would already receive a tx to sign\n // and it's not obvious that the Delta flow was aborted\n const unsubscribeFromPageHide = () => {\n window.removeEventListener(\"pagehide\", sendUnsentOrderOnPageHide);\n };\n\n try {\n // 5. send the Approve+setPreSignature batch tx request to the wallet\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: sendCallsResult.id,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\n \"~ deltaOrder ~ awaiting setPreSignature calls id :\",\n sendCallsResult.id\n );\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"preSignDeltaOrder\",\n callsId: sendCallsResult.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"preSignDeltaOrder\",\n order: orderToPost,\n },\n });\n }\n\n // 6. wait for that batch tx to be mined;\n const res = await sendCallsReceiptPromise;\n logger.log(\"~ deltaOrder ~ setPreSignature calls result :\", res);\n\n // 7. 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(\"Pre-sign and submit Delta Order error\", error);\n throw error;\n } finally {\n unsubscribeFromPageHide();\n }\n };\n\n const reset = () => {\n createPreSignableOrderMut.reset();\n batchTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype PreSignAndSubmitDeltaOrderInput = {\n createDeltaOrderInput: CreateDeltaOrderInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\ntype PreSignAndSubmitDeltaOrderFunc = (\n input: PreSignAndSubmitDeltaOrderInput\n) => Promise<DeltaOrderApiResponse>;\n\ntype ShouldApproveOrBatchInput = {\n approval: Pick<ApprovalFlowResult, \"needsApproval\" | \"allowanceToSet\">;\n signPermit: Pick<\n SignPermitFlowResult,\n \"isPermitSupported\" | \"isPermitReadyToSign\"\n >;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n};\n\ntype ShouldApproveOrBatchResult = {\n shouldDoApprovalTxOrPermit: boolean;\n tryPermit: boolean;\n shouldPreSignBatch: boolean;\n};\n\nexport function shouldApproveOrBatch({\n approval,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n}: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult {\n // can sign a Permit\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n\n const allowanceToSet = approval.allowanceToSet ?? 0n;\n // need to Approve Token or sign Permit for it\n const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;\n\n let numberOfActions = 1; // Delta Order creation\n let numberOfTxs = 0;\n\n if (tokenNeedsApproval) {\n // needs to approve a token\n numberOfActions++;\n if (!tryPermit) {\n // can't sign a Permit\n numberOfTxs++;\n }\n }\n\n /*\n if connected to Safe, or needs to approve a token with a tx\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n*/\n let shouldPreSignBatch = false;\n // wallet can batch txs\n if (canBatchTxs) {\n // wallet is Safe and there will be multiple actions Safe needs to perform\n if (isConnectedToSafe && numberOfActions > 1) {\n // do it in one batch tx\n shouldPreSignBatch = true;\n } else if (numberOfTxs > 0 && numberOfActions > 1) {\n // if at least one tx to perform, batch it with actions\n shouldPreSignBatch = true;\n }\n // else if only one action (Delta signing), then can signTypedData only\n }\n\n // will do an Approval of Token (tx or Permit)\n const shouldDoApprovalTxOrPermit = tokenNeedsApproval && !shouldPreSignBatch;\n\n return {\n shouldDoApprovalTxOrPermit,\n tryPermit,\n shouldPreSignBatch,\n };\n}\n"],"names":["usePreSignAndSubmitDeltaOrder","chainId","account","logger","viemClient","queryClient","useQueryClient","forCurrentChain","canBatchTxs","useCanBatchTxs","isConnectedToSafe","useConnectedSafe","createPreSignableOrderMut","useCreatePreSignableDeltaOrder","client","sdk","fetchOnlySDK","useFetchOnlySDK","preSignPreparations","isCreatingOrder","isPending","isOrderHashReady","isSuccess","order","data","orderToPost","isError","error","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","onSuccess","log","onError","batchTxMined","useAwaitCalls","id","lastCallsReceipt","receipts","length","deltaPreSignBatch","callsId","txHash","transactionHash","receipt","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isLoading","isCallsMined","isCallsAwaitingError","postOrderMut","usePostDeltaOrder","mutationOptions","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","deltaOrderPosting","isPostingOrder","isOrderSent","deltaOrderPreSign","canPreSignBatch","preSignPrep","preSignBatch","postingOrder","ensureCallsStatus","useEnsureCallsStatus","ensureContractsLoaded","useEnsureContractsQuery","preSignAndSubmitDeltaOrder","createDeltaOrderInput","approval","onTxSent","signal","preSignCalldata","mutateAsync","throwIfAborted","ParaswapDelta","DeltaContract","assert","isAddress","txsParams","to","value","needToApprove","allowanceToSet","spender","approveProps","token","undefined","calls","orderIsPosted","sendUnsentOrderOnPageHide","postDeltaOrder","window","addEventListener","once","unsubscribeFromPageHide","removeEventListener","sendCallsResult","sendCalls","sendCallsReceiptPromise","then","status","action","receiptPromise","transactionSpecificData","res","orderFromAPI","reset","shouldApproveOrBatch","signPermit","tryPermit","isPermitSupported","isPermitReadyToSign","tokenNeedsApproval","needsApproval","numberOfActions","numberOfTxs","shouldPreSignBatch","shouldDoApprovalTxOrPermit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePreSignAndSubmitDeltaOrder.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"sourcesContent":["import { useFetchOnlySDK } from \"@/hooks/useSDK\";\nimport {\n useCreatePreSignableDeltaOrder,\n type DeltaOrderToPost,\n} from \"../../prices/delta/mutations/useCreatePreSignableDeltaOrder\";\nimport {\n useBatchWithApproveTxs,\n type TxParams,\n} from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { isAddress, type Address } 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 { useConnectedSafe } from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type {\n ApprovalFlowResult,\n BatchTxStepResult,\n SignPermitFlowResult,\n} from \"./types\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { depositWETHCalldata } from \"./utils\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureContractsQuery } from \"../../prices/market/queries/useSpenderAndContracts\";\n\nexport type DeltaOrderPreSignResult = {\n canPreSignBatch: boolean;\n preSignPrep: {\n order?: DeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n preSignBatch: BatchTxStepResult;\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 UsePreSignAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UsePreSignAndSubmitDeltaOrderResult = {\n deltaOrderPreSign: DeltaOrderPreSignResult;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UsePreSignAndSubmitDeltaOrderInput): UsePreSignAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const isConnectedToSafe = useConnectedSafe();\n\n /* 1. submit Batch tx (Approve + Delta pre-sign) */\n\n const createPreSignableOrderMut = useCreatePreSignableDeltaOrder({\n chainId,\n client: viemClient,\n });\n\n const { sdk: fetchOnlySDK } = useFetchOnlySDK({\n chainId,\n });\n\n const preSignPreparations: DeltaOrderPreSignResult[\"preSignPrep\"] = {\n isCreatingOrder: createPreSignableOrderMut.isPending,\n isOrderHashReady: createPreSignableOrderMut.isSuccess,\n order: createPreSignableOrderMut.data?.orderToPost,\n isPending: createPreSignableOrderMut.isPending,\n isError: createPreSignableOrderMut.isError,\n isSuccess: createPreSignableOrderMut.isSuccess,\n error: createPreSignableOrderMut.error,\n };\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const deltaPreSignBatch: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.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(\"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(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderPreSignResult[\"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 deltaOrderPreSign: DeltaOrderPreSignResult = {\n canPreSignBatch: !!canBatchTxs,\n order: postOrderMut.data,\n preSignPrep: preSignPreparations,\n preSignBatch: deltaPreSignBatch,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n preSignPreparations.isCreatingOrder ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n preSignPreparations.isPending ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPending,\n isError:\n preSignPreparations.isError ||\n deltaPreSignBatch.isError ||\n deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess,\n error:\n preSignPreparations.error ||\n deltaPreSignBatch.error ||\n deltaOrderPosting.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc = async ({\n createDeltaOrderInput,\n preWrapETH,\n approval,\n onTxSent,\n }) => {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3 construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n const { signal, orderInput } = createDeltaOrderInput;\n\n const { orderToPost, preSignCalldata } =\n await createPreSignableOrderMut.mutateAsync(createDeltaOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n const txsParams: [TxParams, ...TxParams[]] = [\n {\n to: DeltaContract,\n account,\n data: preSignCalldata,\n value: 0n,\n chainId,\n },\n ];\n\n const needToApprove =\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender;\n\n if (preWrapETH) {\n // add WETH.deposit call,\n // we'll have Approve + Deposit WETH + setPreSignature batch tx;\n // the order doesn't really matter\n\n // avoid using approval.allowanceToSet as it may represent Unlimited Approval\n const wrapAmount = BigInt(orderInput.srcAmount);\n txsParams.unshift({\n to: wrappedNativeCurrency[chainId],\n account,\n data: depositWETHCalldata,\n value: wrapAmount,\n chainId,\n });\n }\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n // 4. construct a sendCalls batch with Approve Token + setPreSignature call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\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 // check if the page was closed after sendCalls succeeded but before the Order was posted.\n // in that case POST the Order just in case the page is never reloaded or localStorage survives until then.\n // `pagehide` event is more reliable on desktop and does not fire on tab switching in browser,\n // but on mobile minimizing the browser doesn't fire `pagehide` event but does `visibilitychange`.\n // with `visibilitychange` though we can't reliably resume the flow because navigator.sendBeacon doesn't return response\n window.addEventListener(\"pagehide\", sendUnsentOrderOnPageHide, {\n once: true,\n });\n // prepared to POST Order in case of page close before sending the Approve+setPreSignature batch tx request,\n // because inside Safe it's very easy to switch page and go to Transactions page by clicking in a popup,\n // so the Widget state will be lost but the Safe would already receive a tx to sign\n // and it's not obvious that the Delta flow was aborted\n const unsubscribeFromPageHide = () => {\n window.removeEventListener(\"pagehide\", sendUnsentOrderOnPageHide);\n };\n\n try {\n // 5. send the Approve+setPreSignature batch tx request to the wallet\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: sendCallsResult.id,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\n \"~ deltaOrder ~ awaiting setPreSignature calls id :\",\n sendCallsResult.id\n );\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"preSignDeltaOrder\",\n callsId: sendCallsResult.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"preSignDeltaOrder\",\n order: orderToPost,\n },\n });\n }\n\n // 6. wait for that batch tx to be mined;\n const res = await sendCallsReceiptPromise;\n logger.log(\"~ deltaOrder ~ setPreSignature calls result :\", res);\n\n // 7. 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(\"Pre-sign and submit Delta Order error\", error);\n throw error;\n } finally {\n unsubscribeFromPageHide();\n }\n };\n\n const reset = () => {\n createPreSignableOrderMut.reset();\n batchTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype PreSignAndSubmitDeltaOrderInput = {\n createDeltaOrderInput: CreateDeltaOrderInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n preWrapETH?: boolean;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\ntype PreSignAndSubmitDeltaOrderFunc = (\n input: PreSignAndSubmitDeltaOrderInput\n) => Promise<DeltaOrderApiResponse>;\n\ntype ShouldApproveOrBatchInput = {\n approval: Pick<ApprovalFlowResult, \"needsApproval\" | \"allowanceToSet\">;\n preWrapETH?: boolean;\n signPermit: Pick<\n SignPermitFlowResult,\n \"isPermitSupported\" | \"isPermitReadyToSign\"\n >;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n};\n\ntype ShouldApproveOrBatchResult = {\n shouldDoApprovalTxOrPermit: boolean;\n tryPermit: boolean;\n shouldPreSignBatch: boolean;\n};\n\nexport function shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n}: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult {\n // can sign a Permit\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n\n const allowanceToSet = approval.allowanceToSet ?? 0n;\n // need to Approve Token or sign Permit for it\n const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;\n\n let numberOfActions = 1; // Delta Order creation\n let numberOfTxs = 0;\n if (preWrapETH) {\n // needs to call WETH.deposit\n numberOfActions++;\n numberOfTxs++;\n }\n if (tokenNeedsApproval) {\n // needs to approve a token\n numberOfActions++;\n if (!tryPermit) {\n // can't sign a Permit\n numberOfTxs++;\n }\n }\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n*/\n let shouldPreSignBatch = false;\n // wallet can batch txs\n if (canBatchTxs) {\n // wallet is Safe and there will be multiple actions Safe needs to perform\n if (isConnectedToSafe && numberOfActions > 1) {\n // do it in one batch tx\n shouldPreSignBatch = true;\n } else if (numberOfTxs > 0 && numberOfActions > 1) {\n // if at least one tx to perform, batch it with actions\n shouldPreSignBatch = true;\n }\n // else if only one action (Delta signing), then can signTypedData only\n }\n\n // will do an Approval of Token (tx or Permit)\n const shouldDoApprovalTxOrPermit = tokenNeedsApproval && !shouldPreSignBatch;\n\n return {\n shouldDoApprovalTxOrPermit,\n tryPermit,\n shouldPreSignBatch,\n };\n}\n"],"names":["usePreSignAndSubmitDeltaOrder","chainId","account","logger","viemClient","queryClient","useQueryClient","forCurrentChain","canBatchTxs","useCanBatchTxs","isConnectedToSafe","useConnectedSafe","createPreSignableOrderMut","useCreatePreSignableDeltaOrder","client","sdk","fetchOnlySDK","useFetchOnlySDK","preSignPreparations","isCreatingOrder","isPending","isOrderHashReady","isSuccess","order","data","orderToPost","isError","error","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","onSuccess","log","onError","batchTxMined","useAwaitCalls","id","lastCallsReceipt","receipts","length","deltaPreSignBatch","callsId","txHash","transactionHash","receipt","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isLoading","isCallsMined","isCallsAwaitingError","postOrderMut","usePostDeltaOrder","mutationOptions","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","deltaOrderPosting","isPostingOrder","isOrderSent","deltaOrderPreSign","canPreSignBatch","preSignPrep","preSignBatch","postingOrder","ensureCallsStatus","useEnsureCallsStatus","ensureContractsLoaded","useEnsureContractsQuery","preSignAndSubmitDeltaOrder","createDeltaOrderInput","preWrapETH","approval","onTxSent","signal","orderInput","preSignCalldata","mutateAsync","throwIfAborted","ParaswapDelta","DeltaContract","assert","isAddress","txsParams","to","value","needToApprove","allowanceToSet","spender","wrapAmount","BigInt","srcAmount","unshift","wrappedNativeCurrency","depositWETHCalldata","approveProps","token","undefined","calls","orderIsPosted","sendUnsentOrderOnPageHide","postDeltaOrder","window","addEventListener","once","unsubscribeFromPageHide","removeEventListener","sendCallsResult","sendCalls","sendCallsReceiptPromise","then","status","action","receiptPromise","transactionSpecificData","res","orderFromAPI","reset","shouldApproveOrBatch","signPermit","tryPermit","isPermitSupported","isPermitReadyToSign","tokenNeedsApproval","needsApproval","numberOfActions","numberOfTxs","shouldPreSignBatch","shouldDoApprovalTxOrPermit"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BridgePrice, DeltaAuction, DeltaPrice } from '@velora-dex/sdk';
|
|
2
|
-
import { Address
|
|
2
|
+
import { Address } from 'viem';
|
|
3
3
|
import { SubmittedDeltaOrderFromAPI } from '../prices/delta/queries/useDeltaOrders';
|
|
4
4
|
import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult } from './common/types';
|
|
5
5
|
import { MaybeVeloraDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder';
|
|
@@ -7,11 +7,10 @@ import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
|
7
7
|
import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
|
|
8
8
|
import { OrderSentObject } from '../../../lib/utils/toasts';
|
|
9
9
|
import { DeltaOrderPreSignResult } from './common/usePreSignAndSubmitDeltaOrder';
|
|
10
|
-
import { DeltaOrderDepositResult } from './common/useDepositAndSubmitDeltaOrder';
|
|
11
|
-
import { CancelDeltaOrdersReturn } from '../prices/delta/mutations/useCancelDeltaOrders';
|
|
12
10
|
declare const deltaOrderFlowType = "deltaOrder";
|
|
13
11
|
export type UseDeltaFlowInput = {
|
|
14
12
|
deltaPrice?: DeltaPrice | BridgePrice;
|
|
13
|
+
preWrapETH?: boolean;
|
|
15
14
|
};
|
|
16
15
|
export type SubmitDeltaOrderResult = {
|
|
17
16
|
tradeFlowType: typeof deltaOrderFlowType;
|
|
@@ -51,9 +50,7 @@ type DeltaOrderExecutionResult = {
|
|
|
51
50
|
error: Error | null;
|
|
52
51
|
};
|
|
53
52
|
type DeltaOrderCancelationResult = {
|
|
54
|
-
receipt?: TransactionReceipt;
|
|
55
53
|
isCancelingOrder: boolean;
|
|
56
|
-
isOrderCancellable: boolean;
|
|
57
54
|
isOrderCanceled: boolean;
|
|
58
55
|
isPending: boolean;
|
|
59
56
|
isError: boolean;
|
|
@@ -67,11 +64,10 @@ export type UseDeltaFlowResult = {
|
|
|
67
64
|
reset: () => void;
|
|
68
65
|
cancelFlow: () => void;
|
|
69
66
|
retryFlow: (options?: RunDeltaOrderOptions) => Promise<SubmitDeltaOrderResult>;
|
|
70
|
-
cancelDeltaOrder: () =>
|
|
67
|
+
cancelDeltaOrder: () => void;
|
|
71
68
|
approval: ApprovalFlowResult;
|
|
72
69
|
signPermit: SignPermitFlowResult;
|
|
73
70
|
deltaOrderPreSign: DeltaOrderPreSignResult;
|
|
74
|
-
deltaOrderDeposit: DeltaOrderDepositResult;
|
|
75
71
|
deltaOrderSubmission: DeltaOrderSubmissionResult;
|
|
76
72
|
deltaOrderExecution: DeltaOrderExecutionResult;
|
|
77
73
|
deltaOrderCancelation: DeltaOrderCancelationResult;
|
|
@@ -81,8 +77,9 @@ export type UseDeltaFlowResult = {
|
|
|
81
77
|
error: Error | null;
|
|
82
78
|
result?: SubmitDeltaOrderResult;
|
|
83
79
|
usedPrice?: DeltaPrice | BridgePrice;
|
|
80
|
+
freshPrice?: DeltaPrice | BridgePrice;
|
|
84
81
|
submittedDeltaOrder?: Omit<DeltaAuction, "signature" | "transactions">;
|
|
85
82
|
};
|
|
86
|
-
export declare function useDeltaFlow({ deltaPrice, }: UseDeltaFlowInput): UseDeltaFlowResult;
|
|
83
|
+
export declare function useDeltaFlow({ deltaPrice: _deltaPrice, preWrapETH, }: UseDeltaFlowInput): UseDeltaFlowResult;
|
|
87
84
|
export {};
|
|
88
85
|
//# sourceMappingURL=useDeltaFlow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,UAAU,EACX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"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"}
|