@velora-dex/widget 0.4.2 → 0.4.4-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +18 -23
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.d.ts +7 -0
- package/dist/components/widget/Button/CancelButton/CancelButton.d.ts.map +1 -0
- package/dist/components/widget/Button/CancelButton/CancelButton.js +102 -0
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -0
- package/dist/components/widget/Button/CancelButton/constants.d.ts +2 -0
- package/dist/components/widget/Button/CancelButton/constants.d.ts.map +1 -0
- package/dist/components/widget/Button/CancelButton/constants.js +4 -0
- package/dist/components/widget/Button/CancelButton/constants.js.map +1 -0
- package/dist/components/widget/Button/DismissButton.d.ts +4 -0
- package/dist/components/widget/Button/DismissButton.d.ts.map +1 -0
- package/dist/components/widget/Button/DismissButton.js +29 -0
- package/dist/components/widget/Button/DismissButton.js.map +1 -0
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts +6 -4
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +133 -147
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts +2 -2
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js +138 -55
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts +2 -2
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js +2 -2
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +93 -105
- 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 +89 -60
- 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 +0 -1
- 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 +3 -5
- 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 +57 -28
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +1 -4
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js +1 -2
- package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts +0 -2
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +3 -236
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/core/LimitOrderButton.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.js +18 -40
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +24 -46
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +2 -2
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +2 -2
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/events/types/cancel.d.ts +7 -1
- package/dist/events/types/cancel.d.ts.map +1 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +0 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts +7 -0
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +1 -7
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +13 -85
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +11 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +87 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +32 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +248 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +3 -8
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +8 -11
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts +14 -0
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js +85 -0
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.d.ts +17 -0
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js +80 -0
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +44 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +262 -0
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +13 -0
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/utils.js +23 -0
- package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +1 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts +109 -0
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js +170 -0
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +3 -2
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +8 -2
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +98 -113
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +69 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +179 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +3 -5
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +1 -20
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +8 -4
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +56 -69
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +38 -34
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +6 -4
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +56 -71
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +23 -33
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/useSDK.d.ts +3 -3
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +3 -3
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/lib/constants/index.d.ts +1 -0
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +2 -1
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +4 -1
- package/dist/transactions/types.d.ts +9 -1
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type {\n DeltaOrderStep,\n DeltaOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\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 UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n cancelDeltaOrder: UseDeltaFlowResult[\"cancelDeltaOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n retryFlow: UseDeltaFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: DeltaOrderStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\n submittedDeltaOrder: UseDeltaFlowResult[\"submittedDeltaOrder\"];\n tradeFlowType: UseDeltaFlowResult[\"tradeFlowType\"];\n};\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const logger = useLogger(\"DeltaSwapStep\");\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const cancelDeltaOrder = deltaFlow.cancelDeltaOrder;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n const retryFlow = deltaFlow.retryFlow;\n\n let step: DeltaOrderStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n const permitOrApprovalHappened = !!(\n deltaFlow.approval.txHash || deltaFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n const orderStatus = deltaFlow.deltaOrderExecution.lastOrderState?.status;\n const notYetRunning = !orderStatus || orderStatus === \"NOT_STARTED\";\n step = {\n key: notYetRunning ? \"auction\" : \"order-execution\",\n };\n } else if (deltaFlow.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 deltaFlow.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 deltaFlow.deltaOrderExecution.lastOrderState?.status ||\n deltaFlow.deltaOrderExecution.sentOrder?.status;\n\n const isOrderCancellable =\n !!lastOrderStatus &&\n DeltaOrderStatusChecker.cancellable.has(lastOrderStatus);\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n let erroredStep: DeltaOrderStepKey | undefined;\n\n if (deltaFlow.isError) {\n if (deltaFlow.approval.isError || deltaFlow.signPermit.isError) {\n erroredStep = \"signature\";\n } else if (deltaFlow.deltaOrderSubmission.isError) {\n erroredStep = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isError) {\n erroredStep = \"order-execution\";\n }\n }\n\n return {\n usedPrice: deltaFlow.usedPrice,\n submittedDeltaOrder: deltaFlow.submittedDeltaOrder, // submitted or updated Delta Order\n startDeltaSwap,\n cancelDeltaOrder,\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 explorerLink,\n error,\n erroredStep,\n result: deltaFlow.result,\n tradeFlowType: deltaFlow.tradeFlowType,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","cancelDeltaOrder","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","isOrderCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","permitOrApprovalHappened","txHash","signature","deltaOrderExecution","orderStatus","lastOrderState","status","notYetRunning","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","lastOrderStatus","sentOrder","t0","DeltaOrderStatusChecker","cancellable","has","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","error","isUserCancelledError","erroredStep","isError","t1","result","submittedDeltaOrder","tradeFlowType","usedPrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type {\n DeltaOrderStep,\n DeltaOrderStepKey,\n GenericStep,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n cancelDeltaOrder: UseDeltaFlowResult[\"cancelDeltaOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n retryFlow: UseDeltaFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: DeltaOrderStep;\n orderCancellationStep?: GenericStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\n submittedDeltaOrder: UseDeltaFlowResult[\"submittedDeltaOrder\"];\n tradeFlowType: UseDeltaFlowResult[\"tradeFlowType\"];\n};\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const logger = useLogger(\"DeltaSwapStep\");\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const cancelDeltaOrder = deltaFlow.cancelDeltaOrder;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n const retryFlow = deltaFlow.retryFlow;\n\n let step: DeltaOrderStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n const permitOrApprovalHappened = !!(\n deltaFlow.approval.txHash || deltaFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n const orderStatus = deltaFlow.deltaOrderExecution.lastOrderState?.status;\n const notYetRunning = !orderStatus || orderStatus === \"NOT_STARTED\";\n step = {\n key: notYetRunning ? \"auction\" : \"order-execution\",\n };\n } else if (deltaFlow.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 deltaFlow.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 = deltaFlow.deltaOrderCancelation.isOrderCancellable;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n let erroredStep: DeltaOrderStepKey | undefined;\n\n if (deltaFlow.isError) {\n if (deltaFlow.approval.isError || deltaFlow.signPermit.isError) {\n erroredStep = \"signature\";\n } else if (deltaFlow.deltaOrderSubmission.isError) {\n erroredStep = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isError) {\n erroredStep = \"order-execution\";\n }\n }\n\n let orderCancellationStep: GenericStep | undefined;\n if (deltaFlow.deltaOrderCancelation.isCancelingOrder) {\n orderCancellationStep = \"pending\";\n } else if (deltaFlow.deltaOrderCancelation.isOrderCanceled) {\n orderCancellationStep = \"success\";\n } else if (deltaFlow.deltaOrderCancelation.isError) {\n orderCancellationStep = \"error\";\n }\n\n return {\n usedPrice: deltaFlow.usedPrice,\n submittedDeltaOrder: deltaFlow.submittedDeltaOrder, // submitted or updated Delta Order\n startDeltaSwap,\n cancelDeltaOrder,\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: deltaFlow.result,\n tradeFlowType: deltaFlow.tradeFlowType,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","cancelDeltaOrder","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","isOrderCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","permitOrApprovalHappened","txHash","signature","deltaOrderExecution","orderStatus","lastOrderState","status","notYetRunning","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","deltaOrderCancelation","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","orderCancellationStep","isCancelingOrder","isOrderCanceled","t1","result","submittedDeltaOrder","tradeFlowType","usedPrice"],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Address } from 'viem';
|
|
1
|
+
import { Address, TransactionReceipt } from 'viem';
|
|
2
2
|
import { SubmittedDeltaOrderFromAPI } from '../prices/delta/queries/useDeltaOrders';
|
|
3
3
|
import { ApprovalFlowResult, SubmitTxResult } from './common/types';
|
|
4
4
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
5
5
|
import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
|
|
6
6
|
import { MaybeVeloraDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder';
|
|
7
7
|
import { BridgePrice } from '@velora-dex/sdk';
|
|
8
|
+
import { CancelDeltaOrdersReturn } from '../prices/delta/mutations/useCancelDeltaOrders';
|
|
8
9
|
declare const limitOrderFlowType = "limitOrder";
|
|
9
10
|
export type UserDefinedLimitPrice = {
|
|
10
11
|
srcTokenAddress: string;
|
|
@@ -15,7 +16,6 @@ export type UserDefinedLimitPrice = {
|
|
|
15
16
|
};
|
|
16
17
|
export type UseLimitOrderFlowInput = {
|
|
17
18
|
limitPrice?: UserDefinedLimitPrice;
|
|
18
|
-
preWrapETH?: boolean;
|
|
19
19
|
};
|
|
20
20
|
export type SubmitLimitOrderResult = {
|
|
21
21
|
tradeFlowType: typeof limitOrderFlowType;
|
|
@@ -38,7 +38,7 @@ export type UseLimitOrderFlowResult = {
|
|
|
38
38
|
reset: () => void;
|
|
39
39
|
cancelFlow: () => void;
|
|
40
40
|
retryFlow: (options?: RunLimitOrderOptions) => Promise<SubmitLimitOrderResult>;
|
|
41
|
-
cancelLimitOrder: () =>
|
|
41
|
+
cancelLimitOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;
|
|
42
42
|
approval: ApprovalFlowResult;
|
|
43
43
|
limitOrderSubmission: {
|
|
44
44
|
order?: SubmittedDeltaOrderFromAPI;
|
|
@@ -61,7 +61,9 @@ export type UseLimitOrderFlowResult = {
|
|
|
61
61
|
error: Error | null;
|
|
62
62
|
};
|
|
63
63
|
limitOrderCancelation: {
|
|
64
|
+
receipt?: TransactionReceipt;
|
|
64
65
|
isCancelingOrder: boolean;
|
|
66
|
+
isOrderCancellable: boolean;
|
|
65
67
|
isOrderCanceled: boolean;
|
|
66
68
|
isPending: boolean;
|
|
67
69
|
isError: boolean;
|
|
@@ -75,6 +77,6 @@ export type UseLimitOrderFlowResult = {
|
|
|
75
77
|
result?: SubmitLimitOrderResult;
|
|
76
78
|
limitPrice?: UserDefinedLimitPrice;
|
|
77
79
|
};
|
|
78
|
-
export declare function useLimitOrderFlow({ limitPrice,
|
|
80
|
+
export declare function useLimitOrderFlow({ limitPrice, }: UseLimitOrderFlowInput): UseLimitOrderFlowResult;
|
|
79
81
|
export {};
|
|
80
82
|
//# sourceMappingURL=useLimitOrderFlow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLimitOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"useLimitOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import '../../../_virtual/index.js';
|
|
|
5
5
|
import '../../useSDK.js';
|
|
6
6
|
import 'clsx';
|
|
7
7
|
import 'tailwind-merge';
|
|
8
|
-
import {
|
|
8
|
+
import { 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,25 +14,23 @@ 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';
|
|
18
17
|
import { getOverallOrderStatus } from '../prices/delta/orders/utils.js';
|
|
19
|
-
import { useWatchDeltaAuction
|
|
18
|
+
import { useWatchDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder.js';
|
|
20
19
|
import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
|
|
21
20
|
import { usePreSignAndSubmitDeltaOrder, shouldApproveOrBatch } from './common/usePreSignAndSubmitDeltaOrder.js';
|
|
22
21
|
import { DEFAULT_DELTA_BRIDGE } from '../prices/delta/bridge/const.js';
|
|
23
22
|
import { useLimitReceiverAddressValue } from '../../../core/limit/state/receiverAddressAtom.js';
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
23
|
+
import { useDepositAndSubmitDeltaOrder } from './common/useDepositAndSubmitDeltaOrder.js';
|
|
24
|
+
import { isETHaddress } from '../../../tokens/utils/eth.js';
|
|
25
|
+
import { useCancelOrWithdrawAndCancelDeltaOrder } from '../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js';
|
|
26
26
|
|
|
27
27
|
const limitOrderFlowType = "limitOrder";
|
|
28
28
|
const LIMIT_ORDER_MUTATION_KEY = "runLimitOrderFlow";
|
|
29
29
|
function useLimitOrderFlow({
|
|
30
|
-
limitPrice
|
|
31
|
-
preWrapETH
|
|
30
|
+
limitPrice
|
|
32
31
|
}) {
|
|
33
32
|
const logger = useLogger("LimitOrderFlow");
|
|
34
33
|
const chainId = useChainId();
|
|
35
|
-
const queryClient = useQueryClient();
|
|
36
34
|
const {
|
|
37
35
|
approval,
|
|
38
36
|
approveTxMut,
|
|
@@ -88,14 +86,24 @@ function useLimitOrderFlow({
|
|
|
88
86
|
logger,
|
|
89
87
|
viemClient: minClient
|
|
90
88
|
});
|
|
89
|
+
const {
|
|
90
|
+
deltaOrderDeposit,
|
|
91
|
+
reset: resetDepositAndSubmitDeltaOrder,
|
|
92
|
+
depositAndSubmitDeltaOrder
|
|
93
|
+
} = useDepositAndSubmitDeltaOrder({
|
|
94
|
+
chainId,
|
|
95
|
+
account,
|
|
96
|
+
logger,
|
|
97
|
+
viemClient: minClient
|
|
98
|
+
});
|
|
91
99
|
const limitOrderSubmission = {
|
|
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
|
|
100
|
+
order: limitOrderCreateAndSubmit.order || deltaOrderPreSign.order || deltaOrderDeposit.order,
|
|
101
|
+
isCreatingOrder: limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder || deltaOrderDeposit.isCreatingOrder,
|
|
102
|
+
isOrderSent: limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent || deltaOrderDeposit.isOrderSent,
|
|
103
|
+
isPending: limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending || deltaOrderDeposit.isPending,
|
|
104
|
+
isError: limitOrderCreateAndSubmit.isError || deltaOrderPreSign.isError || deltaOrderDeposit.isError,
|
|
105
|
+
isSuccess: limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess || deltaOrderDeposit.isSuccess,
|
|
106
|
+
error: limitOrderCreateAndSubmit.error || deltaOrderPreSign.error || deltaOrderDeposit.error
|
|
99
107
|
};
|
|
100
108
|
const watchOrderExecution = useWatchDeltaAuction({
|
|
101
109
|
orderId: limitOrderSubmission.order?.id,
|
|
@@ -125,48 +133,19 @@ function useLimitOrderFlow({
|
|
|
125
133
|
isSuccess: orderStatus === "confirmed",
|
|
126
134
|
error: watchOrderExecution.error
|
|
127
135
|
};
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
forcedChainMatchesWalletChain
|
|
132
|
-
} = useChainMatches(orderChainId);
|
|
133
|
-
const {
|
|
134
|
-
mutateAsync: switchChain
|
|
135
|
-
} = useSwitchChainWithGuard();
|
|
136
|
-
const cancelOrderMut = useCancelDeltaOrders({
|
|
136
|
+
const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({
|
|
137
|
+
// supply the must up-to-date order for cancellation
|
|
138
|
+
order: limitOrderExecution.lastOrderState || limitOrderExecution.sentOrder,
|
|
137
139
|
chainId,
|
|
138
140
|
account,
|
|
139
141
|
client: minClient,
|
|
140
|
-
|
|
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
|
-
}
|
|
142
|
+
logger
|
|
166
143
|
});
|
|
167
144
|
const limitOrderCancelation = {
|
|
145
|
+
receipt: cancelOrderMut.receipt,
|
|
168
146
|
isCancelingOrder: cancelOrderMut.isPending,
|
|
169
|
-
|
|
147
|
+
isOrderCancellable: cancelOrderMut.isOrderCancellable,
|
|
148
|
+
isOrderCanceled: cancelOrderMut.isSuccess,
|
|
170
149
|
isPending: cancelOrderMut.isPending,
|
|
171
150
|
isError: cancelOrderMut.isError,
|
|
172
151
|
isSuccess: cancelOrderMut.isSuccess,
|
|
@@ -193,6 +172,7 @@ function useLimitOrderFlow({
|
|
|
193
172
|
createOrderMut.reset();
|
|
194
173
|
cancelOrderMut.reset();
|
|
195
174
|
resetPreSignAndSubmitDeltaOrder();
|
|
175
|
+
resetDepositAndSubmitDeltaOrder();
|
|
196
176
|
assert(limitPrice, "Limit price data is not available");
|
|
197
177
|
const abortController = new AbortController();
|
|
198
178
|
currentAbortControllerRef.current = abortController;
|
|
@@ -200,12 +180,16 @@ function useLimitOrderFlow({
|
|
|
200
180
|
let approveTxHash;
|
|
201
181
|
let approveTxReceipt;
|
|
202
182
|
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
|
+
);
|
|
203
188
|
const {
|
|
204
189
|
shouldDoApprovalTxOrPermit: shouldDoApprovalTx,
|
|
205
190
|
shouldPreSignBatch
|
|
206
191
|
} = shouldApproveOrBatch({
|
|
207
192
|
approval,
|
|
208
|
-
preWrapETH,
|
|
209
193
|
signPermit: {
|
|
210
194
|
isPermitSupported: false,
|
|
211
195
|
isPermitReadyToSign: false
|
|
@@ -257,14 +241,14 @@ function useLimitOrderFlow({
|
|
|
257
241
|
txReceipt: approveTxReceipt
|
|
258
242
|
});
|
|
259
243
|
logger.log("~ approveTx ~ receipt:", approveTxReceipt);
|
|
260
|
-
} catch (
|
|
244
|
+
} catch (error_1) {
|
|
261
245
|
approveOrPermitEvents.onApproveTx.failed({
|
|
262
246
|
allowanceToSet,
|
|
263
|
-
error:
|
|
247
|
+
error: error_1,
|
|
264
248
|
txHash: approveTxHash
|
|
265
249
|
// won't necessarily be available
|
|
266
250
|
});
|
|
267
|
-
throw
|
|
251
|
+
throw error_1;
|
|
268
252
|
}
|
|
269
253
|
}
|
|
270
254
|
signal.throwIfAborted();
|
|
@@ -333,15 +317,20 @@ function useLimitOrderFlow({
|
|
|
333
317
|
};
|
|
334
318
|
}
|
|
335
319
|
let orderFromAPI;
|
|
336
|
-
if (
|
|
337
|
-
orderFromAPI = await
|
|
338
|
-
|
|
320
|
+
if (shouldDepositAndPreSign) {
|
|
321
|
+
orderFromAPI = await depositAndSubmitDeltaOrder({
|
|
322
|
+
createDeltaOrderInput: createOrderInput,
|
|
323
|
+
depositAmount: createOrderInput.orderInput.srcAmount,
|
|
324
|
+
onTxSent
|
|
325
|
+
});
|
|
326
|
+
} else if (shouldPreSignBatch) {
|
|
339
327
|
orderFromAPI = await preSignAndSubmitDeltaOrder({
|
|
340
328
|
createDeltaOrderInput: createOrderInput,
|
|
341
329
|
approval,
|
|
342
|
-
preWrapETH,
|
|
343
330
|
onTxSent
|
|
344
331
|
});
|
|
332
|
+
} else {
|
|
333
|
+
orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);
|
|
345
334
|
}
|
|
346
335
|
onLimitOrder?.({
|
|
347
336
|
event: {
|
|
@@ -365,34 +354,29 @@ function useLimitOrderFlow({
|
|
|
365
354
|
account,
|
|
366
355
|
receiverAddress
|
|
367
356
|
};
|
|
368
|
-
} catch (
|
|
369
|
-
logger.error("Order submission error",
|
|
357
|
+
} catch (error_0) {
|
|
358
|
+
logger.error("Order submission error", error_0);
|
|
370
359
|
onLimitOrder?.({
|
|
371
360
|
event: {
|
|
372
361
|
name: "LimitOrder:failed",
|
|
373
362
|
params: {
|
|
374
363
|
price: limitPrice,
|
|
375
|
-
error:
|
|
364
|
+
error: error_0
|
|
376
365
|
}
|
|
377
366
|
}
|
|
378
367
|
});
|
|
379
|
-
throw
|
|
368
|
+
throw error_0;
|
|
380
369
|
}
|
|
381
370
|
};
|
|
382
|
-
const cancelLimitOrder =
|
|
383
|
-
assert(createOrderMut.data, "No order to cancel");
|
|
384
|
-
cancelOrderMut.mutate({
|
|
385
|
-
orderIds: [createOrderMut.data.id]
|
|
386
|
-
});
|
|
387
|
-
};
|
|
371
|
+
const cancelLimitOrder = cancelOrderMut.cancelDeltaOrder;
|
|
388
372
|
const limitOrderMut = useMutation({
|
|
389
373
|
mutationFn: submitLimitOrder,
|
|
390
374
|
mutationKey: [LIMIT_ORDER_MUTATION_KEY],
|
|
391
375
|
onSuccess: (data_0) => {
|
|
392
376
|
logger.log("Order submission success", data_0);
|
|
393
377
|
},
|
|
394
|
-
onError: (
|
|
395
|
-
logger.error("Order submission error",
|
|
378
|
+
onError: (error_2) => {
|
|
379
|
+
logger.error("Order submission error", error_2);
|
|
396
380
|
},
|
|
397
381
|
onSettled: () => {
|
|
398
382
|
logger.log("Order submission settled");
|
|
@@ -405,6 +389,7 @@ function useLimitOrderFlow({
|
|
|
405
389
|
limitOrderMut.reset();
|
|
406
390
|
cancelOrderMut.reset();
|
|
407
391
|
resetPreSignAndSubmitDeltaOrder();
|
|
392
|
+
resetDepositAndSubmitDeltaOrder();
|
|
408
393
|
};
|
|
409
394
|
const retryFlow = (options) => {
|
|
410
395
|
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, 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
|
+
{"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 // 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 = 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 +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;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,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,CA2GzB"}
|