@velora-dex/widget 0.4.14 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/web3/ConnectWallets/walletFlags.d.ts +90 -0
- package/dist/components/web3/ConnectWallets/walletFlags.d.ts.map +1 -0
- package/dist/components/web3/ConnectWallets/walletFlags.js +104 -0
- package/dist/components/web3/ConnectWallets/walletFlags.js.map +1 -0
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +4 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +23 -3
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +24 -14
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.js +44 -40
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts +15 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts.map +1 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js +66 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js.map +1 -0
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +5 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +75 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +85 -49
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js +33 -22
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts +7 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js +84 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts +12 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js +227 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts +8 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.js +20 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts +12 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js +49 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js.map +1 -0
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +38 -28
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +16 -18
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts +2 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +78 -64
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js +21 -14
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts +2 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js +66 -24
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js +11 -7
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +4 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js +20 -2
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +5 -4
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +15 -21
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/steps.d.ts +4 -0
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +22 -5
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +37 -11
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +4 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +133 -31
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts +7 -2
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +18 -14
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
- package/dist/core/state/widgetEventsAtom.js +51 -37
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/events/types/{cancel.d.ts → cancelOrder.d.ts} +5 -2
- package/dist/events/types/cancelOrder.d.ts.map +1 -0
- package/dist/events/types/cancelTx.d.ts +35 -0
- package/dist/events/types/cancelTx.d.ts.map +1 -0
- package/dist/events/types/index.d.ts +5 -2
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/events/types/swap.d.ts +11 -1
- package/dist/events/types/swap.d.ts.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.js +1 -0
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +20 -2
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +197 -74
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +0 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +6 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +37 -24
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts +2 -2
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +28 -42
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +6 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +16 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +10 -4
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +176 -145
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts +11 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js +69 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +24 -28
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts +6 -2
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js +8 -2
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.d.ts +6 -0
- package/dist/hooks/swap/tradeFlow/common/errors.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js +15 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +6 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +55 -19
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +2 -2
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +45 -57
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +6 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +26 -5
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts +4 -4
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +23 -37
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +13 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +93 -26
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +7 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +59 -42
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/txs/mutations/useReplaceTx.d.ts +86 -0
- package/dist/hooks/txs/mutations/useReplaceTx.d.ts.map +1 -0
- package/dist/hooks/txs/mutations/useReplaceTx.js +514 -0
- package/dist/hooks/txs/mutations/useReplaceTx.js.map +1 -0
- package/dist/hooks/txs/mutations/useSendTx.d.ts +7 -2
- package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAccountNonce.d.ts +9 -0
- package/dist/hooks/txs/queries/useAccountNonce.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useAccountNonce.js +31 -0
- package/dist/hooks/txs/queries/useAccountNonce.js.map +1 -0
- package/dist/hooks/txs/queries/useTxFees.d.ts +16 -0
- package/dist/hooks/txs/queries/useTxFees.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useTxFees.js +103 -0
- package/dist/hooks/txs/queries/useTxFees.js.map +1 -0
- package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js +3 -2
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/txs/queries/useTxResponse.d.ts +2390 -0
- package/dist/hooks/txs/queries/useTxResponse.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useTxResponse.js +75 -0
- package/dist/hooks/txs/queries/useTxResponse.js.map +1 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts +2 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js +30 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/styles.css +3 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts +16 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts.map +1 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js +23 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js.map +1 -0
- package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/transactions/queries/ensureTxResponse.d.ts +17 -0
- package/dist/transactions/queries/ensureTxResponse.d.ts.map +1 -0
- package/dist/transactions/queries/ensureTxResponse.js +23 -0
- package/dist/transactions/queries/ensureTxResponse.js.map +1 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts +7 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts.map +1 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js +10 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js.map +1 -0
- package/dist/transactions/state/transactionsActionAtom.d.ts +12 -0
- package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.js +40 -1
- package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
- package/dist/transactions/status.d.ts +1 -1
- package/dist/transactions/status.d.ts.map +1 -1
- package/dist/transactions/status.js +6 -0
- package/dist/transactions/status.js.map +1 -1
- package/dist/transactions/types.d.ts +15 -2
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/events/types/cancel.d.ts.map +0 -1
|
@@ -146,13 +146,16 @@ function useLimitOrderFlow({
|
|
|
146
146
|
});
|
|
147
147
|
const limitOrderCancelation = {
|
|
148
148
|
receipt: cancelOrderMut.receipt,
|
|
149
|
+
txHash: cancelOrderMut.txHash,
|
|
150
|
+
response: cancelOrderMut.cancelOrderResponse,
|
|
149
151
|
isCancelingOrder: cancelOrderMut.isPending,
|
|
150
152
|
isOrderCancellable: cancelOrderMut.isOrderCancellable,
|
|
151
153
|
isOrderCanceled: cancelOrderMut.isSuccess,
|
|
152
154
|
isPending: cancelOrderMut.isPending,
|
|
153
155
|
isError: cancelOrderMut.isError,
|
|
154
156
|
isSuccess: cancelOrderMut.isSuccess,
|
|
155
|
-
error: cancelOrderMut.error
|
|
157
|
+
error: cancelOrderMut.error,
|
|
158
|
+
step: cancelOrderMut.step
|
|
156
159
|
};
|
|
157
160
|
const ensureTxReceipt = useEnsureTxReceipt();
|
|
158
161
|
const currentAbortControllerRef = useRef(null);
|
|
@@ -371,15 +374,22 @@ function useLimitOrderFlow({
|
|
|
371
374
|
throw error_0;
|
|
372
375
|
}
|
|
373
376
|
};
|
|
374
|
-
const cancelLimitOrder =
|
|
377
|
+
const cancelLimitOrder = async () => {
|
|
378
|
+
try {
|
|
379
|
+
return await cancelOrderMut.cancelDeltaOrder();
|
|
380
|
+
} catch (error_2) {
|
|
381
|
+
logger.error("Cancel Limit order error", error_2);
|
|
382
|
+
cancelOrderMut.reset();
|
|
383
|
+
}
|
|
384
|
+
};
|
|
375
385
|
const limitOrderMut = useMutation({
|
|
376
386
|
mutationFn: submitLimitOrder,
|
|
377
387
|
mutationKey: [LIMIT_ORDER_MUTATION_KEY],
|
|
378
388
|
onSuccess: (data_0) => {
|
|
379
389
|
logger.log("Order submission success", data_0);
|
|
380
390
|
},
|
|
381
|
-
onError: (
|
|
382
|
-
logger.error("Order submission error",
|
|
391
|
+
onError: (error_3) => {
|
|
392
|
+
logger.error("Order submission error", error_3);
|
|
383
393
|
},
|
|
384
394
|
onSettled: () => {
|
|
385
395
|
logger.log("Order submission settled");
|
|
@@ -398,6 +408,17 @@ function useLimitOrderFlow({
|
|
|
398
408
|
reset();
|
|
399
409
|
return runLimitOrderFlow(options);
|
|
400
410
|
};
|
|
411
|
+
let result = limitOrderMut.data;
|
|
412
|
+
if (result && limitOrderExecution.lastOrderState) {
|
|
413
|
+
result = {
|
|
414
|
+
...result,
|
|
415
|
+
limitOrder: {
|
|
416
|
+
sentOrder: result.limitOrder.sentOrder,
|
|
417
|
+
// lastOrderState may be CANCELLED here
|
|
418
|
+
lastOrderState: limitOrderExecution.lastOrderState
|
|
419
|
+
}
|
|
420
|
+
};
|
|
421
|
+
}
|
|
401
422
|
return {
|
|
402
423
|
tradeFlowType: limitOrderFlowType,
|
|
403
424
|
chainId,
|
|
@@ -416,7 +437,7 @@ function useLimitOrderFlow({
|
|
|
416
437
|
// approval is an optional step
|
|
417
438
|
isError: limitOrderMut.isError,
|
|
418
439
|
error: limitOrderMut.error,
|
|
419
|
-
result
|
|
440
|
+
result,
|
|
420
441
|
limitPrice
|
|
421
442
|
};
|
|
422
443
|
}
|
|
@@ -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 useCreateAndSubmitDeltaOrder,\n type CreateAndSubmitDeltaOrderInput,\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 isPostingOrder: boolean;\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 createAndSubmitOrderMut = useCreateAndSubmitDeltaOrder({\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: createAndSubmitOrderMut.order,\n isCreatingOrder: createAndSubmitOrderMut.isCreatingOrder,\n isPostingOrder: createAndSubmitOrderMut.isPostingOrder,\n isOrderSent: createAndSubmitOrderMut.isOrderSent,\n isPending: createAndSubmitOrderMut.isPending,\n isError: createAndSubmitOrderMut.isError,\n isSuccess: createAndSubmitOrderMut.isSuccess,\n error: createAndSubmitOrderMut.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 isPostingOrder:\n limitOrderCreateAndSubmit.isPostingOrder ||\n deltaOrderPreSign.postingOrder.isPostingOrder ||\n deltaOrderDeposit.postingOrder.isPostingOrder,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isCreatingOrder ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isOrderSent ||\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: limitOrderSubmission.order,\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 createAndSubmitOrderMut.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: CreateAndSubmitDeltaOrderInput;\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 // deposit ETH + depositTx + POST order\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 =\n await createAndSubmitOrderMut.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 createAndSubmitOrderMut.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","createAndSubmitOrderMut","useCreateAndSubmitDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","limitOrderCreateAndSubmit","isCreatingOrder","isPostingOrder","isOrderSent","isPending","isError","isSuccess","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","limitOrderSubmission","postingOrder","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","data","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 useCreateAndSubmitDeltaOrder,\n type CreateAndSubmitDeltaOrderInput,\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\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\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 lastOrderState?: MaybeVeloraDeltaAuction;\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<\n TransactionReceipt | CancelDeltaOrdersReturn | undefined\n >;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\n isPostingOrder: boolean;\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 txHash?: string;\n response?: CancelDeltaOrdersReturn;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n step?: CancelOrderStepKey;\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 createAndSubmitOrderMut = useCreateAndSubmitDeltaOrder({\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: createAndSubmitOrderMut.order,\n isCreatingOrder: createAndSubmitOrderMut.isCreatingOrder,\n isPostingOrder: createAndSubmitOrderMut.isPostingOrder,\n isOrderSent: createAndSubmitOrderMut.isOrderSent,\n isPending: createAndSubmitOrderMut.isPending,\n isError: createAndSubmitOrderMut.isError,\n isSuccess: createAndSubmitOrderMut.isSuccess,\n error: createAndSubmitOrderMut.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 isPostingOrder:\n limitOrderCreateAndSubmit.isPostingOrder ||\n deltaOrderPreSign.postingOrder.isPostingOrder ||\n deltaOrderDeposit.postingOrder.isPostingOrder,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isCreatingOrder ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isOrderSent ||\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: limitOrderSubmission.order,\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 txHash: cancelOrderMut.txHash,\n response: cancelOrderMut.cancelOrderResponse,\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 step: cancelOrderMut.step,\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 createAndSubmitOrderMut.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 } 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: CreateAndSubmitDeltaOrderInput;\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 // deposit ETH + depositTx + POST order\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 =\n await createAndSubmitOrderMut.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 = async () => {\n try {\n return await cancelOrderMut.cancelDeltaOrder();\n } catch (error) {\n logger.error(\"Cancel Limit order error\", error);\n // allow to re-trigger cancellation after error (like UserCancelledError)\n cancelOrderMut.reset();\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 createAndSubmitOrderMut.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\n let result: SubmitLimitOrderResult | undefined = limitOrderMut.data;\n if (result && limitOrderExecution.lastOrderState) {\n result = {\n ...result,\n limitOrder: {\n sentOrder: result.limitOrder.sentOrder,\n // lastOrderState may be CANCELLED here\n lastOrderState: limitOrderExecution.lastOrderState,\n },\n };\n }\n\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,\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","createAndSubmitOrderMut","useCreateAndSubmitDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","limitOrderCreateAndSubmit","isCreatingOrder","isPostingOrder","isOrderSent","isPending","isError","isSuccess","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","limitOrderSubmission","postingOrder","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","data","getOverallOrderStatus","neverFetchedFinishedOrder","limitOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderMut","useCancelOrWithdrawAndCancelDeltaOrder","limitOrderCancelation","receipt","txHash","response","cancelOrderResponse","isCancelingOrder","isOrderCancellable","isOrderCanceled","step","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","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,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { CancelOrderStepKey, LimitOrderStep, LimitOrderStepKey } from '../../../components/widget/TradeOverview/steps';
|
|
2
|
+
import { UseLimitOrderFlowInput, UseLimitOrderFlowResult } from './useLimitOrderFlow';
|
|
3
3
|
type UseLimitOrderStepResult = {
|
|
4
4
|
startLimitOrder: UseLimitOrderFlowResult["runLimitOrderFlow"];
|
|
5
5
|
cancelLimitOrder: UseLimitOrderFlowResult["cancelLimitOrder"];
|
|
@@ -9,11 +9,11 @@ type UseLimitOrderStepResult = {
|
|
|
9
9
|
isFlowCancellable: boolean;
|
|
10
10
|
isOrderCancellable: boolean;
|
|
11
11
|
step?: LimitOrderStep;
|
|
12
|
-
orderCancellationStep?:
|
|
12
|
+
orderCancellationStep?: CancelOrderStepKey;
|
|
13
13
|
explorerLink?: string;
|
|
14
14
|
error: Error | null;
|
|
15
15
|
erroredStep?: LimitOrderStepKey;
|
|
16
|
-
result?:
|
|
16
|
+
result?: UseLimitOrderFlowResult["result"];
|
|
17
17
|
tradeFlowType: UseLimitOrderFlowResult["tradeFlowType"];
|
|
18
18
|
};
|
|
19
19
|
export declare function useLimitOrderStep(options: UseLimitOrderFlowInput): UseLimitOrderStepResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLimitOrderStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"useLimitOrderStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAK7B,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,kBAAkB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3C,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,sBAAsB,GAC9B,uBAAuB,CAoGzB"}
|
|
@@ -5,7 +5,7 @@ import { constructExplorerOrderDetailsLink } from '../../../lib/utils/explorer.j
|
|
|
5
5
|
import { isUserCancelledError } from './common/errors.js';
|
|
6
6
|
|
|
7
7
|
function useLimitOrderStep(options) {
|
|
8
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(23);
|
|
9
9
|
const logger = useLogger("LimitOrderStep");
|
|
10
10
|
const limitOrderFlow = useLimitOrderFlow(options);
|
|
11
11
|
const startLimitOrder = limitOrderFlow.runLimitOrderFlow;
|
|
@@ -15,7 +15,6 @@ function useLimitOrderStep(options) {
|
|
|
15
15
|
let explorerLink;
|
|
16
16
|
let isFlowCancellable;
|
|
17
17
|
let isOrderCancellable;
|
|
18
|
-
let orderCancellationStep;
|
|
19
18
|
let step;
|
|
20
19
|
if ($[0] !== limitOrderFlow || $[1] !== logger.once) {
|
|
21
20
|
const approvalHappeningOrNeverHappened = limitOrderFlow.approval.isPending || !limitOrderFlow.approval.isSuccess;
|
|
@@ -40,17 +39,6 @@ function useLimitOrderStep(options) {
|
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
|
-
if (limitOrderFlow.limitOrderCancelation.isCancelingOrder) {
|
|
44
|
-
orderCancellationStep = "pending";
|
|
45
|
-
} else {
|
|
46
|
-
if (limitOrderFlow.limitOrderCancelation.isOrderCanceled) {
|
|
47
|
-
orderCancellationStep = "success";
|
|
48
|
-
} else {
|
|
49
|
-
if (limitOrderFlow.limitOrderCancelation.isError) {
|
|
50
|
-
orderCancellationStep = "error";
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
42
|
const approvalIsStarted = step?.key === "signature" && step.subStep === "approval-signature" && limitOrderFlow.approval.isTxPending;
|
|
55
43
|
const isOrderBeingSigned = step?.key === "signature" && (step.subStep === "order-signature" || step.subStep === "standalone-order-signature");
|
|
56
44
|
const isPostingOrder = limitOrderFlow.limitOrderSubmission.isPostingOrder;
|
|
@@ -68,22 +56,20 @@ function useLimitOrderStep(options) {
|
|
|
68
56
|
$[2] = explorerLink;
|
|
69
57
|
$[3] = isFlowCancellable;
|
|
70
58
|
$[4] = isOrderCancellable;
|
|
71
|
-
$[5] =
|
|
72
|
-
$[6] = step;
|
|
59
|
+
$[5] = step;
|
|
73
60
|
} else {
|
|
74
61
|
explorerLink = $[2];
|
|
75
62
|
isFlowCancellable = $[3];
|
|
76
63
|
isOrderCancellable = $[4];
|
|
77
|
-
|
|
78
|
-
step = $[6];
|
|
64
|
+
step = $[5];
|
|
79
65
|
}
|
|
80
66
|
let t0;
|
|
81
|
-
if ($[
|
|
67
|
+
if ($[6] !== limitOrderFlow.error) {
|
|
82
68
|
t0 = isUserCancelledError(limitOrderFlow.error) ? null : limitOrderFlow.error;
|
|
83
|
-
$[
|
|
84
|
-
$[
|
|
69
|
+
$[6] = limitOrderFlow.error;
|
|
70
|
+
$[7] = t0;
|
|
85
71
|
} else {
|
|
86
|
-
t0 = $[
|
|
72
|
+
t0 = $[7];
|
|
87
73
|
}
|
|
88
74
|
const error = t0;
|
|
89
75
|
let erroredStep;
|
|
@@ -97,7 +83,7 @@ function useLimitOrderStep(options) {
|
|
|
97
83
|
}
|
|
98
84
|
}
|
|
99
85
|
let t1;
|
|
100
|
-
if ($[
|
|
86
|
+
if ($[8] !== cancelFlow || $[9] !== error || $[10] !== erroredStep || $[11] !== explorerLink || $[12] !== isFlowCancellable || $[13] !== isOrderCancellable || $[14] !== limitOrderFlow.cancelLimitOrder || $[15] !== limitOrderFlow.limitOrderCancelation.step || $[16] !== limitOrderFlow.result || $[17] !== limitOrderFlow.tradeFlowType || $[18] !== reset || $[19] !== retryFlow || $[20] !== startLimitOrder || $[21] !== step) {
|
|
101
87
|
t1 = {
|
|
102
88
|
startLimitOrder,
|
|
103
89
|
cancelLimitOrder: limitOrderFlow.cancelLimitOrder,
|
|
@@ -107,30 +93,30 @@ function useLimitOrderStep(options) {
|
|
|
107
93
|
isFlowCancellable,
|
|
108
94
|
isOrderCancellable,
|
|
109
95
|
step,
|
|
110
|
-
orderCancellationStep,
|
|
96
|
+
orderCancellationStep: limitOrderFlow.limitOrderCancelation.step,
|
|
111
97
|
explorerLink,
|
|
112
98
|
error,
|
|
113
99
|
erroredStep,
|
|
114
100
|
result: limitOrderFlow.result,
|
|
115
101
|
tradeFlowType: limitOrderFlow.tradeFlowType
|
|
116
102
|
};
|
|
117
|
-
$[
|
|
118
|
-
$[
|
|
119
|
-
$[
|
|
120
|
-
$[
|
|
121
|
-
$[
|
|
122
|
-
$[
|
|
123
|
-
$[
|
|
103
|
+
$[8] = cancelFlow;
|
|
104
|
+
$[9] = error;
|
|
105
|
+
$[10] = erroredStep;
|
|
106
|
+
$[11] = explorerLink;
|
|
107
|
+
$[12] = isFlowCancellable;
|
|
108
|
+
$[13] = isOrderCancellable;
|
|
109
|
+
$[14] = limitOrderFlow.cancelLimitOrder;
|
|
110
|
+
$[15] = limitOrderFlow.limitOrderCancelation.step;
|
|
124
111
|
$[16] = limitOrderFlow.result;
|
|
125
112
|
$[17] = limitOrderFlow.tradeFlowType;
|
|
126
|
-
$[18] =
|
|
127
|
-
$[19] =
|
|
128
|
-
$[20] =
|
|
129
|
-
$[21] =
|
|
130
|
-
$[22] =
|
|
131
|
-
$[23] = t1;
|
|
113
|
+
$[18] = reset;
|
|
114
|
+
$[19] = retryFlow;
|
|
115
|
+
$[20] = startLimitOrder;
|
|
116
|
+
$[21] = step;
|
|
117
|
+
$[22] = t1;
|
|
132
118
|
} else {
|
|
133
|
-
t1 = $[
|
|
119
|
+
t1 = $[22];
|
|
134
120
|
}
|
|
135
121
|
return t1;
|
|
136
122
|
}
|
|
@@ -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 isPostingOrder = limitOrderFlow.limitOrderSubmission.isPostingOrder;\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) && !isPostingOrder;\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","isPostingOrder","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 CancelOrderStepKey,\n LimitOrderStep,\n LimitOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useLimitOrderFlow,\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?: CancelOrderStepKey;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: LimitOrderStepKey;\n result?: UseLimitOrderFlowResult[\"result\"];\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 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 isPostingOrder = limitOrderFlow.limitOrderSubmission.isPostingOrder;\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) && !isPostingOrder;\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: limitOrderFlow.limitOrderCancelation.step,\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","step","once","approvalHappeningOrNeverHappened","approval","isPending","isSuccess","needsApproval","limitOrderSubmission","approvalHappened","txHash","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","isPostingOrder","limitOrderCancelation","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","t1","cancelLimitOrder","result","tradeFlowType","orderCancellationStep"],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@ import { Address, Hash, TransactionReceipt } from 'viem';
|
|
|
4
4
|
import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult, BatchTxStepResult } from './common/types';
|
|
5
5
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
6
6
|
import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
|
|
7
|
-
|
|
7
|
+
import { ReplaceTxResult } from '../../txs/mutations/useReplaceTx';
|
|
8
|
+
import { CancelOrderStepKey } from '../../../components/widget/TradeOverview/steps';
|
|
8
9
|
export type UseMarketFlowInput = {
|
|
9
10
|
marketPrice?: OptimalRate;
|
|
10
11
|
};
|
|
@@ -14,6 +15,7 @@ export type MarketSwapRequest = BuildMarketSwapTxInput & {
|
|
|
14
15
|
destAmount: string;
|
|
15
16
|
};
|
|
16
17
|
};
|
|
18
|
+
declare const marketSwapFlowType = "marketSwap";
|
|
17
19
|
export type SubmitSwapResult = {
|
|
18
20
|
tradeFlowType: typeof marketSwapFlowType;
|
|
19
21
|
approve: SubmitTxResult;
|
|
@@ -55,6 +57,16 @@ export type UseMarketFlowResult = {
|
|
|
55
57
|
isPending: boolean;
|
|
56
58
|
isError: boolean;
|
|
57
59
|
isSuccess: boolean;
|
|
60
|
+
isTxCancellable: boolean;
|
|
61
|
+
cancelSwapTx: () => Promise<ReplaceTxResult | undefined>;
|
|
62
|
+
cancellingState: {
|
|
63
|
+
isPending: boolean;
|
|
64
|
+
isError: boolean;
|
|
65
|
+
isSuccess: boolean;
|
|
66
|
+
error: Error | null;
|
|
67
|
+
result?: ReplaceTxResult;
|
|
68
|
+
step?: CancelOrderStepKey;
|
|
69
|
+
};
|
|
58
70
|
error: Error | null;
|
|
59
71
|
};
|
|
60
72
|
swapBatch: BatchTxStepResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,uCAAuC,CAAC;AAG/C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"useMarketFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"names":[],"mappings":"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"}
|