@velora-dex/widget 0.6.1-dev.2 → 0.6.1-dev.4
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/Dialog/SelectTokenDialog/SelectTokenDialog.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Duration/Duration.d.ts.map +1 -1
- package/dist/components/widget/Duration/Duration.js +10 -17
- package/dist/components/widget/Duration/Duration.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +10 -10
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- 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 +109 -102
- package/dist/components/widget/Twap/CustomDurationDrawer.js.map +1 -1
- package/dist/components/widget/Twap/OrderDuration.js +2 -2
- package/dist/components/widget/Twap/OrderDuration.js.map +1 -1
- package/dist/core/Warnings.js +2 -2
- 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/core/index.d.ts.map +1 -1
- package/dist/core/index.js +0 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts.map +1 -1
- package/dist/core/inputs/state/common.js +28 -28
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/twap/state/constants.d.ts +2 -2
- package/dist/core/twap/state/constants.d.ts.map +1 -1
- package/dist/core/twap/state/constants.js.map +1 -1
- package/dist/core/twap/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/twap/state/selectedTokenActionsAtom.js +1 -1
- package/dist/core/twap/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/twap/state/twapParamsAtom.js +2 -2
- package/dist/core/twap/state/twapParamsAtom.js.map +1 -1
- package/dist/core/twap/useTwapTokenToInputProps.d.ts.map +1 -1
- package/dist/core/twap/useTwapTokenToInputProps.js +15 -15
- package/dist/core/twap/useTwapTokenToInputProps.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +2 -2
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { swapTokenFromAtom as n, swapTokenToAtom as r } from "./selectedTokenAto
|
|
|
4
4
|
import { payInputAmountAtom as i, payInputAmountWeiAtom as a, receiveInputAmountAtom as o, receiveInputAmountWeiAtom as s } from "./inputAmountAtom.js";
|
|
5
5
|
import { swapSideAtom as c } from "../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js";
|
|
6
6
|
import { limitTokenFromAtom as l, limitTokenToAtom as u } from "../../limit/state/limitTokenAtoms.js";
|
|
7
|
-
import { limitPayInputAmountAtom as d, limitPayInputAmountWeiAtom as
|
|
7
|
+
import { limitPayInputAmountAtom as d, limitPayInputAmountWeiAtom as f, limitReceiveInputAmountAtom as ee, limitReceiveInputAmountWeiAtom as te } from "../../limit/state/limitInputAmountAtom.js";
|
|
8
8
|
import { timeUnitAtom as p } from "../../limit/state/deadlineAtom.js";
|
|
9
9
|
import { timeUnitAtom as m } from "../../otc/state/deadlineAtom.js";
|
|
10
10
|
import { otcTokenFromAtom as h, otcTokenToAtom as g, syncOtcTokensAfterChainSwitch as _ } from "../../otc/state/selectedTokenAtom.js";
|
|
@@ -17,8 +17,8 @@ import { twapPayInputAmountAtom as D, twapPayInputAmountWeiAtom as O, twapReceiv
|
|
|
17
17
|
import { isCrossChainAtom as j } from "../../state/isCrosschainAtom.js";
|
|
18
18
|
import { isLimitCrossChainAtom as M } from "../../limit/state/isCrosschainAtom.js";
|
|
19
19
|
import { selectSwapTokenFromAtom as N, selectSwapTokenToAtom as P, syncSwapTokensAfterChainSwitch as F } from "./selectedTokenActionsAtom.js";
|
|
20
|
-
import { syncLimitTokensAfterChainSwitch as
|
|
21
|
-
import { selectTwapTokenFromAtom as
|
|
20
|
+
import { syncLimitTokensAfterChainSwitch as I } from "../../limit/state/selectedTokenAtom.js";
|
|
21
|
+
import { selectTwapTokenFromAtom as ne, selectTwapTokenToAtom as L, syncTwapTokensAfterChainSwitch as R } from "../../twap/state/selectedTokenActionsAtom.js";
|
|
22
22
|
import { setLimitPayAmountAtomFromProps as z, setLimitReceiveAmountAtomFromProps as B } from "../../limit/state/limitInputActionsAtom.js";
|
|
23
23
|
import { selectLimitTokenFromAtom as V, selectLimitTokenToAtom as H } from "../../limit/state/selectedTokenActionsAtom.js";
|
|
24
24
|
import { setOtcPayAmountAtomFromProps as U, setOtcReceiveAmountAtomFromProps as W } from "../../otc/state/otcInputActionsAtom.js";
|
|
@@ -27,13 +27,13 @@ import { c as q } from "react-compiler-runtime";
|
|
|
27
27
|
import { atom as J } from "jotai";
|
|
28
28
|
//#region src/core/inputs/state/common.ts
|
|
29
29
|
function Y(e) {
|
|
30
|
-
F(e),
|
|
30
|
+
F(e), I(e), _(e), R(e);
|
|
31
31
|
}
|
|
32
|
-
var X = {
|
|
33
|
-
sellAtom: J(
|
|
34
|
-
falseAtom: J(
|
|
35
|
-
currentInputAtom: J("from",
|
|
36
|
-
},
|
|
32
|
+
var X = () => void 0, Z = {
|
|
33
|
+
sellAtom: J("SELL", X),
|
|
34
|
+
falseAtom: J(!1, X),
|
|
35
|
+
currentInputAtom: J("from", X)
|
|
36
|
+
}, re = {
|
|
37
37
|
swap: {
|
|
38
38
|
read: i,
|
|
39
39
|
write: i
|
|
@@ -50,13 +50,13 @@ var X = {
|
|
|
50
50
|
read: D,
|
|
51
51
|
write: D
|
|
52
52
|
}
|
|
53
|
-
},
|
|
53
|
+
}, ie = {
|
|
54
54
|
swap: {
|
|
55
55
|
read: o,
|
|
56
56
|
write: o
|
|
57
57
|
},
|
|
58
58
|
limit: {
|
|
59
|
-
read:
|
|
59
|
+
read: ee,
|
|
60
60
|
write: B
|
|
61
61
|
},
|
|
62
62
|
otc: {
|
|
@@ -67,17 +67,17 @@ var X = {
|
|
|
67
67
|
read: k,
|
|
68
68
|
write: k
|
|
69
69
|
}
|
|
70
|
-
},
|
|
70
|
+
}, ae = {
|
|
71
71
|
limit: p,
|
|
72
72
|
otc: m
|
|
73
|
-
},
|
|
73
|
+
}, oe = {
|
|
74
74
|
swap: a,
|
|
75
|
-
limit:
|
|
75
|
+
limit: f,
|
|
76
76
|
otc: y,
|
|
77
77
|
twap: O
|
|
78
|
-
},
|
|
78
|
+
}, se = {
|
|
79
79
|
swap: s,
|
|
80
|
-
limit:
|
|
80
|
+
limit: te,
|
|
81
81
|
otc: x,
|
|
82
82
|
twap: A
|
|
83
83
|
}, Q = {
|
|
@@ -94,14 +94,14 @@ var X = {
|
|
|
94
94
|
otc: {
|
|
95
95
|
tokenFromAtom: h,
|
|
96
96
|
tokenToAtom: g,
|
|
97
|
-
isCrossChainAtom:
|
|
97
|
+
isCrossChainAtom: Z.falseAtom
|
|
98
98
|
},
|
|
99
99
|
twap: {
|
|
100
100
|
tokenFromAtom: S,
|
|
101
101
|
tokenToAtom: C,
|
|
102
102
|
isCrossChainAtom: T
|
|
103
103
|
}
|
|
104
|
-
},
|
|
104
|
+
}, ce = {
|
|
105
105
|
swap: {
|
|
106
106
|
tokenFromAtom: N,
|
|
107
107
|
tokenToAtom: P
|
|
@@ -115,23 +115,23 @@ var X = {
|
|
|
115
115
|
tokenToAtom: K
|
|
116
116
|
},
|
|
117
117
|
twap: {
|
|
118
|
-
tokenFromAtom:
|
|
118
|
+
tokenFromAtom: ne,
|
|
119
119
|
tokenToAtom: L
|
|
120
120
|
}
|
|
121
|
-
},
|
|
121
|
+
}, le = {
|
|
122
122
|
swap: c,
|
|
123
123
|
twap: E,
|
|
124
|
-
limit:
|
|
125
|
-
otc:
|
|
126
|
-
},
|
|
124
|
+
limit: Z.sellAtom,
|
|
125
|
+
otc: Z.sellAtom
|
|
126
|
+
}, $ = {
|
|
127
127
|
swap: t,
|
|
128
128
|
twap: w,
|
|
129
|
-
limit:
|
|
130
|
-
otc:
|
|
131
|
-
},
|
|
129
|
+
limit: Z.currentInputAtom,
|
|
130
|
+
otc: Z.currentInputAtom
|
|
131
|
+
}, ue = {
|
|
132
132
|
SELL: "from",
|
|
133
133
|
BUY: "to"
|
|
134
|
-
},
|
|
134
|
+
}, de = (t) => {
|
|
135
135
|
let n = q(3), { tokenFromAtom: r, tokenToAtom: i } = Q[t], a = e(r), o = e(i), s;
|
|
136
136
|
return n[0] !== a || n[1] !== o ? (s = {
|
|
137
137
|
tokenFrom: a,
|
|
@@ -139,6 +139,6 @@ var X = {
|
|
|
139
139
|
}, n[0] = a, n[1] = o, n[2] = s) : s = n[2], s;
|
|
140
140
|
};
|
|
141
141
|
//#endregion
|
|
142
|
-
export {
|
|
142
|
+
export { ue as sideToInputType, Y as syncTokensAfterChainSwitch, $ as tradeModeToCurrentInputAtom, re as tradeModeToPayAmountUnitAtom, oe as tradeModeToPayAmountWeiAtom, ie as tradeModeToReceiveAmountUnitAtom, se as tradeModeToReceiveAmountWeiAtom, ce as tradeModeToSetTokenAtoms, le as tradeModeToSideAtom, ae as tradeModeToTimeUnitAtom, Q as tradeModeToTokenAtoms, de as useWidgetTokens };
|
|
143
143
|
|
|
144
144
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":["selectSwapTokenFromAtom","selectSwapTokenToAtom","syncSwapTokensAfterChainSwitch","swapTokenFromAtom","swapTokenToAtom","syncLimitTokensAfterChainSwitch","limitTokenFromAtom","limitTokenToAtom","otcTokenFromAtom","otcTokenToAtom","syncOtcTokensAfterChainSwitch","twapTokenFromAtom","twapTokenToAtom","syncTwapTokensAfterChainSwitch","isTwapCrossChainAtom","TradeMode","SupportedChainId","payInputAmountAtom","payInputAmountWeiAtom","receiveInputAmountAtom","receiveInputAmountWeiAtom","limitPayInputAmountAtom","limitPayInputAmountWeiAtom","limitReceiveInputAmountAtom","limitReceiveInputAmountWeiAtom","otcPayInputAmountAtom","otcPayInputAmountWeiAtom","otcReceiveInputAmountAtom","otcReceiveInputAmountWeiAtom","twapPayInputAmountAtom","twapPayInputAmountWeiAtom","twapReceiveInputAmountAtom","twapReceiveInputAmountWeiAtom","atom","PrimitiveAtom","SetStateAction","useAtomValue","selectLimitTokenFromAtom","selectLimitTokenToAtom","selectOtcTokenFromAtom","selectOtcTokenToAtom","selectTwapTokenFromAtom","selectTwapTokenToAtom","setLimitPayAmountAtomFromProps","setLimitReceiveAmountAtomFromProps","setOtcPayAmountAtomFromProps","setOtcReceiveAmountAtomFromProps","limitDeadline","otcDeadline","SwapSideUnion","isCrossChainAtom","isSwapCrossChainAtom","isLimitCrossChainAtom","swapSideAtom","twapSideAtom","currentTwapInputAtom","currentSwapInputAtom","syncTokensAfterChainSwitch","chainId","placeholderAtoms","sellAtom","const","falseAtom","currentInputAtom","tradeModeToPayAmountUnitAtom","Record","read","Pick","write","swap","limit","otc","twap","tradeModeToReceiveAmountUnitAtom","tradeModeToTimeUnitAtom","timeUnitAtom","tradeModeToPayAmountWeiAtom","tradeModeToReceiveAmountWeiAtom","tradeModeToTokenAtoms","tokenFromAtom","tokenToAtom","tradeModeToSetTokenAtoms","tradeModeToSideAtom","tradeModeToCurrentInputAtom","sideToInputType","SELL","BUY","useWidgetTokens","tradeMode","$","_c","tokenFrom","tokenTo","t0"],"sources":["../../../../src/core/inputs/state/common.ts"],"sourcesContent":["import {\n selectSwapTokenFromAtom,\n selectSwapTokenToAtom,\n syncSwapTokensAfterChainSwitch,\n} from \"./selectedTokenActionsAtom\";\nimport { swapTokenFromAtom, swapTokenToAtom } from \"./selectedTokenAtom\";\nimport { syncLimitTokensAfterChainSwitch } from \"@/core/limit/state/selectedTokenAtom\";\nimport {\n limitTokenFromAtom,\n limitTokenToAtom,\n} from \"@/core/limit/state/limitTokenAtoms\";\nimport {\n otcTokenFromAtom,\n otcTokenToAtom,\n syncOtcTokensAfterChainSwitch,\n} from \"@/core/otc/state/selectedTokenAtom\";\nimport {\n twapTokenFromAtom,\n twapTokenToAtom,\n} from \"@/core/twap/state/twapTokenAtoms\";\nimport { syncTwapTokensAfterChainSwitch } from \"@/core/twap/state/selectedTokenActionsAtom\";\nimport { isTwapCrossChainAtom } from \"@/core/twap/state/isCrosschainAtom\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n payInputAmountAtom,\n payInputAmountWeiAtom,\n receiveInputAmountAtom,\n receiveInputAmountWeiAtom,\n} from \"./inputAmountAtom\";\nimport {\n limitPayInputAmountAtom,\n limitPayInputAmountWeiAtom,\n limitReceiveInputAmountAtom,\n limitReceiveInputAmountWeiAtom,\n} from \"@/core/limit/state/limitInputAmountAtom\";\nimport {\n otcPayInputAmountAtom,\n otcPayInputAmountWeiAtom,\n otcReceiveInputAmountAtom,\n otcReceiveInputAmountWeiAtom,\n} from \"@/core/otc/state/otcInputAmountAtom\";\nimport {\n twapPayInputAmountAtom,\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"@/core/twap/state/twapInputAmountAtom\";\nimport { atom, type PrimitiveAtom, type SetStateAction } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n selectLimitTokenFromAtom,\n selectLimitTokenToAtom,\n} from \"@/core/limit/state/selectedTokenActionsAtom\";\nimport {\n selectOtcTokenFromAtom,\n selectOtcTokenToAtom,\n} from \"@/core/otc/state/selectedTokenActionsAtom\";\nimport {\n selectTwapTokenFromAtom,\n selectTwapTokenToAtom,\n} from \"@/core/twap/state/selectedTokenActionsAtom\";\nimport {\n setLimitPayAmountAtomFromProps,\n setLimitReceiveAmountAtomFromProps,\n} from \"@/core/limit/state/limitInputActionsAtom\";\nimport {\n setOtcPayAmountAtomFromProps,\n setOtcReceiveAmountAtomFromProps,\n} from \"@/core/otc/state/otcInputActionsAtom\";\nimport * as limitDeadline from \"@/core/limit/state/deadlineAtom\";\nimport * as otcDeadline from \"@/core/otc/state/deadlineAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { isCrossChainAtom as isSwapCrossChainAtom } from \"@/core/state/isCrosschainAtom\";\nimport { isLimitCrossChainAtom } from \"@/core/limit/state/isCrosschainAtom\";\nimport { swapSideAtom } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { twapSideAtom } from \"@/core/twap/state/twapSideAtom\";\nimport { currentTwapInputAtom } from \"@/core/twap/state/currentTwapInputAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\n\nexport function syncTokensAfterChainSwitch(chainId: SupportedChainId) {\n syncSwapTokensAfterChainSwitch(chainId);\n syncLimitTokensAfterChainSwitch(chainId);\n syncOtcTokensAfterChainSwitch(chainId);\n syncTwapTokensAfterChainSwitch(chainId);\n}\n\nconst placeholderAtoms = {\n sellAtom: atom(() => \"SELL\" as const satisfies SwapSideUnion),\n falseAtom: atom(() => false),\n currentInputAtom: atom<\"from\" | \"to\", [SetStateAction<\"from\" | \"to\">], void>(\n \"from\",\n () => void 0\n ),\n};\n\nexport const tradeModeToPayAmountUnitAtom: Record<\n TradeMode,\n {\n read: Pick<typeof payInputAmountAtom, \"read\">;\n write: Pick<typeof setLimitPayAmountAtomFromProps, \"write\"> &\n Pick<PrimitiveAtom<string | null>, \"read\">;\n }\n> = {\n swap: { read: payInputAmountAtom, write: payInputAmountAtom },\n limit: {\n read: limitPayInputAmountAtom,\n write: setLimitPayAmountAtomFromProps,\n },\n otc: { read: otcPayInputAmountAtom, write: setOtcPayAmountAtomFromProps },\n twap: { read: twapPayInputAmountAtom, write: twapPayInputAmountAtom },\n};\n\nexport const tradeModeToReceiveAmountUnitAtom: Record<\n TradeMode,\n {\n read: Pick<typeof receiveInputAmountAtom, \"read\">;\n write: Pick<typeof setLimitReceiveAmountAtomFromProps, \"write\"> &\n Pick<PrimitiveAtom<string | null>, \"read\">;\n }\n> = {\n swap: { read: receiveInputAmountAtom, write: receiveInputAmountAtom },\n limit: {\n read: limitReceiveInputAmountAtom,\n write: setLimitReceiveAmountAtomFromProps,\n },\n otc: {\n read: otcReceiveInputAmountAtom,\n write: setOtcReceiveAmountAtomFromProps,\n },\n twap: {\n read: twapReceiveInputAmountAtom,\n write: twapReceiveInputAmountAtom,\n },\n};\n\nexport const tradeModeToTimeUnitAtom: Record<\n \"limit\" | \"otc\",\n typeof limitDeadline.timeUnitAtom\n> = {\n limit: limitDeadline.timeUnitAtom,\n otc: otcDeadline.timeUnitAtom,\n};\n\nexport const tradeModeToPayAmountWeiAtom: Record<\n TradeMode,\n typeof payInputAmountWeiAtom\n> = {\n swap: payInputAmountWeiAtom,\n limit: limitPayInputAmountWeiAtom,\n otc: otcPayInputAmountWeiAtom,\n twap: twapPayInputAmountWeiAtom,\n};\n\nexport const tradeModeToReceiveAmountWeiAtom: Record<\n TradeMode,\n typeof limitReceiveInputAmountWeiAtom\n> = {\n swap: receiveInputAmountWeiAtom,\n limit: limitReceiveInputAmountWeiAtom,\n otc: otcReceiveInputAmountWeiAtom,\n twap: twapReceiveInputAmountWeiAtom,\n};\n\nexport const tradeModeToTokenAtoms: Record<\n TradeMode,\n {\n tokenFromAtom: typeof swapTokenFromAtom;\n tokenToAtom: typeof swapTokenToAtom;\n isCrossChainAtom: typeof isSwapCrossChainAtom;\n }\n> = {\n swap: {\n tokenFromAtom: swapTokenFromAtom,\n tokenToAtom: swapTokenToAtom,\n isCrossChainAtom: isSwapCrossChainAtom,\n },\n limit: {\n tokenFromAtom: limitTokenFromAtom,\n tokenToAtom: limitTokenToAtom,\n isCrossChainAtom: isLimitCrossChainAtom,\n },\n otc: {\n tokenFromAtom: otcTokenFromAtom,\n tokenToAtom: otcTokenToAtom,\n // unused const atom to appease TS\n isCrossChainAtom: placeholderAtoms.falseAtom, // always false\n },\n twap: {\n tokenFromAtom: twapTokenFromAtom,\n tokenToAtom: twapTokenToAtom,\n isCrossChainAtom: isTwapCrossChainAtom,\n },\n};\n\nexport const tradeModeToSetTokenAtoms: Record<\n TradeMode,\n {\n tokenFromAtom: typeof selectSwapTokenFromAtom;\n tokenToAtom: typeof selectSwapTokenToAtom;\n }\n> = {\n swap: {\n tokenFromAtom: selectSwapTokenFromAtom,\n tokenToAtom: selectSwapTokenToAtom,\n },\n limit: {\n tokenFromAtom: selectLimitTokenFromAtom,\n tokenToAtom: selectLimitTokenToAtom,\n },\n otc: {\n tokenFromAtom: selectOtcTokenFromAtom,\n tokenToAtom: selectOtcTokenToAtom,\n },\n twap: {\n tokenFromAtom: selectTwapTokenFromAtom,\n tokenToAtom: selectTwapTokenToAtom,\n },\n};\n\nexport const tradeModeToSideAtom: Record<TradeMode, typeof swapSideAtom> = {\n swap: swapSideAtom,\n twap: twapSideAtom,\n limit: placeholderAtoms.sellAtom,\n otc: placeholderAtoms.sellAtom,\n};\n\nexport const tradeModeToCurrentInputAtom: Record<\n TradeMode,\n typeof currentSwapInputAtom\n> = {\n swap: currentSwapInputAtom,\n twap: currentTwapInputAtom,\n limit: placeholderAtoms.currentInputAtom,\n otc: placeholderAtoms.currentInputAtom,\n};\n\nexport const sideToInputType = {\n SELL: \"from\",\n BUY: \"to\",\n} as const satisfies Record<SwapSideUnion, \"from\" | \"to\">;\n\nexport const useWidgetTokens = (tradeMode: TradeMode) => {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const tokenFrom = useAtomValue(tokenFromAtom);\n const tokenTo = useAtomValue(tokenToAtom);\n return { tokenFrom, tokenTo };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,SAAgByD,EAA2BC,GAA2B;AAIpE7C,CAHAX,EAA+BwD,EAAQ,EACvCrD,GAAgCqD,EAAQ,EACxChD,EAA8BgD,EAAQ,EACtC7C,EAA+B6C,EAAQ;;AAGzC,IAAMC,IAAmB;CACvBC,UAAU3B,QAAW,OAAwC;CAC7D6B,WAAW7B,QAAW,GAAM;CAC5B8B,kBAAkB9B,EAChB,cACM,KAAK,EACb;CACD,EAEY+B,IAOT;CACFK,MAAM;EAAEH,MAAMjD;EAAoBmD,OAAOnD;EAAoB;CAC7DqD,OAAO;EACLJ,MAAM7C;EACN+C,OAAOzB;EACR;CACD4B,KAAK;EAAEL,MAAMzC;EAAuB2C,OAAOvB;EAA8B;CACzE2B,MAAM;EAAEN,MAAMrC;EAAwBuC,OAAOvC;EAAuB;CACrE,EAEY4C,KAOT;CACFJ,MAAM;EAAEH,MAAM/C;EAAwBiD,OAAOjD;EAAwB;CACrEmD,OAAO;EACLJ,MAAM3C;EACN6C,OAAOxB;EACR;CACD2B,KAAK;EACHL,MAAMvC;EACNyC,OAAOtB;EACR;CACD0B,MAAM;EACJN,MAAMnC;EACNqC,OAAOrC;EACT;CACD,EAEY2C,KAGT;CACFJ,OAAOvB;CACPwB,KAAKvB;CACN,EAEY4B,KAGT;CACFP,MAAMnD;CACNoD,OAAOhD;CACPiD,KAAK7C;CACL8C,MAAM1C;CACP,EAEY+C,KAGT;CACFR,MAAMjD;CACNkD,OAAO9C;CACP+C,KAAK3C;CACL4C,MAAMxC;CACP,EAEY8C,IAOT;CACFT,MAAM;EACJU,eAAe5E;EACf6E,aAAa5E;EACK+C;EACnB;CACDmB,OAAO;EACLS,eAAezE;EACf0E,aAAazE;EACb2C,kBAAkBE;EACnB;CACDmB,KAAK;EACHQ,eAAevE;EACfwE,aAAavE;EAEbyC,kBAAkBS,EAAiBG;EACpC;CACDU,MAAM;EACJO,eAAepE;EACfqE,aAAapE;EACbsC,kBAAkBpC;EACpB;CACD,EAEYmE,IAMT;CACFZ,MAAM;EACJU,eAAe/E;EACfgF,aAAa/E;EACd;CACDqE,OAAO;EACLS,eAAe1C;EACf2C,aAAa1C;EACd;CACDiC,KAAK;EACHQ,eAAexC;EACfyC,aAAaxC;EACd;CACDgC,MAAM;EACJO,eAAetC;EACfuC,aAAatC;EACf;CACD,EAEYwC,KAA8D;CACzEb,MAAMhB;CACNmB,MAAMlB;CACNgB,OAAOX,EAAiBC;CACxBW,KAAKZ,EAAiBC;CACvB,EAEYuB,KAGT;CACFd,MAAMb;CACNgB,MAAMjB;CACNe,OAAOX,EAAiBI;CACxBQ,KAAKZ,EAAiBI;CACvB,EAEYqB,KAAkB;CAC7BC,MAAM;CACNC,KAAK;CACN,EAEYC,MAAkBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAC7B,EAAAX,kBAAAC,mBAAuCF,EAAsBU,IAC7DG,IAAkBvD,EAAa2C,EAAc,EAC7Ca,IAAgBxD,EAAa4C,EAAY,EAACa;AACb,QADaJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KACnCC,IAAA;EAAAF;EAAAC;EAAsB,EAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,KAAAA,IAAAJ,EAAA,IAAtBI"}
|
|
1
|
+
{"version":3,"file":"common.js","names":["selectSwapTokenFromAtom","selectSwapTokenToAtom","syncSwapTokensAfterChainSwitch","swapTokenFromAtom","swapTokenToAtom","syncLimitTokensAfterChainSwitch","limitTokenFromAtom","limitTokenToAtom","otcTokenFromAtom","otcTokenToAtom","syncOtcTokensAfterChainSwitch","twapTokenFromAtom","twapTokenToAtom","syncTwapTokensAfterChainSwitch","isTwapCrossChainAtom","TradeMode","SupportedChainId","payInputAmountAtom","payInputAmountWeiAtom","receiveInputAmountAtom","receiveInputAmountWeiAtom","limitPayInputAmountAtom","limitPayInputAmountWeiAtom","limitReceiveInputAmountAtom","limitReceiveInputAmountWeiAtom","otcPayInputAmountAtom","otcPayInputAmountWeiAtom","otcReceiveInputAmountAtom","otcReceiveInputAmountWeiAtom","twapPayInputAmountAtom","twapPayInputAmountWeiAtom","twapReceiveInputAmountAtom","twapReceiveInputAmountWeiAtom","atom","PrimitiveAtom","SetStateAction","useAtomValue","selectLimitTokenFromAtom","selectLimitTokenToAtom","selectOtcTokenFromAtom","selectOtcTokenToAtom","selectTwapTokenFromAtom","selectTwapTokenToAtom","setLimitPayAmountAtomFromProps","setLimitReceiveAmountAtomFromProps","setOtcPayAmountAtomFromProps","setOtcReceiveAmountAtomFromProps","limitDeadline","otcDeadline","SwapSideUnion","isCrossChainAtom","isSwapCrossChainAtom","isLimitCrossChainAtom","swapSideAtom","twapSideAtom","currentTwapInputAtom","currentSwapInputAtom","syncTokensAfterChainSwitch","chainId","noop","placeholderAtoms","sellAtom","const","falseAtom","currentInputAtom","tradeModeToPayAmountUnitAtom","Record","read","Pick","write","swap","limit","otc","twap","tradeModeToReceiveAmountUnitAtom","tradeModeToTimeUnitAtom","timeUnitAtom","tradeModeToPayAmountWeiAtom","tradeModeToReceiveAmountWeiAtom","tradeModeToTokenAtoms","tokenFromAtom","tokenToAtom","tradeModeToSetTokenAtoms","tradeModeToSideAtom","tradeModeToCurrentInputAtom","sideToInputType","SELL","BUY","useWidgetTokens","tradeMode","$","_c","tokenFrom","tokenTo","t0"],"sources":["../../../../src/core/inputs/state/common.ts"],"sourcesContent":["import {\n selectSwapTokenFromAtom,\n selectSwapTokenToAtom,\n syncSwapTokensAfterChainSwitch,\n} from \"./selectedTokenActionsAtom\";\nimport { swapTokenFromAtom, swapTokenToAtom } from \"./selectedTokenAtom\";\nimport { syncLimitTokensAfterChainSwitch } from \"@/core/limit/state/selectedTokenAtom\";\nimport {\n limitTokenFromAtom,\n limitTokenToAtom,\n} from \"@/core/limit/state/limitTokenAtoms\";\nimport {\n otcTokenFromAtom,\n otcTokenToAtom,\n syncOtcTokensAfterChainSwitch,\n} from \"@/core/otc/state/selectedTokenAtom\";\nimport {\n twapTokenFromAtom,\n twapTokenToAtom,\n} from \"@/core/twap/state/twapTokenAtoms\";\nimport { syncTwapTokensAfterChainSwitch } from \"@/core/twap/state/selectedTokenActionsAtom\";\nimport { isTwapCrossChainAtom } from \"@/core/twap/state/isCrosschainAtom\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n payInputAmountAtom,\n payInputAmountWeiAtom,\n receiveInputAmountAtom,\n receiveInputAmountWeiAtom,\n} from \"./inputAmountAtom\";\nimport {\n limitPayInputAmountAtom,\n limitPayInputAmountWeiAtom,\n limitReceiveInputAmountAtom,\n limitReceiveInputAmountWeiAtom,\n} from \"@/core/limit/state/limitInputAmountAtom\";\nimport {\n otcPayInputAmountAtom,\n otcPayInputAmountWeiAtom,\n otcReceiveInputAmountAtom,\n otcReceiveInputAmountWeiAtom,\n} from \"@/core/otc/state/otcInputAmountAtom\";\nimport {\n twapPayInputAmountAtom,\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"@/core/twap/state/twapInputAmountAtom\";\nimport { atom, type PrimitiveAtom, type SetStateAction } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n selectLimitTokenFromAtom,\n selectLimitTokenToAtom,\n} from \"@/core/limit/state/selectedTokenActionsAtom\";\nimport {\n selectOtcTokenFromAtom,\n selectOtcTokenToAtom,\n} from \"@/core/otc/state/selectedTokenActionsAtom\";\nimport {\n selectTwapTokenFromAtom,\n selectTwapTokenToAtom,\n} from \"@/core/twap/state/selectedTokenActionsAtom\";\nimport {\n setLimitPayAmountAtomFromProps,\n setLimitReceiveAmountAtomFromProps,\n} from \"@/core/limit/state/limitInputActionsAtom\";\nimport {\n setOtcPayAmountAtomFromProps,\n setOtcReceiveAmountAtomFromProps,\n} from \"@/core/otc/state/otcInputActionsAtom\";\nimport * as limitDeadline from \"@/core/limit/state/deadlineAtom\";\nimport * as otcDeadline from \"@/core/otc/state/deadlineAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { isCrossChainAtom as isSwapCrossChainAtom } from \"@/core/state/isCrosschainAtom\";\nimport { isLimitCrossChainAtom } from \"@/core/limit/state/isCrosschainAtom\";\nimport { swapSideAtom } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { twapSideAtom } from \"@/core/twap/state/twapSideAtom\";\nimport { currentTwapInputAtom } from \"@/core/twap/state/currentTwapInputAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\n\nexport function syncTokensAfterChainSwitch(chainId: SupportedChainId) {\n syncSwapTokensAfterChainSwitch(chainId);\n syncLimitTokensAfterChainSwitch(chainId);\n syncOtcTokensAfterChainSwitch(chainId);\n syncTwapTokensAfterChainSwitch(chainId);\n}\n\nconst noop = () => void 0;\nconst placeholderAtoms = {\n sellAtom: atom(\"SELL\" as const satisfies SwapSideUnion, noop),\n falseAtom: atom(false, noop),\n currentInputAtom: atom<\"from\" | \"to\", [SetStateAction<\"from\" | \"to\">], void>(\n \"from\",\n noop\n ),\n};\n\nexport const tradeModeToPayAmountUnitAtom: Record<\n TradeMode,\n {\n read: Pick<typeof payInputAmountAtom, \"read\">;\n write: Pick<typeof setLimitPayAmountAtomFromProps, \"write\"> &\n Pick<PrimitiveAtom<string | null>, \"read\">;\n }\n> = {\n swap: { read: payInputAmountAtom, write: payInputAmountAtom },\n limit: {\n read: limitPayInputAmountAtom,\n write: setLimitPayAmountAtomFromProps,\n },\n otc: { read: otcPayInputAmountAtom, write: setOtcPayAmountAtomFromProps },\n twap: { read: twapPayInputAmountAtom, write: twapPayInputAmountAtom },\n};\n\nexport const tradeModeToReceiveAmountUnitAtom: Record<\n TradeMode,\n {\n read: Pick<typeof receiveInputAmountAtom, \"read\">;\n write: Pick<typeof setLimitReceiveAmountAtomFromProps, \"write\"> &\n Pick<PrimitiveAtom<string | null>, \"read\">;\n }\n> = {\n swap: { read: receiveInputAmountAtom, write: receiveInputAmountAtom },\n limit: {\n read: limitReceiveInputAmountAtom,\n write: setLimitReceiveAmountAtomFromProps,\n },\n otc: {\n read: otcReceiveInputAmountAtom,\n write: setOtcReceiveAmountAtomFromProps,\n },\n twap: {\n read: twapReceiveInputAmountAtom,\n write: twapReceiveInputAmountAtom,\n },\n};\n\nexport const tradeModeToTimeUnitAtom: Record<\n \"limit\" | \"otc\",\n typeof limitDeadline.timeUnitAtom\n> = {\n limit: limitDeadline.timeUnitAtom,\n otc: otcDeadline.timeUnitAtom,\n};\n\nexport const tradeModeToPayAmountWeiAtom: Record<\n TradeMode,\n typeof payInputAmountWeiAtom\n> = {\n swap: payInputAmountWeiAtom,\n limit: limitPayInputAmountWeiAtom,\n otc: otcPayInputAmountWeiAtom,\n twap: twapPayInputAmountWeiAtom,\n};\n\nexport const tradeModeToReceiveAmountWeiAtom: Record<\n TradeMode,\n typeof limitReceiveInputAmountWeiAtom\n> = {\n swap: receiveInputAmountWeiAtom,\n limit: limitReceiveInputAmountWeiAtom,\n otc: otcReceiveInputAmountWeiAtom,\n twap: twapReceiveInputAmountWeiAtom,\n};\n\nexport const tradeModeToTokenAtoms: Record<\n TradeMode,\n {\n tokenFromAtom: typeof swapTokenFromAtom;\n tokenToAtom: typeof swapTokenToAtom;\n isCrossChainAtom: typeof isSwapCrossChainAtom;\n }\n> = {\n swap: {\n tokenFromAtom: swapTokenFromAtom,\n tokenToAtom: swapTokenToAtom,\n isCrossChainAtom: isSwapCrossChainAtom,\n },\n limit: {\n tokenFromAtom: limitTokenFromAtom,\n tokenToAtom: limitTokenToAtom,\n isCrossChainAtom: isLimitCrossChainAtom,\n },\n otc: {\n tokenFromAtom: otcTokenFromAtom,\n tokenToAtom: otcTokenToAtom,\n // unused const atom to appease TS\n isCrossChainAtom: placeholderAtoms.falseAtom, // always false\n },\n twap: {\n tokenFromAtom: twapTokenFromAtom,\n tokenToAtom: twapTokenToAtom,\n isCrossChainAtom: isTwapCrossChainAtom,\n },\n};\n\nexport const tradeModeToSetTokenAtoms: Record<\n TradeMode,\n {\n tokenFromAtom: typeof selectSwapTokenFromAtom;\n tokenToAtom: typeof selectSwapTokenToAtom;\n }\n> = {\n swap: {\n tokenFromAtom: selectSwapTokenFromAtom,\n tokenToAtom: selectSwapTokenToAtom,\n },\n limit: {\n tokenFromAtom: selectLimitTokenFromAtom,\n tokenToAtom: selectLimitTokenToAtom,\n },\n otc: {\n tokenFromAtom: selectOtcTokenFromAtom,\n tokenToAtom: selectOtcTokenToAtom,\n },\n twap: {\n tokenFromAtom: selectTwapTokenFromAtom,\n tokenToAtom: selectTwapTokenToAtom,\n },\n};\n\nexport const tradeModeToSideAtom: Record<TradeMode, typeof swapSideAtom> = {\n swap: swapSideAtom,\n twap: twapSideAtom,\n limit: placeholderAtoms.sellAtom,\n otc: placeholderAtoms.sellAtom,\n};\n\nexport const tradeModeToCurrentInputAtom: Record<\n TradeMode,\n typeof currentSwapInputAtom\n> = {\n swap: currentSwapInputAtom,\n twap: currentTwapInputAtom,\n limit: placeholderAtoms.currentInputAtom,\n otc: placeholderAtoms.currentInputAtom,\n};\n\nexport const sideToInputType = {\n SELL: \"from\",\n BUY: \"to\",\n} as const satisfies Record<SwapSideUnion, \"from\" | \"to\">;\n\nexport const useWidgetTokens = (tradeMode: TradeMode) => {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const tokenFrom = useAtomValue(tokenFromAtom);\n const tokenTo = useAtomValue(tokenToAtom);\n return { tokenFrom, tokenTo };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,SAAgByD,EAA2BC,GAA2B;AAIpE7C,CAHAX,EAA+BwD,EAAQ,EACvCrD,EAAgCqD,EAAQ,EACxChD,EAA8BgD,EAAQ,EACtC7C,EAA+B6C,EAAQ;;AAGzC,IAAMC,UAAa,KAAK,GAClBC,IAAmB;CACvBC,UAAU5B,EAAK,QAAyC0B,EAAK;CAC7DI,WAAW9B,EAAK,IAAO0B,EAAK;CAC5BK,kBAAkB/B,EAChB,QACA0B,EACF;CACD,EAEYM,KAOT;CACFK,MAAM;EAAEH,MAAMlD;EAAoBoD,OAAOpD;EAAoB;CAC7DsD,OAAO;EACLJ,MAAM9C;EACNgD,OAAO1B;EACR;CACD6B,KAAK;EAAEL,MAAM1C;EAAuB4C,OAAOxB;EAA8B;CACzE4B,MAAM;EAAEN,MAAMtC;EAAwBwC,OAAOxC;EAAuB;CACrE,EAEY6C,KAOT;CACFJ,MAAM;EAAEH,MAAMhD;EAAwBkD,OAAOlD;EAAwB;CACrEoD,OAAO;EACLJ,MAAM5C;EACN8C,OAAOzB;EACR;CACD4B,KAAK;EACHL,MAAMxC;EACN0C,OAAOvB;EACR;CACD2B,MAAM;EACJN,MAAMpC;EACNsC,OAAOtC;EACT;CACD,EAEY4C,KAGT;CACFJ,OAAOxB;CACPyB,KAAKxB;CACN,EAEY6B,KAGT;CACFP,MAAMpD;CACNqD,OAAOjD;CACPkD,KAAK9C;CACL+C,MAAM3C;CACP,EAEYgD,KAGT;CACFR,MAAMlD;CACNmD,OAAO/C;CACPgD,KAAK5C;CACL6C,MAAMzC;CACP,EAEY+C,IAOT;CACFT,MAAM;EACJU,eAAe7E;EACf8E,aAAa7E;EACK+C;EACnB;CACDoB,OAAO;EACLS,eAAe1E;EACf2E,aAAa1E;EACb2C,kBAAkBE;EACnB;CACDoB,KAAK;EACHQ,eAAexE;EACfyE,aAAaxE;EAEbyC,kBAAkBU,EAAiBG;EACpC;CACDU,MAAM;EACJO,eAAerE;EACfsE,aAAarE;EACbsC,kBAAkBpC;EACpB;CACD,EAEYoE,KAMT;CACFZ,MAAM;EACJU,eAAehF;EACfiF,aAAahF;EACd;CACDsE,OAAO;EACLS,eAAe3C;EACf4C,aAAa3C;EACd;CACDkC,KAAK;EACHQ,eAAezC;EACf0C,aAAazC;EACd;CACDiC,MAAM;EACJO,eAAevC;EACfwC,aAAavC;EACf;CACD,EAEYyC,KAA8D;CACzEb,MAAMjB;CACNoB,MAAMnB;CACNiB,OAAOX,EAAiBC;CACxBW,KAAKZ,EAAiBC;CACvB,EAEYuB,IAGT;CACFd,MAAMd;CACNiB,MAAMlB;CACNgB,OAAOX,EAAiBI;CACxBQ,KAAKZ,EAAiBI;CACvB,EAEYqB,KAAkB;CAC7BC,MAAM;CACNC,KAAK;CACN,EAEYC,MAAkBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAC7B,EAAAX,kBAAAC,mBAAuCF,EAAsBU,IAC7DG,IAAkBxD,EAAa4C,EAAc,EAC7Ca,IAAgBzD,EAAa6C,EAAY,EAACa;AACb,QADaJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KACnCC,IAAA;EAAAF;EAAAC;EAAsB,EAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,KAAAA,IAAAJ,EAAA,IAAtBI"}
|
|
@@ -18,9 +18,9 @@ export declare const TWAP_DURATION_OPTIONS: {
|
|
|
18
18
|
label: string;
|
|
19
19
|
}[];
|
|
20
20
|
/** Custom duration input limits */
|
|
21
|
-
export declare const TWAP_CUSTOM_DURATION_MIN_MINUTES =
|
|
21
|
+
export declare const TWAP_CUSTOM_DURATION_MIN_MINUTES = 60;
|
|
22
22
|
export declare const TWAP_CUSTOM_DURATION_MAX_DAYS = 30;
|
|
23
23
|
export declare const TWAP_CUSTOM_DURATION_MAX_HOURS = 23;
|
|
24
24
|
export declare const TWAP_CUSTOM_DURATION_MAX_MINUTES = 59;
|
|
25
|
-
export declare const TWAP_MIN_SLICE_INTERVAL_S
|
|
25
|
+
export declare const TWAP_MIN_SLICE_INTERVAL_S: number;
|
|
26
26
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/core/twap/state/constants.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,kBAAkB,IAAiB,CAAC;AAEjD,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,eAAO,MAAM,qBAAqB;;;CAAiC,CAAC;AAEpE,gCAAgC;AAChC,eAAO,MAAM,qBAAqB,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,EAKA,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,gCAAgC,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/core/twap/state/constants.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,kBAAkB,IAAiB,CAAC;AAEjD,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,eAAO,MAAM,qBAAqB;;;CAAiC,CAAC;AAEpE,gCAAgC;AAChC,eAAO,MAAM,qBAAqB,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,EAKA,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD,eAAO,MAAM,yBAAyB,QAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["TWAP_SPLIT_MIN","TWAP_SPLIT_MAX","TWAP_SPLIT_STEP","DEFAULT_TWAP_SPLIT","TWAP_SLIPPAGE_MIN","TWAP_SLIPPAGE_MAX","TWAP_SLIPPAGE_STEP","DEFAULT_TWAP_SLIPPAGE","DEFAULT_TWAP_DURATION","value","label","TWAP_DURATION_OPTIONS","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_CUSTOM_DURATION_MAX_DAYS","TWAP_CUSTOM_DURATION_MAX_HOURS","TWAP_CUSTOM_DURATION_MAX_MINUTES","TWAP_MIN_SLICE_INTERVAL_S"],"sources":["../../../../src/core/twap/state/constants.ts"],"sourcesContent":["/** Number of order splits (min 2) */\nexport const TWAP_SPLIT_MIN = 2;\nexport const TWAP_SPLIT_MAX = 100;\nexport const TWAP_SPLIT_STEP = 1;\nexport const DEFAULT_TWAP_SPLIT = TWAP_SPLIT_MIN;\n\n/** Rate protection (slippage) in percentage, step 0.1 */\nexport const TWAP_SLIPPAGE_MIN = 0.5;\nexport const TWAP_SLIPPAGE_MAX = 50;\nexport const TWAP_SLIPPAGE_STEP = 0.1;\nexport const DEFAULT_TWAP_SLIPPAGE = 2; // 2%\n\nexport const DEFAULT_TWAP_DURATION = { value: 60 * 6, label: \"6h\" };\n\n/** Order duration in minutes */\nexport const TWAP_DURATION_OPTIONS: {\n value: number;\n label: string;\n}[] = [\n { value: 60, label: \"1h\" },\n DEFAULT_TWAP_DURATION,\n { value: 60 * 24, label: \"24h\" },\n { value: 60 * 24 * 7, label: \"1w\" },\n];\n\n/** Custom duration input limits */\nexport const TWAP_CUSTOM_DURATION_MIN_MINUTES =
|
|
1
|
+
{"version":3,"file":"constants.js","names":["TWAP_SPLIT_MIN","TWAP_SPLIT_MAX","TWAP_SPLIT_STEP","DEFAULT_TWAP_SPLIT","TWAP_SLIPPAGE_MIN","TWAP_SLIPPAGE_MAX","TWAP_SLIPPAGE_STEP","DEFAULT_TWAP_SLIPPAGE","DEFAULT_TWAP_DURATION","value","label","TWAP_DURATION_OPTIONS","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_CUSTOM_DURATION_MAX_DAYS","TWAP_CUSTOM_DURATION_MAX_HOURS","TWAP_CUSTOM_DURATION_MAX_MINUTES","TWAP_MIN_SLICE_INTERVAL_S"],"sources":["../../../../src/core/twap/state/constants.ts"],"sourcesContent":["/** Number of order splits (min 2) */\nexport const TWAP_SPLIT_MIN = 2;\nexport const TWAP_SPLIT_MAX = 100;\nexport const TWAP_SPLIT_STEP = 1;\nexport const DEFAULT_TWAP_SPLIT = TWAP_SPLIT_MIN;\n\n/** Rate protection (slippage) in percentage, step 0.1 */\nexport const TWAP_SLIPPAGE_MIN = 0.5;\nexport const TWAP_SLIPPAGE_MAX = 50;\nexport const TWAP_SLIPPAGE_STEP = 0.1;\nexport const DEFAULT_TWAP_SLIPPAGE = 2; // 2%\n\nexport const DEFAULT_TWAP_DURATION = { value: 60 * 6, label: \"6h\" };\n\n/** Order duration in minutes */\nexport const TWAP_DURATION_OPTIONS: {\n value: number;\n label: string;\n}[] = [\n { value: 60, label: \"1h\" },\n DEFAULT_TWAP_DURATION,\n { value: 60 * 24, label: \"24h\" },\n { value: 60 * 24 * 7, label: \"1w\" },\n];\n\n/** Custom duration input limits */\nexport const TWAP_CUSTOM_DURATION_MIN_MINUTES = 60;\n\nexport const TWAP_CUSTOM_DURATION_MAX_DAYS = 30;\nexport const TWAP_CUSTOM_DURATION_MAX_HOURS = 23;\nexport const TWAP_CUSTOM_DURATION_MAX_MINUTES = 59;\n\nexport const TWAP_MIN_SLICE_INTERVAL_S = 60 * 5; // 5 min minimum interval between slices (1 min on the API side)\n"],"mappings":";AAOA,IAAaI,IAAoB,IAEpBE,IAAqB,IAGrBE,IAAwB;CAAEC,OAAO;CAAQC,OAAO;CAAM,EAGtDC,IAGP;CACJ;EAAEF,OAAO;EAAIC,OAAO;EAAM;CAC1BF;CACA;EAAEC,OAAO;EAASC,OAAO;EAAO;CAChC;EAAED,OAAO,OAAU;EAAGC,OAAO;EAAM;CACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/twap/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAYlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,oBAAoB;;CAwB/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;CAgEnC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/twap/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAYlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,oBAAoB;;CAwB/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;CAgEnC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;CAyGjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,SAAS,gBAAgB,SA+DvE,CAAC"}
|
|
@@ -42,7 +42,7 @@ var m = p(null, async (e, t) => {
|
|
|
42
42
|
} else o(p, m) && (m = h, a(i, m));
|
|
43
43
|
}), g = p(null, async (e, s, l) => {
|
|
44
44
|
let p = e(r);
|
|
45
|
-
if (!d(e, {
|
|
45
|
+
if (l.network !== p.network || !d(e, {
|
|
46
46
|
fromChainId: p.network,
|
|
47
47
|
mode: "twap"
|
|
48
48
|
}).includes(l.network)) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.js","names":["pickDefaultTokenPair","areTokensSame","atom","twapTokenFromAtom","twapTokenToAtom","Token","wagmiConfig","switchChain","isCrosschainPossible","findFirstTokenFromAcross","isTokenFromAcross","allTokensByChainAtom","getSelectableDestChains","enabledSrcChainsAtom","jotaiStore","SupportedChainId","switchTwapTokensAtom","get","set","tokenTo","enabledSrcChains","includes","network","tokenFrom","initChainFrom","selectTwapTokenToAtom","currentTokenFrom","chainId","selectTwapTokenFromAtom","newTokenFrom","initTokenFrom","state","crosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","token","fromChainId","toChainId","maybeAcrossToken","listByChainId","defaultTokenFrom","defaultTokenTo","newTokenTo","selectableDestChains","initTokenTo","defaultToken","wasCrosschain","needResetTokenFrom","firstPossibleSrcChain","srcChain","syncTwapTokensAfterChainSwitch","undefined"],"sources":["../../../../src/core/twap/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { twapTokenFromAtom, twapTokenToAtom } from \"./twapTokenAtoms\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { isCrosschainPossible } from \"@/core/across/isCrosschainPossible\";\nimport {\n findFirstTokenFromAcross,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { getSelectableDestChains } from \"@/core/state/getSelectableDestChains\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { jotaiStore } from \"@/core/store\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const switchTwapTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(twapTokenToAtom);\n\n if (!tokenTo) return;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(tokenTo.network)) return;\n\n const tokenFrom = get(twapTokenFromAtom);\n const initChainFrom = tokenFrom.network;\n\n // set tokenFrom as is\n set(twapTokenFromAtom, tokenTo);\n // set tokenTo, including running all crosschain logic inside\n set(selectTwapTokenToAtom, tokenFrom);\n\n const currentTokenFrom = get(twapTokenFromAtom);\n\n // switch a token from a different chain?\n if (currentTokenFrom.network !== initChainFrom) {\n switchChain({\n chainId: currentTokenFrom.network,\n });\n }\n});\n\nexport const selectTwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(twapTokenFromAtom);\n let tokenTo = get(twapTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // set the tokenFrom\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"twap\",\n });\n\n set(twapTokenToAtom, maybeAcrossToken);\n }\n } else {\n if (tokenFrom.network !== tokenTo.network) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"twap\"\n );\n\n tokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(twapTokenToAtom, tokenTo);\n } else {\n if (areTokensSame(tokenFrom, tokenTo)) {\n tokenTo = initTokenFrom;\n set(twapTokenToAtom, tokenTo);\n }\n }\n }\n }\n);\n\nexport const selectTwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(twapTokenFromAtom);\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: tokenFrom.network,\n mode: \"twap\",\n });\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n let tokenTo = get(twapTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(twapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (areTokensSame(tokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"twap\"\n );\n\n const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n const wasCrosschain =\n initTokenTo && tokenFrom.network !== initTokenTo.network;\n\n const newTokenFrom = wasCrosschain\n ? defaultToken\n : (initTokenTo ?? defaultToken);\n\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n needResetTokenFrom = true;\n }\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom) {\n let firstPossibleSrcChain = tokenTo.network;\n if (!enabledSrcChains.includes(tokenTo.network)) {\n for (const srcChain of enabledSrcChains) {\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: srcChain,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n if (crosschainPossible) {\n firstPossibleSrcChain = srcChain;\n break;\n }\n }\n }\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n firstPossibleSrcChain,\n \"twap\"\n );\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // ended up changing tokenFrom network?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncTwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n let tokenFrom = jotaiStore.get(twapTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"twap\"\n );\n\n // update tokenFrom\n jotaiStore.set(twapTokenFromAtom, defaultTokenFrom);\n tokenFrom = defaultTokenFrom;\n\n let tokenTo = jotaiStore.get(twapTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n mode: \"twap\",\n });\n\n tokenTo = maybeAcrossToken;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n }\n } else {\n const selectableDestChains = getSelectableDestChains(jotaiStore.get, {\n fromChainId: tokenFrom.network,\n mode: \"twap\",\n });\n if (selectableDestChains.includes(chainId)) {\n tokenTo = defaultTokenTo;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n } else {\n tokenTo = undefined;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n }\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.js","names":["pickDefaultTokenPair","areTokensSame","atom","twapTokenFromAtom","twapTokenToAtom","Token","wagmiConfig","switchChain","isCrosschainPossible","findFirstTokenFromAcross","isTokenFromAcross","allTokensByChainAtom","getSelectableDestChains","enabledSrcChainsAtom","jotaiStore","SupportedChainId","switchTwapTokensAtom","get","set","tokenTo","enabledSrcChains","includes","network","tokenFrom","initChainFrom","selectTwapTokenToAtom","currentTokenFrom","chainId","selectTwapTokenFromAtom","newTokenFrom","initTokenFrom","state","crosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","token","fromChainId","toChainId","maybeAcrossToken","listByChainId","defaultTokenFrom","defaultTokenTo","newTokenTo","selectableDestChains","initTokenTo","defaultToken","wasCrosschain","needResetTokenFrom","firstPossibleSrcChain","srcChain","syncTwapTokensAfterChainSwitch","undefined"],"sources":["../../../../src/core/twap/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { twapTokenFromAtom, twapTokenToAtom } from \"./twapTokenAtoms\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { isCrosschainPossible } from \"@/core/across/isCrosschainPossible\";\nimport {\n findFirstTokenFromAcross,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { getSelectableDestChains } from \"@/core/state/getSelectableDestChains\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { jotaiStore } from \"@/core/store\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const switchTwapTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(twapTokenToAtom);\n\n if (!tokenTo) return;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(tokenTo.network)) return;\n\n const tokenFrom = get(twapTokenFromAtom);\n const initChainFrom = tokenFrom.network;\n\n // set tokenFrom as is\n set(twapTokenFromAtom, tokenTo);\n // set tokenTo, including running all crosschain logic inside\n set(selectTwapTokenToAtom, tokenFrom);\n\n const currentTokenFrom = get(twapTokenFromAtom);\n\n // switch a token from a different chain?\n if (currentTokenFrom.network !== initChainFrom) {\n switchChain({\n chainId: currentTokenFrom.network,\n });\n }\n});\n\nexport const selectTwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(twapTokenFromAtom);\n let tokenTo = get(twapTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // set the tokenFrom\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"twap\",\n });\n\n set(twapTokenToAtom, maybeAcrossToken);\n }\n } else {\n if (tokenFrom.network !== tokenTo.network) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"twap\"\n );\n\n tokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(twapTokenToAtom, tokenTo);\n } else {\n if (areTokensSame(tokenFrom, tokenTo)) {\n tokenTo = initTokenFrom;\n set(twapTokenToAtom, tokenTo);\n }\n }\n }\n }\n);\n\nexport const selectTwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(twapTokenFromAtom);\n\n // @TODO reenable TWAP crosschain when ready on the API\n if (newTokenTo.network !== tokenFrom.network) {\n return;\n }\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: tokenFrom.network,\n mode: \"twap\",\n });\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n let tokenTo = get(twapTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(twapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (areTokensSame(tokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"twap\"\n );\n\n const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n const wasCrosschain =\n initTokenTo && tokenFrom.network !== initTokenTo.network;\n\n const newTokenFrom = wasCrosschain\n ? defaultToken\n : (initTokenTo ?? defaultToken);\n\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n needResetTokenFrom = true;\n }\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom) {\n let firstPossibleSrcChain = tokenTo.network;\n if (!enabledSrcChains.includes(tokenTo.network)) {\n for (const srcChain of enabledSrcChains) {\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: srcChain,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n if (crosschainPossible) {\n firstPossibleSrcChain = srcChain;\n break;\n }\n }\n }\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n firstPossibleSrcChain,\n \"twap\"\n );\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // ended up changing tokenFrom network?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncTwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n let tokenFrom = jotaiStore.get(twapTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"twap\"\n );\n\n // update tokenFrom\n jotaiStore.set(twapTokenFromAtom, defaultTokenFrom);\n tokenFrom = defaultTokenFrom;\n\n let tokenTo = jotaiStore.get(twapTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n mode: \"twap\",\n });\n\n tokenTo = maybeAcrossToken;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n }\n } else {\n const selectableDestChains = getSelectableDestChains(jotaiStore.get, {\n fromChainId: tokenFrom.network,\n mode: \"twap\",\n });\n if (selectableDestChains.includes(chainId)) {\n tokenTo = defaultTokenTo;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n } else {\n tokenTo = undefined;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n }\n }\n};\n"],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@ import { produceTwapDeadlines as i } from "../../../lib/utils/twap.js";
|
|
|
5
5
|
import { atom as a } from "jotai";
|
|
6
6
|
//#region src/core/twap/state/twapParamsAtom.ts
|
|
7
7
|
var o = a(n.value, (e, t, n) => {
|
|
8
|
-
t(o, Math.max(n,
|
|
8
|
+
t(o, Math.max(n, 60));
|
|
9
9
|
}), s = () => e(o), c = a(2), l = a((e) => t(e(c), 2, 100)), u = () => e(l), d = a(2), f = a((e) => t(e(d), r, 50)), p = () => e(f), m = a((e) => i({
|
|
10
10
|
durationMin: e(o),
|
|
11
11
|
numSlices: e(l)
|
|
12
12
|
})), h = () => {
|
|
13
13
|
let e = s(), t = u();
|
|
14
|
-
return e * 60 / t <
|
|
14
|
+
return e * 60 / t < 300;
|
|
15
15
|
};
|
|
16
16
|
//#endregion
|
|
17
17
|
export { m as twapDeadlinesAtom, o as twapDurationAtom, f as twapSlippageAtom, l as twapSplitAtom, s as useTwapDuration, h as useTwapSliceTooShort, p as useTwapSlippage, u as useTwapSplit, d as userTwapSlippageAtom, c as userTwapSplitAtom };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twapParamsAtom.js","names":["atom","useAtomValue","getNumberWithinRange","DEFAULT_TWAP_DURATION","DEFAULT_TWAP_SLIPPAGE","DEFAULT_TWAP_SPLIT","TWAP_SLIPPAGE_MAX","TWAP_SLIPPAGE_MIN","TWAP_SPLIT_MAX","TWAP_SPLIT_MIN","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_MIN_SLICE_INTERVAL_S","produceTwapDeadlines","twapDurationAtom","value","_","set","newDuration","clampedDuration","Math","max","useTwapDuration","userTwapSplitAtom","twapSplitAtom","get","useTwapSplit","userTwapSlippageAtom","twapSlippageAtom","useTwapSlippage","twapDeadlinesAtom","durationMin","numSlices","useTwapSliceTooShort","sliceIntervalSec"],"sources":["../../../../src/core/twap/state/twapParamsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { getNumberWithinRange } from \"@/lib/utils\";\nimport {\n DEFAULT_TWAP_DURATION,\n DEFAULT_TWAP_SLIPPAGE,\n DEFAULT_TWAP_SPLIT,\n TWAP_SLIPPAGE_MAX,\n TWAP_SLIPPAGE_MIN,\n TWAP_SPLIT_MAX,\n TWAP_SPLIT_MIN,\n TWAP_CUSTOM_DURATION_MIN_MINUTES,\n TWAP_MIN_SLICE_INTERVAL_S,\n} from \"./constants\";\nimport { produceTwapDeadlines } from \"@/lib/utils/twap\";\n\nexport const twapDurationAtom = atom(\n DEFAULT_TWAP_DURATION.value,\n (_, set, newDuration: number) => {\n const clampedDuration = Math.max(\n newDuration,\n TWAP_CUSTOM_DURATION_MIN_MINUTES\n );\n set(twapDurationAtom, clampedDuration);\n }\n);\n\nexport const useTwapDuration = () => useAtomValue(twapDurationAtom);\n\n// atom to track the user input, which can be out of range\nexport const userTwapSplitAtom = atom(DEFAULT_TWAP_SPLIT);\n\n// derived atom to ensure the actual split used in the order is always within range\nexport const twapSplitAtom = atom((get) =>\n getNumberWithinRange(get(userTwapSplitAtom), TWAP_SPLIT_MIN, TWAP_SPLIT_MAX)\n);\n\nexport const useTwapSplit = () => useAtomValue(twapSplitAtom);\n\n// atom to track the user input, which can be out of range\nexport const userTwapSlippageAtom = atom(DEFAULT_TWAP_SLIPPAGE);\n\n// derived atom to ensure the actual slippage used in the order is always within range\nexport const twapSlippageAtom = atom((get) =>\n getNumberWithinRange(\n get(userTwapSlippageAtom),\n TWAP_SLIPPAGE_MIN,\n TWAP_SLIPPAGE_MAX\n )\n);\n\nexport const useTwapSlippage = () => useAtomValue(twapSlippageAtom);\n\n/**\n * Derived atom that caches TWAP deadlines (orderDeadline, orderInterval).\n * Recomputes only when twapDurationAtom or twapSplitAtom changes,\n * keeping orderDeadline stable across unrelated form changes (token, amount, side, etc.).\n */\nexport const twapDeadlinesAtom = atom((get) => {\n const durationMin = get(twapDurationAtom);\n const numSlices = get(twapSplitAtom);\n return produceTwapDeadlines({ durationMin, numSlices });\n});\n\nexport const useTwapSliceTooShort = () => {\n const durationMin = useTwapDuration();\n const numSlices = useTwapSplit();\n const sliceIntervalSec = (durationMin * 60) / numSlices;\n return sliceIntervalSec < TWAP_MIN_SLICE_INTERVAL_S;\n};\n"],"mappings":";;;;;;AAgBA,IAAaa,IAAmBb,EAC9BG,EAAsBW,QACrBC,GAAGC,GAAKC,MAAwB;AAK/BD,GAAIH,GAJoBM,KAAKC,IAC3BH,GAAAA,
|
|
1
|
+
{"version":3,"file":"twapParamsAtom.js","names":["atom","useAtomValue","getNumberWithinRange","DEFAULT_TWAP_DURATION","DEFAULT_TWAP_SLIPPAGE","DEFAULT_TWAP_SPLIT","TWAP_SLIPPAGE_MAX","TWAP_SLIPPAGE_MIN","TWAP_SPLIT_MAX","TWAP_SPLIT_MIN","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_MIN_SLICE_INTERVAL_S","produceTwapDeadlines","twapDurationAtom","value","_","set","newDuration","clampedDuration","Math","max","useTwapDuration","userTwapSplitAtom","twapSplitAtom","get","useTwapSplit","userTwapSlippageAtom","twapSlippageAtom","useTwapSlippage","twapDeadlinesAtom","durationMin","numSlices","useTwapSliceTooShort","sliceIntervalSec"],"sources":["../../../../src/core/twap/state/twapParamsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { getNumberWithinRange } from \"@/lib/utils\";\nimport {\n DEFAULT_TWAP_DURATION,\n DEFAULT_TWAP_SLIPPAGE,\n DEFAULT_TWAP_SPLIT,\n TWAP_SLIPPAGE_MAX,\n TWAP_SLIPPAGE_MIN,\n TWAP_SPLIT_MAX,\n TWAP_SPLIT_MIN,\n TWAP_CUSTOM_DURATION_MIN_MINUTES,\n TWAP_MIN_SLICE_INTERVAL_S,\n} from \"./constants\";\nimport { produceTwapDeadlines } from \"@/lib/utils/twap\";\n\nexport const twapDurationAtom = atom(\n DEFAULT_TWAP_DURATION.value,\n (_, set, newDuration: number) => {\n const clampedDuration = Math.max(\n newDuration,\n TWAP_CUSTOM_DURATION_MIN_MINUTES\n );\n set(twapDurationAtom, clampedDuration);\n }\n);\n\nexport const useTwapDuration = () => useAtomValue(twapDurationAtom);\n\n// atom to track the user input, which can be out of range\nexport const userTwapSplitAtom = atom(DEFAULT_TWAP_SPLIT);\n\n// derived atom to ensure the actual split used in the order is always within range\nexport const twapSplitAtom = atom((get) =>\n getNumberWithinRange(get(userTwapSplitAtom), TWAP_SPLIT_MIN, TWAP_SPLIT_MAX)\n);\n\nexport const useTwapSplit = () => useAtomValue(twapSplitAtom);\n\n// atom to track the user input, which can be out of range\nexport const userTwapSlippageAtom = atom(DEFAULT_TWAP_SLIPPAGE);\n\n// derived atom to ensure the actual slippage used in the order is always within range\nexport const twapSlippageAtom = atom((get) =>\n getNumberWithinRange(\n get(userTwapSlippageAtom),\n TWAP_SLIPPAGE_MIN,\n TWAP_SLIPPAGE_MAX\n )\n);\n\nexport const useTwapSlippage = () => useAtomValue(twapSlippageAtom);\n\n/**\n * Derived atom that caches TWAP deadlines (orderDeadline, orderInterval).\n * Recomputes only when twapDurationAtom or twapSplitAtom changes,\n * keeping orderDeadline stable across unrelated form changes (token, amount, side, etc.).\n */\nexport const twapDeadlinesAtom = atom((get) => {\n const durationMin = get(twapDurationAtom);\n const numSlices = get(twapSplitAtom);\n return produceTwapDeadlines({ durationMin, numSlices });\n});\n\nexport const useTwapSliceTooShort = () => {\n const durationMin = useTwapDuration();\n const numSlices = useTwapSplit();\n const sliceIntervalSec = (durationMin * 60) / numSlices;\n return sliceIntervalSec < TWAP_MIN_SLICE_INTERVAL_S;\n};\n"],"mappings":";;;;;;AAgBA,IAAaa,IAAmBb,EAC9BG,EAAsBW,QACrBC,GAAGC,GAAKC,MAAwB;AAK/BD,GAAIH,GAJoBM,KAAKC,IAC3BH,GAAAA,GAED,CACqC;EAEzC,EAEYI,UAAwBpB,EAAaY,EAAiB,EAGtDS,IAAoBtB,EAAAA,EAAwB,EAG5CuB,IAAgBvB,GAAMwB,MACjCtB,EAAqBsB,EAAIF,EAAkB,EAAA,GAAA,IAC7C,CAAC,EAEYG,UAAqBxB,EAAasB,EAAc,EAGhDG,IAAuB1B,EAAAA,EAA2B,EAGlD2B,IAAmB3B,GAAMwB,MACpCtB,EACEsB,EAAIE,EAAqB,EACzBnB,GAAAA,GAGJ,CAAC,EAEYqB,UAAwB3B,EAAa0B,EAAiB,EAOtDE,IAAoB7B,GAAMwB,MAG9BZ,EAAqB;CAAEkB,aAFVN,EAAIX,EAAiB;CAEEkB,WADzBP,EAAID,EAAc;CACkB,CAAC,CACvD,EAEWS,UAAuB;CAClC,IAAAF,IAAoBT,GAAiB,EACrCU,IAAkBN,GAAc;AACwB,QAA9BK,IAAc,KAAMC,IAAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTwapTokenToInputProps.d.ts","sourceRoot":"","sources":["../../../src/core/twap/useTwapTokenToInputProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAsB5E,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"useTwapTokenToInputProps.d.ts","sourceRoot":"","sources":["../../../src/core/twap/useTwapTokenToInputProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAsB5E,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC3B,CAAC;AA0GF,eAAO,MAAM,wBAAwB,GACnC,QAAO,wBAA6B,KACnC,eAiBF,CAAC"}
|
|
@@ -29,7 +29,7 @@ var C = () => {
|
|
|
29
29
|
let { balanceUnit: a } = d(r), o;
|
|
30
30
|
return e[3] === a ? o = e[4] : (o = u(a), e[3] = a, e[4] = o), o;
|
|
31
31
|
}, w = (t) => {
|
|
32
|
-
let n = _(
|
|
32
|
+
let n = _(25), r;
|
|
33
33
|
n[0] === t ? r = n[1] : (r = t === void 0 ? {} : t, n[0] = t, n[1] = r);
|
|
34
34
|
let { isPriceLoading: i } = r, c = S(), [l, u] = e(m), d;
|
|
35
35
|
n[2] === c ? d = n[3] : (d = {
|
|
@@ -37,32 +37,32 @@ var C = () => {
|
|
|
37
37
|
mode: "twap"
|
|
38
38
|
}, n[2] = c, n[3] = d);
|
|
39
39
|
let { selectableChains: p } = f(d), g = l !== void 0, x;
|
|
40
|
-
n[4] !==
|
|
41
|
-
networks:
|
|
42
|
-
selectedNetwork:
|
|
40
|
+
n[4] !== c || n[5] !== u || n[6] !== g ? (x = g ? {
|
|
41
|
+
networks: [c],
|
|
42
|
+
selectedNetwork: c,
|
|
43
43
|
allOption: !1,
|
|
44
44
|
onSelect: (e) => e !== "all" && u(e),
|
|
45
|
-
disabled:
|
|
46
|
-
} : void 0, n[4] =
|
|
45
|
+
disabled: !0
|
|
46
|
+
} : void 0, n[4] = c, n[5] = u, n[6] = g, n[7] = x) : x = n[7];
|
|
47
47
|
let C = x, [w, T] = e(a), E = s() === "SELL", D = i && E, O = o(), k = O && i, A;
|
|
48
|
-
n[
|
|
48
|
+
n[8] === T ? A = n[9] : (A = () => T("to"), n[8] = T, n[9] = A);
|
|
49
49
|
let j;
|
|
50
|
-
n[
|
|
50
|
+
n[10] === Symbol.for("react.memo_cache_sentinel") ? (j = /* @__PURE__ */ y("span", { children: "Receive (estimated)" }), n[10] = j) : j = n[10];
|
|
51
51
|
let M;
|
|
52
|
-
n[
|
|
52
|
+
n[11] === g ? M = n[12] : (M = g && /* @__PURE__ */ y("span", {
|
|
53
53
|
className: "text-contrast-5",
|
|
54
54
|
children: "on"
|
|
55
|
-
}), n[
|
|
55
|
+
}), n[11] = g, n[12] = M);
|
|
56
56
|
let N;
|
|
57
|
-
n[
|
|
57
|
+
n[13] === M ? N = n[14] : (N = /* @__PURE__ */ b(v, { children: [
|
|
58
58
|
j,
|
|
59
59
|
" ",
|
|
60
60
|
M
|
|
61
|
-
] }), n[
|
|
61
|
+
] }), n[13] = M, n[14] = N);
|
|
62
62
|
let P = p.length === 0, F;
|
|
63
|
-
n[
|
|
63
|
+
n[15] === k ? F = n[16] : (F = k ? /* @__PURE__ */ y(h, {}) : void 0, n[15] = k, n[16] = F);
|
|
64
64
|
let I = O && w === "to", L;
|
|
65
|
-
return n[
|
|
65
|
+
return n[17] !== D || n[18] !== C || n[19] !== I || n[20] !== A || n[21] !== N || n[22] !== P || n[23] !== F ? (L = {
|
|
66
66
|
networkSwitcherProps: C,
|
|
67
67
|
tokenType: "to",
|
|
68
68
|
onFocus: A,
|
|
@@ -71,7 +71,7 @@ var C = () => {
|
|
|
71
71
|
disabled: P,
|
|
72
72
|
bottomElement: F,
|
|
73
73
|
readOnly: I
|
|
74
|
-
}, n[
|
|
74
|
+
}, n[17] = D, n[18] = C, n[19] = I, n[20] = A, n[21] = N, n[22] = P, n[23] = F, n[24] = L) : L = n[24], L;
|
|
75
75
|
}, T = (e) => {
|
|
76
76
|
let a = _(12), { override: o } = e, s = r("Twap::TokenTo::AmountProps"), l = i(), u = t(c), d = n(c), f;
|
|
77
77
|
a[0] !== o || a[1] !== u || a[2] !== l ? (f = o?.amountWei && l ? x(BigInt(o.amountWei), l.decimals) : u, a[0] = o, a[1] = u, a[2] = l, a[3] = f) : f = a[3];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTwapTokenToInputProps.js","names":["TokenInputProps","useAtomValue","useSetAtom","useAtom","twapReceiveInputAmountAtom","useLogger","OnValueChange","TokenInputExtraProps","useTokenBalance","MEDIUM_STALE_TIME_FOR_REACTIVENESS","toDecimalTrimmed","selectTwapTokenToAtom","useTwapTokenTo","useChainId","useSelectableDestChains","SupportedChainId","twapChainToAtom","currentTwapInputAtom","useTwapSide","useIsTwapCrossChain","FetchingQuotes","formatUnits","useWarningMessage","UseTwapTokenToInputInput","override","amountWei","isPriceLoading","priceError","Error","useTokenToBalanceUnit","$","_c","tokenTo","t0","Symbol","for","refetchInterval","t1","token","queryOptions","balanceUnit","t2","useExtraProps","undefined","appChainId","chainTo","setChainTo","fromChainId","mode","selectableChains","showNetworkSwitcher","t3","networks","selectedNetwork","allOption","onSelect","chainId","disabled","length","networkSwitcherProps","currentInput","setCurrentInput","side","isSell","isLoading","isCrosschain","showFetchingQuotes","t4","t5","t6","t7","t8","t9","t10","t11","tokenType","const","onFocus","label","bottomElement","readOnly","useTokenToAmountProps","logger","rawAmount","setReceiveAmount","BigInt","decimals","amount","values","log","value","onAmountChange","setTokenTo","onTokenSelect","useTwapTokenToInputProps","input","extraAmountProps","extraProps","tokenBalanceUnit","priceMode","tradeMode","warningMessage"],"sources":["../../../src/core/twap/useTwapTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\nimport { useAtomValue, useSetAtom, useAtom } from \"@/core/store\";\nimport { twapReceiveInputAmountAtom } from \"./state/twapInputAmountAtom\";\nimport { useLogger } from \"../logger\";\nimport type { OnValueChange } from \"react-number-format\";\nimport type { TokenInputExtraProps } from \"../inputs/hooks/types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { selectTwapTokenToAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useTwapTokenTo } from \"./state/twapTokenAtoms\";\nimport { useChainId } from \"wagmi\";\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { twapChainToAtom } from \"../state/chainToAtom\";\nimport { currentTwapInputAtom } from \"./state/currentTwapInputAtom\";\nimport { useTwapSide } from \"./state/twapSideAtom\";\nimport { useIsTwapCrossChain } from \"./state/isCrosschainAtom\";\nimport { FetchingQuotes } from \"@/components/widget/FetchingQuotes/FetchingQuotes\";\nimport { formatUnits } from \"viem\";\nimport { useWarningMessage } from \"../inputs/hooks/useWarningMessage\";\n\nexport type UseTwapTokenToInputInput = {\n override?: { amountWei?: string };\n isPriceLoading?: boolean;\n priceError?: Error | null;\n};\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useTwapTokenTo();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenTo,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: {\n isPriceLoading?: boolean;\n} = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n\n const [chainTo, setChainTo] = useAtom(twapChainToAtom);\n\n const { selectableChains } = useSelectableDestChains({\n fromChainId: appChainId,\n mode: \"twap\",\n });\n\n const showNetworkSwitcher = chainTo !== undefined;\n\n const networkSwitcherProps = showNetworkSwitcher\n ? {\n networks: selectableChains,\n selectedNetwork: chainTo,\n allOption: false,\n onSelect: (chainId: SupportedChainId | \"all\") =>\n chainId !== \"all\" && setChainTo(chainId),\n disabled: selectableChains.length <= 1,\n }\n : undefined;\n\n const [currentInput, setCurrentInput] = useAtom(currentTwapInputAtom);\n\n const side = useTwapSide();\n const isSell = side === \"SELL\";\n\n // SELLing and price is loading = tokenTo input will receive destAmount\n const isLoading = isPriceLoading && isSell;\n\n const isCrosschain = useIsTwapCrossChain();\n const showFetchingQuotes = isCrosschain && isPriceLoading;\n\n return {\n networkSwitcherProps,\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: (\n <>\n <span>Receive (estimated)</span>{\" \"}\n {showNetworkSwitcher && <span className=\"text-contrast-5\">on</span>}\n </>\n ),\n isLoading,\n disabled: selectableChains.length === 0,\n bottomElement: showFetchingQuotes ? <FetchingQuotes /> : undefined,\n readOnly: isCrosschain && currentInput === \"to\", // @TODO revert this change when Crosschain BUY is supported for TWAP\n };\n};\n\nconst useTokenToAmountProps = ({\n override,\n}: UseTwapTokenToInputInput): Pick<\n TokenInputProps,\n \"amount\" | \"token\" | \"onAmountChange\" | \"onTokenSelect\"\n> => {\n const logger = useLogger(\"Twap::TokenTo::AmountProps\");\n const tokenTo = useTwapTokenTo();\n\n const rawAmount = useAtomValue(twapReceiveInputAmountAtom);\n const setReceiveAmount = useSetAtom(twapReceiveInputAmountAtom);\n\n // SELL mode: override from price\n const amount =\n override?.amountWei && tokenTo\n ? formatUnits(BigInt(override.amountWei), tokenTo.decimals)\n : rawAmount;\n\n const onAmountChange: OnValueChange = (values) => {\n logger.log(\"onAmountChange::values\", values);\n setReceiveAmount(values.value);\n };\n\n const setTokenTo = useSetAtom(selectTwapTokenToAtom);\n\n return {\n amount,\n token: tokenTo,\n onAmountChange,\n onTokenSelect: setTokenTo,\n };\n};\n\nexport const useTwapTokenToInputProps = (\n input: UseTwapTokenToInputInput = {}\n): TokenInputProps => {\n const extraAmountProps = useTokenToAmountProps({ override: input.override });\n const extraProps = useExtraProps({ isPriceLoading: input.isPriceLoading });\n const tokenBalanceUnit = useTokenToBalanceUnit();\n const warningMessage = useWarningMessage({\n priceMode: \"delta\",\n priceError: input.priceError,\n mode: \"twap\",\n tradeMode: \"twap\",\n });\n\n return {\n ...extraProps,\n ...extraAmountProps,\n tokenBalanceUnit,\n warningMessage,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTwapTokenToInputProps.js","names":["TokenInputProps","useAtomValue","useSetAtom","useAtom","twapReceiveInputAmountAtom","useLogger","OnValueChange","TokenInputExtraProps","useTokenBalance","MEDIUM_STALE_TIME_FOR_REACTIVENESS","toDecimalTrimmed","selectTwapTokenToAtom","useTwapTokenTo","useChainId","useSelectableDestChains","SupportedChainId","twapChainToAtom","currentTwapInputAtom","useTwapSide","useIsTwapCrossChain","FetchingQuotes","formatUnits","useWarningMessage","UseTwapTokenToInputInput","override","amountWei","isPriceLoading","priceError","Error","useTokenToBalanceUnit","$","_c","tokenTo","t0","Symbol","for","refetchInterval","t1","token","queryOptions","balanceUnit","t2","useExtraProps","undefined","appChainId","chainTo","setChainTo","fromChainId","mode","selectableChains","showNetworkSwitcher","t3","networks","selectedNetwork","allOption","onSelect","chainId","disabled","networkSwitcherProps","currentInput","setCurrentInput","side","isSell","isLoading","isCrosschain","showFetchingQuotes","t4","t5","t6","t7","t8","length","t9","t10","t11","tokenType","const","onFocus","label","bottomElement","readOnly","useTokenToAmountProps","logger","rawAmount","setReceiveAmount","BigInt","decimals","amount","values","log","value","onAmountChange","setTokenTo","onTokenSelect","useTwapTokenToInputProps","input","extraAmountProps","extraProps","tokenBalanceUnit","priceMode","tradeMode","warningMessage"],"sources":["../../../src/core/twap/useTwapTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\nimport { useAtomValue, useSetAtom, useAtom } from \"@/core/store\";\nimport { twapReceiveInputAmountAtom } from \"./state/twapInputAmountAtom\";\nimport { useLogger } from \"../logger\";\nimport type { OnValueChange } from \"react-number-format\";\nimport type { TokenInputExtraProps } from \"../inputs/hooks/types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { selectTwapTokenToAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useTwapTokenTo } from \"./state/twapTokenAtoms\";\nimport { useChainId } from \"wagmi\";\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { twapChainToAtom } from \"../state/chainToAtom\";\nimport { currentTwapInputAtom } from \"./state/currentTwapInputAtom\";\nimport { useTwapSide } from \"./state/twapSideAtom\";\nimport { useIsTwapCrossChain } from \"./state/isCrosschainAtom\";\nimport { FetchingQuotes } from \"@/components/widget/FetchingQuotes/FetchingQuotes\";\nimport { formatUnits } from \"viem\";\nimport { useWarningMessage } from \"../inputs/hooks/useWarningMessage\";\n\nexport type UseTwapTokenToInputInput = {\n override?: { amountWei?: string };\n isPriceLoading?: boolean;\n priceError?: Error | null;\n};\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useTwapTokenTo();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenTo,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: {\n isPriceLoading?: boolean;\n} = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n\n const [chainTo, setChainTo] = useAtom(twapChainToAtom);\n\n const { selectableChains } = useSelectableDestChains({\n fromChainId: appChainId,\n mode: \"twap\",\n });\n\n const showNetworkSwitcher = chainTo !== undefined;\n\n const networkSwitcherProps = showNetworkSwitcher\n ? {\n // @TODO reenable TWAP crosschain when ready on the API\n // networks: selectableChains,\n // selectedNetwork: chainTo,\n networks: [appChainId],\n selectedNetwork: appChainId,\n allOption: false,\n onSelect: (chainId: SupportedChainId | \"all\") =>\n chainId !== \"all\" && setChainTo(chainId),\n // @TODO reenable TWAP crosschain when ready on the API\n // disabled: selectableChains.length <= 1,\n disabled: true,\n }\n : undefined;\n\n const [currentInput, setCurrentInput] = useAtom(currentTwapInputAtom);\n\n const side = useTwapSide();\n const isSell = side === \"SELL\";\n\n // SELLing and price is loading = tokenTo input will receive destAmount\n const isLoading = isPriceLoading && isSell;\n\n const isCrosschain = useIsTwapCrossChain();\n const showFetchingQuotes = isCrosschain && isPriceLoading;\n\n return {\n networkSwitcherProps,\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: (\n <>\n <span>Receive (estimated)</span>{\" \"}\n {showNetworkSwitcher && <span className=\"text-contrast-5\">on</span>}\n </>\n ),\n isLoading,\n disabled: selectableChains.length === 0,\n bottomElement: showFetchingQuotes ? <FetchingQuotes /> : undefined,\n readOnly: isCrosschain && currentInput === \"to\", // @TODO revert this change when Crosschain BUY is supported for TWAP\n };\n};\n\nconst useTokenToAmountProps = ({\n override,\n}: UseTwapTokenToInputInput): Pick<\n TokenInputProps,\n \"amount\" | \"token\" | \"onAmountChange\" | \"onTokenSelect\"\n> => {\n const logger = useLogger(\"Twap::TokenTo::AmountProps\");\n const tokenTo = useTwapTokenTo();\n\n const rawAmount = useAtomValue(twapReceiveInputAmountAtom);\n const setReceiveAmount = useSetAtom(twapReceiveInputAmountAtom);\n\n // SELL mode: override from price\n const amount =\n override?.amountWei && tokenTo\n ? formatUnits(BigInt(override.amountWei), tokenTo.decimals)\n : rawAmount;\n\n const onAmountChange: OnValueChange = (values) => {\n logger.log(\"onAmountChange::values\", values);\n setReceiveAmount(values.value);\n };\n\n const setTokenTo = useSetAtom(selectTwapTokenToAtom);\n\n return {\n amount,\n token: tokenTo,\n onAmountChange,\n onTokenSelect: setTokenTo,\n };\n};\n\nexport const useTwapTokenToInputProps = (\n input: UseTwapTokenToInputInput = {}\n): TokenInputProps => {\n const extraAmountProps = useTokenToAmountProps({ override: input.override });\n const extraProps = useExtraProps({ isPriceLoading: input.isPriceLoading });\n const tokenBalanceUnit = useTokenToBalanceUnit();\n const warningMessage = useWarningMessage({\n priceMode: \"delta\",\n priceError: input.priceError,\n mode: \"twap\",\n tradeMode: \"twap\",\n });\n\n return {\n ...extraProps,\n ...extraAmountProps,\n tokenBalanceUnit,\n warningMessage,\n };\n};\n"],"mappings":"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"}
|
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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"}
|
|
@@ -139,8 +139,8 @@ function D(e) {
|
|
|
139
139
|
}
|
|
140
140
|
function O(e) {
|
|
141
141
|
let { srcAmount: t, destAmount: n } = e.reduce((e, { spentAmount: t, receivedAmount: n, bridgeMetadata: r }) => ({
|
|
142
|
-
srcAmount:
|
|
143
|
-
destAmount:
|
|
142
|
+
srcAmount: e.srcAmount + BigInt(t),
|
|
143
|
+
destAmount: e.destAmount + BigInt(r ? r.outputAmount : n)
|
|
144
144
|
}), {
|
|
145
145
|
srcAmount: 0n,
|
|
146
146
|
destAmount: 0n
|