@velora-dex/widget 0.0.21 → 0.0.22
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/TradeOverview/MarketSwapTradeOverview.d.ts +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.d.ts +3 -0
- package/dist/components/widget/TradeOverview/Step/Step.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/{Step.js → Step/Step.js} +3 -3
- package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -0
- package/dist/components/widget/TradeOverview/Step/types.d.ts +32 -0
- package/dist/components/widget/TradeOverview/Step/types.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/Step/utils.d.ts +12 -0
- package/dist/components/widget/TradeOverview/Step/utils.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/Step/utils.js +41 -0
- package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -0
- package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +45 -82
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js +1 -2
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js +3 -5
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +2 -2
- 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/index.d.ts +1 -1
- package/dist/components/widget/TradeOverview/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.d.ts +60 -80
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js +21 -24
- package/dist/components/widget/TradeOverview/steps.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js +1 -2
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +1 -2
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.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 +61 -45
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +2 -2
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +65 -55
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js +1 -2
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/lib/queryClient.d.ts +0 -1
- package/dist/lib/queryClient.d.ts.map +1 -1
- package/dist/lib/queryClient.js +2 -5
- package/dist/lib/queryClient.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +2 -2
- package/dist/widget/state/chainToAtom.d.ts +2 -2
- package/package.json +3 -3
- package/dist/components/widget/TradeOverview/Step.d.ts +0 -22
- package/dist/components/widget/TradeOverview/Step.d.ts.map +0 -1
- package/dist/components/widget/TradeOverview/Step.js.map +0 -1
|
@@ -5,39 +5,54 @@ import { constructExplorerOrderDetailsLink } from '../../../lib/utils/explorer.j
|
|
|
5
5
|
import { isUserCancelledError } from './common/errors.js';
|
|
6
6
|
|
|
7
7
|
function useDeltaSwapStep(options) {
|
|
8
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(19);
|
|
9
9
|
const logger = useLogger("DeltaSwapStep");
|
|
10
10
|
const deltaFlow = useDeltaFlow(options);
|
|
11
11
|
const startDeltaSwap = deltaFlow.runDeltaOrderFlow;
|
|
12
12
|
const reset = deltaFlow.reset;
|
|
13
13
|
const cancelFlow = deltaFlow.cancelFlow;
|
|
14
14
|
const retryFlow = deltaFlow.retryFlow;
|
|
15
|
+
let explorerLink;
|
|
16
|
+
let isCancellable;
|
|
15
17
|
let step;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
if ($[0] !== deltaFlow || $[1] !== logger.once) {
|
|
19
|
+
const permitSigningHappeningOrNeverHappened = deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;
|
|
20
|
+
const approvalHappeningOrNeverHappened = deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;
|
|
21
|
+
const willUsePermit = deltaFlow.approval.needsApproval && deltaFlow.signPermit.isPermitSupported && deltaFlow.signPermit.isPermitReadyToSign;
|
|
22
|
+
const permitOrApprovalHappeningOrNeverHappened = willUsePermit ? permitSigningHappeningOrNeverHappened : approvalHappeningOrNeverHappened;
|
|
23
|
+
if (deltaFlow.approval.needsApproval && permitOrApprovalHappeningOrNeverHappened) {
|
|
24
|
+
step = {
|
|
25
|
+
key: "signature",
|
|
26
|
+
subStep: "approval-signature"
|
|
27
|
+
};
|
|
25
28
|
} else {
|
|
26
|
-
if (deltaFlow.
|
|
27
|
-
|
|
29
|
+
if (deltaFlow.deltaOrderSubmission.isPending) {
|
|
30
|
+
const permitOrApprovalHappened = !!(deltaFlow.approval.txHash || deltaFlow.signPermit.signature);
|
|
31
|
+
step = {
|
|
32
|
+
key: "signature",
|
|
33
|
+
subStep: permitOrApprovalHappened ? "order-signature" : "standalone-order-signature"
|
|
34
|
+
};
|
|
28
35
|
} else {
|
|
29
|
-
if (deltaFlow.isPending) {
|
|
30
|
-
|
|
36
|
+
if (deltaFlow.deltaOrderExecution.isPending) {
|
|
37
|
+
const orderStatus = deltaFlow.deltaOrderExecution.lastOrderState?.status;
|
|
38
|
+
const notYetRunning = !orderStatus || orderStatus === "NOT_STARTED" || orderStatus === "POSTED";
|
|
39
|
+
step = {
|
|
40
|
+
key: notYetRunning ? "auction" : "order-execution"
|
|
41
|
+
};
|
|
42
|
+
} else {
|
|
43
|
+
if (deltaFlow.isPending) {
|
|
44
|
+
step = {
|
|
45
|
+
key: "signature",
|
|
46
|
+
subStep: "standalone-order-signature"
|
|
47
|
+
};
|
|
48
|
+
}
|
|
31
49
|
}
|
|
32
50
|
}
|
|
33
51
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const orderId = deltaFlow.deltaOrderSubmission.order?.id;
|
|
39
|
-
let explorerLink;
|
|
40
|
-
if ($[0] !== deltaFlow || $[1] !== isCancellable || $[2] !== logger.once || $[3] !== orderId || $[4] !== step) {
|
|
52
|
+
const approvalIsStarted = step?.key === "signature" && step.subStep === "approval-signature" && deltaFlow.approval.isTxPending;
|
|
53
|
+
const isOrderBeingSigned = step?.key === "signature" && (step.subStep === "order-signature" || step.subStep === "standalone-order-signature");
|
|
54
|
+
isCancellable = approvalIsStarted || isOrderBeingSigned;
|
|
55
|
+
const orderId = deltaFlow.deltaOrderSubmission.order?.id;
|
|
41
56
|
explorerLink = orderId ? constructExplorerOrderDetailsLink(orderId) : void 0;
|
|
42
57
|
logger.once.log("step", step, deltaFlow, {
|
|
43
58
|
isCancellable,
|
|
@@ -45,27 +60,28 @@ function useDeltaSwapStep(options) {
|
|
|
45
60
|
orderId
|
|
46
61
|
});
|
|
47
62
|
$[0] = deltaFlow;
|
|
48
|
-
$[1] =
|
|
49
|
-
$[2] =
|
|
50
|
-
$[3] =
|
|
63
|
+
$[1] = logger.once;
|
|
64
|
+
$[2] = explorerLink;
|
|
65
|
+
$[3] = isCancellable;
|
|
51
66
|
$[4] = step;
|
|
52
|
-
$[5] = explorerLink;
|
|
53
67
|
} else {
|
|
54
|
-
explorerLink = $[
|
|
68
|
+
explorerLink = $[2];
|
|
69
|
+
isCancellable = $[3];
|
|
70
|
+
step = $[4];
|
|
55
71
|
}
|
|
56
72
|
let t0;
|
|
57
|
-
if ($[
|
|
73
|
+
if ($[5] !== deltaFlow.error) {
|
|
58
74
|
t0 = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;
|
|
59
|
-
$[
|
|
60
|
-
$[
|
|
75
|
+
$[5] = deltaFlow.error;
|
|
76
|
+
$[6] = t0;
|
|
61
77
|
} else {
|
|
62
|
-
t0 = $[
|
|
78
|
+
t0 = $[6];
|
|
63
79
|
}
|
|
64
80
|
const error = t0;
|
|
65
81
|
let erroredStep;
|
|
66
82
|
if (deltaFlow.isError) {
|
|
67
83
|
if (deltaFlow.approval.isError || deltaFlow.signPermit.isError) {
|
|
68
|
-
erroredStep = "
|
|
84
|
+
erroredStep = "signature";
|
|
69
85
|
} else {
|
|
70
86
|
if (deltaFlow.deltaOrderSubmission.isError) {
|
|
71
87
|
erroredStep = "auction";
|
|
@@ -77,7 +93,7 @@ function useDeltaSwapStep(options) {
|
|
|
77
93
|
}
|
|
78
94
|
}
|
|
79
95
|
let t1;
|
|
80
|
-
if ($[
|
|
96
|
+
if ($[7] !== cancelFlow || $[8] !== deltaFlow.result || $[9] !== deltaFlow.usedPrice || $[10] !== error || $[11] !== erroredStep || $[12] !== explorerLink || $[13] !== isCancellable || $[14] !== reset || $[15] !== retryFlow || $[16] !== startDeltaSwap || $[17] !== step) {
|
|
81
97
|
t1 = {
|
|
82
98
|
usedPrice: deltaFlow.usedPrice,
|
|
83
99
|
startDeltaSwap,
|
|
@@ -91,20 +107,20 @@ function useDeltaSwapStep(options) {
|
|
|
91
107
|
erroredStep,
|
|
92
108
|
result: deltaFlow.result
|
|
93
109
|
};
|
|
94
|
-
$[
|
|
95
|
-
$[
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
105
|
-
$[
|
|
110
|
+
$[7] = cancelFlow;
|
|
111
|
+
$[8] = deltaFlow.result;
|
|
112
|
+
$[9] = deltaFlow.usedPrice;
|
|
113
|
+
$[10] = error;
|
|
114
|
+
$[11] = erroredStep;
|
|
115
|
+
$[12] = explorerLink;
|
|
116
|
+
$[13] = isCancellable;
|
|
117
|
+
$[14] = reset;
|
|
118
|
+
$[15] = retryFlow;
|
|
119
|
+
$[16] = startDeltaSwap;
|
|
120
|
+
$[17] = step;
|
|
121
|
+
$[18] = t1;
|
|
106
122
|
} else {
|
|
107
|
-
t1 = $[
|
|
123
|
+
t1 = $[18];
|
|
108
124
|
}
|
|
109
125
|
return t1;
|
|
110
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type { DeltaOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { useLogger } from \"@/widget/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\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 isCancellable: boolean;\n step?: DeltaOrderStepKey;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\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 reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n const retryFlow = deltaFlow.retryFlow;\n\n let step: DeltaOrderStepKey | 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 = \"approve-spending\";\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n step = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n step = \"order-execution\";\n } else if (deltaFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"auction\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && deltaFlow.approval.isTxPending;\n\n const isOrderBeingSigned = step === \"auction\";\n\n const isCancellable =\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 orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isCancellable,\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 = \"approve-spending\";\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 startDeltaSwap,\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 isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: deltaFlow.result,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","retryFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","deltaOrderExecution","approvalIsStarted","isTxPending","isOrderBeingSigned","isCancellable","orderId","order","id","explorerLink","once","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","t1","result","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} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { useLogger } from \"@/widget/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\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 isCancellable: boolean;\n step?: DeltaOrderStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\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 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 =\n !orderStatus || orderStatus === \"NOT_STARTED\" || orderStatus === \"POSTED\";\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 isCancellable =\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 orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isCancellable,\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 startDeltaSwap,\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 isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: deltaFlow.result,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isCancellable","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","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","t1","result","usedPrice"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MarketSwapStepKey } from '../../../components/widget/TradeOverview/steps';
|
|
1
|
+
import { MarketSwapStep, MarketSwapStepKey } from '../../../components/widget/TradeOverview/steps';
|
|
2
2
|
import { UseMarketFlowInput, UseMarketFlowResult, SubmitSwapResult } from './useMarketFlow';
|
|
3
3
|
type UseMarketSwapStepResult = {
|
|
4
4
|
startMarketSwap: UseMarketFlowResult["runMarketSwapFlow"];
|
|
@@ -6,7 +6,7 @@ type UseMarketSwapStepResult = {
|
|
|
6
6
|
cancelFlow: UseMarketFlowResult["cancelFlow"];
|
|
7
7
|
retryFlow: UseMarketFlowResult["retryFlow"];
|
|
8
8
|
isCancellable: boolean;
|
|
9
|
-
step?:
|
|
9
|
+
step?: MarketSwapStep;
|
|
10
10
|
explorerLink?: string;
|
|
11
11
|
error: Error | null;
|
|
12
12
|
erroredStep?: MarketSwapStepKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC7C,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,CAuHzB"}
|
|
@@ -5,40 +5,53 @@ import { useLogger } from '../../../widget/logger.js';
|
|
|
5
5
|
import { isUserCancelledError } from './common/errors.js';
|
|
6
6
|
|
|
7
7
|
function useMarketSwapStep(options) {
|
|
8
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(19);
|
|
9
9
|
const logger = useLogger("MarketSwapStep");
|
|
10
10
|
const marketFlow = useMarketFlow(options);
|
|
11
11
|
const startMarketSwap = marketFlow.runMarketSwapFlow;
|
|
12
12
|
const reset = marketFlow.reset;
|
|
13
13
|
const cancelFlow = marketFlow.cancelFlow;
|
|
14
14
|
const retryFlow = marketFlow.retryFlow;
|
|
15
|
+
let explorerLink;
|
|
16
|
+
let isCancellable;
|
|
15
17
|
let step;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
if ($[0] !== logger.once || $[1] !== marketFlow) {
|
|
19
|
+
const permitSigningHappeningOrNeverHappened = marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;
|
|
20
|
+
const approvalHappeningOrNeverHappened = marketFlow.approval.isPending || !marketFlow.approval.isSuccess;
|
|
21
|
+
const willUsePermit = marketFlow.approval.needsApproval && marketFlow.signPermit.isPermitSupported && marketFlow.signPermit.isPermitReadyToSign;
|
|
22
|
+
const permitOrApprovalHappeningOrNeverHappened = willUsePermit ? permitSigningHappeningOrNeverHappened : approvalHappeningOrNeverHappened;
|
|
23
|
+
if (marketFlow.approval.needsApproval && permitOrApprovalHappeningOrNeverHappened) {
|
|
24
|
+
step = {
|
|
25
|
+
key: "signature",
|
|
26
|
+
subStep: "approval-signature"
|
|
27
|
+
};
|
|
25
28
|
} else {
|
|
26
|
-
if (marketFlow.swap.
|
|
27
|
-
|
|
29
|
+
if (marketFlow.buildTxParams.isPending || marketFlow.swap.isConfirmingTX) {
|
|
30
|
+
const permitOrApprovalHappened = !!(marketFlow.approval.txHash || marketFlow.signPermit.signature);
|
|
31
|
+
step = {
|
|
32
|
+
key: "signature",
|
|
33
|
+
subStep: permitOrApprovalHappened ? "order-signature" : "standalone-order-signature"
|
|
34
|
+
};
|
|
28
35
|
} else {
|
|
29
|
-
if (marketFlow.
|
|
30
|
-
step =
|
|
36
|
+
if (marketFlow.swap.isTxPending) {
|
|
37
|
+
step = {
|
|
38
|
+
key: "swap-tx-execution"
|
|
39
|
+
};
|
|
40
|
+
} else {
|
|
41
|
+
if (marketFlow.isPending) {
|
|
42
|
+
step = {
|
|
43
|
+
key: "signature",
|
|
44
|
+
subStep: "standalone-order-signature"
|
|
45
|
+
};
|
|
46
|
+
}
|
|
31
47
|
}
|
|
32
48
|
}
|
|
33
49
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const txHash = marketFlow.swap.txHash;
|
|
40
|
-
let explorerLink;
|
|
41
|
-
if ($[0] !== isCancellable || $[1] !== logger.once || $[2] !== marketFlow || $[3] !== step || $[4] !== txHash) {
|
|
50
|
+
const approvalIsStarted = step?.key === "signature" && step.subStep === "approval-signature" && marketFlow.approval.isTxPending;
|
|
51
|
+
const inSwapTxConfirmation = step?.key === "signature" && (step.subStep === "order-signature" || step.subStep === "standalone-order-signature");
|
|
52
|
+
const notYetSwapTxSent = step?.key === "swap-tx-execution" && !marketFlow.swap.isTxSent;
|
|
53
|
+
isCancellable = approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;
|
|
54
|
+
const txHash = marketFlow.swap.txHash;
|
|
42
55
|
explorerLink = txHash ? constructTxLinkForChain({
|
|
43
56
|
chainId: marketFlow.chainId,
|
|
44
57
|
txHash
|
|
@@ -48,40 +61,37 @@ function useMarketSwapStep(options) {
|
|
|
48
61
|
explorerLink,
|
|
49
62
|
txHash
|
|
50
63
|
});
|
|
51
|
-
$[0] =
|
|
52
|
-
$[1] =
|
|
53
|
-
$[2] =
|
|
54
|
-
$[3] =
|
|
55
|
-
$[4] =
|
|
56
|
-
$[5] = explorerLink;
|
|
64
|
+
$[0] = logger.once;
|
|
65
|
+
$[1] = marketFlow;
|
|
66
|
+
$[2] = explorerLink;
|
|
67
|
+
$[3] = isCancellable;
|
|
68
|
+
$[4] = step;
|
|
57
69
|
} else {
|
|
58
|
-
explorerLink = $[
|
|
70
|
+
explorerLink = $[2];
|
|
71
|
+
isCancellable = $[3];
|
|
72
|
+
step = $[4];
|
|
59
73
|
}
|
|
60
74
|
let t0;
|
|
61
|
-
if ($[
|
|
75
|
+
if ($[5] !== marketFlow.error) {
|
|
62
76
|
t0 = isUserCancelledError(marketFlow.error) ? null : marketFlow.error;
|
|
63
|
-
$[
|
|
64
|
-
$[
|
|
77
|
+
$[5] = marketFlow.error;
|
|
78
|
+
$[6] = t0;
|
|
65
79
|
} else {
|
|
66
|
-
t0 = $[
|
|
80
|
+
t0 = $[6];
|
|
67
81
|
}
|
|
68
82
|
const error = t0;
|
|
69
83
|
let erroredStep;
|
|
70
84
|
if (marketFlow.isError) {
|
|
71
|
-
if (marketFlow.approval.isError || marketFlow.signPermit.isError) {
|
|
72
|
-
erroredStep = "
|
|
85
|
+
if (marketFlow.approval.isError || marketFlow.signPermit.isError || marketFlow.buildTxParams.isError || marketFlow.swap.isConfirmingTxError) {
|
|
86
|
+
erroredStep = "signature";
|
|
73
87
|
} else {
|
|
74
|
-
if (marketFlow.
|
|
75
|
-
erroredStep = "swap-tx-
|
|
76
|
-
} else {
|
|
77
|
-
if (marketFlow.swap.isTxAwaitingError) {
|
|
78
|
-
erroredStep = "swap-tx-execution";
|
|
79
|
-
}
|
|
88
|
+
if (marketFlow.swap.isTxAwaitingError) {
|
|
89
|
+
erroredStep = "swap-tx-execution";
|
|
80
90
|
}
|
|
81
91
|
}
|
|
82
92
|
}
|
|
83
93
|
let t1;
|
|
84
|
-
if ($[
|
|
94
|
+
if ($[7] !== cancelFlow || $[8] !== error || $[9] !== erroredStep || $[10] !== explorerLink || $[11] !== isCancellable || $[12] !== marketFlow.result || $[13] !== marketFlow.usedPrice || $[14] !== reset || $[15] !== retryFlow || $[16] !== startMarketSwap || $[17] !== step) {
|
|
85
95
|
t1 = {
|
|
86
96
|
startMarketSwap,
|
|
87
97
|
reset,
|
|
@@ -95,20 +105,20 @@ function useMarketSwapStep(options) {
|
|
|
95
105
|
result: marketFlow.result,
|
|
96
106
|
usedPrice: marketFlow.usedPrice
|
|
97
107
|
};
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
105
|
-
$[
|
|
106
|
-
$[
|
|
107
|
-
$[
|
|
108
|
-
$[
|
|
109
|
-
$[
|
|
108
|
+
$[7] = cancelFlow;
|
|
109
|
+
$[8] = error;
|
|
110
|
+
$[9] = erroredStep;
|
|
111
|
+
$[10] = explorerLink;
|
|
112
|
+
$[11] = isCancellable;
|
|
113
|
+
$[12] = marketFlow.result;
|
|
114
|
+
$[13] = marketFlow.usedPrice;
|
|
115
|
+
$[14] = reset;
|
|
116
|
+
$[15] = retryFlow;
|
|
117
|
+
$[16] = startMarketSwap;
|
|
118
|
+
$[17] = step;
|
|
119
|
+
$[18] = t1;
|
|
110
120
|
} else {
|
|
111
|
-
t1 = $[
|
|
121
|
+
t1 = $[18];
|
|
112
122
|
}
|
|
113
123
|
return t1;
|
|
114
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type { MarketSwapStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/widget/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isCancellable: boolean;\n step?: MarketSwapStepKey;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStepKey | 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 marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n step = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxPending) {\n step = \"swap-tx-execution\";\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"swap-tx-confirmation\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation = step === \"swap-tx-confirmation\";\n\n const notYetSwapTxSent =\n step === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (marketFlow.approval.isError || marketFlow.signPermit.isError) {\n erroredStep = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError\n ) {\n erroredStep = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxAwaitingError) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isTxPending","approvalIsStarted","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCancellable","txHash","explorerLink","once","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isTxAwaitingError","t1","result","usedPrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type {\n MarketSwapStep,\n MarketSwapStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/widget/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isCancellable: boolean;\n step?: MarketSwapStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStep | 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 marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n const permitOrApprovalHappened = !!(\n marketFlow.approval.txHash || marketFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (marketFlow.swap.isTxPending) {\n step = { key: \"swap-tx-execution\" };\n } else if (marketFlow.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 marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetSwapTxSent =\n step?.key === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (\n marketFlow.approval.isError ||\n marketFlow.signPermit.isError ||\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError\n ) {\n erroredStep = \"signature\";\n } else if (marketFlow.swap.isTxAwaitingError) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","explorerLink","isCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","permitOrApprovalHappened","txHash","signature","isTxPending","approvalIsStarted","key","subStep","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isTxAwaitingError","t1","result","usedPrice"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInvalidateTokenData.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useInvalidateTokenData.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"names":[],"mappings":"AAwDA,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAElB,CAAC;AACF;;;;;GAKG;AAEH,wBAAgB,2BAA2B,IAAI,CAC7C,aAAa,CAAC,EAAE,sBAAsB,KACnC,OAAO,CAAC,IAAI,CAAC,CAsFjB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
-
import { useQueryClient } from '
|
|
3
|
-
import '@tanstack/react-query';
|
|
2
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
4
3
|
import 'viem';
|
|
5
4
|
import 'wagmi';
|
|
6
5
|
import 'wagmi/query';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInvalidateTokenData.js","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"sourcesContent":["import type { NonceMethod } from \"@/hooks/permit/hooks/permit1/usePermit1Nonce\";\nimport {
|
|
1
|
+
{"version":3,"file":"useInvalidateTokenData.js","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"sourcesContent":["import type { NonceMethod } from \"@/hooks/permit/hooks/permit1/usePermit1Nonce\";\nimport { Query, useQueryClient, type QueryKey } from \"@tanstack/react-query\";\n\nimport { erc20Abi, type Address } from \"viem\";\nimport { type Config } from \"wagmi\";\nimport {\n type ReadContractQueryKey,\n type GetBalanceQueryKey,\n type ReadContractsQueryKey,\n} from \"wagmi/query\";\n\ntype LooseQueryMatchToInvalidate<Q extends QueryKey> = {\n queryKey: [Q[0]];\n exact: false;\n predicate?: (query: Query) => boolean;\n};\n\ntype ETHBalanceQueryMatch = LooseQueryMatchToInvalidate<\n GetBalanceQueryKey<Config>\n>;\n\ntype ERC20BalanceQueryKey = ReadContractQueryKey<\n typeof erc20Abi,\n \"balanceOf\" | \"allowance\",\n [Address],\n Config\n>;\ntype ERC20BalanceAllowanceQueryMatch =\n LooseQueryMatchToInvalidate<ERC20BalanceQueryKey>;\n\nfunction isReadContractQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractQueryKey<unknown[], string, unknown[], Config> {\n return queryKey[0] === \"readContract\";\n}\n\ntype NoncesQueryKey = ReadContractsQueryKey<\n {\n address: Address;\n abi: typeof erc20Abi;\n functionName: NonceMethod;\n args: [Address];\n }[],\n boolean,\n Config\n>;\n\ntype NoncesQueryMatch = LooseQueryMatchToInvalidate<NoncesQueryKey>;\nconst nonceMethods: NonceMethod[] = [\"nonces\", \"_nonces\", \"nonce\", \"getNonce\"];\n\nfunction isReadContractsQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractsQueryKey<unknown[], boolean, Config> {\n return queryKey[0] === \"readContracts\";\n}\n\ntype TokenFuncsToInvalidate = {\n allowance?: boolean;\n balanceOf?: boolean;\n nonces?: boolean; // invalidate queries with Permit1 nonces,\n // Permit2 nonces can be safely incremented without syncing with what's on chain\n};\n/**\n * Helper function to invalidate token-related query cache entries.\n * Used to refresh token balances and allowances after transactions that modify them.\n * Can selectively invalidate either balance or allowance queries, or both.\n * Invalidates for all tokens that have their queries currently mounted, which is easier than matching.\n */\n\nexport function useInvalidateTokenDataQuery(): (\n tokenDataType?: TokenFuncsToInvalidate\n) => Promise<void> {\n const queryClient = useQueryClient();\n\n const invalidateBalancesAndAllowances = async ({\n allowance = true,\n balanceOf = true,\n nonces = false,\n }: TokenFuncsToInvalidate = {}) => {\n const queries: LooseQueryMatchToInvalidate<QueryKey>[] = [];\n\n if (balanceOf) {\n const ethBalanceQuery: ETHBalanceQueryMatch = {\n // easier to just match the queryKey base\n queryKey: [\"balance\"],\n exact: false,\n };\n queries.push(ethBalanceQuery);\n }\n\n type ERC20Func = NonNullable<ERC20BalanceQueryKey[1][\"functionName\"]>;\n\n const tokenFuncs: ERC20Func[] = [];\n if (balanceOf) {\n tokenFuncs.push(\"balanceOf\");\n }\n if (allowance) {\n tokenFuncs.push(\"allowance\");\n }\n\n if (tokenFuncs.length > 0) {\n // relax type to allow string[].includes(string)\n const matchedERC20Funcs: string[] = tokenFuncs;\n\n const erc20BalanceQuery: ERC20BalanceAllowanceQueryMatch = {\n queryKey: [\"readContract\"],\n exact: false,\n predicate: (query) => {\n const { queryKey } = query;\n // all queries that read Contract.<anything>\n if (isReadContractQueryKey(queryKey)) {\n if (\n queryKey[1].functionName &&\n matchedERC20Funcs.includes(queryKey[1].functionName)\n // all queries that read Contract.balanceOf or Contract.allowance\n ) {\n return true;\n }\n }\n return false;\n },\n };\n queries.push(erc20BalanceQuery);\n }\n\n if (nonces) {\n // relax type to allow string[].includes(string)\n const matchedNonceMethods: string[] = nonceMethods;\n\n const nonceQuery: NoncesQueryMatch = {\n queryKey: [\"readContracts\"],\n exact: false,\n predicate: (query) => {\n const { queryKey } = query;\n // all queries that read multiple Contract.<anything>\n if (isReadContractsQueryKey(queryKey)) {\n // we only ever use nonce methods with other nonce methods only,\n // no non-nonce methods mixed in\n const firstMethod = queryKey[1].contracts?.[0]?.functionName;\n if (firstMethod && matchedNonceMethods.includes(firstMethod)) {\n return true;\n }\n }\n return false;\n },\n };\n queries.push(nonceQuery);\n }\n\n if (queries.length > 0) {\n await Promise.all(\n queries.map((query) => queryClient.invalidateQueries(query))\n );\n }\n };\n\n return invalidateBalancesAndAllowances;\n}\n"],"names":["isReadContractQueryKey","queryKey","nonceMethods","isReadContractsQueryKey","useInvalidateTokenDataQuery","$","_c","queryClient","useQueryClient","t0","t1","allowance","t2","balanceOf","t3","nonces","t4","undefined","queries","ethBalanceQuery","exact","push","tokenFuncs","length","matchedERC20Funcs","erc20BalanceQuery","predicate","query","functionName","includes","nonceQuery","_temp","Promise","all","map","query_1","invalidateQueries","invalidateBalancesAndAllowances","query_0","queryKey_0","firstMethod","contracts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
-
import { useQueryClient } from '
|
|
2
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
3
3
|
import { waitForTransactionReceipt } from '@wagmi/core';
|
|
4
4
|
import { useConfig, useWaitForTransactionReceipt } from 'wagmi';
|
|
5
5
|
import { waitForTransactionReceiptQueryKey } from 'wagmi/query';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAwaitTx.js","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"sourcesContent":["import type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueryClient } from \"
|
|
1
|
+
{"version":3,"file":"useAwaitTx.js","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"sourcesContent":["import type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { ReplacementReturnType, TransactionReceipt } from \"viem\";\nimport { waitForTransactionReceipt } from \"@wagmi/core\";\nimport {\n useConfig,\n useWaitForTransactionReceipt,\n type UseWaitForTransactionReceiptParameters,\n type UseWaitForTransactionReceiptReturnType,\n} from \"wagmi\";\nimport {\n waitForTransactionReceiptQueryKey,\n type WaitForTransactionReceiptData,\n} from \"wagmi/query\";\nimport { useLogger } from \"@/widget/logger\";\n\nexport type UseAwaitTxParameters<Select = DefaultTxReceiptSelect> = {\n chainId: SupportedChainId;\n confirmations?: number;\n hash?: `0x${string}`;\n query?: UseWaitForTransactionReceiptParameters<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >[\"query\"];\n};\n\ntype OnReplacedCb = (data: ReplacementReturnType) => void;\n\nexport type DefaultTxReceiptSelect = WaitForTransactionReceiptData<\n typeof wagmiConfig,\n SupportedChainId\n>;\n\nexport type UseAwaitTxReturnType<Select = DefaultTxReceiptSelect> =\n UseWaitForTransactionReceiptReturnType<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >;\n\nexport type TxReceiptFromWagmi = DefaultTxReceiptSelect;\n\nexport function useAwaitTx<Select = DefaultTxReceiptSelect>({\n chainId,\n confirmations,\n hash,\n query,\n}: UseAwaitTxParameters<Select>): UseAwaitTxReturnType<Select> {\n const logger = useLogger(\"AwaitTx\");\n const queryResult = useWaitForTransactionReceipt<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >({\n chainId,\n confirmations,\n hash,\n query,\n onReplaced: (data) => {\n // @TODO connect to some atom if needed to detect cancelled/sped-up txs,\n // but sped-up txs may be detected correct internally and re-awaited with a new hash,\n // need to test\n // https://viem.sh/docs/actions/public/waitForTransactionReceipt.html#json-rpc-methods\n logger.log(\"onReplaced:tx\", hash, data);\n },\n });\n\n return queryResult;\n}\n\ntype EnsureTxReceiptFn = (\n options: Required<Pick<UseAwaitTxParameters, \"hash\" | \"chainId\">> & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\nexport function useEnsureTxReceipt(): EnsureTxReceiptFn {\n const queryClient = useQueryClient();\n const wagmiConfig = useConfig();\n\n const ensureTxReceipt: EnsureTxReceiptFn = async ({\n hash,\n chainId,\n onReplaced,\n }) => {\n const queryKey = waitForTransactionReceiptQueryKey({\n hash,\n chainId,\n });\n const receipt = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () => {\n return waitForTransactionReceipt(wagmiConfig, {\n hash,\n chainId,\n onReplaced,\n });\n },\n });\n\n return receipt;\n };\n\n return ensureTxReceipt;\n}\n"],"names":["useAwaitTx","t0","$","_c","chainId","confirmations","hash","query","logger","useLogger","t1","data","log","t2","onReplaced","queryResult","useWaitForTransactionReceipt","useEnsureTxReceipt","queryClient","useQueryClient","wagmiConfig","useConfig","queryKey","waitForTransactionReceiptQueryKey","receipt","ensureQueryData","queryFn","waitForTransactionReceipt","ensureTxReceipt"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryClient.d.ts","sourceRoot":"","sources":["../../src/lib/queryClient.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"queryClient.d.ts","sourceRoot":"","sources":["../../src/lib/queryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
package/dist/lib/queryClient.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { QueryClient
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
2
|
|
|
3
3
|
const queryClient = new QueryClient();
|
|
4
|
-
const useQueryClient = () => {
|
|
5
|
-
return useQueryClient$1(queryClient);
|
|
6
|
-
};
|
|
7
4
|
|
|
8
|
-
export { queryClient
|
|
5
|
+
export { queryClient };
|
|
9
6
|
//# sourceMappingURL=queryClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryClient.js","sources":["../../src/lib/queryClient.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"queryClient.js","sources":["../../src/lib/queryClient.ts"],"sourcesContent":["import { QueryClient } from \"@tanstack/react-query\";\n\nexport const queryClient = new QueryClient();\n"],"names":["queryClient","QueryClient"],"mappings":";;AAEO,MAAMA,WAAAA,GAAc,IAAIC,WAAAA;;;;"}
|
|
@@ -1153,7 +1153,7 @@ export declare const wagmiConfig: import('wagmi').Config<readonly [{
|
|
|
1153
1153
|
serializers: {
|
|
1154
1154
|
readonly transaction: typeof import('viem/chains').serializeTransactionOpStack;
|
|
1155
1155
|
};
|
|
1156
|
-
}], Record<
|
|
1156
|
+
}], Record<1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, import('viem').FallbackTransport<import('viem').Transport[]>>, readonly [CreateConnectorFn, CreateConnectorFn, CreateConnectorFn]>;
|
|
1157
1157
|
declare module "wagmi" {
|
|
1158
1158
|
interface Register {
|
|
1159
1159
|
config: typeof wagmiConfig;
|
|
@@ -1155,7 +1155,7 @@ export declare const chains: readonly [{
|
|
|
1155
1155
|
readonly transaction: typeof import('viem/chains').serializeTransactionOpStack;
|
|
1156
1156
|
};
|
|
1157
1157
|
}];
|
|
1158
|
-
export declare const supportedChainIds: (
|
|
1158
|
+
export declare const supportedChainIds: (1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[];
|
|
1159
1159
|
export declare const chainConfigMap: Record<SupportedChainId, Chain & {
|
|
1160
1160
|
id: SupportedChainId;
|
|
1161
1161
|
}>;
|