@velora-dex/widget 0.6.1-dev.3 → 0.6.1-dev.5
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/Twap/CustomDurationDrawer.d.ts +2 -2
- package/dist/components/widget/Twap/CustomDurationDrawer.d.ts.map +1 -1
- package/dist/components/widget/Twap/CustomDurationDrawer.js +60 -57
- package/dist/components/widget/Twap/CustomDurationDrawer.js.map +1 -1
- package/dist/components/widget/Twap/OrderDuration.js +1 -1
- package/dist/components/widget/Twap/OrderDuration.js.map +1 -1
- package/dist/core/Warnings.d.ts.map +1 -1
- package/dist/core/Warnings.js +38 -38
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/across/isCrosschainPossible.d.ts.map +1 -1
- package/dist/core/across/isCrosschainPossible.js +1 -1
- package/dist/core/across/isCrosschainPossible.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DrawerControls } from '../Drawer/state/useDrawerControls';
|
|
2
2
|
import { DrawerState } from './OrderDuration';
|
|
3
|
-
export declare function CustomDurationDrawer({
|
|
4
|
-
|
|
3
|
+
export declare function CustomDurationDrawer({ orderDurationState, drawerControls, }: {
|
|
4
|
+
orderDurationState: DrawerState;
|
|
5
5
|
drawerControls: DrawerControls;
|
|
6
6
|
}): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
//# sourceMappingURL=CustomDurationDrawer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomDurationDrawer.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Twap/CustomDurationDrawer.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAOzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQnD,wBAAgB,oBAAoB,CAAC,EACnC,
|
|
1
|
+
{"version":3,"file":"CustomDurationDrawer.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Twap/CustomDurationDrawer.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAOzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQnD,wBAAgB,oBAAoB,CAAC,EACnC,kBAAkB,EAClB,cAAc,GACf,EAAE;IACD,kBAAkB,EAAE,WAAW,CAAC;IAChC,cAAc,EAAE,cAAc,CAAC;CAChC,2CA0GA"}
|
|
@@ -14,109 +14,112 @@ function m(e, t, n) {
|
|
|
14
14
|
return e * 24 * 60 + t * 60 + n;
|
|
15
15
|
}
|
|
16
16
|
function h(l) {
|
|
17
|
-
let h = d(42), {
|
|
18
|
-
h[0] !== v || h[1] !== O || h[2] !== y || h[3] !== E ? (
|
|
17
|
+
let h = d(42), { orderDurationState: _, drawerControls: v } = l, y = e(n), { days: b, hours: x, minutes: S, setDays: C, setHours: w, setMinutes: T } = _, E = m(b, x, S), D = E < 60, O = E === 0 || D, k = D && v.open, A = b < 0 || b > 30, j = D || x < 0 || x > 23, M = S < 0 || S > 59, N;
|
|
18
|
+
h[0] !== v || h[1] !== O || h[2] !== y || h[3] !== E ? (N = () => {
|
|
19
19
|
O || (y(E), v.onClose());
|
|
20
|
-
}, h[0] = v, h[1] = O, h[2] = y, h[3] = E, h[4] =
|
|
21
|
-
let
|
|
22
|
-
h[5] === Symbol.for("react.memo_cache_sentinel") ? (
|
|
20
|
+
}, h[0] = v, h[1] = O, h[2] = y, h[3] = E, h[4] = N) : N = h[4];
|
|
21
|
+
let P = N, F;
|
|
22
|
+
h[5] === Symbol.for("react.memo_cache_sentinel") ? (F = /* @__PURE__ */ f("div", {
|
|
23
23
|
className: "flex items-center h-10",
|
|
24
24
|
children: /* @__PURE__ */ f(u, {})
|
|
25
|
-
}), h[5] =
|
|
26
|
-
let
|
|
27
|
-
h[6] === Symbol.for("react.memo_cache_sentinel") ? (
|
|
28
|
-
let
|
|
29
|
-
h[7] === Symbol.for("react.memo_cache_sentinel") ? (
|
|
25
|
+
}), h[5] = F) : F = h[5];
|
|
26
|
+
let I = F, L;
|
|
27
|
+
h[6] === Symbol.for("react.memo_cache_sentinel") ? (L = { content: "dark:bg-contrast-2" }, h[6] = L) : L = h[6];
|
|
28
|
+
let R;
|
|
29
|
+
h[7] === Symbol.for("react.memo_cache_sentinel") ? (R = /* @__PURE__ */ f("div", {
|
|
30
30
|
className: "text-center text-xs pb-8 px-4 text-contrast-5 dark:text-contrast-6",
|
|
31
31
|
children: "Set how long this TWAP order should execute. The total size will be split and filled progressively over this duration."
|
|
32
|
-
}), h[7] =
|
|
33
|
-
let
|
|
34
|
-
h[8] !== b || h[9] !== C ? (
|
|
32
|
+
}), h[7] = R) : R = h[7];
|
|
33
|
+
let z;
|
|
34
|
+
h[8] !== b || h[9] !== A || h[10] !== C ? (z = /* @__PURE__ */ f(g, {
|
|
35
35
|
label: "Days",
|
|
36
36
|
value: b,
|
|
37
37
|
max: 30,
|
|
38
|
-
onChange: C
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
onChange: C,
|
|
39
|
+
isError: A
|
|
40
|
+
}), h[8] = b, h[9] = A, h[10] = C, h[11] = z) : z = h[11];
|
|
41
|
+
let B;
|
|
42
|
+
h[12] !== x || h[13] !== j || h[14] !== w ? (B = /* @__PURE__ */ f(o, {
|
|
42
43
|
asChild: !0,
|
|
43
44
|
children: /* @__PURE__ */ f("div", { children: /* @__PURE__ */ f(g, {
|
|
44
45
|
label: "Hours",
|
|
45
46
|
value: x,
|
|
46
47
|
max: 23,
|
|
47
48
|
onChange: w,
|
|
48
|
-
isError:
|
|
49
|
+
isError: j
|
|
49
50
|
}) })
|
|
50
|
-
}), h[
|
|
51
|
-
let
|
|
52
|
-
h[
|
|
51
|
+
}), h[12] = x, h[13] = j, h[14] = w, h[15] = B) : B = h[15];
|
|
52
|
+
let V;
|
|
53
|
+
h[16] === Symbol.for("react.memo_cache_sentinel") ? (V = /* @__PURE__ */ p(a, {
|
|
53
54
|
side: "bottom",
|
|
54
55
|
children: [
|
|
55
56
|
"Minimum TWAP duration is",
|
|
56
57
|
" ",
|
|
57
58
|
/* @__PURE__ */ f(c, {
|
|
58
59
|
timeMs: t(60),
|
|
60
|
+
classes: { root: "inline-flex dark:text-contrast-3" },
|
|
59
61
|
showSeconds: !0
|
|
60
62
|
})
|
|
61
63
|
]
|
|
62
|
-
}), h[
|
|
63
|
-
let
|
|
64
|
-
h[17] !== k || h[18] !==
|
|
64
|
+
}), h[16] = V) : V = h[16];
|
|
65
|
+
let H;
|
|
66
|
+
h[17] !== k || h[18] !== B ? (H = /* @__PURE__ */ p(i, {
|
|
65
67
|
open: k,
|
|
66
|
-
children: [
|
|
67
|
-
}), h[17] = k, h[18] =
|
|
68
|
-
let
|
|
69
|
-
h[21] !== S || h[22] !== T ? (
|
|
68
|
+
children: [B, V]
|
|
69
|
+
}), h[17] = k, h[18] = B, h[19] = H) : H = h[19];
|
|
70
|
+
let U;
|
|
71
|
+
h[20] !== M || h[21] !== S || h[22] !== T ? (U = /* @__PURE__ */ f(g, {
|
|
70
72
|
label: "Minutes",
|
|
71
73
|
value: S,
|
|
72
74
|
max: 59,
|
|
73
|
-
onChange: T
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
onChange: T,
|
|
76
|
+
isError: M
|
|
77
|
+
}), h[20] = M, h[21] = S, h[22] = T, h[23] = U) : U = h[23];
|
|
78
|
+
let W;
|
|
79
|
+
h[24] !== z || h[25] !== H || h[26] !== U ? (W = /* @__PURE__ */ p("div", { children: [R, /* @__PURE__ */ p("div", {
|
|
77
80
|
className: "grid grid-cols-[1fr_auto_1fr_auto_1fr] items-end gap-2",
|
|
78
81
|
children: [
|
|
79
|
-
I,
|
|
80
|
-
N,
|
|
81
82
|
z,
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
I,
|
|
84
|
+
H,
|
|
85
|
+
I,
|
|
86
|
+
U
|
|
84
87
|
]
|
|
85
|
-
})] }), h[24] =
|
|
86
|
-
let
|
|
87
|
-
h[28] !==
|
|
88
|
-
onClick:
|
|
88
|
+
})] }), h[24] = z, h[25] = H, h[26] = U, h[27] = W) : W = h[27];
|
|
89
|
+
let G;
|
|
90
|
+
h[28] !== P || h[29] !== O ? (G = /* @__PURE__ */ f(r, {
|
|
91
|
+
onClick: P,
|
|
89
92
|
disabled: O,
|
|
90
93
|
radius: "sm",
|
|
91
94
|
className: "h-10",
|
|
92
95
|
children: "Save"
|
|
93
|
-
}), h[28] =
|
|
94
|
-
let
|
|
95
|
-
h[31] === v.onClose ?
|
|
96
|
+
}), h[28] = P, h[29] = O, h[30] = G) : G = h[30];
|
|
97
|
+
let K;
|
|
98
|
+
h[31] === v.onClose ? K = h[32] : (K = /* @__PURE__ */ f(r, {
|
|
96
99
|
variant: "secondary",
|
|
97
100
|
onClick: v.onClose,
|
|
98
101
|
radius: "sm",
|
|
99
102
|
className: "h-10",
|
|
100
103
|
children: "Dismiss"
|
|
101
|
-
}), h[31] = v.onClose, h[32] =
|
|
102
|
-
let
|
|
103
|
-
h[33] !==
|
|
104
|
+
}), h[31] = v.onClose, h[32] = K);
|
|
105
|
+
let q;
|
|
106
|
+
h[33] !== G || h[34] !== K ? (q = /* @__PURE__ */ p("div", {
|
|
104
107
|
className: "flex flex-col gap-4",
|
|
105
|
-
children: [
|
|
106
|
-
}), h[33] =
|
|
107
|
-
let
|
|
108
|
-
h[36] !==
|
|
108
|
+
children: [G, K]
|
|
109
|
+
}), h[33] = G, h[34] = K, h[35] = q) : q = h[35];
|
|
110
|
+
let J;
|
|
111
|
+
h[36] !== W || h[37] !== q ? (J = /* @__PURE__ */ p("div", {
|
|
109
112
|
className: "flex flex-col gap-14 px-6 pt-2 pb-8",
|
|
110
|
-
children: [
|
|
111
|
-
}), h[36] =
|
|
112
|
-
let
|
|
113
|
-
return h[39] !== v || h[40] !==
|
|
113
|
+
children: [W, q]
|
|
114
|
+
}), h[36] = W, h[37] = q, h[38] = J) : J = h[38];
|
|
115
|
+
let Y;
|
|
116
|
+
return h[39] !== v || h[40] !== J ? (Y = /* @__PURE__ */ f(s, {
|
|
114
117
|
...v,
|
|
115
118
|
title: "Custom Order Duration",
|
|
116
119
|
showCloseButton: !0,
|
|
117
|
-
classes:
|
|
118
|
-
children:
|
|
119
|
-
}), h[39] = v, h[40] =
|
|
120
|
+
classes: L,
|
|
121
|
+
children: J
|
|
122
|
+
}), h[39] = v, h[40] = J, h[41] = Y) : Y = h[41], Y;
|
|
120
123
|
}
|
|
121
124
|
function g(e) {
|
|
122
125
|
let t = d(13), { label: n, value: r, max: i, onChange: a, isError: o } = e, s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomDurationDrawer.js","names":["useSetAtom","twapDurationAtom","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_CUSTOM_DURATION_MAX_DAYS","TWAP_CUSTOM_DURATION_MAX_HOURS","TWAP_CUSTOM_DURATION_MAX_MINUTES","NumberInput","Button","ControlledDrawer","DrawerControls","ReactComponent","TwoDotsSVG","Tooltip","TooltipContent","TooltipTrigger","DrawerState","Duration","minutesToMilliseconds","customDurationToMinutes","days","hours","minutes","CustomDurationDrawer","t0","$","_c","drawerState","drawerControls","setDuration","setDays","setHours","setMinutes","totalMinutes","isBelowMinimum","isSaveDisabled","showTooltip","open","t1","onClose","handleSave","t2","Symbol","for","dots","t3","content","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","DurationField","label","value","max","onChange","isError","v","root"],"sources":["../../../../src/components/widget/Twap/CustomDurationDrawer.tsx"],"sourcesContent":["import { useSetAtom } from \"@/core/store\";\nimport { twapDurationAtom } from \"@/core/twap/state/twapParamsAtom\";\nimport {\n TWAP_CUSTOM_DURATION_MIN_MINUTES,\n TWAP_CUSTOM_DURATION_MAX_DAYS,\n TWAP_CUSTOM_DURATION_MAX_HOURS,\n TWAP_CUSTOM_DURATION_MAX_MINUTES,\n} from \"@/core/twap/state/constants\";\nimport { NumberInput } from \"@/components/widget/NumberInput/NumberInput\";\nimport { Button } from \"@/components/ui/button\";\nimport { ControlledDrawer } from \"@/components/widget/Drawer\";\nimport { type DrawerControls } from \"@/components/widget/Drawer/state/useDrawerControls\";\nimport { ReactComponent as TwoDotsSVG } from \"@/assets/two-dots.svg\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport type { DrawerState } from \"./OrderDuration\";\nimport { Duration } from \"../Duration/Duration\";\nimport { minutesToMilliseconds } from \"@/lib/utils/time\";\n\nfunction customDurationToMinutes(days: number, hours: number, minutes: number) {\n return days * 24 * 60 + hours * 60 + minutes;\n}\n\nexport function CustomDurationDrawer({\n drawerState,\n drawerControls,\n}: {\n drawerState: DrawerState;\n drawerControls: DrawerControls;\n}) {\n const setDuration = useSetAtom(twapDurationAtom);\n const { days, hours, minutes, setDays, setHours, setMinutes } = drawerState;\n\n const totalMinutes = customDurationToMinutes(days, hours, minutes);\n const isBelowMinimum = totalMinutes < TWAP_CUSTOM_DURATION_MIN_MINUTES;\n const isSaveDisabled = totalMinutes === 0 || isBelowMinimum;\n const showTooltip = isBelowMinimum && drawerControls.open;\n\n const handleSave = () => {\n if (isSaveDisabled) return;\n setDuration(totalMinutes);\n drawerControls.onClose();\n };\n\n const dots = (\n <div className=\"flex items-center h-10\">\n <TwoDotsSVG />\n </div>\n );\n\n return (\n <ControlledDrawer\n {...drawerControls}\n title=\"Custom Order Duration\"\n showCloseButton\n classes={{\n content: \"dark:bg-contrast-2\",\n }}\n >\n <div className=\"flex flex-col gap-14 px-6 pt-2 pb-8\">\n <div>\n <div className=\"text-center text-xs pb-8 px-4 text-contrast-5 dark:text-contrast-6\">\n Set how long this TWAP order should execute. The total size will be\n split and filled progressively over this duration.\n </div>\n <div className=\"grid grid-cols-[1fr_auto_1fr_auto_1fr] items-end gap-2\">\n <DurationField\n label=\"Days\"\n value={days}\n max={TWAP_CUSTOM_DURATION_MAX_DAYS}\n onChange={setDays}\n />\n {dots}\n <Tooltip open={showTooltip}>\n <TooltipTrigger asChild>\n <div>\n <DurationField\n label=\"Hours\"\n value={hours}\n max={TWAP_CUSTOM_DURATION_MAX_HOURS}\n onChange={setHours}\n isError={isBelowMinimum}\n />\n </div>\n </TooltipTrigger>\n {showTooltip && (\n <TooltipContent side=\"bottom\">\n Minimum TWAP duration is{\" \"}\n <Duration\n timeMs={minutesToMilliseconds(\n TWAP_CUSTOM_DURATION_MIN_MINUTES\n )}\n showSeconds\n />\n </TooltipContent>\n )}\n </Tooltip>\n {dots}\n <DurationField\n label=\"Minutes\"\n value={minutes}\n max={TWAP_CUSTOM_DURATION_MAX_MINUTES}\n onChange={setMinutes}\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-4\">\n <Button\n onClick={handleSave}\n disabled={isSaveDisabled}\n radius=\"sm\"\n className=\"h-10\"\n >\n Save\n </Button>\n <Button\n variant=\"secondary\"\n onClick={drawerControls.onClose}\n radius=\"sm\"\n className=\"h-10\"\n >\n Dismiss\n </Button>\n </div>\n </div>\n </ControlledDrawer>\n );\n}\n\nfunction DurationField({\n label,\n value,\n max,\n onChange,\n isError,\n}: {\n label: string;\n value: number;\n max: number;\n onChange: (value: number) => void;\n isError?: boolean;\n}) {\n return (\n <div className=\"flex flex-col gap-1 flex-1\">\n <span className=\"text-xs text-contrast-5 dark:text-contrast-6 uppercase\">\n {label}\n </span>\n <NumberInput\n allowLeadingZeros={false}\n allowNegative={false}\n decimalScale={0}\n placeholder=\"0\"\n value={value}\n min={0}\n max={max}\n stepper={1}\n onValueChange={(v) => onChange(v ?? 0)}\n classes={{\n root: \"h-10\",\n }}\n isError={isError}\n />\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CustomDurationDrawer.js","names":["useSetAtom","twapDurationAtom","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_CUSTOM_DURATION_MAX_DAYS","TWAP_CUSTOM_DURATION_MAX_HOURS","TWAP_CUSTOM_DURATION_MAX_MINUTES","NumberInput","Button","ControlledDrawer","DrawerControls","ReactComponent","TwoDotsSVG","Tooltip","TooltipContent","TooltipTrigger","DrawerState","Duration","minutesToMilliseconds","customDurationToMinutes","days","hours","minutes","CustomDurationDrawer","t0","$","_c","orderDurationState","drawerControls","setDuration","setDays","setHours","setMinutes","totalMinutes","isBelowMinimum","isSaveDisabled","showTooltip","open","isDaysError","isHoursError","isMinutesError","t1","onClose","handleSave","t2","Symbol","for","dots","t3","content","t4","t5","t6","t7","root","t8","t9","t10","t11","t12","t13","t14","t15","DurationField","label","value","max","onChange","isError","v"],"sources":["../../../../src/components/widget/Twap/CustomDurationDrawer.tsx"],"sourcesContent":["import { useSetAtom } from \"@/core/store\";\nimport { twapDurationAtom } from \"@/core/twap/state/twapParamsAtom\";\nimport {\n TWAP_CUSTOM_DURATION_MIN_MINUTES,\n TWAP_CUSTOM_DURATION_MAX_DAYS,\n TWAP_CUSTOM_DURATION_MAX_HOURS,\n TWAP_CUSTOM_DURATION_MAX_MINUTES,\n} from \"@/core/twap/state/constants\";\nimport { NumberInput } from \"@/components/widget/NumberInput/NumberInput\";\nimport { Button } from \"@/components/ui/button\";\nimport { ControlledDrawer } from \"@/components/widget/Drawer\";\nimport { type DrawerControls } from \"@/components/widget/Drawer/state/useDrawerControls\";\nimport { ReactComponent as TwoDotsSVG } from \"@/assets/two-dots.svg\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport type { DrawerState } from \"./OrderDuration\";\nimport { Duration } from \"../Duration/Duration\";\nimport { minutesToMilliseconds } from \"@/lib/utils/time\";\n\nfunction customDurationToMinutes(days: number, hours: number, minutes: number) {\n return days * 24 * 60 + hours * 60 + minutes;\n}\n\nexport function CustomDurationDrawer({\n orderDurationState,\n drawerControls,\n}: {\n orderDurationState: DrawerState;\n drawerControls: DrawerControls;\n}) {\n const setDuration = useSetAtom(twapDurationAtom);\n const { days, hours, minutes, setDays, setHours, setMinutes } =\n orderDurationState;\n\n const totalMinutes = customDurationToMinutes(days, hours, minutes);\n const isBelowMinimum = totalMinutes < TWAP_CUSTOM_DURATION_MIN_MINUTES;\n const isSaveDisabled = totalMinutes === 0 || isBelowMinimum;\n const showTooltip = isBelowMinimum && drawerControls.open;\n\n const isDaysError = days < 0 || days > TWAP_CUSTOM_DURATION_MAX_DAYS;\n const isHoursError =\n isBelowMinimum || hours < 0 || hours > TWAP_CUSTOM_DURATION_MAX_HOURS;\n const isMinutesError =\n minutes < 0 || minutes > TWAP_CUSTOM_DURATION_MAX_MINUTES;\n\n const handleSave = () => {\n if (isSaveDisabled) return;\n setDuration(totalMinutes);\n drawerControls.onClose();\n };\n\n const dots = (\n <div className=\"flex items-center h-10\">\n <TwoDotsSVG />\n </div>\n );\n\n return (\n <ControlledDrawer\n {...drawerControls}\n title=\"Custom Order Duration\"\n showCloseButton\n classes={{\n content: \"dark:bg-contrast-2\",\n }}\n >\n <div className=\"flex flex-col gap-14 px-6 pt-2 pb-8\">\n <div>\n <div className=\"text-center text-xs pb-8 px-4 text-contrast-5 dark:text-contrast-6\">\n Set how long this TWAP order should execute. The total size will be\n split and filled progressively over this duration.\n </div>\n <div className=\"grid grid-cols-[1fr_auto_1fr_auto_1fr] items-end gap-2\">\n <DurationField\n label=\"Days\"\n value={days}\n max={TWAP_CUSTOM_DURATION_MAX_DAYS}\n onChange={setDays}\n isError={isDaysError}\n />\n {dots}\n <Tooltip open={showTooltip}>\n <TooltipTrigger asChild>\n <div>\n <DurationField\n label=\"Hours\"\n value={hours}\n max={TWAP_CUSTOM_DURATION_MAX_HOURS}\n onChange={setHours}\n isError={isHoursError}\n />\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Minimum TWAP duration is{\" \"}\n <Duration\n timeMs={minutesToMilliseconds(\n TWAP_CUSTOM_DURATION_MIN_MINUTES\n )}\n classes={{ root: \"inline-flex dark:text-contrast-3\" }}\n showSeconds\n />\n </TooltipContent>\n </Tooltip>\n {dots}\n <DurationField\n label=\"Minutes\"\n value={minutes}\n max={TWAP_CUSTOM_DURATION_MAX_MINUTES}\n onChange={setMinutes}\n isError={isMinutesError}\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-4\">\n <Button\n onClick={handleSave}\n disabled={isSaveDisabled}\n radius=\"sm\"\n className=\"h-10\"\n >\n Save\n </Button>\n <Button\n variant=\"secondary\"\n onClick={drawerControls.onClose}\n radius=\"sm\"\n className=\"h-10\"\n >\n Dismiss\n </Button>\n </div>\n </div>\n </ControlledDrawer>\n );\n}\n\nfunction DurationField({\n label,\n value,\n max,\n onChange,\n isError,\n}: {\n label: string;\n value: number;\n max: number;\n onChange: (value: number) => void;\n isError?: boolean;\n}) {\n return (\n <div className=\"flex flex-col gap-1 flex-1\">\n <span className=\"text-xs text-contrast-5 dark:text-contrast-6 uppercase\">\n {label}\n </span>\n <NumberInput\n allowLeadingZeros={false}\n allowNegative={false}\n decimalScale={0}\n placeholder=\"0\"\n value={value}\n min={0}\n max={max}\n stepper={1}\n onValueChange={(v) => onChange(v ?? 0)}\n classes={{\n root: \"h-10\",\n }}\n isError={isError}\n />\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ var h = () => {
|
|
|
62
62
|
}), n[15] = w, n[16] = E, n[17] = D) : D = n[17];
|
|
63
63
|
let O;
|
|
64
64
|
n[18] !== b || n[19] !== v ? (O = /* @__PURE__ */ f(l, {
|
|
65
|
-
|
|
65
|
+
orderDurationState: v,
|
|
66
66
|
drawerControls: b
|
|
67
67
|
}), n[18] = b, n[19] = v, n[20] = O) : O = n[20];
|
|
68
68
|
let k;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderDuration.js","names":["useAtomValue","useSetAtom","twapDurationAtom","Button","cn","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_DURATION_OPTIONS","TwapDetailWithTooltip","CustomDurationDrawer","useDrawerControls","Duration","useState","DrawerState","days","setDays","React","Dispatch","SetStateAction","hours","setHours","minutes","setMinutes","reset","
|
|
1
|
+
{"version":3,"file":"OrderDuration.js","names":["useAtomValue","useSetAtom","twapDurationAtom","Button","cn","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_DURATION_OPTIONS","TwapDetailWithTooltip","CustomDurationDrawer","useDrawerControls","Duration","useState","DrawerState","days","setDays","React","Dispatch","SetStateAction","hours","setHours","minutes","setMinutes","reset","useOrderDurationState","initialDuration","$","_c","initDays","Math","floor","initHours","initMinutes","t0","t1","TwapOrderDuration","duration","setDuration","some","o","value","isPreset","orderDurationState","drawerId","onOpen","drawerControls","t2","customLabel","t3","Symbol","for","root","t4","map","option","label","t5","t6","t7","t8","t9","buttonSelectedClassName","DurationButton","selected","onClick"],"sources":["../../../../src/components/widget/Twap/OrderDuration.tsx"],"sourcesContent":["import { useAtomValue, useSetAtom } from \"@/core/store\";\nimport { twapDurationAtom } from \"@/core/twap/state/twapParamsAtom\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\nimport {\n TWAP_CUSTOM_DURATION_MIN_MINUTES,\n TWAP_DURATION_OPTIONS,\n} from \"@/core/twap/state/constants\";\nimport { TwapDetailWithTooltip } from \"./TwapDetailWithTooltip\";\nimport { CustomDurationDrawer } from \"./CustomDurationDrawer\";\nimport { useDrawerControls } from \"../Drawer/state/useDrawerControls\";\nimport { Duration } from \"../Duration/Duration\";\nimport { useState } from \"react\";\n\nexport type DrawerState = {\n days: number;\n setDays: React.Dispatch<React.SetStateAction<number>>;\n hours: number;\n setHours: React.Dispatch<React.SetStateAction<number>>;\n minutes: number;\n setMinutes: React.Dispatch<React.SetStateAction<number>>;\n reset: () => void;\n};\n\nfunction useOrderDurationState(initialDuration: number): DrawerState {\n const initDays = Math.floor(initialDuration / (60 * 24));\n const initHours = Math.floor((initialDuration % (60 * 24)) / 60);\n const initMinutes = initialDuration % 60;\n\n const [days, setDays] = useState(initDays);\n const [hours, setHours] = useState(initHours);\n const [minutes, setMinutes] = useState(initMinutes);\n\n const reset = () => {\n setDays(initDays);\n setHours(initHours);\n setMinutes(initMinutes);\n };\n\n return {\n days,\n setDays,\n hours,\n setHours,\n minutes,\n setMinutes,\n reset,\n };\n}\nexport const TwapOrderDuration = () => {\n const duration = useAtomValue(twapDurationAtom);\n const setDuration = useSetAtom(twapDurationAtom);\n\n const isPreset = TWAP_DURATION_OPTIONS.some((o) => o.value === duration);\n const initialDuration = isPreset\n ? TWAP_CUSTOM_DURATION_MIN_MINUTES\n : duration;\n\n const orderDurationState = useOrderDurationState(initialDuration);\n const drawerControls = useDrawerControls({\n drawerId: \"custom-duration-drawer\",\n onOpen: orderDurationState.reset,\n });\n\n const customLabel = isPreset ? (\n \"Custom\"\n ) : (\n <Duration timeMs={duration * 60 * 1000} />\n );\n\n return (\n <div className=\"flex items-center justify-between\">\n <TwapDetailWithTooltip\n detail=\"Order Duration\"\n tooltip=\"The total time over which your TWAP order will be executed\"\n classes={{\n root: \"text-nowrap\",\n }}\n />\n <div className=\"flex gap-2 flex-wrap justify-end\">\n {TWAP_DURATION_OPTIONS.map((option) => (\n <DurationButton\n key={option.value}\n label={option.label}\n selected={duration === option.value}\n onClick={() => setDuration(option.value)}\n />\n ))}\n <DurationButton\n label={customLabel}\n selected={!isPreset}\n onClick={drawerControls.onOpen}\n />\n </div>\n <CustomDurationDrawer\n orderDurationState={orderDurationState}\n drawerControls={drawerControls}\n />\n </div>\n );\n};\n\nconst buttonSelectedClassName =\n \"text-contrast-9 bg-primary-azul-1 border-primary-azul-1 hover:bg-primary-azul-1 hover:text-contrast-9 dark:bg-primary-azul-1 dark:border-primary-azul-1 dark:hover:bg-primary-azul-1 dark:text-contrast-9\";\n\nfunction DurationButton({\n label,\n selected,\n onClick,\n}: {\n label: React.ReactNode;\n selected: boolean;\n onClick: () => void;\n}) {\n return (\n <Button\n onClick={onClick}\n variant=\"outline\"\n className={cn(\n \"h-6 px-2 shadow-none text-xs text-contrast-5 dark:text-contrast-6\",\n {\n [buttonSelectedClassName]: selected,\n }\n )}\n >\n {label}\n </Button>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Warnings.d.ts","sourceRoot":"","sources":["../../src/core/Warnings.tsx"],"names":[],"mappings":"AA+BA,eAAO,MAAM,aAAa,sDAwBzB,CAAC;
|
|
1
|
+
{"version":3,"file":"Warnings.d.ts","sourceRoot":"","sources":["../../src/core/Warnings.tsx"],"names":[],"mappings":"AA+BA,eAAO,MAAM,aAAa,sDAwBzB,CAAC;AAuNF,eAAO,MAAM,iBAAiB,+CA2B7B,CAAC;AA0DF,eAAO,MAAM,YAAY,+CAOxB,CAAC"}
|
package/dist/core/Warnings.js
CHANGED
|
@@ -47,67 +47,67 @@ var T = { root: "mt-4" }, E = () => {
|
|
|
47
47
|
children: "Degen Mode"
|
|
48
48
|
}), e[0] = t, e[1] = n), n;
|
|
49
49
|
}, O = { root: "mt-4 border-1 border-secondary-radical-red-1 rounded-xs bg-[rgba(255,43,82,0.05)] text-secondary-radical-red-1" }, k = (r) => {
|
|
50
|
-
let a = b(
|
|
51
|
-
a[0] !== o.address || a[1] !== o.network ? (
|
|
50
|
+
let a = b(19), { tokenFrom: o, tokenTo: l, priceImpactPercent: u, tradeMode: f } = r, p = f === "twap", m = f === "swap", h = i(), { enableDegenMode: g } = n(), _ = e(t), v = e(s), y = e(c), w;
|
|
51
|
+
a[0] !== o.address || a[1] !== o.network ? (w = {
|
|
52
52
|
token: o.address,
|
|
53
53
|
chainId: o.network
|
|
54
|
-
}, a[0] = o.address, a[1] = o.network, a[2] =
|
|
55
|
-
let { data:
|
|
56
|
-
a[3] !==
|
|
57
|
-
token:
|
|
58
|
-
chainId:
|
|
59
|
-
}, a[3] =
|
|
60
|
-
let { data:
|
|
61
|
-
if (!
|
|
62
|
-
if (!
|
|
54
|
+
}, a[0] = o.address, a[1] = o.network, a[2] = w) : w = a[2];
|
|
55
|
+
let { data: T } = d(w), E = l?.address, O = l?.network || o.network, k;
|
|
56
|
+
a[3] !== E || a[4] !== O ? (k = {
|
|
57
|
+
token: E,
|
|
58
|
+
chainId: O
|
|
59
|
+
}, a[3] = E, a[4] = O, a[5] = k) : k = a[5];
|
|
60
|
+
let { data: A } = d(k), j = g && !h && (u == null ? !0 : u < 50);
|
|
61
|
+
if (!(T && A) && m) {
|
|
62
|
+
if (!j) return null;
|
|
63
63
|
let e;
|
|
64
64
|
return a[6] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ C("div", { children: [
|
|
65
65
|
"Ape in anyway with ",
|
|
66
66
|
/* @__PURE__ */ S(D, {}),
|
|
67
|
-
" enabled."
|
|
67
|
+
" enabled (Not recommended)."
|
|
68
68
|
] }), a[6] = e) : e = a[6], e;
|
|
69
69
|
}
|
|
70
|
-
let
|
|
71
|
-
a[7] !==
|
|
72
|
-
className: "underline cursor-pointer",
|
|
73
|
-
onClick: () => {
|
|
74
|
-
m("limit"), h(o), g(l);
|
|
75
|
-
},
|
|
76
|
-
children: "Limit Order"
|
|
77
|
-
}), a[7] = h, a[8] = g, a[9] = m, a[10] = o, a[11] = l, a[12] = k) : k = a[12];
|
|
78
|
-
let A;
|
|
79
|
-
a[13] === O ? A = a[14] : (A = O ? /* @__PURE__ */ C(x, { children: [
|
|
80
|
-
", or ape in anyway with ",
|
|
81
|
-
/* @__PURE__ */ S(D, {}),
|
|
82
|
-
" enabled."
|
|
83
|
-
] }) : ".", a[13] = O, a[14] = A);
|
|
84
|
-
let j;
|
|
85
|
-
return a[15] !== k || a[16] !== A ? (j = /* @__PURE__ */ C("div", { children: [
|
|
70
|
+
let M;
|
|
71
|
+
a[7] !== p || a[8] !== v || a[9] !== y || a[10] !== _ || a[11] !== o || a[12] !== l ? (M = p ? "Consider increasing the Order Split for a safer price impact" : /* @__PURE__ */ C(x, { children: [
|
|
86
72
|
"Use a",
|
|
87
73
|
" ",
|
|
88
|
-
|
|
74
|
+
/* @__PURE__ */ S("span", {
|
|
75
|
+
className: "underline cursor-pointer",
|
|
76
|
+
onClick: () => {
|
|
77
|
+
_("limit"), v(o), y(l);
|
|
78
|
+
},
|
|
79
|
+
children: "Limit Order"
|
|
80
|
+
}),
|
|
89
81
|
" ",
|
|
90
|
-
"for a better fill"
|
|
91
|
-
|
|
92
|
-
|
|
82
|
+
"for a better fill"
|
|
83
|
+
] }), a[7] = p, a[8] = v, a[9] = y, a[10] = _, a[11] = o, a[12] = l, a[13] = M) : M = a[13];
|
|
84
|
+
let N;
|
|
85
|
+
a[14] === j ? N = a[15] : (N = j ? /* @__PURE__ */ C(x, { children: [
|
|
86
|
+
", or ape in anyway with ",
|
|
87
|
+
/* @__PURE__ */ S(D, {}),
|
|
88
|
+
" enabled (Not recommended)."
|
|
89
|
+
] }) : ".", a[14] = j, a[15] = N);
|
|
90
|
+
let P;
|
|
91
|
+
return a[16] !== M || a[17] !== N ? (P = /* @__PURE__ */ C("div", { children: [M, N] }), a[16] = M, a[17] = N, a[18] = P) : P = a[18], P;
|
|
93
92
|
}, A = (e) => {
|
|
94
|
-
let t = b(
|
|
93
|
+
let t = b(9), { title: n, priceImpactPercent: r, tradeMode: i } = e, { tokenFrom: a, tokenTo: o } = l(i);
|
|
95
94
|
if (!o) return null;
|
|
96
95
|
let s;
|
|
97
96
|
t[0] === Symbol.for("react.memo_cache_sentinel") ? (s = /* @__PURE__ */ S(w, { size: 18 }), t[0] = s) : s = t[0];
|
|
98
97
|
let c;
|
|
99
|
-
t[1] !== r || t[2] !== a || t[3] !== o ? (c = /* @__PURE__ */ S(k, {
|
|
98
|
+
t[1] !== r || t[2] !== a || t[3] !== o || t[4] !== i ? (c = /* @__PURE__ */ S(k, {
|
|
100
99
|
tokenFrom: a,
|
|
101
100
|
tokenTo: o,
|
|
102
|
-
priceImpactPercent: r
|
|
103
|
-
|
|
101
|
+
priceImpactPercent: r,
|
|
102
|
+
tradeMode: i
|
|
103
|
+
}), t[1] = r, t[2] = a, t[3] = o, t[4] = i, t[5] = c) : c = t[5];
|
|
104
104
|
let u;
|
|
105
|
-
return t[
|
|
105
|
+
return t[6] !== c || t[7] !== n ? (u = /* @__PURE__ */ S(h, {
|
|
106
106
|
title: n,
|
|
107
107
|
iconReplacement: s,
|
|
108
108
|
message: c,
|
|
109
109
|
classes: O
|
|
110
|
-
}), t[
|
|
110
|
+
}), t[6] = c, t[7] = n, t[8] = u) : u = t[8], u;
|
|
111
111
|
}, j = () => {
|
|
112
112
|
let e = b(1), t;
|
|
113
113
|
return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ S(m, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Warnings.js","names":["useCurrentChainConfig","Warning","WarningWithTitle","useSetOpenDrawer","useUnsupportedLimitChain","useUnsupportedOtcChain","useDegenMode","useWidgetConfig","useCurrentSwapPriceError","useCurrentTwapPriceError","useSwapTokenTo","useSetAtom","userTradeModeAtom","TradeMode","useWidgetTokens","selectLimitTokenFromAtom","selectLimitTokenToAtom","Token","TriangleAlert","DEGEN_MODE_MAX_IMPACT","useIsTokenSupportedInDeltaQuery","useTwapTokenTo","PriceImpactResult","useTwapSliceTooShort","TWAP_MIN_SLICE_INTERVAL_S","Duration","warningClasses","root","WidgetWarning","$","_c","chainConfig","chainName","name","limitNotSupported","otcNotSupported","t0","t1","DegenModeText","setOpenDrawer","swapWidgetWarningClasses","const","EnableDegenModeMessage","tokenFrom","tokenTo","priceImpactPercent","degenMode","enableDegenMode","setTradeMode","setLimitTokenFrom","setLimitTokenTo","address","network","token","chainId","data","isTokenFromSupported","t2","t3","t4","isTokenToSupported","belowThreshold","undefined","showEnableDegenModeMessage","t5","Symbol","for","t6","t7","EnableDegenModeWarning","title","tradeMode","DegenModeEnabledWarning","message","warningMessageByReason","highPriceImpact","unavailablePriceImpact","GenericPriceImpactWarning","priceImpact","isMaxImpactReachedError","isNoUsdPriceError","showSinglePriceImpactWarning","isHighImpact","isUnavailable","SwapWidgetWarning","isNoLiquidityError","isDeltaNoAvailableBridgeOptionsError","isDeltaNoAvailablePricesError","isDeltaUnsupportedTokenError","getPriceImpact","TwapPriceImpactWarning","isNoAvailableBridgeOptionsError","isNoAvailablePricesError","isUnsupportedTokenError","TwapSliceIntervalWarning","isSliceTooShort","TwapWarnings"],"sources":["../../src/core/Warnings.tsx"],"sourcesContent":["import { useCurrentChainConfig } from \"@/hooks/useCurrentChain\";\nimport { Warning, WarningWithTitle } from \"@/components/widget/Warning/Warning\";\nimport { useSetOpenDrawer } from \"@/components/widget/Drawer/state/useDrawerControls\";\nimport { useUnsupportedLimitChain } from \"./limit/useLimitNotSupported\";\nimport { useUnsupportedOtcChain } from \"./otc/useOtcNotSupported\";\nimport { useDegenMode } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\nimport { useWidgetConfig } from \"./state/configAtom\";\nimport { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useCurrentTwapPriceError } from \"@/hooks/swap/prices/useTwapPrices\";\nimport { useSwapTokenTo } from \"./inputs/state/selectedTokenAtom\";\nimport { useSetAtom } from \"./store\";\nimport { userTradeModeAtom, type TradeMode } from \"./state/tradeModeAtom\";\nimport { useWidgetTokens } from \"./inputs/state/common\";\nimport {\n selectLimitTokenFromAtom,\n selectLimitTokenToAtom,\n} from \"./limit/state/selectedTokenActionsAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { TriangleAlert } from \"lucide-react\";\nimport { DEGEN_MODE_MAX_IMPACT } from \"@/hooks/swap/prices/constants\";\nimport { useIsTokenSupportedInDeltaQuery } from \"@/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta\";\nimport { useTwapTokenTo } from \"./twap/state/twapTokenAtoms\";\nimport type { PriceImpactResult } from \"@/lib/utils/priceImpact\";\nimport { useTwapSliceTooShort } from \"./twap/state/twapParamsAtom\";\nimport { TWAP_MIN_SLICE_INTERVAL_S } from \"./twap/state/constants\";\nimport { Duration } from \"@/components/widget/Duration/Duration\";\n\nconst warningClasses = {\n root: \"mt-4\",\n};\n\nexport const WidgetWarning = () => {\n const chainConfig = useCurrentChainConfig();\n const chainName = chainConfig.name;\n\n const limitNotSupported = useUnsupportedLimitChain();\n const otcNotSupported = useUnsupportedOtcChain();\n\n if (limitNotSupported)\n return (\n <Warning\n message={`Limit Orders are not available yet on ${chainName}`}\n classes={warningClasses}\n />\n );\n\n if (otcNotSupported)\n return (\n <Warning\n message={`OTC Orders are not available yet on ${chainName}`}\n classes={warningClasses}\n />\n );\n\n return null;\n};\n\nconst DegenModeText = () => {\n const setOpenDrawer = useSetOpenDrawer();\n return (\n <span\n className=\"underline cursor-pointer\"\n onClick={() => {\n setOpenDrawer(\"trade-parameters-drawer\");\n }}\n >\n Degen Mode\n </span>\n );\n};\n\nconst swapWidgetWarningClasses = {\n root: \"mt-4 border-1 border-secondary-radical-red-1 rounded-xs bg-[rgba(255,43,82,0.05)] text-secondary-radical-red-1\",\n} as const;\n\nconst EnableDegenModeMessage = ({\n tokenFrom,\n tokenTo,\n priceImpactPercent,\n}: {\n tokenFrom: Token;\n tokenTo: Token;\n priceImpactPercent?: number;\n}) => {\n const degenMode = useDegenMode();\n const { enableDegenMode } = useWidgetConfig();\n\n const setTradeMode = useSetAtom(userTradeModeAtom);\n\n const setLimitTokenFrom = useSetAtom(selectLimitTokenFromAtom);\n const setLimitTokenTo = useSetAtom(selectLimitTokenToAtom);\n\n const { data: isTokenFromSupported } = useIsTokenSupportedInDeltaQuery({\n token: tokenFrom.address,\n chainId: tokenFrom.network,\n });\n const { data: isTokenToSupported } = useIsTokenSupportedInDeltaQuery({\n token: tokenTo?.address,\n chainId: tokenTo?.network || tokenFrom.network,\n });\n\n const belowThreshold =\n priceImpactPercent == undefined\n ? true\n : priceImpactPercent < DEGEN_MODE_MAX_IMPACT;\n const showEnableDegenModeMessage =\n enableDegenMode && !degenMode && belowThreshold;\n\n // doesn't make sense to switch the user to Limit\n if (!isTokenFromSupported || !isTokenToSupported) {\n if (!showEnableDegenModeMessage) return null;\n return (\n <div>\n Ape in anyway with <DegenModeText /> enabled.\n </div>\n );\n }\n\n return (\n <div>\n Use a{\" \"}\n <span\n className=\"underline cursor-pointer\"\n onClick={() => {\n setTradeMode(\"limit\");\n setLimitTokenFrom(tokenFrom);\n setLimitTokenTo(tokenTo);\n }}\n >\n Limit Order\n </span>{\" \"}\n for a better fill\n {showEnableDegenModeMessage ? (\n <>\n , or ape in anyway with <DegenModeText /> enabled.\n </>\n ) : (\n \".\"\n )}\n </div>\n );\n};\n\nconst EnableDegenModeWarning = ({\n title,\n priceImpactPercent,\n tradeMode,\n}: {\n title: string;\n priceImpactPercent?: number;\n tradeMode: TradeMode;\n}) => {\n const { tokenFrom, tokenTo } = useWidgetTokens(tradeMode);\n\n if (!tokenTo) {\n return null;\n }\n\n return (\n <WarningWithTitle\n title={title}\n iconReplacement={<TriangleAlert size={18} />}\n message={\n <EnableDegenModeMessage\n tokenFrom={tokenFrom}\n tokenTo={tokenTo}\n priceImpactPercent={priceImpactPercent}\n />\n }\n classes={swapWidgetWarningClasses}\n />\n );\n};\n\nconst DegenModeEnabledWarning = () => {\n return (\n <Warning\n message={\"You have turned on Degen Mode. Be cautious.\"}\n iconReplacement={<TriangleAlert size={18} />}\n classes={{\n ...swapWidgetWarningClasses,\n message: \"text-sm\",\n }}\n />\n );\n};\n\nconst warningMessageByReason = {\n highPriceImpact:\n // explicit threshold breach, more severe warning\n \"High price impact — expect heavy slippage.\",\n unavailablePriceImpact:\n // unable to calculate price impact, more generic warning\n \"Price impact couldn't be calculated.\",\n} as const;\n\nconst GenericPriceImpactWarning = ({\n tokenTo,\n priceImpact,\n isMaxImpactReachedError,\n isNoUsdPriceError,\n showSinglePriceImpactWarning,\n tradeMode,\n}: {\n tokenTo?: Token;\n priceImpact: PriceImpactResult;\n isMaxImpactReachedError: boolean;\n isNoUsdPriceError: boolean;\n showSinglePriceImpactWarning?: boolean;\n tradeMode: TradeMode;\n}) => {\n const degenMode = useDegenMode();\n\n if (!tokenTo) {\n return null;\n }\n\n if (showSinglePriceImpactWarning) {\n return (\n <Warning\n message={warningMessageByReason.unavailablePriceImpact}\n iconReplacement={<TriangleAlert size={18} />}\n classes={{\n ...swapWidgetWarningClasses,\n message: \"text-sm\",\n }}\n />\n );\n }\n\n if (priceImpact.isHighImpact || isMaxImpactReachedError) {\n return (\n <EnableDegenModeWarning\n title={warningMessageByReason.highPriceImpact}\n priceImpactPercent={priceImpact.priceImpact}\n tradeMode={tradeMode}\n />\n );\n }\n if (priceImpact.isUnavailable || isNoUsdPriceError) {\n return (\n <EnableDegenModeWarning\n title={warningMessageByReason.unavailablePriceImpact}\n priceImpactPercent={priceImpact.priceImpact}\n tradeMode={tradeMode}\n />\n );\n }\n\n if (degenMode) {\n return <DegenModeEnabledWarning />;\n }\n\n return null;\n};\n\nexport const SwapWidgetWarning = () => {\n const tokenTo = useSwapTokenTo();\n const {\n isMaxImpactReachedError,\n isNoUsdPriceError,\n isNoLiquidityError,\n isDeltaNoAvailableBridgeOptionsError,\n isDeltaNoAvailablePricesError,\n isDeltaUnsupportedTokenError,\n getPriceImpact,\n } = useCurrentSwapPriceError();\n\n return (\n <GenericPriceImpactWarning\n tokenTo={tokenTo}\n priceImpact={getPriceImpact()}\n isMaxImpactReachedError={isMaxImpactReachedError}\n isNoUsdPriceError={isNoUsdPriceError}\n showSinglePriceImpactWarning={\n isNoLiquidityError ||\n isDeltaNoAvailableBridgeOptionsError ||\n isDeltaNoAvailablePricesError ||\n isDeltaUnsupportedTokenError\n }\n tradeMode=\"swap\"\n />\n );\n};\n\nconst TwapPriceImpactWarning = () => {\n const tokenTo = useTwapTokenTo();\n const {\n isMaxImpactReachedError,\n isNoUsdPriceError,\n isNoAvailableBridgeOptionsError,\n isNoAvailablePricesError,\n isUnsupportedTokenError,\n getPriceImpact,\n } = useCurrentTwapPriceError();\n\n return (\n <GenericPriceImpactWarning\n tokenTo={tokenTo}\n priceImpact={getPriceImpact()}\n isMaxImpactReachedError={isMaxImpactReachedError}\n isNoUsdPriceError={isNoUsdPriceError}\n tradeMode=\"twap\"\n showSinglePriceImpactWarning={\n isUnsupportedTokenError ||\n isNoAvailablePricesError ||\n isNoAvailableBridgeOptionsError\n }\n />\n );\n};\n\nconst TwapSliceIntervalWarning = () => {\n const isSliceTooShort = useTwapSliceTooShort();\n\n if (!isSliceTooShort) {\n return null;\n }\n\n return (\n <Warning\n message={\n <>\n Each TWAP slice must be at least{\" \"}\n <Duration\n timeMs={TWAP_MIN_SLICE_INTERVAL_S * 1000}\n showSeconds\n classes={{\n root: \"inline-flex text-xs text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\",\n }}\n />{\" \"}\n apart\n </>\n }\n classes={{\n root: \"mt-4\",\n }}\n />\n );\n};\n\nexport const TwapWarnings = () => {\n return (\n <div className=\"flex flex-col\">\n <TwapSliceIntervalWarning />\n <TwapPriceImpactWarning />\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Warnings.js","names":["useCurrentChainConfig","Warning","WarningWithTitle","useSetOpenDrawer","useUnsupportedLimitChain","useUnsupportedOtcChain","useDegenMode","useWidgetConfig","useCurrentSwapPriceError","useCurrentTwapPriceError","useSwapTokenTo","useSetAtom","userTradeModeAtom","TradeMode","useWidgetTokens","selectLimitTokenFromAtom","selectLimitTokenToAtom","Token","TriangleAlert","DEGEN_MODE_MAX_IMPACT","useIsTokenSupportedInDeltaQuery","useTwapTokenTo","PriceImpactResult","useTwapSliceTooShort","TWAP_MIN_SLICE_INTERVAL_S","Duration","warningClasses","root","WidgetWarning","$","_c","chainConfig","chainName","name","limitNotSupported","otcNotSupported","t0","t1","DegenModeText","setOpenDrawer","swapWidgetWarningClasses","const","EnableDegenModeMessage","tokenFrom","tokenTo","priceImpactPercent","tradeMode","isTwap","isSwap","degenMode","enableDegenMode","setTradeMode","setLimitTokenFrom","setLimitTokenTo","address","network","token","chainId","data","isTokenFromSupported","t2","t3","t4","isTokenToSupported","belowThreshold","undefined","showEnableDegenModeMessage","canDoLimitOrder","t5","Symbol","for","t6","t7","EnableDegenModeWarning","title","DegenModeEnabledWarning","message","warningMessageByReason","highPriceImpact","unavailablePriceImpact","GenericPriceImpactWarning","priceImpact","isMaxImpactReachedError","isNoUsdPriceError","showSinglePriceImpactWarning","isHighImpact","isUnavailable","SwapWidgetWarning","isNoLiquidityError","isDeltaNoAvailableBridgeOptionsError","isDeltaNoAvailablePricesError","isDeltaUnsupportedTokenError","getPriceImpact","TwapPriceImpactWarning","isNoAvailableBridgeOptionsError","isNoAvailablePricesError","isUnsupportedTokenError","TwapSliceIntervalWarning","isSliceTooShort","TwapWarnings"],"sources":["../../src/core/Warnings.tsx"],"sourcesContent":["import { useCurrentChainConfig } from \"@/hooks/useCurrentChain\";\nimport { Warning, WarningWithTitle } from \"@/components/widget/Warning/Warning\";\nimport { useSetOpenDrawer } from \"@/components/widget/Drawer/state/useDrawerControls\";\nimport { useUnsupportedLimitChain } from \"./limit/useLimitNotSupported\";\nimport { useUnsupportedOtcChain } from \"./otc/useOtcNotSupported\";\nimport { useDegenMode } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\nimport { useWidgetConfig } from \"./state/configAtom\";\nimport { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useCurrentTwapPriceError } from \"@/hooks/swap/prices/useTwapPrices\";\nimport { useSwapTokenTo } from \"./inputs/state/selectedTokenAtom\";\nimport { useSetAtom } from \"./store\";\nimport { userTradeModeAtom, type TradeMode } from \"./state/tradeModeAtom\";\nimport { useWidgetTokens } from \"./inputs/state/common\";\nimport {\n selectLimitTokenFromAtom,\n selectLimitTokenToAtom,\n} from \"./limit/state/selectedTokenActionsAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { TriangleAlert } from \"lucide-react\";\nimport { DEGEN_MODE_MAX_IMPACT } from \"@/hooks/swap/prices/constants\";\nimport { useIsTokenSupportedInDeltaQuery } from \"@/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta\";\nimport { useTwapTokenTo } from \"./twap/state/twapTokenAtoms\";\nimport type { PriceImpactResult } from \"@/lib/utils/priceImpact\";\nimport { useTwapSliceTooShort } from \"./twap/state/twapParamsAtom\";\nimport { TWAP_MIN_SLICE_INTERVAL_S } from \"./twap/state/constants\";\nimport { Duration } from \"@/components/widget/Duration/Duration\";\n\nconst warningClasses = {\n root: \"mt-4\",\n};\n\nexport const WidgetWarning = () => {\n const chainConfig = useCurrentChainConfig();\n const chainName = chainConfig.name;\n\n const limitNotSupported = useUnsupportedLimitChain();\n const otcNotSupported = useUnsupportedOtcChain();\n\n if (limitNotSupported)\n return (\n <Warning\n message={`Limit Orders are not available yet on ${chainName}`}\n classes={warningClasses}\n />\n );\n\n if (otcNotSupported)\n return (\n <Warning\n message={`OTC Orders are not available yet on ${chainName}`}\n classes={warningClasses}\n />\n );\n\n return null;\n};\n\nconst DegenModeText = () => {\n const setOpenDrawer = useSetOpenDrawer();\n return (\n <span\n className=\"underline cursor-pointer\"\n onClick={() => {\n setOpenDrawer(\"trade-parameters-drawer\");\n }}\n >\n Degen Mode\n </span>\n );\n};\n\nconst swapWidgetWarningClasses = {\n root: \"mt-4 border-1 border-secondary-radical-red-1 rounded-xs bg-[rgba(255,43,82,0.05)] text-secondary-radical-red-1\",\n} as const;\n\nconst EnableDegenModeMessage = ({\n tokenFrom,\n tokenTo,\n priceImpactPercent,\n tradeMode,\n}: {\n tokenFrom: Token;\n tokenTo: Token;\n priceImpactPercent?: number;\n tradeMode: TradeMode;\n}) => {\n const isTwap = tradeMode === \"twap\";\n const isSwap = tradeMode === \"swap\";\n\n const degenMode = useDegenMode();\n const { enableDegenMode } = useWidgetConfig();\n\n const setTradeMode = useSetAtom(userTradeModeAtom);\n\n const setLimitTokenFrom = useSetAtom(selectLimitTokenFromAtom);\n const setLimitTokenTo = useSetAtom(selectLimitTokenToAtom);\n\n const { data: isTokenFromSupported } = useIsTokenSupportedInDeltaQuery({\n token: tokenFrom.address,\n chainId: tokenFrom.network,\n });\n const { data: isTokenToSupported } = useIsTokenSupportedInDeltaQuery({\n token: tokenTo?.address,\n chainId: tokenTo?.network || tokenFrom.network,\n });\n\n const belowThreshold =\n priceImpactPercent == undefined\n ? true\n : priceImpactPercent < DEGEN_MODE_MAX_IMPACT;\n const showEnableDegenModeMessage =\n enableDegenMode && !degenMode && belowThreshold;\n\n // doesn't make sense to switch the user to Limit if tokens aren't supported in Delta\n const canDoLimitOrder = isTokenFromSupported && isTokenToSupported;\n\n if (!canDoLimitOrder && isSwap) {\n if (!showEnableDegenModeMessage) return null;\n return (\n <div>\n Ape in anyway with <DegenModeText /> enabled (Not recommended).\n </div>\n );\n }\n\n return (\n <div>\n {isTwap ? (\n \"Consider increasing the Order Split for a safer price impact\"\n ) : (\n <>\n Use a{\" \"}\n <span\n className=\"underline cursor-pointer\"\n onClick={() => {\n setTradeMode(\"limit\");\n setLimitTokenFrom(tokenFrom);\n setLimitTokenTo(tokenTo);\n }}\n >\n Limit Order\n </span>{\" \"}\n for a better fill\n </>\n )}\n {showEnableDegenModeMessage ? (\n <>\n , or ape in anyway with <DegenModeText /> enabled (Not recommended).\n </>\n ) : (\n \".\"\n )}\n </div>\n );\n};\n\nconst EnableDegenModeWarning = ({\n title,\n priceImpactPercent,\n tradeMode,\n}: {\n title: string;\n priceImpactPercent?: number;\n tradeMode: TradeMode;\n}) => {\n const { tokenFrom, tokenTo } = useWidgetTokens(tradeMode);\n\n if (!tokenTo) {\n return null;\n }\n\n return (\n <WarningWithTitle\n title={title}\n iconReplacement={<TriangleAlert size={18} />}\n message={\n <EnableDegenModeMessage\n tokenFrom={tokenFrom}\n tokenTo={tokenTo}\n priceImpactPercent={priceImpactPercent}\n tradeMode={tradeMode}\n />\n }\n classes={swapWidgetWarningClasses}\n />\n );\n};\n\nconst DegenModeEnabledWarning = () => {\n return (\n <Warning\n message={\"You have turned on Degen Mode. Be cautious.\"}\n iconReplacement={<TriangleAlert size={18} />}\n classes={{\n ...swapWidgetWarningClasses,\n message: \"text-sm\",\n }}\n />\n );\n};\n\nconst warningMessageByReason = {\n highPriceImpact:\n // explicit threshold breach, more severe warning\n \"High price impact — expect heavy slippage.\",\n unavailablePriceImpact:\n // unable to calculate price impact, more generic warning\n \"Price impact couldn't be calculated.\",\n} as const;\n\nconst GenericPriceImpactWarning = ({\n tokenTo,\n priceImpact,\n isMaxImpactReachedError,\n isNoUsdPriceError,\n showSinglePriceImpactWarning,\n tradeMode,\n}: {\n tokenTo?: Token;\n priceImpact: PriceImpactResult;\n isMaxImpactReachedError: boolean;\n isNoUsdPriceError: boolean;\n showSinglePriceImpactWarning?: boolean;\n tradeMode: TradeMode;\n}) => {\n const degenMode = useDegenMode();\n\n if (!tokenTo) {\n return null;\n }\n\n if (showSinglePriceImpactWarning) {\n return (\n <Warning\n message={warningMessageByReason.unavailablePriceImpact}\n iconReplacement={<TriangleAlert size={18} />}\n classes={{\n ...swapWidgetWarningClasses,\n message: \"text-sm\",\n }}\n />\n );\n }\n\n if (priceImpact.isHighImpact || isMaxImpactReachedError) {\n return (\n <EnableDegenModeWarning\n title={warningMessageByReason.highPriceImpact}\n priceImpactPercent={priceImpact.priceImpact}\n tradeMode={tradeMode}\n />\n );\n }\n if (priceImpact.isUnavailable || isNoUsdPriceError) {\n return (\n <EnableDegenModeWarning\n title={warningMessageByReason.unavailablePriceImpact}\n priceImpactPercent={priceImpact.priceImpact}\n tradeMode={tradeMode}\n />\n );\n }\n\n if (degenMode) {\n return <DegenModeEnabledWarning />;\n }\n\n return null;\n};\n\nexport const SwapWidgetWarning = () => {\n const tokenTo = useSwapTokenTo();\n const {\n isMaxImpactReachedError,\n isNoUsdPriceError,\n isNoLiquidityError,\n isDeltaNoAvailableBridgeOptionsError,\n isDeltaNoAvailablePricesError,\n isDeltaUnsupportedTokenError,\n getPriceImpact,\n } = useCurrentSwapPriceError();\n\n return (\n <GenericPriceImpactWarning\n tokenTo={tokenTo}\n priceImpact={getPriceImpact()}\n isMaxImpactReachedError={isMaxImpactReachedError}\n isNoUsdPriceError={isNoUsdPriceError}\n showSinglePriceImpactWarning={\n isNoLiquidityError ||\n isDeltaNoAvailableBridgeOptionsError ||\n isDeltaNoAvailablePricesError ||\n isDeltaUnsupportedTokenError\n }\n tradeMode=\"swap\"\n />\n );\n};\n\nconst TwapPriceImpactWarning = () => {\n const tokenTo = useTwapTokenTo();\n const {\n isMaxImpactReachedError,\n isNoUsdPriceError,\n isNoAvailableBridgeOptionsError,\n isNoAvailablePricesError,\n isUnsupportedTokenError,\n getPriceImpact,\n } = useCurrentTwapPriceError();\n\n return (\n <GenericPriceImpactWarning\n tokenTo={tokenTo}\n priceImpact={getPriceImpact()}\n isMaxImpactReachedError={isMaxImpactReachedError}\n isNoUsdPriceError={isNoUsdPriceError}\n tradeMode=\"twap\"\n showSinglePriceImpactWarning={\n isUnsupportedTokenError ||\n isNoAvailablePricesError ||\n isNoAvailableBridgeOptionsError\n }\n />\n );\n};\n\nconst TwapSliceIntervalWarning = () => {\n const isSliceTooShort = useTwapSliceTooShort();\n\n if (!isSliceTooShort) {\n return null;\n }\n\n return (\n <Warning\n message={\n <>\n Each TWAP slice must be at least{\" \"}\n <Duration\n timeMs={TWAP_MIN_SLICE_INTERVAL_S * 1000}\n showSeconds\n classes={{\n root: \"inline-flex text-xs text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\",\n }}\n />{\" \"}\n apart\n </>\n }\n classes={{\n root: \"mt-4\",\n }}\n />\n );\n};\n\nexport const TwapWarnings = () => {\n return (\n <div className=\"flex flex-col\">\n <TwapSliceIntervalWarning />\n <TwapPriceImpactWarning />\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isCrosschainPossible.d.ts","sourceRoot":"","sources":["../../../src/core/across/isCrosschainPossible.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAEzF,wBAAgB,oBAAoB,CAAC,EACnC,GAAG,EACH,WAAW,EACX,SAAS,EACT,IAAI,GACL,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,cAAc,CAAC;CACtB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"isCrosschainPossible.d.ts","sourceRoot":"","sources":["../../../src/core/across/isCrosschainPossible.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAEzF,wBAAgB,oBAAoB,CAAC,EACnC,GAAG,EACH,WAAW,EACX,SAAS,EACT,IAAI,GACL,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,cAAc,CAAC;CACtB,GAAG,OAAO,CA0BV"}
|
|
@@ -13,7 +13,7 @@ function s({ get: s, chainIdFrom: c, chainIdTo: l, mode: u }) {
|
|
|
13
13
|
mode: u
|
|
14
14
|
})) return !1;
|
|
15
15
|
let d = s(n);
|
|
16
|
-
if (d !== "swap" && d !== "limit"
|
|
16
|
+
if (d !== "swap" && d !== "limit" || !s(e)) return !1;
|
|
17
17
|
let { enableDelta: f, enableCrossChain: p } = s(r);
|
|
18
18
|
return !(!f || !p || !s(i).includes(c) || !o(s, {
|
|
19
19
|
fromChainId: c,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isCrosschainPossible.js","names":["deltaParamAtom","tradeModeAtom","isAcrossAvailable","widgetConfigAtom","enabledSrcChainsAtom","getSelectableDestChains","SupportedChainId","deltaEnabledOnAPI","Getter","BridgeInfoMode","isCrosschainPossible","get","chainIdFrom","chainIdTo","mode","tradeMode","deltaEnabledInSettings","enableDelta","enableCrossChain","enabledSrcChains","includes","selectableDestChains","fromChainId"],"sources":["../../../src/core/across/isCrosschainPossible.ts"],"sourcesContent":["import { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { tradeModeAtom } from \"../state/tradeModeAtom\";\nimport { isAcrossAvailable } from \"./utils\";\nimport { widgetConfigAtom } from \"../state/configAtom\";\nimport { enabledSrcChainsAtom } from \"../state/enabledChainsAtom\";\nimport { getSelectableDestChains } from \"../state/getSelectableDestChains\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport type { Getter } from \"jotai\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/types\";\n\nexport function isCrosschainPossible({\n get,\n chainIdFrom,\n chainIdTo,\n mode,\n}: {\n get: Getter;\n chainIdFrom: SupportedChainId;\n chainIdTo: SupportedChainId;\n mode: BridgeInfoMode;\n}): boolean {\n if (!deltaEnabledOnAPI[chainIdFrom]) return false;\n\n if (!isAcrossAvailable({ chainIdFrom, chainIdTo, mode })) return false;\n\n const tradeMode = get(tradeModeAtom);\n if (tradeMode !== \"swap\" && tradeMode !== \"limit\"
|
|
1
|
+
{"version":3,"file":"isCrosschainPossible.js","names":["deltaParamAtom","tradeModeAtom","isAcrossAvailable","widgetConfigAtom","enabledSrcChainsAtom","getSelectableDestChains","SupportedChainId","deltaEnabledOnAPI","Getter","BridgeInfoMode","isCrosschainPossible","get","chainIdFrom","chainIdTo","mode","tradeMode","deltaEnabledInSettings","enableDelta","enableCrossChain","enabledSrcChains","includes","selectableDestChains","fromChainId"],"sources":["../../../src/core/across/isCrosschainPossible.ts"],"sourcesContent":["import { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { tradeModeAtom } from \"../state/tradeModeAtom\";\nimport { isAcrossAvailable } from \"./utils\";\nimport { widgetConfigAtom } from \"../state/configAtom\";\nimport { enabledSrcChainsAtom } from \"../state/enabledChainsAtom\";\nimport { getSelectableDestChains } from \"../state/getSelectableDestChains\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport type { Getter } from \"jotai\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/types\";\n\nexport function isCrosschainPossible({\n get,\n chainIdFrom,\n chainIdTo,\n mode,\n}: {\n get: Getter;\n chainIdFrom: SupportedChainId;\n chainIdTo: SupportedChainId;\n mode: BridgeInfoMode;\n}): boolean {\n if (!deltaEnabledOnAPI[chainIdFrom]) return false;\n\n if (!isAcrossAvailable({ chainIdFrom, chainIdTo, mode })) return false;\n\n const tradeMode = get(tradeModeAtom);\n // @TODO reenable TWAP crosschain when ready on the API\n if (tradeMode !== \"swap\" && tradeMode !== \"limit\" /*&& tradeMode !== \"twap\"*/)\n return false;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n if (!deltaEnabledInSettings) return false;\n\n const { enableDelta, enableCrossChain } = get(widgetConfigAtom);\n if (!enableDelta || !enableCrossChain) return false;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainIdFrom)) return false;\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: chainIdFrom,\n mode,\n });\n if (!selectableDestChains.includes(chainIdTo)) return false;\n\n return true;\n}\n"],"mappings":";;;;;;;;AAWA,SAAgBU,EAAqB,EACnCC,QACAC,gBACAC,cACAC,WAMU;AAGV,KAFI,CAACP,EAAkBK,MAEnB,CAACV,EAAkB;EAAEU;EAAaC;EAAWC;EAAM,CAAC,CAAE,QAAO;CAEjE,IAAMC,IAAYJ,EAAIV,EAAc;AAMpC,KAJIc,MAAc,UAAUA,MAAc,WAItC,CAD2BJ,EAAIX,EAAe,CACrB,QAAO;CAEpC,IAAM,EAAEiB,gBAAaC,wBAAqBP,EAAIR,EAAiB;AAY/D,QAFA,EATI,CAACc,KAAe,CAACC,KAGjB,CADqBP,EAAIP,EAAqB,CAC5BgB,SAASR,EAAY,IAMvC,CAJyBP,EAAwBM,GAAK;EACxDW,aAAaV;EACbE;EACD,CAAC,CACwBM,SAASP,EAAU"}
|
package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCancelOrWithdrawAndCancelDeltaOrder.js","names":["useCancelDeltaOrders","CancelDeltaOrdersReturn","SupportedChainId","assert","DeltaAuction","MinViemClient","useIsMutating","useMutation","UseMutationOptions","useWithdrawAndCancelDeltaOrder","isHash","Address","TransactionReceipt","isETHaddress","LoggerInstance","useIsDeltaOrderCancellable","useChainMatches","useSwitchChainWithGuard","useCancelDeltaOrderEventCallbacks","CancelOrderStepKey","CancelOrWithdrawAndCancelDeltaOrderMutOptions","Omit","Error","TOnMutateResult","CancelOrWithdrawAndCancelDeltaOrderInput","order","chainId","account","client","logger","mutationOptions","UseCancelOrWithdrawAndCancelDeltaOrderReturn","cancelDeltaOrder","Promise","reset","cancelOrderResponse","txHash","receipt","isEthOrder","isOrderCancellable","isPending","isError","isSuccess","error","result","step","CANCEL_OR_WITHDRAW_AND_CANCEL_DELTA_ORDER_MUTATION_KEY","useCancelOrWithdrawAndCancelDeltaOrder","t0","$","_c","t1","srcToken","orderChainId","t2","cancelOrderMut","t3","withdrawAndCancelOrderMut","eventCallbacks","t4","onChainOrderType","orderHash","mutateAsync","orderId","id","onTxSent","t5","chainId_0","transactionHash","orderIds","forcedChainMatchesWalletChain","switchChain","t6","t7","t8","args","onMutateResult","onMutate","t9","args_0","onSuccess","t10","args_1","onError","mutationKey","mutationFn","resetMutation","data","t11","t12","t13","t14","useIsCancellingOrWithdrawingDeltaOrder"],"sources":["../../../../../../src/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.ts"],"sourcesContent":["import {\n useCancelDeltaOrders,\n type CancelDeltaOrdersReturn,\n} from \"./useCancelDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { assert } from \"ts-essentials\";\nimport type { DeltaAuction, MinViemClient } from \"@velora-dex/sdk\";\nimport {\n useIsMutating,\n useMutation,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { useWithdrawAndCancelDeltaOrder } from \"./useWithdrawAndCancelDeltaOrder\";\nimport { isHash, type Address, type TransactionReceipt } from \"viem\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { useIsDeltaOrderCancellable } from \"./useIsDeltaOrderCancellable\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useSwitchChainWithGuard } from \"@/hooks/useSwitchChainWithGuard\";\nimport { useCancelDeltaOrderEventCallbacks } from \"./useCancelDeltaOrdersEvents\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nexport type CancelOrWithdrawAndCancelDeltaOrderMutOptions<\n TOnMutateResult = undefined,\n> = Omit<\n UseMutationOptions<\n TransactionReceipt | CancelDeltaOrdersReturn,\n Error,\n void,\n TOnMutateResult\n >,\n \"mutationFn\" | \"mutationKey\"\n>;\n\ntype CancelOrWithdrawAndCancelDeltaOrderInput<TOnMutateResult = undefined> = {\n order?: DeltaAuction;\n chainId: SupportedChainId;\n account?: Address;\n client?: MinViemClient;\n logger?: LoggerInstance;\n mutationOptions?: CancelOrWithdrawAndCancelDeltaOrderMutOptions<TOnMutateResult>;\n};\n\ntype UseCancelOrWithdrawAndCancelDeltaOrderReturn = {\n cancelDeltaOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;\n reset: () => void;\n cancelOrderResponse?: CancelDeltaOrdersReturn;\n txHash?: string;\n receipt?: TransactionReceipt;\n isEthOrder: boolean;\n isOrderCancellable: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n result?: TransactionReceipt | CancelDeltaOrdersReturn;\n step?: CancelOrderStepKey;\n};\n\nconst CANCEL_OR_WITHDRAW_AND_CANCEL_DELTA_ORDER_MUTATION_KEY =\n \"cancelOrWithdrawAndCancelDeltaOrder\";\n\nexport function useCancelOrWithdrawAndCancelDeltaOrder<\n TOnMutateResult = undefined,\n>({\n order,\n chainId,\n account,\n client,\n logger,\n mutationOptions,\n}: CancelOrWithdrawAndCancelDeltaOrderInput<TOnMutateResult>): UseCancelOrWithdrawAndCancelDeltaOrderReturn {\n // ETH Orders are cancelled by calling Delta.withdrawAndCancel;\n // non-ETH orders are cancelled by posting a signed order cancellation typed data to the API;\n\n const isEthOrder = !!order && isETHaddress(order.order.srcToken);\n const orderChainId = order?.chainId as SupportedChainId | undefined;\n\n const cancelOrderMut = useCancelDeltaOrders({\n chainId,\n account,\n client,\n });\n\n const withdrawAndCancelOrderMut = useWithdrawAndCancelDeltaOrder({\n chainId,\n account,\n client,\n logger,\n });\n\n const eventCallbacks = useCancelDeltaOrderEventCallbacks(order);\n\n const cancelDeltaOrder = async () => {\n assert(order, \"No order to cancel\");\n cancelOrderMut.reset();\n withdrawAndCancelOrderMut.reset();\n\n // ETH ExternalOrders aren't used\n if (order.onChainOrderType !== \"ExternalOrder\" && isEthOrder) {\n assert(\n order.orderHash && isHash(order.orderHash),\n \"order.orderHash is required\"\n );\n return withdrawAndCancelOrderMut.mutateAsync({\n order: order.order,\n orderHash: order.orderHash,\n orderId: order.id,\n onTxSent: ({ chainId, transactionHash }) => {\n eventCallbacks.onTxSent?.({\n chainId,\n txHash: transactionHash,\n });\n },\n });\n }\n return cancelOrderMut.mutateAsync({\n orderIds: [order.id],\n });\n };\n\n const { forcedChainMatchesWalletChain } = useChainMatches(orderChainId);\n const { mutateAsync: switchChain } = useSwitchChainWithGuard();\n\n const {\n mutateAsync,\n reset: resetMutation,\n isPending,\n isError,\n isSuccess,\n error,\n data,\n } = useMutation<\n TransactionReceipt | CancelDeltaOrdersReturn,\n Error,\n void,\n TOnMutateResult\n >({\n mutationKey: [\n CANCEL_OR_WITHDRAW_AND_CANCEL_DELTA_ORDER_MUTATION_KEY,\n order?.id,\n ],\n mutationFn: cancelDeltaOrder,\n ...mutationOptions,\n onMutate: async (...args) => {\n assert(order, \"No order to cancel\");\n // guard against the user being on the wrong chain\n assert(orderChainId, \"orderChainId is required\");\n if (!forcedChainMatchesWalletChain) {\n await switchChain({\n chainId: orderChainId,\n });\n }\n const onMutateResult = await mutationOptions?.onMutate?.(...args);\n eventCallbacks.onMutate?.();\n return onMutateResult as TOnMutateResult; // TOnMutateResult=undefined if no onMutate callback is provided\n },\n onSuccess: (...args) => {\n mutationOptions?.onSuccess?.(...args);\n eventCallbacks.onSuccess?.(args[0]);\n },\n onError: (...args) => {\n mutationOptions?.onError?.(...args);\n eventCallbacks.onError?.(args[0]);\n cancelOrderMut.reset();\n withdrawAndCancelOrderMut.reset();\n },\n });\n\n const reset = () => {\n cancelOrderMut.reset();\n withdrawAndCancelOrderMut.reset();\n resetMutation();\n };\n\n const isOrderCancellable = useIsDeltaOrderCancellable({\n order,\n });\n\n let step: CancelOrderStepKey | undefined;\n if (isPending) {\n step = \"order-cancellation-approval\";\n if (withdrawAndCancelOrderMut.txHash) {\n step = \"order-cancellation-execution\";\n }\n } else if (isSuccess) {\n // cancelAndWithdraw tx mined or OrderCancel signed and POSTed to API\n step = \"order-cancellation-success\";\n } else if (isError) {\n step = \"order-cancellation-error\";\n }\n\n return {\n /* mutations */\n cancelDeltaOrder: mutateAsync,\n reset,\n /* cancel */\n cancelOrderResponse: cancelOrderMut.data,\n /* withdrawAndCancel */\n txHash: withdrawAndCancelOrderMut.txHash,\n receipt: withdrawAndCancelOrderMut.receipt,\n /* combined states */\n isEthOrder,\n isOrderCancellable: isOrderCancellable && !isSuccess,\n isPending,\n isError,\n isSuccess,\n error,\n result: data,\n step,\n };\n}\n\nexport function useIsCancellingOrWithdrawingDeltaOrder({\n orderId,\n}: {\n orderId?: string;\n}): boolean {\n return (\n useIsMutating({\n mutationKey: [\n CANCEL_OR_WITHDRAW_AND_CANCEL_DELTA_ORDER_MUTATION_KEY,\n orderId,\n ],\n }) > 0\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useCancelOrWithdrawAndCancelDeltaOrder.js","names":["useCancelDeltaOrders","CancelDeltaOrdersReturn","SupportedChainId","assert","DeltaAuction","MinViemClient","useIsMutating","useMutation","UseMutationOptions","useWithdrawAndCancelDeltaOrder","isHash","Address","TransactionReceipt","isETHaddress","LoggerInstance","useIsDeltaOrderCancellable","useChainMatches","useSwitchChainWithGuard","useCancelDeltaOrderEventCallbacks","CancelOrderStepKey","CancelOrWithdrawAndCancelDeltaOrderMutOptions","Omit","Error","TOnMutateResult","CancelOrWithdrawAndCancelDeltaOrderInput","order","chainId","account","client","logger","mutationOptions","UseCancelOrWithdrawAndCancelDeltaOrderReturn","cancelDeltaOrder","Promise","reset","cancelOrderResponse","txHash","receipt","isEthOrder","isOrderCancellable","isPending","isError","isSuccess","error","result","step","CANCEL_OR_WITHDRAW_AND_CANCEL_DELTA_ORDER_MUTATION_KEY","useCancelOrWithdrawAndCancelDeltaOrder","t0","$","_c","t1","srcToken","orderChainId","t2","cancelOrderMut","t3","withdrawAndCancelOrderMut","eventCallbacks","t4","onChainOrderType","orderHash","mutateAsync","orderId","id","onTxSent","t5","chainId_0","transactionHash","orderIds","forcedChainMatchesWalletChain","switchChain","t6","t7","t8","args","onMutateResult","onMutate","t9","args_0","onSuccess","t10","args_1","onError","mutationKey","mutationFn","resetMutation","data","t11","t12","t13","t14","useIsCancellingOrWithdrawingDeltaOrder"],"sources":["../../../../../../src/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.ts"],"sourcesContent":["import {\n useCancelDeltaOrders,\n type CancelDeltaOrdersReturn,\n} from \"./useCancelDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { assert } from \"ts-essentials\";\nimport type { DeltaAuction, MinViemClient } from \"@velora-dex/sdk\";\nimport {\n useIsMutating,\n useMutation,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { useWithdrawAndCancelDeltaOrder } from \"./useWithdrawAndCancelDeltaOrder\";\nimport { isHash, type Address, type TransactionReceipt } from \"viem\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { useIsDeltaOrderCancellable } from \"./useIsDeltaOrderCancellable\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useSwitchChainWithGuard } from \"@/hooks/useSwitchChainWithGuard\";\nimport { useCancelDeltaOrderEventCallbacks } from \"./useCancelDeltaOrdersEvents\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nexport type CancelOrWithdrawAndCancelDeltaOrderMutOptions<\n TOnMutateResult = undefined,\n> = Omit<\n UseMutationOptions<\n TransactionReceipt | CancelDeltaOrdersReturn,\n Error,\n void,\n TOnMutateResult\n >,\n \"mutationFn\" | \"mutationKey\"\n>;\n\ntype CancelOrWithdrawAndCancelDeltaOrderInput<TOnMutateResult = undefined> = {\n order?: DeltaAuction;\n chainId: SupportedChainId;\n account?: Address;\n client?: MinViemClient;\n logger?: LoggerInstance;\n mutationOptions?: CancelOrWithdrawAndCancelDeltaOrderMutOptions<TOnMutateResult>;\n};\n\ntype UseCancelOrWithdrawAndCancelDeltaOrderReturn = {\n cancelDeltaOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;\n reset: () => void;\n cancelOrderResponse?: CancelDeltaOrdersReturn;\n txHash?: string;\n receipt?: TransactionReceipt;\n isEthOrder: boolean;\n isOrderCancellable: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n result?: TransactionReceipt | CancelDeltaOrdersReturn;\n step?: CancelOrderStepKey;\n};\n\nconst CANCEL_OR_WITHDRAW_AND_CANCEL_DELTA_ORDER_MUTATION_KEY =\n \"cancelOrWithdrawAndCancelDeltaOrder\";\n\nexport function useCancelOrWithdrawAndCancelDeltaOrder<\n TOnMutateResult = undefined,\n>({\n order,\n chainId,\n account,\n client,\n logger,\n mutationOptions,\n}: CancelOrWithdrawAndCancelDeltaOrderInput<TOnMutateResult>): UseCancelOrWithdrawAndCancelDeltaOrderReturn {\n // ETH Orders are cancelled by calling Delta.withdrawAndCancel;\n // non-ETH orders are cancelled by posting a signed order cancellation typed data to the API;\n\n const isEthOrder = !!order && isETHaddress(order.order.srcToken);\n const orderChainId = order?.chainId as SupportedChainId | undefined;\n\n const cancelOrderMut = useCancelDeltaOrders({\n chainId,\n account,\n client,\n });\n\n const withdrawAndCancelOrderMut = useWithdrawAndCancelDeltaOrder({\n chainId,\n account,\n client,\n logger,\n });\n\n const eventCallbacks = useCancelDeltaOrderEventCallbacks(order);\n\n const cancelDeltaOrder = async () => {\n assert(order, \"No order to cancel\");\n cancelOrderMut.reset();\n withdrawAndCancelOrderMut.reset();\n\n // ETH ExternalOrders with signature=0x aren't supported\n if (order.onChainOrderType !== \"ExternalOrder\" && isEthOrder) {\n assert(\n order.orderHash && isHash(order.orderHash),\n \"order.orderHash is required\"\n );\n return withdrawAndCancelOrderMut.mutateAsync({\n order: order.order,\n orderHash: order.orderHash,\n orderId: order.id,\n onTxSent: ({ chainId, transactionHash }) => {\n eventCallbacks.onTxSent?.({\n chainId,\n txHash: transactionHash,\n });\n },\n });\n }\n return cancelOrderMut.mutateAsync({\n orderIds: [order.id],\n });\n };\n\n const { forcedChainMatchesWalletChain } = useChainMatches(orderChainId);\n const { mutateAsync: switchChain } = useSwitchChainWithGuard();\n\n const {\n mutateAsync,\n reset: resetMutation,\n isPending,\n isError,\n isSuccess,\n error,\n data,\n } = useMutation<\n TransactionReceipt | CancelDeltaOrdersReturn,\n Error,\n void,\n TOnMutateResult\n >({\n mutationKey: [\n CANCEL_OR_WITHDRAW_AND_CANCEL_DELTA_ORDER_MUTATION_KEY,\n order?.id,\n ],\n mutationFn: cancelDeltaOrder,\n ...mutationOptions,\n onMutate: async (...args) => {\n assert(order, \"No order to cancel\");\n // guard against the user being on the wrong chain\n assert(orderChainId, \"orderChainId is required\");\n if (!forcedChainMatchesWalletChain) {\n await switchChain({\n chainId: orderChainId,\n });\n }\n const onMutateResult = await mutationOptions?.onMutate?.(...args);\n eventCallbacks.onMutate?.();\n return onMutateResult as TOnMutateResult; // TOnMutateResult=undefined if no onMutate callback is provided\n },\n onSuccess: (...args) => {\n mutationOptions?.onSuccess?.(...args);\n eventCallbacks.onSuccess?.(args[0]);\n },\n onError: (...args) => {\n mutationOptions?.onError?.(...args);\n eventCallbacks.onError?.(args[0]);\n cancelOrderMut.reset();\n withdrawAndCancelOrderMut.reset();\n },\n });\n\n const reset = () => {\n cancelOrderMut.reset();\n withdrawAndCancelOrderMut.reset();\n resetMutation();\n };\n\n const isOrderCancellable = useIsDeltaOrderCancellable({\n order,\n });\n\n let step: CancelOrderStepKey | undefined;\n if (isPending) {\n step = \"order-cancellation-approval\";\n if (withdrawAndCancelOrderMut.txHash) {\n step = \"order-cancellation-execution\";\n }\n } else if (isSuccess) {\n // cancelAndWithdraw tx mined or OrderCancel signed and POSTed to API\n step = \"order-cancellation-success\";\n } else if (isError) {\n step = \"order-cancellation-error\";\n }\n\n return {\n /* mutations */\n cancelDeltaOrder: mutateAsync,\n reset,\n /* cancel */\n cancelOrderResponse: cancelOrderMut.data,\n /* withdrawAndCancel */\n txHash: withdrawAndCancelOrderMut.txHash,\n receipt: withdrawAndCancelOrderMut.receipt,\n /* combined states */\n isEthOrder,\n isOrderCancellable: isOrderCancellable && !isSuccess,\n isPending,\n isError,\n isSuccess,\n error,\n result: data,\n step,\n };\n}\n\nexport function useIsCancellingOrWithdrawingDeltaOrder({\n orderId,\n}: {\n orderId?: string;\n}): boolean {\n return (\n useIsMutating({\n mutationKey: [\n CANCEL_OR_WITHDRAW_AND_CANCEL_DELTA_ORDER_MUTATION_KEY,\n orderId,\n ],\n }) > 0\n );\n}\n"],"mappings":"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"}
|