@velora-dex/widget 0.4.2-dev.3 → 0.4.2
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/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/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +105 -93
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +60 -89
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +1 -0
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.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/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +28 -57
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- 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/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/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/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/mutations/useFillOrder.js +1 -0
- package/dist/hooks/otc/mutations/useFillOrder.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/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/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +113 -98
- package/dist/hooks/swap/prices/useSwapPrices.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 +4 -8
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +69 -56
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +1 -2
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +34 -38
- 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 +71 -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/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/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +1 -4
- 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
|
@@ -5,7 +5,7 @@ import '../../../_virtual/index.js';
|
|
|
5
5
|
import '../../useSDK.js';
|
|
6
6
|
import 'clsx';
|
|
7
7
|
import 'tailwind-merge';
|
|
8
|
-
import { useMutation } from '@tanstack/react-query';
|
|
8
|
+
import { useQueryClient, useMutation } from '@tanstack/react-query';
|
|
9
9
|
import { useCreateDeltaOrder } from '../prices/delta/mutations/useCreateDeltaOrder.js';
|
|
10
10
|
import { useMinViemClient } from '../../useMinViemClient.js';
|
|
11
11
|
import { useRef } from 'react';
|
|
@@ -14,23 +14,25 @@ import { useApproveOrPermit } from './common/useApproveOrPermit.js';
|
|
|
14
14
|
import { useLogger } from '../../../core/logger.js';
|
|
15
15
|
import { usePartner } from '../../usePartner.js';
|
|
16
16
|
import { useLimitDeadline } from '../../../core/limit/state/deadlineAtom.js';
|
|
17
|
+
import { useCancelDeltaOrderEventCallbacks, useCancelDeltaOrders } from '../prices/delta/mutations/useCancelDeltaOrders.js';
|
|
17
18
|
import { getOverallOrderStatus } from '../prices/delta/orders/utils.js';
|
|
18
|
-
import { useWatchDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder.js';
|
|
19
|
+
import { useWatchDeltaAuction, deltaAuctionPollingQueryKey } from '../prices/delta/queries/useWatchDeltaOrder.js';
|
|
19
20
|
import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
|
|
20
21
|
import { usePreSignAndSubmitDeltaOrder, shouldApproveOrBatch } from './common/usePreSignAndSubmitDeltaOrder.js';
|
|
21
22
|
import { DEFAULT_DELTA_BRIDGE } from '../prices/delta/bridge/const.js';
|
|
22
23
|
import { useLimitReceiverAddressValue } from '../../../core/limit/state/receiverAddressAtom.js';
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import { useCancelOrWithdrawAndCancelDeltaOrder } from '../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js';
|
|
24
|
+
import { useChainMatches } from '../../useChainMatches.js';
|
|
25
|
+
import { useSwitchChainWithGuard } from '../../useSwitchChainWithGuard.js';
|
|
26
26
|
|
|
27
27
|
const limitOrderFlowType = "limitOrder";
|
|
28
28
|
const LIMIT_ORDER_MUTATION_KEY = "runLimitOrderFlow";
|
|
29
29
|
function useLimitOrderFlow({
|
|
30
|
-
limitPrice
|
|
30
|
+
limitPrice,
|
|
31
|
+
preWrapETH
|
|
31
32
|
}) {
|
|
32
33
|
const logger = useLogger("LimitOrderFlow");
|
|
33
34
|
const chainId = useChainId();
|
|
35
|
+
const queryClient = useQueryClient();
|
|
34
36
|
const {
|
|
35
37
|
approval,
|
|
36
38
|
approveTxMut,
|
|
@@ -86,24 +88,14 @@ function useLimitOrderFlow({
|
|
|
86
88
|
logger,
|
|
87
89
|
viemClient: minClient
|
|
88
90
|
});
|
|
89
|
-
const {
|
|
90
|
-
deltaOrderDeposit,
|
|
91
|
-
reset: resetDepositAndSubmitDeltaOrder,
|
|
92
|
-
depositAndSubmitDeltaOrder
|
|
93
|
-
} = useDepositAndSubmitDeltaOrder({
|
|
94
|
-
chainId,
|
|
95
|
-
account,
|
|
96
|
-
logger,
|
|
97
|
-
viemClient: minClient
|
|
98
|
-
});
|
|
99
91
|
const limitOrderSubmission = {
|
|
100
|
-
order: limitOrderCreateAndSubmit.order || deltaOrderPreSign.order
|
|
101
|
-
isCreatingOrder: limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder
|
|
102
|
-
isOrderSent: limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent
|
|
103
|
-
isPending: limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending
|
|
104
|
-
isError: limitOrderCreateAndSubmit.isError || deltaOrderPreSign.isError
|
|
105
|
-
isSuccess: limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess
|
|
106
|
-
error: limitOrderCreateAndSubmit.error || deltaOrderPreSign.error
|
|
92
|
+
order: limitOrderCreateAndSubmit.order || deltaOrderPreSign.order,
|
|
93
|
+
isCreatingOrder: limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,
|
|
94
|
+
isOrderSent: limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,
|
|
95
|
+
isPending: limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,
|
|
96
|
+
isError: limitOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,
|
|
97
|
+
isSuccess: limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,
|
|
98
|
+
error: limitOrderCreateAndSubmit.error || deltaOrderPreSign.error
|
|
107
99
|
};
|
|
108
100
|
const watchOrderExecution = useWatchDeltaAuction({
|
|
109
101
|
orderId: limitOrderSubmission.order?.id,
|
|
@@ -133,19 +125,48 @@ function useLimitOrderFlow({
|
|
|
133
125
|
isSuccess: orderStatus === "confirmed",
|
|
134
126
|
error: watchOrderExecution.error
|
|
135
127
|
};
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
128
|
+
const cancelOrderEvents = useCancelDeltaOrderEventCallbacks(createOrderMut.data);
|
|
129
|
+
const orderChainId = createOrderMut.data?.chainId;
|
|
130
|
+
const {
|
|
131
|
+
forcedChainMatchesWalletChain
|
|
132
|
+
} = useChainMatches(orderChainId);
|
|
133
|
+
const {
|
|
134
|
+
mutateAsync: switchChain
|
|
135
|
+
} = useSwitchChainWithGuard();
|
|
136
|
+
const cancelOrderMut = useCancelDeltaOrders({
|
|
139
137
|
chainId,
|
|
140
138
|
account,
|
|
141
139
|
client: minClient,
|
|
142
|
-
|
|
140
|
+
mutationOptions: {
|
|
141
|
+
onMutate: async (variables) => {
|
|
142
|
+
assert(orderChainId, "orderChainId is undefined");
|
|
143
|
+
if (!forcedChainMatchesWalletChain) {
|
|
144
|
+
await switchChain({
|
|
145
|
+
chainId: orderChainId
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
cancelOrderEvents.onMutate?.(variables);
|
|
149
|
+
},
|
|
150
|
+
onSuccess: (successResponse, vars) => {
|
|
151
|
+
logger.log("Cancel Limit Order success", successResponse);
|
|
152
|
+
if (limitOrderExecution.sentOrder?.id) {
|
|
153
|
+
queryClient.invalidateQueries({
|
|
154
|
+
queryKey: deltaAuctionPollingQueryKey({
|
|
155
|
+
orderId: limitOrderExecution.sentOrder.id
|
|
156
|
+
})
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
cancelOrderEvents.onSuccess?.(successResponse, vars);
|
|
160
|
+
},
|
|
161
|
+
onError: (error_0, vars_0) => {
|
|
162
|
+
logger.error("Cancel Limit Order error", error_0);
|
|
163
|
+
cancelOrderEvents.onError?.(error_0, vars_0);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
143
166
|
});
|
|
144
167
|
const limitOrderCancelation = {
|
|
145
|
-
receipt: cancelOrderMut.receipt,
|
|
146
168
|
isCancelingOrder: cancelOrderMut.isPending,
|
|
147
|
-
|
|
148
|
-
isOrderCanceled: cancelOrderMut.isSuccess,
|
|
169
|
+
isOrderCanceled: cancelOrderMut.isSuccess && !!cancelOrderMut.data?.success,
|
|
149
170
|
isPending: cancelOrderMut.isPending,
|
|
150
171
|
isError: cancelOrderMut.isError,
|
|
151
172
|
isSuccess: cancelOrderMut.isSuccess,
|
|
@@ -172,7 +193,6 @@ function useLimitOrderFlow({
|
|
|
172
193
|
createOrderMut.reset();
|
|
173
194
|
cancelOrderMut.reset();
|
|
174
195
|
resetPreSignAndSubmitDeltaOrder();
|
|
175
|
-
resetDepositAndSubmitDeltaOrder();
|
|
176
196
|
assert(limitPrice, "Limit price data is not available");
|
|
177
197
|
const abortController = new AbortController();
|
|
178
198
|
currentAbortControllerRef.current = abortController;
|
|
@@ -180,16 +200,12 @@ function useLimitOrderFlow({
|
|
|
180
200
|
let approveTxHash;
|
|
181
201
|
let approveTxReceipt;
|
|
182
202
|
const allowanceToSet = approval.allowanceToSet;
|
|
183
|
-
const shouldDepositAndPreSign = (
|
|
184
|
-
// @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,
|
|
185
|
-
// or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits
|
|
186
|
-
isETHaddress(limitPrice.srcTokenAddress)
|
|
187
|
-
);
|
|
188
203
|
const {
|
|
189
204
|
shouldDoApprovalTxOrPermit: shouldDoApprovalTx,
|
|
190
205
|
shouldPreSignBatch
|
|
191
206
|
} = shouldApproveOrBatch({
|
|
192
207
|
approval,
|
|
208
|
+
preWrapETH,
|
|
193
209
|
signPermit: {
|
|
194
210
|
isPermitSupported: false,
|
|
195
211
|
isPermitReadyToSign: false
|
|
@@ -241,14 +257,14 @@ function useLimitOrderFlow({
|
|
|
241
257
|
txReceipt: approveTxReceipt
|
|
242
258
|
});
|
|
243
259
|
logger.log("~ approveTx ~ receipt:", approveTxReceipt);
|
|
244
|
-
} catch (
|
|
260
|
+
} catch (error_2) {
|
|
245
261
|
approveOrPermitEvents.onApproveTx.failed({
|
|
246
262
|
allowanceToSet,
|
|
247
|
-
error:
|
|
263
|
+
error: error_2,
|
|
248
264
|
txHash: approveTxHash
|
|
249
265
|
// won't necessarily be available
|
|
250
266
|
});
|
|
251
|
-
throw
|
|
267
|
+
throw error_2;
|
|
252
268
|
}
|
|
253
269
|
}
|
|
254
270
|
signal.throwIfAborted();
|
|
@@ -317,20 +333,15 @@ function useLimitOrderFlow({
|
|
|
317
333
|
};
|
|
318
334
|
}
|
|
319
335
|
let orderFromAPI;
|
|
320
|
-
if (
|
|
321
|
-
orderFromAPI = await
|
|
322
|
-
|
|
323
|
-
depositAmount: createOrderInput.orderInput.srcAmount,
|
|
324
|
-
onTxSent
|
|
325
|
-
});
|
|
326
|
-
} else if (shouldPreSignBatch) {
|
|
336
|
+
if (!shouldPreSignBatch) {
|
|
337
|
+
orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);
|
|
338
|
+
} else {
|
|
327
339
|
orderFromAPI = await preSignAndSubmitDeltaOrder({
|
|
328
340
|
createDeltaOrderInput: createOrderInput,
|
|
329
341
|
approval,
|
|
342
|
+
preWrapETH,
|
|
330
343
|
onTxSent
|
|
331
344
|
});
|
|
332
|
-
} else {
|
|
333
|
-
orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);
|
|
334
345
|
}
|
|
335
346
|
onLimitOrder?.({
|
|
336
347
|
event: {
|
|
@@ -354,29 +365,34 @@ function useLimitOrderFlow({
|
|
|
354
365
|
account,
|
|
355
366
|
receiverAddress
|
|
356
367
|
};
|
|
357
|
-
} catch (
|
|
358
|
-
logger.error("Order submission error",
|
|
368
|
+
} catch (error_1) {
|
|
369
|
+
logger.error("Order submission error", error_1);
|
|
359
370
|
onLimitOrder?.({
|
|
360
371
|
event: {
|
|
361
372
|
name: "LimitOrder:failed",
|
|
362
373
|
params: {
|
|
363
374
|
price: limitPrice,
|
|
364
|
-
error:
|
|
375
|
+
error: error_1
|
|
365
376
|
}
|
|
366
377
|
}
|
|
367
378
|
});
|
|
368
|
-
throw
|
|
379
|
+
throw error_1;
|
|
369
380
|
}
|
|
370
381
|
};
|
|
371
|
-
const cancelLimitOrder =
|
|
382
|
+
const cancelLimitOrder = () => {
|
|
383
|
+
assert(createOrderMut.data, "No order to cancel");
|
|
384
|
+
cancelOrderMut.mutate({
|
|
385
|
+
orderIds: [createOrderMut.data.id]
|
|
386
|
+
});
|
|
387
|
+
};
|
|
372
388
|
const limitOrderMut = useMutation({
|
|
373
389
|
mutationFn: submitLimitOrder,
|
|
374
390
|
mutationKey: [LIMIT_ORDER_MUTATION_KEY],
|
|
375
391
|
onSuccess: (data_0) => {
|
|
376
392
|
logger.log("Order submission success", data_0);
|
|
377
393
|
},
|
|
378
|
-
onError: (
|
|
379
|
-
logger.error("Order submission error",
|
|
394
|
+
onError: (error_3) => {
|
|
395
|
+
logger.error("Order submission error", error_3);
|
|
380
396
|
},
|
|
381
397
|
onSettled: () => {
|
|
382
398
|
logger.log("Order submission settled");
|
|
@@ -389,7 +405,6 @@ function useLimitOrderFlow({
|
|
|
389
405
|
limitOrderMut.reset();
|
|
390
406
|
cancelOrderMut.reset();
|
|
391
407
|
resetPreSignAndSubmitDeltaOrder();
|
|
392
|
-
resetDepositAndSubmitDeltaOrder();
|
|
393
408
|
};
|
|
394
409
|
const retryFlow = (options) => {
|
|
395
410
|
reset();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLimitOrderFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport { type SubmittedDeltaOrderFromAPI } from \"../prices/delta/queries/useDeltaOrders\";\nimport type { ApprovalFlowResult, SubmitTxResult } from \"./common/types\";\nimport {\n useCreateDeltaOrder,\n type CreateDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\n\nimport { useLogger } from \"@/core/logger\";\n\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useLimitDeadline } from \"@/core/limit/state/deadlineAtom\";\n\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport {\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport type { BridgePrice, DeltaOrderApiResponse } from \"@velora-dex/sdk\";\nimport { DEFAULT_DELTA_BRIDGE } from \"../prices/delta/bridge/const\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useDepositAndSubmitDeltaOrder } from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useCancelOrWithdrawAndCancelDeltaOrder } from \"../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder\";\nimport type { CancelDeltaOrdersReturn } from \"../prices/delta/mutations/useCancelDeltaOrders\";\n\nconst limitOrderFlowType = \"limitOrder\";\n\nexport type UserDefinedLimitPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n bridgePrice?: BridgePrice;\n};\n\nexport type UseLimitOrderFlowInput = {\n limitPrice?: UserDefinedLimitPrice;\n};\n\nexport type SubmitLimitOrderResult = {\n tradeFlowType: typeof limitOrderFlowType;\n approve: SubmitTxResult;\n limitOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n };\n limitPrice: UserDefinedLimitPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunLimitOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseLimitOrderFlowResult = {\n tradeFlowType: typeof limitOrderFlowType;\n chainId: SupportedChainId;\n runLimitOrderFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>; // reset and retry flow\n cancelLimitOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderExecution: {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderCancelation: {\n receipt?: TransactionReceipt;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitLimitOrderResult;\n limitPrice?: UserDefinedLimitPrice;\n};\n\nconst LIMIT_ORDER_MUTATION_KEY = \"runLimitOrderFlow\";\n\nexport function useLimitOrderFlow({\n limitPrice,\n}: UseLimitOrderFlowInput): UseLimitOrderFlowResult {\n const logger = useLogger(\"LimitOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: limitPrice?.srcTokenAddress,\n srcAmount: limitPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\",\n tradeMode: \"limit\",\n chainId,\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Limit Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Limit Order error\", error);\n },\n },\n });\n\n const limitOrderCreateAndSubmit: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const limitOrderSubmission: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order:\n limitOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n limitOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n limitOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n limitOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.error,\n };\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: limitOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Limit Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Limit Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Limit Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Limit Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const limitOrderExecution: UseLimitOrderFlowResult[\"limitOrderExecution\"] = {\n sentOrder: createOrderMut.data,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({\n // supply the must up-to-date order for cancellation\n order: limitOrderExecution.lastOrderState || limitOrderExecution.sentOrder,\n chainId,\n account,\n client: minClient,\n logger,\n });\n\n const limitOrderCancelation: UseLimitOrderFlowResult[\"limitOrderCancelation\"] =\n {\n receipt: cancelOrderMut.receipt,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCancellable: cancelOrderMut.isOrderCancellable,\n isOrderCanceled: cancelOrderMut.isSuccess,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { partner } = usePartner();\n const receiverAddress = useLimitReceiverAddressValue();\n const deadline = useLimitDeadline();\n\n const { onLimitOrder } = useWidgetEvents();\n\n const submitLimitOrder = async ({\n onTxSent,\n }: RunLimitOrderOptions = {}): Promise<SubmitLimitOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(limitPrice, \"Limit price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(limitPrice.srcTokenAddress);\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, no Permit for Limit Orders)\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const {\n shouldDoApprovalTxOrPermit: shouldDoApprovalTx,\n shouldPreSignBatch,\n } = shouldApproveOrBatch({\n approval,\n signPermit: {\n isPermitSupported: false,\n isPermitReadyToSign: false,\n },\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } catch (error) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n assert(limitPrice, \"limitPrice is not available\");\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:request\",\n params: {\n price: limitPrice,\n },\n },\n });\n const bridgePrice = limitPrice.bridgePrice;\n const destChainId = bridgePrice?.bridge.destinationChainId;\n\n let createOrderInput: CreateDeltaOrderInput;\n if (bridgePrice) {\n // crosschain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n destToken: limitPrice.destTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n ...bridgePrice,\n bridge: {\n ...bridgePrice.bridge,\n protocolSelector: DEFAULT_DELTA_BRIDGE.protocolSelector,\n protocolData: DEFAULT_DELTA_BRIDGE.protocolData,\n },\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n } else {\n // singlechain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n srcAmount: limitPrice.srcAmount,\n bridge: DEFAULT_DELTA_BRIDGE,\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n }\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n if (shouldDepositAndPreSign) {\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n depositAmount: createOrderInput.orderInput.srcAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\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 orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n }\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:sent\",\n params: {\n price: limitPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: limitOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n limitOrder: {\n sentOrder: orderFromAPI,\n },\n limitPrice: limitPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:failed\",\n params: {\n price: limitPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const cancelLimitOrder = cancelOrderMut.cancelDeltaOrder;\n\n const limitOrderMut = useMutation({\n mutationFn: submitLimitOrder,\n mutationKey: [LIMIT_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runLimitOrderFlow = limitOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n limitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunLimitOrderOptions\n ): Promise<SubmitLimitOrderResult> => {\n reset();\n return runLimitOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: limitOrderFlowType,\n chainId,\n runLimitOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelLimitOrder,\n approval,\n limitOrderSubmission,\n limitOrderExecution,\n limitOrderCancelation,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: limitOrderMut.isPending,\n isSuccess: limitOrderSubmission.isSuccess, // approval is an optional step\n isError: limitOrderMut.isError,\n error: limitOrderMut.error,\n result: limitOrderMut.data,\n limitPrice,\n };\n}\n"],"names":["limitOrderFlowType","LIMIT_ORDER_MUTATION_KEY","useLimitOrderFlow","limitPrice","logger","useLogger","chainId","useChainId","approval","approveTxMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcTokenAddress","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","limitOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","limitOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","limitOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderMut","useCancelOrWithdrawAndCancelDeltaOrder","limitOrderCancelation","receipt","isCancelingOrder","isOrderCancellable","isOrderCanceled","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","partner","usePartner","receiverAddress","useLimitReceiverAddressValue","deadline","useLimitDeadline","onLimitOrder","useWidgetEvents","submitLimitOrder","onTxSent","assert","abortController","AbortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDepositAndPreSign","isETHaddress","shouldDoApprovalTxOrPermit","shouldDoApprovalTx","shouldPreSignBatch","shouldApproveOrBatch","signPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","failed","event","name","params","price","bridgePrice","destChainId","bridge","destinationChainId","createOrderInput","type","orderInput","owner","beneficiary","destToken","destTokenAddress","destAmount","deltaPrice","protocolSelector","DEFAULT_DELTA_BRIDGE","protocolData","partnerFee","orderFromAPI","createDeltaOrderInput","depositAmount","mutateAsync","tradeFlowType","approve","limitOrder","cancelLimitOrder","cancelDeltaOrder","limitOrderMut","useMutation","mutationFn","mutationKey","onSettled","runLimitOrderFlow","retryFlow","options","result"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useLimitOrderFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport { type SubmittedDeltaOrderFromAPI } from \"../prices/delta/queries/useDeltaOrders\";\nimport type { ApprovalFlowResult, SubmitTxResult } from \"./common/types\";\nimport {\n useCreateDeltaOrder,\n type CreateDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\n\nimport { useLogger } from \"@/core/logger\";\n\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useLimitDeadline } from \"@/core/limit/state/deadlineAtom\";\nimport {\n useCancelDeltaOrderEventCallbacks,\n useCancelDeltaOrders,\n} from \"../prices/delta/mutations/useCancelDeltaOrders\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport {\n deltaAuctionPollingQueryKey,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport type { BridgePrice, DeltaOrderApiResponse } from \"@velora-dex/sdk\";\nimport { DEFAULT_DELTA_BRIDGE } from \"../prices/delta/bridge/const\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useSwitchChainWithGuard } from \"@/hooks/useSwitchChainWithGuard\";\n\nconst limitOrderFlowType = \"limitOrder\";\n\nexport type UserDefinedLimitPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n bridgePrice?: BridgePrice;\n};\n\nexport type UseLimitOrderFlowInput = {\n limitPrice?: UserDefinedLimitPrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitLimitOrderResult = {\n tradeFlowType: typeof limitOrderFlowType;\n approve: SubmitTxResult;\n limitOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n };\n limitPrice: UserDefinedLimitPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunLimitOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseLimitOrderFlowResult = {\n tradeFlowType: typeof limitOrderFlowType;\n chainId: SupportedChainId;\n runLimitOrderFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>; // reset and retry flow\n cancelLimitOrder: () => void;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderExecution: {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderCancelation: {\n isCancelingOrder: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitLimitOrderResult;\n limitPrice?: UserDefinedLimitPrice;\n};\n\nconst LIMIT_ORDER_MUTATION_KEY = \"runLimitOrderFlow\";\n\nexport function useLimitOrderFlow({\n limitPrice,\n preWrapETH,\n}: UseLimitOrderFlowInput): UseLimitOrderFlowResult {\n const logger = useLogger(\"LimitOrderFlow\");\n const chainId = useChainId();\n const queryClient = useQueryClient();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: limitPrice?.srcTokenAddress,\n srcAmount: limitPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\",\n tradeMode: \"limit\",\n chainId,\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Limit Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Limit Order error\", error);\n },\n },\n });\n\n const limitOrderCreateAndSubmit: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const limitOrderSubmission: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: limitOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: limitOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: limitOrderCreateAndSubmit.error || deltaOrderPreSign.error,\n };\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: limitOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Limit Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Limit Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Limit Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Limit Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const limitOrderExecution: UseLimitOrderFlowResult[\"limitOrderExecution\"] = {\n sentOrder: createOrderMut.data,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const cancelOrderEvents = useCancelDeltaOrderEventCallbacks(\n createOrderMut.data\n );\n\n const orderChainId = createOrderMut.data?.chainId as\n | SupportedChainId\n | undefined;\n const { forcedChainMatchesWalletChain } = useChainMatches(orderChainId);\n const { mutateAsync: switchChain } = useSwitchChainWithGuard();\n\n const cancelOrderMut = useCancelDeltaOrders({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onMutate: async (variables) => {\n assert(orderChainId, \"orderChainId is undefined\");\n if (!forcedChainMatchesWalletChain) {\n await switchChain({\n chainId: orderChainId,\n });\n }\n cancelOrderEvents.onMutate?.(variables);\n },\n onSuccess: (successResponse, vars) => {\n logger.log(\"Cancel Limit Order success\", successResponse);\n if (limitOrderExecution.sentOrder?.id) {\n // refetch the order to get updated status\n queryClient.invalidateQueries({\n queryKey: deltaAuctionPollingQueryKey({\n orderId: limitOrderExecution.sentOrder.id,\n }),\n });\n }\n cancelOrderEvents.onSuccess?.(successResponse, vars);\n },\n onError: (error, vars) => {\n logger.error(\"Cancel Limit Order error\", error);\n cancelOrderEvents.onError?.(error, vars);\n },\n },\n });\n\n const limitOrderCancelation: UseLimitOrderFlowResult[\"limitOrderCancelation\"] =\n {\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCanceled:\n cancelOrderMut.isSuccess && !!cancelOrderMut.data?.success,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { partner } = usePartner();\n const receiverAddress = useLimitReceiverAddressValue();\n const deadline = useLimitDeadline();\n\n const { onLimitOrder } = useWidgetEvents();\n\n const submitLimitOrder = async ({\n onTxSent,\n }: RunLimitOrderOptions = {}): Promise<SubmitLimitOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(limitPrice, \"Limit price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\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, no Permit for Limit Orders)\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const {\n shouldDoApprovalTxOrPermit: shouldDoApprovalTx,\n shouldPreSignBatch,\n } = shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit: {\n isPermitSupported: false,\n isPermitReadyToSign: false,\n },\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } catch (error) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n assert(limitPrice, \"limitPrice is not available\");\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:request\",\n params: {\n price: limitPrice,\n },\n },\n });\n const bridgePrice = limitPrice.bridgePrice;\n const destChainId = bridgePrice?.bridge.destinationChainId;\n\n let createOrderInput: CreateDeltaOrderInput;\n if (bridgePrice) {\n // crosschain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n destToken: limitPrice.destTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n ...bridgePrice,\n bridge: {\n ...bridgePrice.bridge,\n protocolSelector: DEFAULT_DELTA_BRIDGE.protocolSelector,\n protocolData: DEFAULT_DELTA_BRIDGE.protocolData,\n },\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n } else {\n // singlechain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n srcAmount: limitPrice.srcAmount,\n bridge: DEFAULT_DELTA_BRIDGE,\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n }\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n if (!shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n } else {\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 orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n preWrapETH,\n onTxSent,\n });\n }\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:sent\",\n params: {\n price: limitPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: limitOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n limitOrder: {\n sentOrder: orderFromAPI,\n },\n limitPrice: limitPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:failed\",\n params: {\n price: limitPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const cancelLimitOrder = () => {\n assert(createOrderMut.data, \"No order to cancel\");\n cancelOrderMut.mutate({\n orderIds: [createOrderMut.data.id],\n });\n };\n\n const limitOrderMut = useMutation({\n mutationFn: submitLimitOrder,\n mutationKey: [LIMIT_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runLimitOrderFlow = limitOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n limitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunLimitOrderOptions\n ): Promise<SubmitLimitOrderResult> => {\n reset();\n return runLimitOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: limitOrderFlowType,\n chainId,\n runLimitOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelLimitOrder,\n approval,\n limitOrderSubmission,\n limitOrderExecution,\n limitOrderCancelation,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: limitOrderMut.isPending,\n isSuccess: limitOrderSubmission.isSuccess, // approval is an optional step\n isError: limitOrderMut.isError,\n error: limitOrderMut.error,\n result: limitOrderMut.data,\n limitPrice,\n };\n}\n"],"names":["limitOrderFlowType","LIMIT_ORDER_MUTATION_KEY","useLimitOrderFlow","limitPrice","preWrapETH","logger","useLogger","chainId","useChainId","queryClient","useQueryClient","approval","approveTxMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcTokenAddress","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","limitOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","limitOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","limitOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderEvents","useCancelDeltaOrderEventCallbacks","orderChainId","forcedChainMatchesWalletChain","useChainMatches","mutateAsync","switchChain","useSwitchChainWithGuard","cancelOrderMut","useCancelDeltaOrders","onMutate","variables","assert","successResponse","vars","invalidateQueries","queryKey","deltaAuctionPollingQueryKey","limitOrderCancelation","isCancelingOrder","isOrderCanceled","success","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","partner","usePartner","receiverAddress","useLimitReceiverAddressValue","deadline","useLimitDeadline","onLimitOrder","useWidgetEvents","submitLimitOrder","onTxSent","abortController","AbortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDoApprovalTxOrPermit","shouldDoApprovalTx","shouldPreSignBatch","shouldApproveOrBatch","signPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","failed","event","name","params","price","bridgePrice","destChainId","bridge","destinationChainId","createOrderInput","type","orderInput","owner","beneficiary","destToken","destTokenAddress","destAmount","deltaPrice","protocolSelector","DEFAULT_DELTA_BRIDGE","protocolData","partnerFee","orderFromAPI","createDeltaOrderInput","tradeFlowType","approve","receipt","limitOrder","cancelLimitOrder","mutate","orderIds","limitOrderMut","useMutation","mutationFn","mutationKey","onSettled","runLimitOrderFlow","retryFlow","options","result"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLimitOrderStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useLimitOrderStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAM7B,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IAC9D,gBAAgB,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IAE9D,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAClD,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAChD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,sBAAsB,GAC9B,uBAAuB,CAiHzB"}
|
|
@@ -3,9 +3,10 @@ import { useLimitOrderFlow } from './useLimitOrderFlow.js';
|
|
|
3
3
|
import { useLogger } from '../../../core/logger.js';
|
|
4
4
|
import { constructExplorerOrderDetailsLink } from '../../../lib/utils/explorer.js';
|
|
5
5
|
import { isUserCancelledError } from './common/errors.js';
|
|
6
|
+
import { DeltaOrderStatusChecker } from '../prices/delta/orders/utils.js';
|
|
6
7
|
|
|
7
8
|
function useLimitOrderStep(options) {
|
|
8
|
-
const $ = distExports.c(
|
|
9
|
+
const $ = distExports.c(26);
|
|
9
10
|
const logger = useLogger("LimitOrderStep");
|
|
10
11
|
const limitOrderFlow = useLimitOrderFlow(options);
|
|
11
12
|
const startLimitOrder = limitOrderFlow.runLimitOrderFlow;
|
|
@@ -54,7 +55,16 @@ function useLimitOrderStep(options) {
|
|
|
54
55
|
const approvalIsStarted = step?.key === "signature" && step.subStep === "approval-signature" && limitOrderFlow.approval.isTxPending;
|
|
55
56
|
const isOrderBeingSigned = step?.key === "signature" && (step.subStep === "order-signature" || step.subStep === "standalone-order-signature");
|
|
56
57
|
isFlowCancellable = approvalIsStarted || isOrderBeingSigned;
|
|
57
|
-
|
|
58
|
+
const lastOrderStatus = limitOrderFlow.limitOrderExecution.lastOrderState?.status || limitOrderFlow.limitOrderExecution.sentOrder?.status;
|
|
59
|
+
let t02;
|
|
60
|
+
if ($[7] !== lastOrderStatus) {
|
|
61
|
+
t02 = !!lastOrderStatus && DeltaOrderStatusChecker.cancellable.has(lastOrderStatus);
|
|
62
|
+
$[7] = lastOrderStatus;
|
|
63
|
+
$[8] = t02;
|
|
64
|
+
} else {
|
|
65
|
+
t02 = $[8];
|
|
66
|
+
}
|
|
67
|
+
isOrderCancellable = t02;
|
|
58
68
|
const orderId = limitOrderFlow.limitOrderSubmission.order?.id;
|
|
59
69
|
explorerLink = orderId ? constructExplorerOrderDetailsLink(orderId) : void 0;
|
|
60
70
|
logger.once.log("step", step, limitOrderFlow, {
|
|
@@ -77,12 +87,12 @@ function useLimitOrderStep(options) {
|
|
|
77
87
|
step = $[6];
|
|
78
88
|
}
|
|
79
89
|
let t0;
|
|
80
|
-
if ($[
|
|
90
|
+
if ($[9] !== limitOrderFlow.error) {
|
|
81
91
|
t0 = isUserCancelledError(limitOrderFlow.error) ? null : limitOrderFlow.error;
|
|
82
|
-
$[
|
|
83
|
-
$[
|
|
92
|
+
$[9] = limitOrderFlow.error;
|
|
93
|
+
$[10] = t0;
|
|
84
94
|
} else {
|
|
85
|
-
t0 = $[
|
|
95
|
+
t0 = $[10];
|
|
86
96
|
}
|
|
87
97
|
const error = t0;
|
|
88
98
|
let erroredStep;
|
|
@@ -96,7 +106,7 @@ function useLimitOrderStep(options) {
|
|
|
96
106
|
}
|
|
97
107
|
}
|
|
98
108
|
let t1;
|
|
99
|
-
if ($[
|
|
109
|
+
if ($[11] !== cancelFlow || $[12] !== error || $[13] !== erroredStep || $[14] !== explorerLink || $[15] !== isFlowCancellable || $[16] !== isOrderCancellable || $[17] !== limitOrderFlow.cancelLimitOrder || $[18] !== limitOrderFlow.result || $[19] !== limitOrderFlow.tradeFlowType || $[20] !== orderCancellationStep || $[21] !== reset || $[22] !== retryFlow || $[23] !== startLimitOrder || $[24] !== step) {
|
|
100
110
|
t1 = {
|
|
101
111
|
startLimitOrder,
|
|
102
112
|
cancelLimitOrder: limitOrderFlow.cancelLimitOrder,
|
|
@@ -113,23 +123,23 @@ function useLimitOrderStep(options) {
|
|
|
113
123
|
result: limitOrderFlow.result,
|
|
114
124
|
tradeFlowType: limitOrderFlow.tradeFlowType
|
|
115
125
|
};
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
118
|
-
$[
|
|
119
|
-
$[
|
|
120
|
-
$[
|
|
121
|
-
$[
|
|
122
|
-
$[
|
|
123
|
-
$[
|
|
124
|
-
$[
|
|
125
|
-
$[
|
|
126
|
-
$[
|
|
127
|
-
$[
|
|
128
|
-
$[
|
|
129
|
-
$[
|
|
130
|
-
$[
|
|
126
|
+
$[11] = cancelFlow;
|
|
127
|
+
$[12] = error;
|
|
128
|
+
$[13] = erroredStep;
|
|
129
|
+
$[14] = explorerLink;
|
|
130
|
+
$[15] = isFlowCancellable;
|
|
131
|
+
$[16] = isOrderCancellable;
|
|
132
|
+
$[17] = limitOrderFlow.cancelLimitOrder;
|
|
133
|
+
$[18] = limitOrderFlow.result;
|
|
134
|
+
$[19] = limitOrderFlow.tradeFlowType;
|
|
135
|
+
$[20] = orderCancellationStep;
|
|
136
|
+
$[21] = reset;
|
|
137
|
+
$[22] = retryFlow;
|
|
138
|
+
$[23] = startLimitOrder;
|
|
139
|
+
$[24] = step;
|
|
140
|
+
$[25] = t1;
|
|
131
141
|
} else {
|
|
132
|
-
t1 = $[
|
|
142
|
+
t1 = $[25];
|
|
133
143
|
}
|
|
134
144
|
return t1;
|
|
135
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLimitOrderStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"sourcesContent":["import type {\n GenericStep,\n LimitOrderStep,\n LimitOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useLimitOrderFlow,\n type SubmitLimitOrderResult,\n type UseLimitOrderFlowInput,\n type UseLimitOrderFlowResult,\n} from \"./useLimitOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseLimitOrderStepResult = {\n startLimitOrder: UseLimitOrderFlowResult[\"runLimitOrderFlow\"];\n cancelLimitOrder: UseLimitOrderFlowResult[\"cancelLimitOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseLimitOrderFlowResult[\"reset\"];\n cancelFlow: UseLimitOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseLimitOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: LimitOrderStep;\n orderCancellationStep?: GenericStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: LimitOrderStepKey;\n result?: SubmitLimitOrderResult;\n tradeFlowType: UseLimitOrderFlowResult[\"tradeFlowType\"];\n};\n\nexport function useLimitOrderStep(\n options: UseLimitOrderFlowInput\n): UseLimitOrderStepResult {\n const logger = useLogger(\"LimitOrderStep\");\n const limitOrderFlow = useLimitOrderFlow(options);\n\n const startLimitOrder = limitOrderFlow.runLimitOrderFlow;\n const reset = limitOrderFlow.reset;\n const cancelFlow = limitOrderFlow.cancelFlow;\n const retryFlow = limitOrderFlow.retryFlow;\n\n let step: LimitOrderStep | undefined;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n limitOrderFlow.approval.isPending || !limitOrderFlow.approval.isSuccess;\n\n if (\n limitOrderFlow.approval.needsApproval &&\n approvalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (limitOrderFlow.limitOrderSubmission.isPending) {\n const approvalHappened = !!limitOrderFlow.approval.txHash;\n\n step = {\n key: \"signature\",\n subStep: approvalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (limitOrderFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n let orderCancellationStep: GenericStep | undefined;\n if (limitOrderFlow.limitOrderCancelation.isCancelingOrder) {\n orderCancellationStep = \"pending\";\n } else if (limitOrderFlow.limitOrderCancelation.isOrderCanceled) {\n orderCancellationStep = \"success\";\n } else if (limitOrderFlow.limitOrderCancelation.isError) {\n orderCancellationStep = \"error\";\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n limitOrderFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const isOrderCancellable =\n limitOrderFlow.limitOrderCancelation.isOrderCancellable;\n\n const orderId = limitOrderFlow.limitOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, limitOrderFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(limitOrderFlow.error)\n ? null\n : limitOrderFlow.error;\n\n let erroredStep: LimitOrderStepKey | undefined;\n\n if (limitOrderFlow.isError) {\n if (limitOrderFlow.approval.isError) {\n erroredStep = \"signature\";\n } else if (limitOrderFlow.limitOrderSubmission.isError) {\n erroredStep = \"order-submission\";\n }\n }\n\n return {\n startLimitOrder,\n cancelLimitOrder: limitOrderFlow.cancelLimitOrder,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n isOrderCancellable,\n step,\n orderCancellationStep,\n explorerLink,\n error,\n erroredStep,\n result: limitOrderFlow.result,\n tradeFlowType: limitOrderFlow.tradeFlowType,\n };\n}\n"],"names":["useLimitOrderStep","options","$","_c","logger","useLogger","limitOrderFlow","useLimitOrderFlow","startLimitOrder","runLimitOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","isOrderCancellable","orderCancellationStep","step","once","approvalHappeningOrNeverHappened","approval","isPending","isSuccess","needsApproval","limitOrderSubmission","approvalHappened","txHash","limitOrderCancelation","isCancelingOrder","isOrderCanceled","isError","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","t1","cancelLimitOrder","result","tradeFlowType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useLimitOrderStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"sourcesContent":["import type {\n GenericStep,\n LimitOrderStep,\n LimitOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useLimitOrderFlow,\n type SubmitLimitOrderResult,\n type UseLimitOrderFlowInput,\n type UseLimitOrderFlowResult,\n} from \"./useLimitOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\nimport { DeltaOrderStatusChecker } from \"../prices/delta/orders/utils\";\n\ntype UseLimitOrderStepResult = {\n startLimitOrder: UseLimitOrderFlowResult[\"runLimitOrderFlow\"];\n cancelLimitOrder: UseLimitOrderFlowResult[\"cancelLimitOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseLimitOrderFlowResult[\"reset\"];\n cancelFlow: UseLimitOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseLimitOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: LimitOrderStep;\n orderCancellationStep?: GenericStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: LimitOrderStepKey;\n result?: SubmitLimitOrderResult;\n tradeFlowType: UseLimitOrderFlowResult[\"tradeFlowType\"];\n};\n\nexport function useLimitOrderStep(\n options: UseLimitOrderFlowInput\n): UseLimitOrderStepResult {\n const logger = useLogger(\"LimitOrderStep\");\n const limitOrderFlow = useLimitOrderFlow(options);\n\n const startLimitOrder = limitOrderFlow.runLimitOrderFlow;\n const reset = limitOrderFlow.reset;\n const cancelFlow = limitOrderFlow.cancelFlow;\n const retryFlow = limitOrderFlow.retryFlow;\n\n let step: LimitOrderStep | undefined;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n limitOrderFlow.approval.isPending || !limitOrderFlow.approval.isSuccess;\n\n if (\n limitOrderFlow.approval.needsApproval &&\n approvalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (limitOrderFlow.limitOrderSubmission.isPending) {\n const approvalHappened = !!limitOrderFlow.approval.txHash;\n\n step = {\n key: \"signature\",\n subStep: approvalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (limitOrderFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n let orderCancellationStep: GenericStep | undefined;\n if (limitOrderFlow.limitOrderCancelation.isCancelingOrder) {\n orderCancellationStep = \"pending\";\n } else if (limitOrderFlow.limitOrderCancelation.isOrderCanceled) {\n orderCancellationStep = \"success\";\n } else if (limitOrderFlow.limitOrderCancelation.isError) {\n orderCancellationStep = \"error\";\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n limitOrderFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const lastOrderStatus =\n // either from last known status (polling) or from the just submitted Order\n limitOrderFlow.limitOrderExecution.lastOrderState?.status ||\n limitOrderFlow.limitOrderExecution.sentOrder?.status;\n\n const isOrderCancellable =\n !!lastOrderStatus &&\n DeltaOrderStatusChecker.cancellable.has(lastOrderStatus);\n\n const orderId = limitOrderFlow.limitOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, limitOrderFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(limitOrderFlow.error)\n ? null\n : limitOrderFlow.error;\n\n let erroredStep: LimitOrderStepKey | undefined;\n\n if (limitOrderFlow.isError) {\n if (limitOrderFlow.approval.isError) {\n erroredStep = \"signature\";\n } else if (limitOrderFlow.limitOrderSubmission.isError) {\n erroredStep = \"order-submission\";\n }\n }\n\n return {\n startLimitOrder,\n cancelLimitOrder: limitOrderFlow.cancelLimitOrder,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n isOrderCancellable,\n step,\n orderCancellationStep,\n explorerLink,\n error,\n erroredStep,\n result: limitOrderFlow.result,\n tradeFlowType: limitOrderFlow.tradeFlowType,\n };\n}\n"],"names":["useLimitOrderStep","options","$","_c","logger","useLogger","limitOrderFlow","useLimitOrderFlow","startLimitOrder","runLimitOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","isOrderCancellable","orderCancellationStep","step","once","approvalHappeningOrNeverHappened","approval","isPending","isSuccess","needsApproval","limitOrderSubmission","approvalHappened","txHash","limitOrderCancelation","isCancelingOrder","isOrderCanceled","isError","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","lastOrderStatus","limitOrderExecution","lastOrderState","status","sentOrder","t0","DeltaOrderStatusChecker","cancellable","has","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","error","isUserCancelledError","erroredStep","t1","cancelLimitOrder","result","tradeFlowType"],"mappings":";;;;;;;AAkCO,SAAAA,kBAAAC,OAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAGL,EAAA,MAAAC,MAAAA,GAAeC,UAAU,gBAAgB,CAAA;AACzC,EAAA,MAAAC,cAAAA,GAAuBC,kBAAkBN,OAAO,CAAA;AAEhD,EAAA,MAAAO,kBAAwBF,cAAAA,CAAcG,iBAAAA;AACtC,EAAA,MAAAC,QAAcJ,cAAAA,CAAcI,KAAAA;AAC5B,EAAA,MAAAC,aAAmBL,cAAAA,CAAcK,UAAAA;AACjC,EAAA,MAAAC,YAAkBN,cAAAA,CAAcM,SAAAA;AAAW,EAAA,IAAAC,YAAAA;AAAA,EAAA,IAAAC,iBAAAA;AAAA,EAAA,IAAAC,kBAAAA;AAAA,EAAA,IAAAC,qBAAAA;AAAA,EAAA,IAAAC,IAAAA;AAAA,EAAA,IAAAf,CAAAA,QAAAI,cAAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAE,OAAAc,IAAAA,EAAA;AAI3C,IAAA,MAAAC,mCAGEb,cAAAA,CAAcc,QAAAA,CAASC,SAAAA,IAAvB,CAAsCf,eAAcc,QAAAA,CAASE,SAAAA;AAE/D,IAAA,IACEhB,cAAAA,CAAcc,QAAAA,CAASG,aAAAA,IAAvBJ,gCAAAA,EACgC;AAEhCF,MAAAA,IAAAA,GAAOA;AAAAA,QAAAA,GAAAA,EAAOA,WAAAA;AAAAA,QAAWA,OAAAA,EAAWA;AAAAA,OAAqBA;AAAAA,IAArD,CAAA,MAAA;AACC,MAAA,IAAIX,cAAAA,CAAckB,qBAAqBH,SAAAA,EAAU;AACtD,QAAA,MAAAI,gBAAAA,GAAyB,CAAC,CAACnB,cAAAA,CAAcc,QAAAA,CAASM,MAAAA;AAElDT,QAAAA,IAAAA,GAAOA;AAAAA,UAAAA,GAAAA,EACAA,WAAAA;AAAAA,UAAWA,OAAAA,EACPQ,mBAAA,iBAAA,GAAA;AAAA,SAGX;AAAA,MALI,CAAA,MAAA;AAMC,QAAA,IAAInB,eAAce,SAAAA,EAAU;AAGjCJ,UAAAA,IAAAA,GAAOA;AAAAA,YAAAA,GAAAA,EAAOA,WAAAA;AAAAA,YAAWA,OAAAA,EAAWA;AAAAA,WAA6BA;AAAAA,QAA7D;AAAA,MACL;AAAA,IAAA;AAGD,IAAA,IAAIX,cAAAA,CAAcqB,sBAAsBC,gBAAAA,EAAiB;AACvDZ,MAAAA,qBAAAA,GAAwBA,SAAAA;AAAAA,IAAH,CAAA,MAAA;AAChB,MAAA,IAAIV,cAAAA,CAAcqB,sBAAsBE,eAAAA,EAAgB;AAC7Db,QAAAA,qBAAAA,GAAwBA,SAAAA;AAAAA,MAAH,CAAA,MAAA;AAChB,QAAA,IAAIV,cAAAA,CAAcqB,sBAAsBG,OAAAA,EAAQ;AACrDd,UAAAA,qBAAAA,GAAwBA,OAAAA;AAAAA,QAAH;AAAA,MACtB;AAAA,IAAA;AAED,IAAA,MAAAe,iBAAAA,GACEd,MAAIe,GAAAA,KAAU,WAAA,IACdf,KAAIgB,OAAAA,KAAa,oBAAA,IACjB3B,eAAcc,QAAAA,CAASc,WAAAA;AAEzB,IAAA,MAAAC,kBAAAA,GACElB,MAAIe,GAAAA,KAAU,WAAA,KACbf,KAAIgB,OAAAA,KAAa,iBAAA,IAChBhB,KAAIgB,OAAAA,KAAa,4BAAA,CAAA;AAErBnB,IAAAA,iBAAAA,GAGEiB,iBAAAA,IAAAI,kBAAAA;AAEF,IAAA,MAAAC,kBAEE9B,cAAAA,CAAc+B,mBAAAA,CAAoBC,gBAAuBC,MAAAA,IACzDjC,cAAAA,CAAc+B,oBAAoBG,SAAAA,EAAkBD,MAAAA;AAAC,IAAA,IAAAE,GAAAA;AAAA,IAAA,IAAAvC,CAAAA,QAAAkC,eAAAA,EAAA;AAGrDK,MAAAA,MAAA,CAAC,CAACL,mBACFM,uBAAAA,CAAuBC,WAAAA,CAAYC,IAAKR,eAAe,CAAA;AAAClC,MAAAA,CAAAA,MAAAkC,eAAAA;AAAAlC,MAAAA,CAAAA,MAAAuC,GAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,GAAAA,GAAAvC,EAAA,CAAA,CAAA;AAAA,IAAA;AAF1Da,IAAAA,kBAAAA,GACE0B,GAAAA;AAGF,IAAA,MAAAI,OAAAA,GAAgBvC,cAAAA,CAAckB,oBAAAA,CAAqBsB,KAAAA,EAAUC,EAAAA;AAC7DlC,IAAAA,YAAAA,GAAqBgC,OAAAA,GACjBG,iCAAAA,CAAkCH,OAC1B,CAAA,GAFSI,MAAAA;AAIrB7C,IAAAA,MAAAA,CAAMc,IAAAA,CAAKgC,GAAAA,CAAK,MAAA,EAAQjC,IAAAA,EAAMX,cAAAA,EAAgB;AAAA,MAAAQ,iBAAAA;AAAAA,MAAAD,YAAAA;AAAAA,MAAAgC;AAAAA,KAI7C,CAAA;AAAC3C,IAAAA,CAAAA,MAAAI,cAAAA;AAAAJ,IAAAA,CAAAA,CAAA,CAAA,IAAAE,MAAAA,CAAAc,IAAAA;AAAAhB,IAAAA,CAAAA,MAAAW,YAAAA;AAAAX,IAAAA,CAAAA,MAAAY,iBAAAA;AAAAZ,IAAAA,CAAAA,MAAAa,kBAAAA;AAAAb,IAAAA,CAAAA,MAAAc,qBAAAA;AAAAd,IAAAA,CAAAA,MAAAe,IAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAJ,IAAAA,YAAAA,GAAAX,EAAA,CAAA,CAAA;AAAAY,IAAAA,iBAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAAa,IAAAA,kBAAAA,GAAAb,EAAA,CAAA,CAAA;AAAAc,IAAAA,qBAAAA,GAAAd,EAAA,CAAA,CAAA;AAAAe,IAAAA,IAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAuC,EAAAA;AAAA,EAAA,IAAAvC,CAAAA,CAAA,CAAA,CAAA,KAAAI,cAAAA,CAAA6C,KAAAA,EAAA;AAGYV,IAAAA,EAAAA,GAAAW,oBAAAA,CAAqB9C,cAAAA,CAAc6C,KAE1B,CAAA,GAFT,OAEV7C,cAAAA,CAAc6C,KAAAA;AAAMjD,IAAAA,CAAAA,CAAA,CAAA,IAAAI,cAAAA,CAAA6C,KAAAA;AAAAjD,IAAAA,CAAAA,OAAAuC,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAvC,EAAA,EAAA,CAAA;AAAA,EAAA;AAFxB,EAAA,MAAAiD,KAAAA,GAAcV,EAAAA;AAIVY,EAAAA,IAAAA,WAAAA;AAEJ,EAAA,IAAI/C,eAAcwB,OAAAA,EAAQ;AACxB,IAAA,IAAIxB,cAAAA,CAAcc,SAASU,OAAAA,EAAQ;AACjCuB,MAAAA,WAAAA,GAAcA,WAAAA;AAAAA,IAAH,CAAA,MAAA;AACN,MAAA,IAAI/C,cAAAA,CAAckB,qBAAqBM,OAAAA,EAAQ;AACpDuB,QAAAA,WAAAA,GAAcA,kBAAAA;AAAAA,MAAH;AAAA,IACZ;AAAA,EAAA;AACF,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAApD,CAAAA,CAAA,EAAA,CAAA,KAAAS,UAAAA,IAAAT,CAAAA,CAAA,EAAA,CAAA,KAAAiD,KAAAA,IAAAjD,CAAAA,CAAA,EAAA,CAAA,KAAAmD,WAAAA,IAAAnD,CAAAA,CAAA,EAAA,CAAA,KAAAW,YAAAA,IAAAX,CAAAA,CAAA,EAAA,CAAA,KAAAY,iBAAAA,IAAAZ,CAAAA,CAAA,EAAA,CAAA,KAAAa,kBAAAA,IAAAb,CAAAA,CAAA,EAAA,CAAA,KAAAI,cAAAA,CAAAiD,gBAAAA,IAAArD,EAAA,EAAA,CAAA,KAAAI,cAAAA,CAAAkD,MAAAA,IAAAtD,CAAAA,CAAA,EAAA,CAAA,KAAAI,cAAAA,CAAAmD,aAAAA,IAAAvD,CAAAA,CAAA,EAAA,CAAA,KAAAc,qBAAAA,IAAAd,CAAAA,CAAA,EAAA,CAAA,KAAAQ,KAAAA,IAAAR,CAAAA,CAAA,EAAA,CAAA,KAAAU,SAAAA,IAAAV,CAAAA,CAAA,EAAA,CAAA,KAAAM,eAAAA,IAAAN,CAAAA,CAAA,EAAA,CAAA,KAAAe,IAAAA,EAAA;AAEMqC,IAAAA,EAAAA,GAAA;AAAA,MAAA9C,eAAAA;AAAAA,MAAA+C,kBAEajD,cAAAA,CAAciD,gBAAAA;AAAAA,MAAiB7C,KAAAA;AAAAA,MAAAC,UAAAA;AAAAA,MAAAC,SAAAA;AAAAA,MAAAE,iBAAAA;AAAAA,MAAAC,kBAAAA;AAAAA,MAAAE,IAAAA;AAAAA,MAAAD,qBAAAA;AAAAA,MAAAH,YAAAA;AAAAA,MAAAsC,KAAAA;AAAAA,MAAAE,WAAAA;AAAAA,MAAAG,QAazClD,cAAAA,CAAckD,MAAAA;AAAAA,MAAOC,eACdnD,cAAAA,CAAcmD;AAAAA,KAC/B;AAACvD,IAAAA,CAAAA,OAAAS,UAAAA;AAAAT,IAAAA,CAAAA,OAAAiD,KAAAA;AAAAjD,IAAAA,CAAAA,OAAAmD,WAAAA;AAAAnD,IAAAA,CAAAA,OAAAW,YAAAA;AAAAX,IAAAA,CAAAA,OAAAY,iBAAAA;AAAAZ,IAAAA,CAAAA,OAAAa,kBAAAA;AAAAb,IAAAA,CAAAA,CAAA,EAAA,IAAAI,cAAAA,CAAAiD,gBAAAA;AAAArD,IAAAA,CAAAA,CAAA,EAAA,IAAAI,cAAAA,CAAAkD,MAAAA;AAAAtD,IAAAA,CAAAA,CAAA,EAAA,IAAAI,cAAAA,CAAAmD,aAAAA;AAAAvD,IAAAA,CAAAA,OAAAc,qBAAAA;AAAAd,IAAAA,CAAAA,OAAAQ,KAAAA;AAAAR,IAAAA,CAAAA,OAAAU,SAAAA;AAAAV,IAAAA,CAAAA,OAAAM,eAAAA;AAAAN,IAAAA,CAAAA,OAAAe,IAAAA;AAAAf,IAAAA,CAAAA,OAAAoD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAApD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAjBMoD,EAAAA;AAiBN;;;;"}
|
package/dist/hooks/useSDK.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LimitOrderHandlers, GetRateFunctions, APIVersion, GetDeltaOrdersFunctions, GetDeltaPriceFunctions, PostDeltaOrderFunctions, BuildDeltaOrderFunctions, SignDeltaOrderFunctions, PreSignDeltaOrderFunctions, CancelDeltaOrderFunctions, GetBridgeInfoFunctions, IsTokenSupportedInDeltaFunctions, BuildTxFunctions, GetSpenderFunctions, MinViemClient, GetLimitOrdersFunctions, BuildLimitOrderFunctions, PostLimitOrderFunctions, FillOrderDirectlyFunctions
|
|
1
|
+
import { LimitOrderHandlers, GetRateFunctions, APIVersion, GetDeltaOrdersFunctions, GetDeltaPriceFunctions, PostDeltaOrderFunctions, BuildDeltaOrderFunctions, SignDeltaOrderFunctions, PreSignDeltaOrderFunctions, CancelDeltaOrderFunctions, GetBridgeInfoFunctions, IsTokenSupportedInDeltaFunctions, BuildTxFunctions, GetSpenderFunctions, MinViemClient, GetLimitOrdersFunctions, BuildLimitOrderFunctions, PostLimitOrderFunctions, FillOrderDirectlyFunctions } from '@velora-dex/sdk';
|
|
2
2
|
import { Address, Hash, Hex } from 'viem';
|
|
3
3
|
import { Prettify } from 'ts-essentials';
|
|
4
4
|
type SDKCreateParams = {
|
|
@@ -29,11 +29,11 @@ export declare function useLimitOrdersSDK({ chainId, apiURL, account, client, }:
|
|
|
29
29
|
}): ConstructedSDKOutput<LimitOrdersSDK>;
|
|
30
30
|
export declare function useLimitOrdersSDK({ chainId, apiURL, account, client, }: LimitOrdersSDKCreateParams): ConstructedSDKOutput<LimitOrdersSDK | ReadOnlyLimitOrdersSDK>;
|
|
31
31
|
export declare const useFetchOnlySDK: ({ chainId, apiURL, }: SDKCreateParams) => Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>>;
|
|
32
|
-
export declare const useCalldataSDK: ({ chainId, apiURL, client, }: Omit<LimitOrdersSDKCreateParams, "account">) => Partial<ConstructedSDKOutput<FillOrderDirectlyFunctions<Hex> & PreSignDeltaOrderFunctions<Hex> &
|
|
32
|
+
export declare const useCalldataSDK: ({ chainId, apiURL, client, }: Omit<LimitOrdersSDKCreateParams, "account">) => Partial<ConstructedSDKOutput<FillOrderDirectlyFunctions<Hex> & PreSignDeltaOrderFunctions<Hex> & BuildDeltaOrderFunctions>>;
|
|
33
33
|
type ReadOnlyDeltaSDK = Prettify<GetDeltaOrdersFunctions & GetDeltaPriceFunctions & BuildDeltaOrderFunctions & PostDeltaOrderFunctions & GetBridgeInfoFunctions & IsTokenSupportedInDeltaFunctions & {
|
|
34
34
|
chainId: number;
|
|
35
35
|
}>;
|
|
36
|
-
export type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions
|
|
36
|
+
export type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions>;
|
|
37
37
|
type DeltaSDKCreateParams = SDKCreateParams & {
|
|
38
38
|
client?: MinViemClient;
|
|
39
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
|