@velora-dex/widget 0.4.12-dev.2 → 0.4.12-dev.3
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/TradeParameters/state/degenModeParamAtom.d.ts +1 -0
- package/dist/components/widget/TradeParameters/state/degenModeParamAtom.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/state/degenModeParamAtom.js +5 -1
- package/dist/components/widget/TradeParameters/state/degenModeParamAtom.js.map +1 -1
- package/dist/core/Warnings.d.ts.map +1 -1
- package/dist/core/Warnings.js +124 -49
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +7 -4
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +2 -2
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/lib/utils/priceImpact.d.ts.map +1 -1
- package/dist/lib/utils/priceImpact.js +4 -2
- package/dist/lib/utils/priceImpact.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/swapDetails/useIsDangerSwap.d.ts +0 -2
- package/dist/core/swapDetails/useIsDangerSwap.d.ts.map +0 -1
- package/dist/core/swapDetails/useIsDangerSwap.js +0 -27
- package/dist/core/swapDetails/useIsDangerSwap.js.map +0 -1
- package/dist/core/swapDetails/usePriceImpactWarning.d.ts +0 -8
- package/dist/core/swapDetails/usePriceImpactWarning.d.ts.map +0 -1
- package/dist/core/swapDetails/usePriceImpactWarning.js +0 -35
- package/dist/core/swapDetails/usePriceImpactWarning.js.map +0 -1
|
@@ -4,4 +4,5 @@ export declare const userDegenModeParamAtom: import('jotai').PrimitiveAtom<boole
|
|
|
4
4
|
};
|
|
5
5
|
export declare const degenModeParamAtom: import('jotai').Atom<boolean>;
|
|
6
6
|
export declare const isNotDefaultDegenModeParamAtom: import('jotai').Atom<boolean>;
|
|
7
|
+
export declare const useDegenMode: () => boolean;
|
|
7
8
|
//# sourceMappingURL=degenModeParamAtom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"degenModeParamAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/TradeParameters/state/degenModeParamAtom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"degenModeParamAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/TradeParameters/state/degenModeParamAtom.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAGtC,eAAO,MAAM,sBAAsB;;CAAyB,CAAC;AAG7D,eAAO,MAAM,kBAAkB,+BAS7B,CAAC;AAEH,eAAO,MAAM,8BAA8B,+BAE1C,CAAC;AAEF,eAAO,MAAM,YAAY,eAExB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { widgetConfigAtom } from '../../../../core/state/configAtom.js';
|
|
2
|
+
import { useAtomValue } from '../../../../core/store.js';
|
|
2
3
|
import { atom } from 'jotai';
|
|
3
4
|
|
|
4
5
|
const defaultDegenMode = false;
|
|
@@ -11,6 +12,9 @@ const degenModeParamAtom = atom((get) => {
|
|
|
11
12
|
return get(userDegenModeParamAtom);
|
|
12
13
|
});
|
|
13
14
|
const isNotDefaultDegenModeParamAtom = atom((get) => get(degenModeParamAtom) !== defaultDegenMode);
|
|
15
|
+
const useDegenMode = () => {
|
|
16
|
+
return useAtomValue(degenModeParamAtom);
|
|
17
|
+
};
|
|
14
18
|
|
|
15
|
-
export { defaultDegenMode, degenModeParamAtom, isNotDefaultDegenModeParamAtom, userDegenModeParamAtom };
|
|
19
|
+
export { defaultDegenMode, degenModeParamAtom, isNotDefaultDegenModeParamAtom, useDegenMode, userDegenModeParamAtom };
|
|
16
20
|
//# sourceMappingURL=degenModeParamAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"degenModeParamAtom.js","sources":["../../../../../src/components/widget/TradeParameters/state/degenModeParamAtom.ts"],"sourcesContent":["import { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { atom } from \"jotai\";\n\nexport const defaultDegenMode = false;\n\n// store the user's preference\nexport const userDegenModeParamAtom = atom(defaultDegenMode);\n\n// derive the effective degen mode\nexport const degenModeParamAtom = atom((get) => {\n const enabledInConfig = get(widgetConfigAtom).enableDegenMode;\n\n // If the widget config has degen mode disabled, always return false\n if (!enabledInConfig) {\n return false;\n }\n\n return get(userDegenModeParamAtom);\n});\n\nexport const isNotDefaultDegenModeParamAtom = atom(\n (get) => get(degenModeParamAtom) !== defaultDegenMode\n);\n"],"names":["defaultDegenMode","userDegenModeParamAtom","atom","degenModeParamAtom","get","enabledInConfig","widgetConfigAtom","enableDegenMode","isNotDefaultDegenModeParamAtom"],"mappings":"
|
|
1
|
+
{"version":3,"file":"degenModeParamAtom.js","sources":["../../../../../src/components/widget/TradeParameters/state/degenModeParamAtom.ts"],"sourcesContent":["import { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport { atom } from \"jotai\";\n\nexport const defaultDegenMode = false;\n\n// store the user's preference\nexport const userDegenModeParamAtom = atom(defaultDegenMode);\n\n// derive the effective degen mode\nexport const degenModeParamAtom = atom((get) => {\n const enabledInConfig = get(widgetConfigAtom).enableDegenMode;\n\n // If the widget config has degen mode disabled, always return false\n if (!enabledInConfig) {\n return false;\n }\n\n return get(userDegenModeParamAtom);\n});\n\nexport const isNotDefaultDegenModeParamAtom = atom(\n (get) => get(degenModeParamAtom) !== defaultDegenMode\n);\n\nexport const useDegenMode = () => {\n return useAtomValue(degenModeParamAtom);\n};\n"],"names":["defaultDegenMode","userDegenModeParamAtom","atom","degenModeParamAtom","get","enabledInConfig","widgetConfigAtom","enableDegenMode","isNotDefaultDegenModeParamAtom","useDegenMode","useAtomValue"],"mappings":";;;;AAIO,MAAMA,gBAAAA,GAAmB;AAGzB,MAAMC,sBAAAA,GAAyBC,KAAKF,gBAAgB;AAGpD,MAAMG,kBAAAA,GAAqBD,KAAME,CAAAA,GAAAA,KAAQ;AAC9C,EAAA,MAAMC,eAAAA,GAAkBD,GAAAA,CAAIE,gBAAgB,CAAA,CAAEC,eAAAA;AAG9C,EAAA,IAAI,CAACF,eAAAA,EAAiB;AACpB,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAOD,IAAIH,sBAAsB,CAAA;AACnC,CAAC;AAEM,MAAMO,iCAAiCN,IAAAA,CAC3CE,CAAAA,GAAAA,KAAQA,GAAAA,CAAID,kBAAkB,MAAMH,gBACvC;AAEO,MAAMS,eAAeA,MAAA;AAAA,EAAA,OACnBC,aAAaP,kBAAkB,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Warnings.d.ts","sourceRoot":"","sources":["../../src/core/Warnings.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Warnings.d.ts","sourceRoot":"","sources":["../../src/core/Warnings.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,aAAa,sDAwBzB,CAAC;AA4FF,eAAO,MAAM,iBAAiB,sDA6B7B,CAAC"}
|
package/dist/core/Warnings.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { d as distExports } from '../_virtual/index.js';
|
|
3
3
|
import { useCurrentChainConfig } from '../hooks/useCurrentChain.js';
|
|
4
|
-
import {
|
|
4
|
+
import { Warning, WarningWithTitle } from '../components/widget/Warning/Warning.js';
|
|
5
5
|
import { useSetOpenDrawer } from '../components/widget/Drawer/state/useDrawerControls.js';
|
|
6
6
|
import { useUnsupportedLimitChain } from './limit/useLimitNotSupported.js';
|
|
7
7
|
import { useUnsupportedOtcChain } from './otc/useOtcNotSupported.js';
|
|
8
|
-
import {
|
|
9
|
-
import { degenModeParamAtom } from '../components/widget/TradeParameters/state/degenModeParamAtom.js';
|
|
10
|
-
import { useAtomValue } from './store.js';
|
|
8
|
+
import { useDegenMode } from '../components/widget/TradeParameters/state/degenModeParamAtom.js';
|
|
11
9
|
import { useWidgetConfig } from './state/configAtom.js';
|
|
10
|
+
import { useCurrentSwapPriceError } from '../hooks/swap/prices/useSwapPrices.js';
|
|
11
|
+
import { useSwapTokenTo } from './inputs/state/selectedTokenAtom.js';
|
|
12
|
+
import { useSetAtom } from './store.js';
|
|
13
|
+
import { userTradeModeAtom } from './state/tradeModeAtom.js';
|
|
14
|
+
import { useWidgetTokens } from './inputs/state/common.js';
|
|
15
|
+
import { selectLimitTokenFromAtom, selectLimitTokenToAtom } from './limit/state/selectedTokenActionsAtom.js';
|
|
12
16
|
|
|
13
17
|
const warningClasses = {
|
|
14
18
|
root: "mt-4"
|
|
@@ -49,44 +53,102 @@ const swapWidgetWarningClasses = {
|
|
|
49
53
|
root: "mt-4 border-1 border-secondary-radical-red-1 rounded-xs bg-[rgba(255,43,82,0.05)] text-secondary-radical-red-1"
|
|
50
54
|
};
|
|
51
55
|
const EnableDegenModeMessage = (t0) => {
|
|
52
|
-
const $ = distExports.c(
|
|
56
|
+
const $ = distExports.c(12);
|
|
53
57
|
const {
|
|
54
|
-
|
|
58
|
+
tokenFrom,
|
|
59
|
+
tokenTo
|
|
55
60
|
} = t0;
|
|
61
|
+
const degenMode = useDegenMode();
|
|
62
|
+
const {
|
|
63
|
+
enableDegenMode
|
|
64
|
+
} = useWidgetConfig();
|
|
56
65
|
const setOpenDrawer = useSetOpenDrawer();
|
|
66
|
+
const setTradeMode = useSetAtom(userTradeModeAtom);
|
|
67
|
+
const setLimitTokenFrom = useSetAtom(selectLimitTokenFromAtom);
|
|
68
|
+
const setLimitTokenTo = useSetAtom(selectLimitTokenToAtom);
|
|
69
|
+
const showEnableDegenModeMessage = enableDegenMode && !degenMode;
|
|
57
70
|
let t1;
|
|
58
|
-
if ($[0] !==
|
|
59
|
-
t1 = /* @__PURE__ */ jsx("
|
|
60
|
-
|
|
61
|
-
|
|
71
|
+
if ($[0] !== setLimitTokenFrom || $[1] !== setLimitTokenTo || $[2] !== setTradeMode || $[3] !== tokenFrom || $[4] !== tokenTo) {
|
|
72
|
+
t1 = /* @__PURE__ */ jsx("span", { className: "underline cursor-pointer", onClick: () => {
|
|
73
|
+
setTradeMode("limit");
|
|
74
|
+
setLimitTokenFrom(tokenFrom);
|
|
75
|
+
setLimitTokenTo(tokenTo);
|
|
76
|
+
}, children: "Limit Order" });
|
|
77
|
+
$[0] = setLimitTokenFrom;
|
|
78
|
+
$[1] = setLimitTokenTo;
|
|
79
|
+
$[2] = setTradeMode;
|
|
80
|
+
$[3] = tokenFrom;
|
|
81
|
+
$[4] = tokenTo;
|
|
82
|
+
$[5] = t1;
|
|
62
83
|
} else {
|
|
63
|
-
t1 = $[
|
|
84
|
+
t1 = $[5];
|
|
64
85
|
}
|
|
65
86
|
let t2;
|
|
66
|
-
if ($[
|
|
67
|
-
t2 = /* @__PURE__ */
|
|
68
|
-
|
|
69
|
-
|
|
87
|
+
if ($[6] !== setOpenDrawer || $[7] !== showEnableDegenModeMessage) {
|
|
88
|
+
t2 = showEnableDegenModeMessage ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
89
|
+
", or ape in anyway with",
|
|
90
|
+
" ",
|
|
91
|
+
/* @__PURE__ */ jsx("span", { className: "underline cursor-pointer", onClick: () => setOpenDrawer("trade-parameters-drawer"), children: "Degen Mode" }),
|
|
92
|
+
" ",
|
|
93
|
+
"enabled."
|
|
94
|
+
] }) : ".";
|
|
95
|
+
$[6] = setOpenDrawer;
|
|
96
|
+
$[7] = showEnableDegenModeMessage;
|
|
97
|
+
$[8] = t2;
|
|
70
98
|
} else {
|
|
71
|
-
t2 = $[
|
|
99
|
+
t2 = $[8];
|
|
72
100
|
}
|
|
73
101
|
let t3;
|
|
74
|
-
if ($[
|
|
102
|
+
if ($[9] !== t1 || $[10] !== t2) {
|
|
75
103
|
t3 = /* @__PURE__ */ jsxs("div", { children: [
|
|
104
|
+
"Use a",
|
|
105
|
+
" ",
|
|
76
106
|
t1,
|
|
77
|
-
"You can continue at your own risk by enabling the Degen Mode in",
|
|
78
107
|
" ",
|
|
108
|
+
"for a better fill",
|
|
79
109
|
t2
|
|
80
110
|
] });
|
|
81
|
-
$[
|
|
82
|
-
$[
|
|
83
|
-
$[
|
|
111
|
+
$[9] = t1;
|
|
112
|
+
$[10] = t2;
|
|
113
|
+
$[11] = t3;
|
|
84
114
|
} else {
|
|
85
|
-
t3 = $[
|
|
115
|
+
t3 = $[11];
|
|
86
116
|
}
|
|
87
117
|
return t3;
|
|
88
118
|
};
|
|
89
|
-
const
|
|
119
|
+
const EnableDegenModeWarning = (t0) => {
|
|
120
|
+
const $ = distExports.c(6);
|
|
121
|
+
const {
|
|
122
|
+
title
|
|
123
|
+
} = t0;
|
|
124
|
+
const {
|
|
125
|
+
tokenFrom,
|
|
126
|
+
tokenTo
|
|
127
|
+
} = useWidgetTokens("swap");
|
|
128
|
+
if (!tokenTo) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
let t1;
|
|
132
|
+
if ($[0] !== tokenFrom || $[1] !== tokenTo) {
|
|
133
|
+
t1 = /* @__PURE__ */ jsx(EnableDegenModeMessage, { tokenFrom, tokenTo });
|
|
134
|
+
$[0] = tokenFrom;
|
|
135
|
+
$[1] = tokenTo;
|
|
136
|
+
$[2] = t1;
|
|
137
|
+
} else {
|
|
138
|
+
t1 = $[2];
|
|
139
|
+
}
|
|
140
|
+
let t2;
|
|
141
|
+
if ($[3] !== t1 || $[4] !== title) {
|
|
142
|
+
t2 = /* @__PURE__ */ jsx(WarningWithTitle, { title, message: t1, classes: swapWidgetWarningClasses });
|
|
143
|
+
$[3] = t1;
|
|
144
|
+
$[4] = title;
|
|
145
|
+
$[5] = t2;
|
|
146
|
+
} else {
|
|
147
|
+
t2 = $[5];
|
|
148
|
+
}
|
|
149
|
+
return t2;
|
|
150
|
+
};
|
|
151
|
+
const DegenModeEnabledWarning = () => {
|
|
90
152
|
const $ = distExports.c(1);
|
|
91
153
|
let t0;
|
|
92
154
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
@@ -97,42 +159,55 @@ const DegenModeWarning = () => {
|
|
|
97
159
|
}
|
|
98
160
|
return t0;
|
|
99
161
|
};
|
|
162
|
+
const warningMessageByReason = {
|
|
163
|
+
highPriceImpact: (
|
|
164
|
+
// explicit threshold breach, more severe warning
|
|
165
|
+
"High price impact — expect heavy slippage."
|
|
166
|
+
),
|
|
167
|
+
unavailablePriceImpact: (
|
|
168
|
+
// unable to calculate price impact, more generic warning
|
|
169
|
+
"Price impact couldn't be calculated."
|
|
170
|
+
)
|
|
171
|
+
};
|
|
100
172
|
const SwapWidgetWarning = () => {
|
|
101
|
-
const $ = distExports.c(
|
|
102
|
-
const
|
|
103
|
-
const
|
|
173
|
+
const $ = distExports.c(3);
|
|
174
|
+
const degenMode = useDegenMode();
|
|
175
|
+
const tokenTo = useSwapTokenTo();
|
|
104
176
|
const {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
177
|
+
isMaxImpactReachedError,
|
|
178
|
+
isNoUsdPriceError,
|
|
179
|
+
priceImpact
|
|
180
|
+
} = useCurrentSwapPriceError();
|
|
181
|
+
if (!tokenTo) {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
if (priceImpact?.isHighImpact || isMaxImpactReachedError) {
|
|
108
185
|
let t0;
|
|
109
|
-
if ($[0]
|
|
110
|
-
t0 =
|
|
111
|
-
$[0] =
|
|
112
|
-
$[1] = enableDegenMode;
|
|
113
|
-
$[2] = priceWarning.message;
|
|
114
|
-
$[3] = t0;
|
|
186
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
187
|
+
t0 = /* @__PURE__ */ jsx(EnableDegenModeWarning, { title: warningMessageByReason.highPriceImpact });
|
|
188
|
+
$[0] = t0;
|
|
115
189
|
} else {
|
|
116
|
-
t0 = $[
|
|
190
|
+
t0 = $[0];
|
|
117
191
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
192
|
+
return t0;
|
|
193
|
+
}
|
|
194
|
+
if (priceImpact?.isUnavailable || isNoUsdPriceError) {
|
|
195
|
+
let t0;
|
|
196
|
+
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
197
|
+
t0 = /* @__PURE__ */ jsx(EnableDegenModeWarning, { title: warningMessageByReason.unavailablePriceImpact });
|
|
198
|
+
$[1] = t0;
|
|
124
199
|
} else {
|
|
125
|
-
|
|
200
|
+
t0 = $[1];
|
|
126
201
|
}
|
|
127
|
-
return
|
|
202
|
+
return t0;
|
|
128
203
|
}
|
|
129
204
|
if (degenMode) {
|
|
130
205
|
let t0;
|
|
131
|
-
if ($[
|
|
132
|
-
t0 = /* @__PURE__ */ jsx(
|
|
133
|
-
$[
|
|
206
|
+
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
207
|
+
t0 = /* @__PURE__ */ jsx(DegenModeEnabledWarning, {});
|
|
208
|
+
$[2] = t0;
|
|
134
209
|
} else {
|
|
135
|
-
t0 = $[
|
|
210
|
+
t0 = $[2];
|
|
136
211
|
}
|
|
137
212
|
return t0;
|
|
138
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Warnings.js","sources":["../../src/core/Warnings.tsx"],"sourcesContent":["import { useCurrentChainConfig } from \"@/hooks/useCurrentChain\";\nimport { Warning, WarningWithTitle } from \"@/components/widget/Warning/Warning\";\nimport { useSetOpenDrawer } from \"@/components/widget/Drawer/state/useDrawerControls\";\nimport { useUnsupportedLimitChain } from \"./limit/useLimitNotSupported\";\nimport { useUnsupportedOtcChain } from \"./otc/useOtcNotSupported\";\nimport { usePriceImpactWarning } from \"./swapDetails/usePriceImpactWarning\";\nimport { degenModeParamAtom } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\nimport { useAtomValue } from \"./store\";\nimport { useWidgetConfig } from \"./state/configAtom\";\n\nconst warningClasses = {\n root: \"mt-4\",\n};\n\nexport const WidgetWarning = () => {\n const chainConfig = useCurrentChainConfig();\n const chainName = chainConfig.name;\n\n const limitNotSupported = useUnsupportedLimitChain();\n const otcNotSupported = useUnsupportedOtcChain();\n\n if (limitNotSupported)\n return (\n <Warning\n message={`Limit Orders are not available yet on ${chainName}`}\n classes={warningClasses}\n />\n );\n\n if (otcNotSupported)\n return (\n <Warning\n message={`OTC Orders are not available yet on ${chainName}`}\n classes={warningClasses}\n />\n );\n\n return null;\n};\n\nconst swapWidgetWarningClasses = {\n root: \"mt-4 border-1 border-secondary-radical-red-1 rounded-xs bg-[rgba(255,43,82,0.05)] text-secondary-radical-red-1\",\n};\n\nconst EnableDegenModeMessage = ({ message }: { message?: string }) => {\n const setOpenDrawer = useSetOpenDrawer();\n return (\n <div>\n <div>{message}</div>\n You can continue at your own risk by enabling the Degen Mode in{\" \"}\n <span\n className=\"underline cursor-pointer\"\n onClick={() => setOpenDrawer(\"trade-parameters-drawer\")}\n >\n Trading Parameters.\n </span>\n </div>\n );\n};\n\nconst DegenModeWarning = () => {\n return (\n <Warning\n message={\"You have turned on Degen Mode. Be cautious.\"}\n classes={swapWidgetWarningClasses}\n />\n );\n};\n\nexport const SwapWidgetWarning = () => {\n const priceWarning = usePriceImpactWarning();\n const degenMode = useAtomValue(degenModeParamAtom);\n const { enableDegenMode } = useWidgetConfig();\n\n if (priceWarning) {\n return (\n <WarningWithTitle\n title={priceWarning.title}\n message={\n !degenMode && enableDegenMode ? (\n <EnableDegenModeMessage message={priceWarning.message} />\n ) : (\n // doesn't makes sense to take the user to the Trade Parameters\n // if the degenMode is disabled via the widget config\n priceWarning.message\n )\n }\n classes={swapWidgetWarningClasses}\n />\n );\n }\n\n if (degenMode) {\n return <DegenModeWarning />;\n }\n\n return null;\n};\n"],"names":["warningClasses","root","WidgetWarning","$","_c","chainConfig","useCurrentChainConfig","chainName","name","limitNotSupported","useUnsupportedLimitChain","otcNotSupported","useUnsupportedOtcChain","t0","t1","swapWidgetWarningClasses","EnableDegenModeMessage","message","setOpenDrawer","useSetOpenDrawer","t2","t3","DegenModeWarning","Symbol","for","SwapWidgetWarning","priceWarning","usePriceImpactWarning","degenMode","useAtomValue","degenModeParamAtom","enableDegenMode","useWidgetConfig","title"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Warnings.js","sources":["../../src/core/Warnings.tsx"],"sourcesContent":["import { useCurrentChainConfig } from \"@/hooks/useCurrentChain\";\nimport { Warning, WarningWithTitle } from \"@/components/widget/Warning/Warning\";\nimport { useSetOpenDrawer } from \"@/components/widget/Drawer/state/useDrawerControls\";\nimport { useUnsupportedLimitChain } from \"./limit/useLimitNotSupported\";\nimport { useUnsupportedOtcChain } from \"./otc/useOtcNotSupported\";\nimport { useDegenMode } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\nimport { useWidgetConfig } from \"./state/configAtom\";\nimport { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useSwapTokenTo } from \"./inputs/state/selectedTokenAtom\";\nimport { useSetAtom } from \"./store\";\nimport { userTradeModeAtom } from \"./state/tradeModeAtom\";\nimport { useWidgetTokens } from \"./inputs/state/common\";\nimport {\n selectLimitTokenFromAtom,\n selectLimitTokenToAtom,\n} from \"./limit/state/selectedTokenActionsAtom\";\nimport type { Token } from \"@/tokens/state/types\";\n\nconst warningClasses = {\n root: \"mt-4\",\n};\n\nexport const WidgetWarning = () => {\n const chainConfig = useCurrentChainConfig();\n const chainName = chainConfig.name;\n\n const limitNotSupported = useUnsupportedLimitChain();\n const otcNotSupported = useUnsupportedOtcChain();\n\n if (limitNotSupported)\n return (\n <Warning\n message={`Limit Orders are not available yet on ${chainName}`}\n classes={warningClasses}\n />\n );\n\n if (otcNotSupported)\n return (\n <Warning\n message={`OTC Orders are not available yet on ${chainName}`}\n classes={warningClasses}\n />\n );\n\n return null;\n};\n\nconst swapWidgetWarningClasses = {\n root: \"mt-4 border-1 border-secondary-radical-red-1 rounded-xs bg-[rgba(255,43,82,0.05)] text-secondary-radical-red-1\",\n};\n\nconst EnableDegenModeMessage = ({\n tokenFrom,\n tokenTo,\n}: {\n tokenFrom: Token;\n tokenTo: Token;\n}) => {\n const degenMode = useDegenMode();\n const { enableDegenMode } = useWidgetConfig();\n\n const setOpenDrawer = useSetOpenDrawer();\n const setTradeMode = useSetAtom(userTradeModeAtom);\n\n const setLimitTokenFrom = useSetAtom(selectLimitTokenFromAtom);\n const setLimitTokenTo = useSetAtom(selectLimitTokenToAtom);\n\n const showEnableDegenModeMessage = enableDegenMode && !degenMode;\n\n return (\n <div>\n Use a{\" \"}\n <span\n className=\"underline cursor-pointer\"\n onClick={() => {\n setTradeMode(\"limit\");\n setLimitTokenFrom(tokenFrom);\n setLimitTokenTo(tokenTo);\n }}\n >\n Limit Order\n </span>{\" \"}\n for a better fill\n {showEnableDegenModeMessage ? (\n <>\n , or ape in anyway with{\" \"}\n <span\n className=\"underline cursor-pointer\"\n onClick={() => setOpenDrawer(\"trade-parameters-drawer\")}\n >\n Degen Mode\n </span>{\" \"}\n enabled.\n </>\n ) : (\n \".\"\n )}\n </div>\n );\n};\n\nconst EnableDegenModeWarning = ({ title }: { title: string }) => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n if (!tokenTo) {\n return null;\n }\n\n return (\n <WarningWithTitle\n title={title}\n message={\n <EnableDegenModeMessage tokenFrom={tokenFrom} tokenTo={tokenTo} />\n }\n classes={swapWidgetWarningClasses}\n />\n );\n};\n\nconst DegenModeEnabledWarning = () => {\n return (\n <Warning\n message={\"You have turned on Degen Mode. Be cautious.\"}\n classes={swapWidgetWarningClasses}\n />\n );\n};\n\nconst warningMessageByReason = {\n highPriceImpact:\n // explicit threshold breach, more severe warning\n \"High price impact — expect heavy slippage.\",\n unavailablePriceImpact:\n // unable to calculate price impact, more generic warning\n \"Price impact couldn't be calculated.\",\n} as const;\n\nexport const SwapWidgetWarning = () => {\n const degenMode = useDegenMode();\n\n const tokenTo = useSwapTokenTo();\n const { isMaxImpactReachedError, isNoUsdPriceError, priceImpact } =\n useCurrentSwapPriceError();\n\n if (!tokenTo) {\n return null;\n }\n\n if (priceImpact?.isHighImpact || isMaxImpactReachedError) {\n return (\n <EnableDegenModeWarning title={warningMessageByReason.highPriceImpact} />\n );\n }\n if (priceImpact?.isUnavailable || isNoUsdPriceError) {\n return (\n <EnableDegenModeWarning\n title={warningMessageByReason.unavailablePriceImpact}\n />\n );\n }\n\n if (degenMode) {\n return <DegenModeEnabledWarning />;\n }\n\n return null;\n};\n"],"names":["warningClasses","root","WidgetWarning","$","_c","chainConfig","useCurrentChainConfig","chainName","name","limitNotSupported","useUnsupportedLimitChain","otcNotSupported","useUnsupportedOtcChain","t0","t1","swapWidgetWarningClasses","EnableDegenModeMessage","tokenFrom","tokenTo","degenMode","useDegenMode","enableDegenMode","useWidgetConfig","setOpenDrawer","useSetOpenDrawer","setTradeMode","useSetAtom","userTradeModeAtom","setLimitTokenFrom","selectLimitTokenFromAtom","setLimitTokenTo","selectLimitTokenToAtom","showEnableDegenModeMessage","t2","t3","EnableDegenModeWarning","title","useWidgetTokens","DegenModeEnabledWarning","Symbol","for","warningMessageByReason","highPriceImpact","unavailablePriceImpact","SwapWidgetWarning","useSwapTokenTo","isMaxImpactReachedError","isNoUsdPriceError","priceImpact","useCurrentSwapPriceError","isHighImpact","isUnavailable"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWidgetButtonExtraProps.d.ts","sourceRoot":"","sources":["../../../../src/core/button/hooks/useWidgetButtonExtraProps.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAuE5D,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AACF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"useWidgetButtonExtraProps.d.ts","sourceRoot":"","sources":["../../../../src/core/button/hooks/useWidgetButtonExtraProps.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAuE5D,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AACF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CAqD7D;AAED,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CAgE7D;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CAyC7D"}
|
|
@@ -12,7 +12,7 @@ import { useUnsupportedLimitTokens } from '../../limit/useLimitTokenToInputProps
|
|
|
12
12
|
import { useDeltaSwapPriceForLimit } from '../../limit/useLimitRate.js';
|
|
13
13
|
import { useLimitReceiverAddressValue } from '../../limit/state/receiverAddressAtom.js';
|
|
14
14
|
import { useChainMatches } from '../../../hooks/useChainMatches.js';
|
|
15
|
-
import {
|
|
15
|
+
import { useDegenMode } from '../../../components/widget/TradeParameters/state/degenModeParamAtom.js';
|
|
16
16
|
|
|
17
17
|
const errorMessageByApiErrorMessage = {
|
|
18
18
|
ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT: "Price Impact Too High",
|
|
@@ -116,10 +116,13 @@ function useWidgetButtonExtraProps(t0) {
|
|
|
116
116
|
t2 = $[3];
|
|
117
117
|
}
|
|
118
118
|
const {
|
|
119
|
+
price,
|
|
119
120
|
priceMode,
|
|
120
|
-
cachedError
|
|
121
|
+
cachedError,
|
|
122
|
+
priceImpact
|
|
121
123
|
} = useCurrentSwapPriceError(t2);
|
|
122
|
-
const
|
|
124
|
+
const degenMode = useDegenMode();
|
|
125
|
+
const isDangerSwap = !!price && !!(priceImpact?.isHighImpact || priceImpact?.isUnavailable);
|
|
123
126
|
const isAccountContract = useIsAccountContract().data?.isContract;
|
|
124
127
|
const isCrosschain = useIsCrossChain();
|
|
125
128
|
const receiver = useSwapReceiverAddressValue();
|
|
@@ -138,7 +141,7 @@ function useWidgetButtonExtraProps(t0) {
|
|
|
138
141
|
return t32;
|
|
139
142
|
}
|
|
140
143
|
const receiverRequiredButNotSet = !!isAccountContract && isCrosschain && !receiver;
|
|
141
|
-
const disabled = wrongNetwork || tokensAreSame || isTokenFromInsufficientBalance || receiverRequiredButNotSet;
|
|
144
|
+
const disabled = wrongNetwork || tokensAreSame || isTokenFromInsufficientBalance || receiverRequiredButNotSet || !degenMode && isDangerSwap;
|
|
142
145
|
let t3;
|
|
143
146
|
if ($[6] !== cachedError || $[7] !== isDangerSwap || $[8] !== isTokenFromInsufficientBalance || $[9] !== priceMode || $[10] !== receiverRequiredButNotSet || $[11] !== wrongNetwork) {
|
|
144
147
|
t3 = getSwapButtonLabelOverride({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWidgetButtonExtraProps.js","sources":["../../../../src/core/button/hooks/useWidgetButtonExtraProps.ts"],"sourcesContent":["import { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport { useIsAccountContract } from \"@/hooks/getCode/useIsAccountContract\";\nimport { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\n\nimport { useIsTokenFromInsufficientBalance } from \"@/hooks/tokens/balances/useIsInsufficientTokenBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport { useOtcReceiverAddressValue } from \"@/core/otc/state/receiverAddressAtom\";\nimport { useUnsupportedLimitChain } from \"@/core/limit/useLimitNotSupported\";\nimport { useUnsupportedOtcChain } from \"@/core/otc/useOtcNotSupported\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useUnsupportedLimitTokens } from \"@/core/limit/useLimitTokenToInputProps\";\nimport { useDeltaSwapPriceForLimit } from \"@/core/limit/useLimitRate\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useIsDangerSwap } from \"@/core/swapDetails/useIsDangerSwap\";\n\nconst errorMessageByApiErrorMessage: Record<string, string> = {\n ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT: \"Price Impact Too High\",\n \"No routes found with enough liquidity\": \"No Liquidity\",\n \"Bad USD price\": \"Price Error\",\n};\n\ntype GetButtonLabelOverrideBaseInput = {\n priceMode?: \"market\" | \"delta\";\n priceError?: Error | null;\n wrongNetwork: boolean;\n isTokenFromInsufficientBalance: boolean;\n receiverRequiredButNotSet?: boolean;\n};\n\nfunction getButtonLabelOverrideBase({\n priceMode,\n priceError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n}: GetButtonLabelOverrideBaseInput) {\n if (priceMode === \"market\" && priceError)\n return errorMessageByApiErrorMessage[priceError.message];\n\n if (wrongNetwork) return \"You are on the wrong network\";\n if (isTokenFromInsufficientBalance) return \"Insufficient funds\";\n if (receiverRequiredButNotSet) return \"Add a receiving address\";\n}\n\nfunction getSwapButtonLabelOverride({\n isDangerSwap,\n ...baseParams\n}: {\n isDangerSwap?: boolean;\n} & GetButtonLabelOverrideBaseInput): string | undefined {\n const baseOverride = getButtonLabelOverrideBase(baseParams);\n if (baseOverride) return baseOverride;\n if (isDangerSwap) return \"Swap Anyway\";\n}\n\nfunction useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode,\n}: UseExtraPropsInput) {\n const { walletChainMatchesAppChain, isConnected } = useChainMatches();\n\n const wrongNetwork = !walletChainMatchesAppChain;\n\n // protection against same tokens, because we cannot rely on setTokenAtom() to handle ALL possible cases\n const tokensAreSame =\n tokenFrom && tokenTo && areTokensSame(tokenFrom, tokenTo);\n\n const isTokenFromInsufficientBalance =\n useIsTokenFromInsufficientBalance(tradeMode);\n\n return {\n isConnected,\n wrongNetwork,\n tokensAreSame,\n isTokenFromInsufficientBalance,\n };\n}\n\ntype UseExtraPropsInput = {\n tokenFrom?: Token;\n tokenTo?: Token;\n tradeMode: TradeMode;\n};\ntype UseExtraPropsReturn = {\n disabled: boolean;\n labelOverride?: string;\n className?: string;\n isConnected: boolean;\n};\n\nconst dangerSwapBtnClassName = \"bg-secondary-radical-red-1\";\n\nexport function useWidgetButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"swap\",\n });\n\n const { priceMode, cachedError } = useCurrentSwapPriceError({\n enabled: false,\n });\n const isDangerSwap = useIsDangerSwap();\n\n const isAccountContract = useIsAccountContract().data?.isContract;\n const isCrosschain = useIsCrossChain();\n const receiver = useSwapReceiverAddressValue();\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const receiverRequiredButNotSet =\n !!isAccountContract && isCrosschain && !receiver;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n receiverRequiredButNotSet;\n\n const labelOverride = getSwapButtonLabelOverride({\n isDangerSwap,\n priceMode,\n priceError: cachedError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n });\n\n return {\n disabled,\n labelOverride,\n isConnected,\n className: isDangerSwap ? dangerSwapBtnClassName : undefined,\n };\n}\n\nexport function useLimitButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"limit\",\n });\n const unsupportedChain = useUnsupportedLimitChain();\n\n const { unsupportedTokens } = useUnsupportedLimitTokens();\n\n const isCrosschain =\n tokenFrom && tokenTo && tokenFrom.network !== tokenTo.network;\n\n const isCrosschainLimitOrder = isCrosschain;\n\n const { error: limitPriceError } = useDeltaSwapPriceForLimit({\n // DeltaPrice is required for crosschain Limit orders only\n tradeMode: \"limit\",\n enabled: false,\n });\n\n const priceError = isCrosschainLimitOrder ? limitPriceError : undefined;\n\n const limitReceiverAddress = useLimitReceiverAddressValue();\n const isAccountContract = useIsAccountContract().data?.isContract;\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n const connectedButNoReceiver = !limitReceiverAddress;\n\n const receiverRequiredButNotSet =\n // require receiver address filled when wallet=Smart Contract and Order is crosschain\n !!isAccountContract && !!isCrosschain && connectedButNoReceiver;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n !!unsupportedTokens ||\n !!priceError ||\n receiverRequiredButNotSet;\n\n const labelOverride = getButtonLabelOverrideBase({\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n priceError,\n priceMode: \"delta\",\n });\n\n const className = unsupportedChain ? \"pointer-events-none\" : undefined;\n\n return {\n disabled,\n labelOverride,\n className,\n isConnected,\n };\n}\n\nexport function useOtcButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"otc\",\n });\n\n const otcReceiverAddress = useOtcReceiverAddressValue();\n const unsupportedChain = useUnsupportedOtcChain();\n\n const className = unsupportedChain ? \"pointer-events-none\" : undefined;\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const connectedButNoReceiver = isConnected && !otcReceiverAddress;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n connectedButNoReceiver;\n\n const labelOverride = getButtonLabelOverrideBase({\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet: connectedButNoReceiver, // receiver always required for OTC\n });\n\n return {\n labelOverride,\n disabled,\n className,\n isConnected,\n };\n}\n"],"names":["errorMessageByApiErrorMessage","ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT","getButtonLabelOverrideBase","priceMode","priceError","wrongNetwork","isTokenFromInsufficientBalance","receiverRequiredButNotSet","message","getSwapButtonLabelOverride","isDangerSwap","baseParams","baseOverride","useWidgetButtonConditions","t0","$","_c","tokenFrom","tokenTo","tradeMode","walletChainMatchesAppChain","isConnected","useChainMatches","t1","areTokensSame","tokensAreSame","useIsTokenFromInsufficientBalance","t2","dangerSwapBtnClassName","useWidgetButtonExtraProps","Symbol","for","enabled","cachedError","useCurrentSwapPriceError","useIsDangerSwap","isAccountContract","useIsAccountContract","data","isContract","isCrosschain","useIsCrossChain","receiver","useSwapReceiverAddressValue","t3","disabled","labelOverride","t4","undefined","t5","className","useLimitButtonExtraProps","unsupportedChain","useUnsupportedLimitChain","unsupportedTokens","useUnsupportedLimitTokens","network","isCrosschainLimitOrder","error","limitPriceError","useDeltaSwapPriceForLimit","limitReceiverAddress","useLimitReceiverAddressValue","connectedButNoReceiver","useOtcButtonExtraProps","otcReceiverAddress","useOtcReceiverAddressValue","useUnsupportedOtcChain"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useWidgetButtonExtraProps.js","sources":["../../../../src/core/button/hooks/useWidgetButtonExtraProps.ts"],"sourcesContent":["import { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport { useIsAccountContract } from \"@/hooks/getCode/useIsAccountContract\";\nimport { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\n\nimport { useIsTokenFromInsufficientBalance } from \"@/hooks/tokens/balances/useIsInsufficientTokenBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport { useOtcReceiverAddressValue } from \"@/core/otc/state/receiverAddressAtom\";\nimport { useUnsupportedLimitChain } from \"@/core/limit/useLimitNotSupported\";\nimport { useUnsupportedOtcChain } from \"@/core/otc/useOtcNotSupported\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useUnsupportedLimitTokens } from \"@/core/limit/useLimitTokenToInputProps\";\nimport { useDeltaSwapPriceForLimit } from \"@/core/limit/useLimitRate\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useDegenMode } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\n\nconst errorMessageByApiErrorMessage: Record<string, string> = {\n ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT: \"Price Impact Too High\",\n \"No routes found with enough liquidity\": \"No Liquidity\",\n \"Bad USD price\": \"Price Error\",\n};\n\ntype GetButtonLabelOverrideBaseInput = {\n priceMode?: \"market\" | \"delta\";\n priceError?: Error | null;\n wrongNetwork: boolean;\n isTokenFromInsufficientBalance: boolean;\n receiverRequiredButNotSet?: boolean;\n};\n\nfunction getButtonLabelOverrideBase({\n priceMode,\n priceError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n}: GetButtonLabelOverrideBaseInput) {\n if (priceMode === \"market\" && priceError)\n return errorMessageByApiErrorMessage[priceError.message];\n\n if (wrongNetwork) return \"You are on the wrong network\";\n if (isTokenFromInsufficientBalance) return \"Insufficient funds\";\n if (receiverRequiredButNotSet) return \"Add a receiving address\";\n}\n\nfunction getSwapButtonLabelOverride({\n isDangerSwap,\n ...baseParams\n}: {\n isDangerSwap?: boolean;\n} & GetButtonLabelOverrideBaseInput): string | undefined {\n const baseOverride = getButtonLabelOverrideBase(baseParams);\n if (baseOverride) return baseOverride;\n if (isDangerSwap) return \"Swap Anyway\";\n}\n\nfunction useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode,\n}: UseExtraPropsInput) {\n const { walletChainMatchesAppChain, isConnected } = useChainMatches();\n\n const wrongNetwork = !walletChainMatchesAppChain;\n\n // protection against same tokens, because we cannot rely on setTokenAtom() to handle ALL possible cases\n const tokensAreSame =\n tokenFrom && tokenTo && areTokensSame(tokenFrom, tokenTo);\n\n const isTokenFromInsufficientBalance =\n useIsTokenFromInsufficientBalance(tradeMode);\n\n return {\n isConnected,\n wrongNetwork,\n tokensAreSame,\n isTokenFromInsufficientBalance,\n };\n}\n\ntype UseExtraPropsInput = {\n tokenFrom?: Token;\n tokenTo?: Token;\n tradeMode: TradeMode;\n};\ntype UseExtraPropsReturn = {\n disabled: boolean;\n labelOverride?: string;\n className?: string;\n isConnected: boolean;\n};\n\nconst dangerSwapBtnClassName = \"bg-secondary-radical-red-1\";\n\nexport function useWidgetButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"swap\",\n });\n\n const { price, priceMode, cachedError, priceImpact } =\n useCurrentSwapPriceError({\n enabled: false,\n });\n const degenMode = useDegenMode();\n const isDangerSwap =\n !!price && !!(priceImpact?.isHighImpact || priceImpact?.isUnavailable);\n\n const isAccountContract = useIsAccountContract().data?.isContract;\n const isCrosschain = useIsCrossChain();\n const receiver = useSwapReceiverAddressValue();\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const receiverRequiredButNotSet =\n !!isAccountContract && isCrosschain && !receiver;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n receiverRequiredButNotSet ||\n (!degenMode && isDangerSwap);\n\n const labelOverride = getSwapButtonLabelOverride({\n isDangerSwap,\n priceMode,\n priceError: cachedError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n });\n\n return {\n disabled,\n labelOverride,\n isConnected,\n className: isDangerSwap ? dangerSwapBtnClassName : undefined,\n };\n}\n\nexport function useLimitButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"limit\",\n });\n const unsupportedChain = useUnsupportedLimitChain();\n\n const { unsupportedTokens } = useUnsupportedLimitTokens();\n\n const isCrosschain =\n tokenFrom && tokenTo && tokenFrom.network !== tokenTo.network;\n\n const isCrosschainLimitOrder = isCrosschain;\n\n const { error: limitPriceError } = useDeltaSwapPriceForLimit({\n // DeltaPrice is required for crosschain Limit orders only\n tradeMode: \"limit\",\n enabled: false,\n });\n\n const priceError = isCrosschainLimitOrder ? limitPriceError : undefined;\n\n const limitReceiverAddress = useLimitReceiverAddressValue();\n const isAccountContract = useIsAccountContract().data?.isContract;\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n const connectedButNoReceiver = !limitReceiverAddress;\n\n const receiverRequiredButNotSet =\n // require receiver address filled when wallet=Smart Contract and Order is crosschain\n !!isAccountContract && !!isCrosschain && connectedButNoReceiver;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n !!unsupportedTokens ||\n !!priceError ||\n receiverRequiredButNotSet;\n\n const labelOverride = getButtonLabelOverrideBase({\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n priceError,\n priceMode: \"delta\",\n });\n\n const className = unsupportedChain ? \"pointer-events-none\" : undefined;\n\n return {\n disabled,\n labelOverride,\n className,\n isConnected,\n };\n}\n\nexport function useOtcButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"otc\",\n });\n\n const otcReceiverAddress = useOtcReceiverAddressValue();\n const unsupportedChain = useUnsupportedOtcChain();\n\n const className = unsupportedChain ? \"pointer-events-none\" : undefined;\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const connectedButNoReceiver = isConnected && !otcReceiverAddress;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n connectedButNoReceiver;\n\n const labelOverride = getButtonLabelOverrideBase({\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet: connectedButNoReceiver, // receiver always required for OTC\n });\n\n return {\n labelOverride,\n disabled,\n className,\n isConnected,\n };\n}\n"],"names":["errorMessageByApiErrorMessage","ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT","getButtonLabelOverrideBase","priceMode","priceError","wrongNetwork","isTokenFromInsufficientBalance","receiverRequiredButNotSet","message","getSwapButtonLabelOverride","isDangerSwap","baseParams","baseOverride","useWidgetButtonConditions","t0","$","_c","tokenFrom","tokenTo","tradeMode","walletChainMatchesAppChain","isConnected","useChainMatches","t1","areTokensSame","tokensAreSame","useIsTokenFromInsufficientBalance","t2","dangerSwapBtnClassName","useWidgetButtonExtraProps","Symbol","for","enabled","price","cachedError","priceImpact","useCurrentSwapPriceError","degenMode","useDegenMode","isHighImpact","isUnavailable","isAccountContract","useIsAccountContract","data","isContract","isCrosschain","useIsCrossChain","receiver","useSwapReceiverAddressValue","t3","disabled","labelOverride","t4","undefined","t5","className","useLimitButtonExtraProps","unsupportedChain","useUnsupportedLimitChain","unsupportedTokens","useUnsupportedLimitTokens","network","isCrosschainLimitOrder","error","limitPriceError","useDeltaSwapPriceForLimit","limitReceiverAddress","useLimitReceiverAddressValue","connectedButNoReceiver","useOtcButtonExtraProps","otcReceiverAddress","useOtcReceiverAddressValue","useUnsupportedOtcChain"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { usePartner } from '../../usePartner.js';
|
|
|
7
7
|
import { tradeModeToTokenAtoms, tradeModeToPayAmountWeiAtom, tradeModeToReceiveAmountWeiAtom } from '../../../core/inputs/state/common.js';
|
|
8
8
|
import { useSwapReceiverAddressValue } from '../../../components/widget/ReceiverAddress/state/receiverAddressAtom.js';
|
|
9
9
|
import { excludeBridgesAtom } from '../../../components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.js';
|
|
10
|
-
import {
|
|
10
|
+
import { useDegenMode } from '../../../components/widget/TradeParameters/state/degenModeParamAtom.js';
|
|
11
11
|
|
|
12
12
|
function usePricesParams(tradeMode) {
|
|
13
13
|
const $ = distExports.c(28);
|
|
@@ -78,7 +78,7 @@ function usePricesParams(tradeMode) {
|
|
|
78
78
|
partner,
|
|
79
79
|
partnerFeeBps
|
|
80
80
|
} = usePartner();
|
|
81
|
-
const degenMode =
|
|
81
|
+
const degenMode = useDegenMode();
|
|
82
82
|
const isCrossChain = !!toToken && fromToken.network !== toToken.network;
|
|
83
83
|
const swapSide = useSwapSide();
|
|
84
84
|
const side = tradeMode === "swap" ? swapSide : "SELL";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\n\nimport { useAtomValue } from \"@/core/store\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useTokenTaxFee } from \"@/hooks/tokens/useTokenTaxFee\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToPayAmountWeiAtom,\n tradeModeToReceiveAmountWeiAtom,\n tradeModeToTokenAtoms,\n} from \"@/core/inputs/state/common\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport { excludeBridgesAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom\";\nimport { degenModeParamAtom } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\nimport type { Address } from \"viem\";\n\nexport type FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n | \"srcTokenDexTransferFee\"\n | \"destTokenDexTransferFee\"\n | \"otherExchangePrices\"\n | \"partnerFeeBps\"\n | \"maxImpact\"\n | \"degenMode\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n\nexport function usePricesParams(tradeMode: TradeMode): {\n priceParams: FetchPriceParams;\n isCrossChain: boolean;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n} {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const fromToken = useAtomValue(tokenFromAtom);\n const toToken = useAtomValue(tokenToAtom);\n\n const payAmountWeiAtom = tradeModeToPayAmountWeiAtom[tradeMode];\n const receiveAmountWeiAtom = tradeModeToReceiveAmountWeiAtom[tradeMode];\n\n const payAmountWei = useAtomValue(payAmountWeiAtom);\n const receiveAmountWei = useAtomValue(receiveAmountWeiAtom) ?? \"0\";\n\n const { data: fromTokenTaxFee } = useTokenTaxFee({\n tokenAddress: fromToken.address,\n chainId: fromToken.network,\n });\n\n const { data: toTokenTaxFee } = useTokenTaxFee({\n tokenAddress: toToken?.address,\n chainId: toToken?.network,\n });\n\n const srcTokenDexTransferFee = fromTokenTaxFee?.sellTax?.toString();\n const destTokenDexTransferFee = toTokenTaxFee?.buyTax?.toString();\n\n const { address } = useAccount();\n\n const { partner, partnerFeeBps } = usePartner();\n const degenMode = useAtomValue(degenModeParamAtom);\n\n const isCrossChain = !!toToken && fromToken.network !== toToken.network;\n\n const swapSide = useSwapSide();\n const side = tradeMode === \"swap\" ? swapSide : \"SELL\";\n const amount = side === \"SELL\" ? payAmountWei : receiveAmountWei;\n\n const priceParams: FetchPriceParams = {\n srcToken: fromToken.address,\n destToken: toToken?.address,\n srcDecimals: fromToken.decimals,\n destDecimals: toToken?.decimals,\n side,\n amount,\n userAddress: address,\n partner,\n partnerFeeBps,\n srcTokenDexTransferFee,\n destTokenDexTransferFee,\n otherExchangePrices: true,\n };\n\n // Degen Mode:\n // set maxImpact=80 to bypass ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT\n // set ignoreBadUsdPrice=true to allow tokens without USD price data\n // set degenMode=true for tracing\n if (degenMode) {\n priceParams.maxImpact = 80;\n priceParams.ignoreBadUsdPrice = true;\n priceParams.degenMode = true;\n }\n\n return {\n priceParams,\n isCrossChain,\n chainId: fromToken.network,\n destChainId: isCrossChain ? toToken?.network : undefined,\n };\n}\n\nexport function useExtraDeltaPriceParams(): {\n excludeBridges?: string[];\n beneficiary?: Address;\n} {\n // excluded bridges from user preferences\n const excludeBridges = useAtomValue(excludeBridgesAtom);\n // receiver address from user input\n const receiverAddress = useSwapReceiverAddressValue();\n\n return {\n excludeBridges,\n beneficiary: receiverAddress,\n };\n}\n"],"names":["usePricesParams","tradeMode","$","_c","tokenFromAtom","tokenToAtom","tradeModeToTokenAtoms","fromToken","useAtomValue","toToken","payAmountWeiAtom","tradeModeToPayAmountWeiAtom","receiveAmountWeiAtom","tradeModeToReceiveAmountWeiAtom","payAmountWei","receiveAmountWei","t0","address","network","tokenAddress","chainId","data","fromTokenTaxFee","useTokenTaxFee","t1","t2","t3","toTokenTaxFee","t4","sellTax","toString","srcTokenDexTransferFee","t5","buyTax","destTokenDexTransferFee","useAccount","partner","partnerFeeBps","usePartner","degenMode","degenModeParamAtom","isCrossChain","swapSide","useSwapSide","side","amount","t6","t7","decimals","priceParams","srcToken","destToken","srcDecimals","destDecimals","userAddress","otherExchangePrices","maxImpact","ignoreBadUsdPrice","t8","undefined","t9","destChainId","useExtraDeltaPriceParams","excludeBridges","excludeBridgesAtom","receiverAddress","useSwapReceiverAddressValue","beneficiary"],"mappings":";;;;;;;;;;;AA+CO,SAAAA,gBAAAC,SAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAML,EAAA,MAAA;AAAA,IAAAC,aAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAuCC,sBAAsBL,SAAS,CAAA;AACtE,EAAA,MAAAM,SAAAA,GAAkBC,aAAaJ,aAAa,CAAA;AAC5C,EAAA,MAAAK,OAAAA,GAAgBD,aAAaH,WAAW,CAAA;AAExC,EAAA,MAAAK,gBAAAA,GAAyBC,4BAA4BV,SAAS,CAAA;AAC9D,EAAA,MAAAW,oBAAAA,GAA6BC,gCAAgCZ,SAAS,CAAA;AAEtE,EAAA,MAAAa,YAAAA,GAAqBN,aAAaE,gBAAgB,CAAA;AAClD,EAAA,MAAAK,gBAAAA,GAAyBP,YAAAA,CAAaI,oBAA2B,CAAA,IAAxC,GAAA;AAA0C,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAK,SAAAA,CAAAU,WAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAK,SAAAA,CAAAW,OAAAA,EAAA;AAElBF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,cACjCZ,SAAAA,CAASU,OAAAA;AAAAA,MAAQG,SACtBb,SAAAA,CAASW;AAAAA,KACpB;AAAChB,IAAAA,CAAAA,CAAA,CAAA,IAAAK,SAAAA,CAAAU,OAAAA;AAAAf,IAAAA,CAAAA,CAAA,CAAA,IAAAK,SAAAA,CAAAW,OAAAA;AAAAhB,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA;AAAA,IAAAmB,IAAAA,EAAAC;AAAAA,GAAA,GAAkCC,eAAeP,EAGhD,CAAA;AAGe,EAAA,MAAAQ,KAAAf,OAAAA,EAAOQ,OAAAA;AACZ,EAAA,MAAAQ,KAAAhB,OAAAA,EAAOS,OAAAA;AAAS,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAxB,EAAA,CAAA,CAAA,KAAAsB,MAAAtB,CAAAA,QAAAuB,EAAAA,EAAA;AAFoBC,IAAAA,EAAAA,GAAA;AAAA,MAAAP,YAAAA,EAC/BK,EAAAA;AAAAA,MAAgBJ,OAAAA,EACrBK;AAAAA,KACX;AAACvB,IAAAA,CAAAA,MAAAsB,EAAAA;AAAAtB,IAAAA,CAAAA,MAAAuB,EAAAA;AAAAvB,IAAAA,CAAAA,MAAAwB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxB,EAAA,CAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA;AAAA,IAAAmB,IAAAA,EAAAM;AAAAA,GAAA,GAAgCJ,eAAeG,EAG9C,CAAA;AAAE,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAA1B,CAAAA,CAAA,CAAA,CAAA,KAAAoB,eAAAA,EAAAO,OAAAA,EAAA;AAE4BD,IAAAA,EAAAA,GAAAN,eAAAA,EAAeO,SAAmBC,QAAAA,EAAC;AAAC5B,IAAAA,CAAAA,CAAA,CAAA,IAAAoB,eAAAA,EAAAO,OAAAA;AAAA3B,IAAAA,CAAAA,MAAA0B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1B,EAAA,CAAA,CAAA;AAAA,EAAA;AAAnE,EAAA,MAAA6B,sBAAAA,GAA+BH,EAAAA;AAAqC,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAA9B,CAAAA,CAAA,CAAA,CAAA,KAAAyB,aAAAA,EAAAM,MAAAA,EAAA;AACpCD,IAAAA,EAAAA,GAAAL,aAAAA,EAAaM,QAAkBH,QAAAA,EAAC;AAAC5B,IAAAA,CAAAA,CAAA,CAAA,IAAAyB,aAAAA,EAAAM,MAAAA;AAAA/B,IAAAA,CAAAA,MAAA8B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA9B,EAAA,CAAA,CAAA;AAAA,EAAA;AAAjE,EAAA,MAAAgC,uBAAAA,GAAgCF,EAAAA;AAEhC,EAAA,MAAA;AAAA,IAAAf;AAAAA,MAAoBkB,UAAAA,EAAW;AAE/B,EAAA,MAAA;AAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,MAAmCC,UAAAA,EAAW;AAC9C,EAAA,MAAAC,SAAAA,GAAkB/B,aAAagC,kBAAkB,CAAA;AAEjD,EAAA,MAAAC,eAAqB,CAAC,CAAChC,OAAAA,IAAWF,SAAAA,CAASW,YAAaT,OAAAA,CAAOS,OAAAA;AAE/D,EAAA,MAAAwB,WAAiBC,WAAAA,EAAY;AAC7B,EAAA,MAAAC,IAAAA,GAAa3C,SAAAA,KAAc,MAAA,GAAdyC,QAAAA,GAAA,MAAA;AACb,EAAA,MAAAG,MAAAA,GAAeD,IAAAA,KAAS,MAAA,GAAT9B,YAAAA,GAAAC,gBAAAA;AAIF,EAAA,MAAA+B,KAAArC,OAAAA,EAAOQ,OAAAA;AAEJ,EAAA,MAAA8B,KAAAtC,OAAAA,EAAOuC,QAAAA;AAAU,EAAA,IAAAC,WAAAA;AAAA,EAAA,IAAA/C,CAAAA,SAAAe,OAAAA,IAAAf,EAAA,EAAA,CAAA,KAAA2C,MAAAA,IAAA3C,CAAAA,CAAA,EAAA,CAAA,KAAAqC,aAAArC,CAAAA,CAAA,EAAA,MAAAgC,uBAAAA,IAAAhC,CAAAA,CAAA,EAAA,CAAA,KAAAK,SAAAA,CAAAU,OAAAA,IAAAf,CAAAA,CAAA,EAAA,CAAA,KAAAK,UAAAyC,QAAAA,IAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAkC,OAAAA,IAAAlC,EAAA,EAAA,CAAA,KAAAmC,aAAAA,IAAAnC,CAAAA,CAAA,EAAA,CAAA,KAAA0C,QAAA1C,CAAAA,CAAA,EAAA,CAAA,KAAA6B,sBAAAA,IAAA7B,CAAAA,SAAA4C,EAAAA,IAAA5C,CAAAA,CAAA,EAAA,CAAA,KAAA6C,EAAAA,EAAA;AAJjCE,IAAAA,WAAAA,GAAsC;AAAA,MAAAC,UAC1B3C,SAAAA,CAASU,OAAAA;AAAAA,MAAQkC,SAAAA,EAChBL,EAAAA;AAAAA,MAAgBM,aACd7C,SAAAA,CAASyC,QAAAA;AAAAA,MAASK,YAAAA,EACjBN,EAAAA;AAAAA,MAAiBH,IAAAA;AAAAA,MAAAC,MAAAA;AAAAA,MAAAS,WAAAA,EAGlBrC,OAAAA;AAAAA,MAAOmB,OAAAA;AAAAA,MAAAC,aAAAA;AAAAA,MAAAN,sBAAAA;AAAAA,MAAAG,uBAAAA;AAAAA,MAAAqB,mBAAAA,EAKC;AAAA,KACvB;AAMA,IAAA,IAAIhB,SAAAA,EAAS;AACXU,MAAAA,WAAAA,CAAWO,SAAAA,GAAa,EAAA;AACxBP,MAAAA,WAAAA,CAAWQ,iBAAAA,GAAqB,IAAA;AAChCR,MAAAA,WAAAA,CAAWV,SAAAA,GAAa,IAAA;AAAA,IAAH;AACtBrC,IAAAA,CAAAA,OAAAe,OAAAA;AAAAf,IAAAA,CAAAA,OAAA2C,MAAAA;AAAA3C,IAAAA,CAAAA,OAAAqC,SAAAA;AAAArC,IAAAA,CAAAA,OAAAgC,uBAAAA;AAAAhC,IAAAA,CAAAA,CAAA,EAAA,IAAAK,SAAAA,CAAAU,OAAAA;AAAAf,IAAAA,CAAAA,CAAA,EAAA,IAAAK,SAAAA,CAAAyC,QAAAA;AAAA9C,IAAAA,CAAAA,OAAAkC,OAAAA;AAAAlC,IAAAA,CAAAA,OAAAmC,aAAAA;AAAAnC,IAAAA,CAAAA,OAAA0C,IAAAA;AAAA1C,IAAAA,CAAAA,OAAA6B,sBAAAA;AAAA7B,IAAAA,CAAAA,OAAA4C,EAAAA;AAAA5C,IAAAA,CAAAA,OAAA6C,EAAAA;AAAA7C,IAAAA,CAAAA,OAAA+C,WAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,WAAAA,GAAA/C,EAAA,EAAA,CAAA;AAAA,EAAA;AAMc,EAAA,MAAAwD,EAAAA,GAAAjB,YAAAA,GAAehC,OAAAA,EAAOS,OAAAA,GAAtByC,MAAAA;AAA2C,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAA1D,EAAA,EAAA,CAAA,KAAAK,SAAAA,CAAAW,OAAAA,IAAAhB,EAAA,EAAA,CAAA,KAAAuC,YAAAA,IAAAvC,CAAAA,CAAA,EAAA,CAAA,KAAA+C,WAAAA,IAAA/C,CAAAA,SAAAwD,EAAAA,EAAA;AAJnDE,IAAAA,EAAAA,GAAA;AAAA,MAAAX,WAAAA;AAAAA,MAAAR,YAAAA;AAAAA,MAAArB,SAGIb,SAAAA,CAASW,OAAAA;AAAAA,MAAQ2C,WAAAA,EACbH;AAAAA,KACf;AAACxD,IAAAA,CAAAA,CAAA,EAAA,IAAAK,SAAAA,CAAAW,OAAAA;AAAAhB,IAAAA,CAAAA,OAAAuC,YAAAA;AAAAvC,IAAAA,CAAAA,OAAA+C,WAAAA;AAAA/C,IAAAA,CAAAA,OAAAwD,EAAAA;AAAAxD,IAAAA,CAAAA,OAAA0D,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1D,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OALM0D,EAAAA;AAKN;AAGI,SAAAE,wBAAAA,GAAA;AAAA,EAAA,MAAA5D,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAKL,EAAA,MAAA4D,cAAAA,GAAuBvD,aAAawD,kBAAkB,CAAA;AAEtD,EAAA,MAAAC,kBAAwBC,2BAAAA,EAA4B;AAAE,EAAA,IAAAlD,EAAAA;AAAA,EAAA,IAAAd,EAAA,CAAA,CAAA,KAAA6D,kBAAA7D,CAAAA,QAAA+D,eAAAA,EAAA;AAE/CjD,IAAAA,EAAAA,GAAA;AAAA,MAAA+C,cAAAA;AAAAA,MAAAI,WAAAA,EAEQF;AAAAA,KACf;AAAC/D,IAAAA,CAAAA,MAAA6D,cAAAA;AAAA7D,IAAAA,CAAAA,MAAA+D,eAAAA;AAAA/D,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAHMc,EAAAA;AAGN;;;;"}
|
|
1
|
+
{"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\n\nimport { useAtomValue } from \"@/core/store\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useTokenTaxFee } from \"@/hooks/tokens/useTokenTaxFee\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToPayAmountWeiAtom,\n tradeModeToReceiveAmountWeiAtom,\n tradeModeToTokenAtoms,\n} from \"@/core/inputs/state/common\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport { excludeBridgesAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom\";\nimport { useDegenMode } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\nimport type { Address } from \"viem\";\n\nexport type FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n | \"srcTokenDexTransferFee\"\n | \"destTokenDexTransferFee\"\n | \"otherExchangePrices\"\n | \"partnerFeeBps\"\n | \"maxImpact\"\n | \"degenMode\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n\nexport function usePricesParams(tradeMode: TradeMode): {\n priceParams: FetchPriceParams;\n isCrossChain: boolean;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n} {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const fromToken = useAtomValue(tokenFromAtom);\n const toToken = useAtomValue(tokenToAtom);\n\n const payAmountWeiAtom = tradeModeToPayAmountWeiAtom[tradeMode];\n const receiveAmountWeiAtom = tradeModeToReceiveAmountWeiAtom[tradeMode];\n\n const payAmountWei = useAtomValue(payAmountWeiAtom);\n const receiveAmountWei = useAtomValue(receiveAmountWeiAtom) ?? \"0\";\n\n const { data: fromTokenTaxFee } = useTokenTaxFee({\n tokenAddress: fromToken.address,\n chainId: fromToken.network,\n });\n\n const { data: toTokenTaxFee } = useTokenTaxFee({\n tokenAddress: toToken?.address,\n chainId: toToken?.network,\n });\n\n const srcTokenDexTransferFee = fromTokenTaxFee?.sellTax?.toString();\n const destTokenDexTransferFee = toTokenTaxFee?.buyTax?.toString();\n\n const { address } = useAccount();\n\n const { partner, partnerFeeBps } = usePartner();\n const degenMode = useDegenMode();\n\n const isCrossChain = !!toToken && fromToken.network !== toToken.network;\n\n const swapSide = useSwapSide();\n const side = tradeMode === \"swap\" ? swapSide : \"SELL\";\n const amount = side === \"SELL\" ? payAmountWei : receiveAmountWei;\n\n const priceParams: FetchPriceParams = {\n srcToken: fromToken.address,\n destToken: toToken?.address,\n srcDecimals: fromToken.decimals,\n destDecimals: toToken?.decimals,\n side,\n amount,\n userAddress: address,\n partner,\n partnerFeeBps,\n srcTokenDexTransferFee,\n destTokenDexTransferFee,\n otherExchangePrices: true,\n };\n\n // Degen Mode:\n // set maxImpact=80 to bypass ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT\n // set ignoreBadUsdPrice=true to allow tokens without USD price data\n // set degenMode=true for tracing\n if (degenMode) {\n priceParams.maxImpact = 80;\n priceParams.ignoreBadUsdPrice = true;\n priceParams.degenMode = true;\n }\n\n return {\n priceParams,\n isCrossChain,\n chainId: fromToken.network,\n destChainId: isCrossChain ? toToken?.network : undefined,\n };\n}\n\nexport function useExtraDeltaPriceParams(): {\n excludeBridges?: string[];\n beneficiary?: Address;\n} {\n // excluded bridges from user preferences\n const excludeBridges = useAtomValue(excludeBridgesAtom);\n // receiver address from user input\n const receiverAddress = useSwapReceiverAddressValue();\n\n return {\n excludeBridges,\n beneficiary: receiverAddress,\n };\n}\n"],"names":["usePricesParams","tradeMode","$","_c","tokenFromAtom","tokenToAtom","tradeModeToTokenAtoms","fromToken","useAtomValue","toToken","payAmountWeiAtom","tradeModeToPayAmountWeiAtom","receiveAmountWeiAtom","tradeModeToReceiveAmountWeiAtom","payAmountWei","receiveAmountWei","t0","address","network","tokenAddress","chainId","data","fromTokenTaxFee","useTokenTaxFee","t1","t2","t3","toTokenTaxFee","t4","sellTax","toString","srcTokenDexTransferFee","t5","buyTax","destTokenDexTransferFee","useAccount","partner","partnerFeeBps","usePartner","degenMode","useDegenMode","isCrossChain","swapSide","useSwapSide","side","amount","t6","t7","decimals","priceParams","srcToken","destToken","srcDecimals","destDecimals","userAddress","otherExchangePrices","maxImpact","ignoreBadUsdPrice","t8","undefined","t9","destChainId","useExtraDeltaPriceParams","excludeBridges","excludeBridgesAtom","receiverAddress","useSwapReceiverAddressValue","beneficiary"],"mappings":";;;;;;;;;;;AA+CO,SAAAA,gBAAAC,SAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAML,EAAA,MAAA;AAAA,IAAAC,aAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAuCC,sBAAsBL,SAAS,CAAA;AACtE,EAAA,MAAAM,SAAAA,GAAkBC,aAAaJ,aAAa,CAAA;AAC5C,EAAA,MAAAK,OAAAA,GAAgBD,aAAaH,WAAW,CAAA;AAExC,EAAA,MAAAK,gBAAAA,GAAyBC,4BAA4BV,SAAS,CAAA;AAC9D,EAAA,MAAAW,oBAAAA,GAA6BC,gCAAgCZ,SAAS,CAAA;AAEtE,EAAA,MAAAa,YAAAA,GAAqBN,aAAaE,gBAAgB,CAAA;AAClD,EAAA,MAAAK,gBAAAA,GAAyBP,YAAAA,CAAaI,oBAA2B,CAAA,IAAxC,GAAA;AAA0C,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAK,SAAAA,CAAAU,WAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAK,SAAAA,CAAAW,OAAAA,EAAA;AAElBF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,cACjCZ,SAAAA,CAASU,OAAAA;AAAAA,MAAQG,SACtBb,SAAAA,CAASW;AAAAA,KACpB;AAAChB,IAAAA,CAAAA,CAAA,CAAA,IAAAK,SAAAA,CAAAU,OAAAA;AAAAf,IAAAA,CAAAA,CAAA,CAAA,IAAAK,SAAAA,CAAAW,OAAAA;AAAAhB,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA;AAAA,IAAAmB,IAAAA,EAAAC;AAAAA,GAAA,GAAkCC,eAAeP,EAGhD,CAAA;AAGe,EAAA,MAAAQ,KAAAf,OAAAA,EAAOQ,OAAAA;AACZ,EAAA,MAAAQ,KAAAhB,OAAAA,EAAOS,OAAAA;AAAS,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAxB,EAAA,CAAA,CAAA,KAAAsB,MAAAtB,CAAAA,QAAAuB,EAAAA,EAAA;AAFoBC,IAAAA,EAAAA,GAAA;AAAA,MAAAP,YAAAA,EAC/BK,EAAAA;AAAAA,MAAgBJ,OAAAA,EACrBK;AAAAA,KACX;AAACvB,IAAAA,CAAAA,MAAAsB,EAAAA;AAAAtB,IAAAA,CAAAA,MAAAuB,EAAAA;AAAAvB,IAAAA,CAAAA,MAAAwB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxB,EAAA,CAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA;AAAA,IAAAmB,IAAAA,EAAAM;AAAAA,GAAA,GAAgCJ,eAAeG,EAG9C,CAAA;AAAE,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAA1B,CAAAA,CAAA,CAAA,CAAA,KAAAoB,eAAAA,EAAAO,OAAAA,EAAA;AAE4BD,IAAAA,EAAAA,GAAAN,eAAAA,EAAeO,SAAmBC,QAAAA,EAAC;AAAC5B,IAAAA,CAAAA,CAAA,CAAA,IAAAoB,eAAAA,EAAAO,OAAAA;AAAA3B,IAAAA,CAAAA,MAAA0B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1B,EAAA,CAAA,CAAA;AAAA,EAAA;AAAnE,EAAA,MAAA6B,sBAAAA,GAA+BH,EAAAA;AAAqC,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAA9B,CAAAA,CAAA,CAAA,CAAA,KAAAyB,aAAAA,EAAAM,MAAAA,EAAA;AACpCD,IAAAA,EAAAA,GAAAL,aAAAA,EAAaM,QAAkBH,QAAAA,EAAC;AAAC5B,IAAAA,CAAAA,CAAA,CAAA,IAAAyB,aAAAA,EAAAM,MAAAA;AAAA/B,IAAAA,CAAAA,MAAA8B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA9B,EAAA,CAAA,CAAA;AAAA,EAAA;AAAjE,EAAA,MAAAgC,uBAAAA,GAAgCF,EAAAA;AAEhC,EAAA,MAAA;AAAA,IAAAf;AAAAA,MAAoBkB,UAAAA,EAAW;AAE/B,EAAA,MAAA;AAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,MAAmCC,UAAAA,EAAW;AAC9C,EAAA,MAAAC,YAAkBC,YAAAA,EAAa;AAE/B,EAAA,MAAAC,eAAqB,CAAC,CAAChC,OAAAA,IAAWF,SAAAA,CAASW,YAAaT,OAAAA,CAAOS,OAAAA;AAE/D,EAAA,MAAAwB,WAAiBC,WAAAA,EAAY;AAC7B,EAAA,MAAAC,IAAAA,GAAa3C,SAAAA,KAAc,MAAA,GAAdyC,QAAAA,GAAA,MAAA;AACb,EAAA,MAAAG,MAAAA,GAAeD,IAAAA,KAAS,MAAA,GAAT9B,YAAAA,GAAAC,gBAAAA;AAIF,EAAA,MAAA+B,KAAArC,OAAAA,EAAOQ,OAAAA;AAEJ,EAAA,MAAA8B,KAAAtC,OAAAA,EAAOuC,QAAAA;AAAU,EAAA,IAAAC,WAAAA;AAAA,EAAA,IAAA/C,CAAAA,SAAAe,OAAAA,IAAAf,EAAA,EAAA,CAAA,KAAA2C,MAAAA,IAAA3C,CAAAA,CAAA,EAAA,CAAA,KAAAqC,aAAArC,CAAAA,CAAA,EAAA,MAAAgC,uBAAAA,IAAAhC,CAAAA,CAAA,EAAA,CAAA,KAAAK,SAAAA,CAAAU,OAAAA,IAAAf,CAAAA,CAAA,EAAA,CAAA,KAAAK,UAAAyC,QAAAA,IAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAkC,OAAAA,IAAAlC,EAAA,EAAA,CAAA,KAAAmC,aAAAA,IAAAnC,CAAAA,CAAA,EAAA,CAAA,KAAA0C,QAAA1C,CAAAA,CAAA,EAAA,CAAA,KAAA6B,sBAAAA,IAAA7B,CAAAA,SAAA4C,EAAAA,IAAA5C,CAAAA,CAAA,EAAA,CAAA,KAAA6C,EAAAA,EAAA;AAJjCE,IAAAA,WAAAA,GAAsC;AAAA,MAAAC,UAC1B3C,SAAAA,CAASU,OAAAA;AAAAA,MAAQkC,SAAAA,EAChBL,EAAAA;AAAAA,MAAgBM,aACd7C,SAAAA,CAASyC,QAAAA;AAAAA,MAASK,YAAAA,EACjBN,EAAAA;AAAAA,MAAiBH,IAAAA;AAAAA,MAAAC,MAAAA;AAAAA,MAAAS,WAAAA,EAGlBrC,OAAAA;AAAAA,MAAOmB,OAAAA;AAAAA,MAAAC,aAAAA;AAAAA,MAAAN,sBAAAA;AAAAA,MAAAG,uBAAAA;AAAAA,MAAAqB,mBAAAA,EAKC;AAAA,KACvB;AAMA,IAAA,IAAIhB,SAAAA,EAAS;AACXU,MAAAA,WAAAA,CAAWO,SAAAA,GAAa,EAAA;AACxBP,MAAAA,WAAAA,CAAWQ,iBAAAA,GAAqB,IAAA;AAChCR,MAAAA,WAAAA,CAAWV,SAAAA,GAAa,IAAA;AAAA,IAAH;AACtBrC,IAAAA,CAAAA,OAAAe,OAAAA;AAAAf,IAAAA,CAAAA,OAAA2C,MAAAA;AAAA3C,IAAAA,CAAAA,OAAAqC,SAAAA;AAAArC,IAAAA,CAAAA,OAAAgC,uBAAAA;AAAAhC,IAAAA,CAAAA,CAAA,EAAA,IAAAK,SAAAA,CAAAU,OAAAA;AAAAf,IAAAA,CAAAA,CAAA,EAAA,IAAAK,SAAAA,CAAAyC,QAAAA;AAAA9C,IAAAA,CAAAA,OAAAkC,OAAAA;AAAAlC,IAAAA,CAAAA,OAAAmC,aAAAA;AAAAnC,IAAAA,CAAAA,OAAA0C,IAAAA;AAAA1C,IAAAA,CAAAA,OAAA6B,sBAAAA;AAAA7B,IAAAA,CAAAA,OAAA4C,EAAAA;AAAA5C,IAAAA,CAAAA,OAAA6C,EAAAA;AAAA7C,IAAAA,CAAAA,OAAA+C,WAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,WAAAA,GAAA/C,EAAA,EAAA,CAAA;AAAA,EAAA;AAMc,EAAA,MAAAwD,EAAAA,GAAAjB,YAAAA,GAAehC,OAAAA,EAAOS,OAAAA,GAAtByC,MAAAA;AAA2C,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAA1D,EAAA,EAAA,CAAA,KAAAK,SAAAA,CAAAW,OAAAA,IAAAhB,EAAA,EAAA,CAAA,KAAAuC,YAAAA,IAAAvC,CAAAA,CAAA,EAAA,CAAA,KAAA+C,WAAAA,IAAA/C,CAAAA,SAAAwD,EAAAA,EAAA;AAJnDE,IAAAA,EAAAA,GAAA;AAAA,MAAAX,WAAAA;AAAAA,MAAAR,YAAAA;AAAAA,MAAArB,SAGIb,SAAAA,CAASW,OAAAA;AAAAA,MAAQ2C,WAAAA,EACbH;AAAAA,KACf;AAACxD,IAAAA,CAAAA,CAAA,EAAA,IAAAK,SAAAA,CAAAW,OAAAA;AAAAhB,IAAAA,CAAAA,OAAAuC,YAAAA;AAAAvC,IAAAA,CAAAA,OAAA+C,WAAAA;AAAA/C,IAAAA,CAAAA,OAAAwD,EAAAA;AAAAxD,IAAAA,CAAAA,OAAA0D,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1D,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OALM0D,EAAAA;AAKN;AAGI,SAAAE,wBAAAA,GAAA;AAAA,EAAA,MAAA5D,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAKL,EAAA,MAAA4D,cAAAA,GAAuBvD,aAAawD,kBAAkB,CAAA;AAEtD,EAAA,MAAAC,kBAAwBC,2BAAAA,EAA4B;AAAE,EAAA,IAAAlD,EAAAA;AAAA,EAAA,IAAAd,EAAA,CAAA,CAAA,KAAA6D,kBAAA7D,CAAAA,QAAA+D,eAAAA,EAAA;AAE/CjD,IAAAA,EAAAA,GAAA;AAAA,MAAA+C,cAAAA;AAAAA,MAAAI,WAAAA,EAEQF;AAAAA,KACf;AAAC/D,IAAAA,CAAAA,MAAA6D,cAAAA;AAAA7D,IAAAA,CAAAA,MAAA+D,eAAAA;AAAA/D,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAHMc,EAAAA;AAGN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAEjF,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQtE,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { useExtraDeltaPriceParams, usePricesParams } from \"./usePricesParams\";\nimport {\n isDeltaPrice,\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport type {\n BridgePrice,\n DeltaPrice,\n OptimalRate,\n SwapSideUnion,\n} from \"@velora-dex/sdk\";\nimport type { DeltaOrMarketPrice, UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\nimport { getSwapSideFromDeltaPrice } from \"./delta/queries/utils\";\nimport { useSelectedBridgePrice } from \"./delta/bridge/useSelectedBridgePrice\";\nimport { PRICE_REFETCH_INTERVAL_MS } from \"./constants\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { getPriceImpact, type PriceImpactResult } from \"@/lib/utils/priceImpact\";\nimport {\n isDeltaMaxImpactReachedError,\n isDeltaNoUsdPriceError,\n} from \"./delta/queries/errors\";\nimport {\n isMarketPriceImpactError,\n isMarketBadUsdPriceError,\n} from \"./market/queries/errors\";\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n side?: SwapSideUnion;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<OptimalRate, Error>>;\n error: Error | null;\n cachedError: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n side?: SwapSideUnion;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<DeltaPrice | BridgePrice, Error>>;\n error: Error | null;\n cachedError: Error | null;\n queryKey: DeltaPriceQueryKey;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n // deltaParams include excluded bridges and beneficiary\n const extraDeltaPriceParams = useExtraDeltaPriceParams();\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId: destChainId || chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n ...extraDeltaPriceParams,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL_MS,\n staleTime: PRICE_REFETCH_INTERVAL_MS,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL_MS\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL_MS;\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n staleTime: marketRefetchInterval,\n retry: false,\n },\n });\n\n const marketErrorCached = useCachedQueryError(marketPriceQuery);\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n side: marketPriceQuery.data?.side,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isRefetching: marketPriceQuery.isRefetching,\n isError: marketPriceQuery.isError,\n refetch: marketPriceQuery.refetch,\n error: marketPriceQuery.error,\n cachedError: marketErrorCached,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n side: deltaPriceQuery.data\n ? getSwapSideFromDeltaPrice(deltaPriceQuery.data)\n : undefined,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isRefetching: deltaPriceQuery.isRefetching,\n isError: deltaPriceQuery.isError,\n refetch: deltaPriceQuery.refetch,\n error: deltaPriceQuery.error,\n cachedError: deltaErrorCached,\n canBeUsed: deltaCanBeUsed,\n queryKey: deltaPriceQueryKey,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n cachedError: Error | null;\n side?: SwapSideUnion;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n const selectedBridgePrice = useSelectedBridgePrice({ price: delta.price });\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n side: market.side,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n cachedError: market.cachedError,\n queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: selectedBridgePrice || delta.price,\n side: delta.side,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n cachedError: delta.cachedError,\n queryKey: delta.queryKey,\n };\n}\n\ntype UseCurrentSwapPriceErrorReturn = {\n price?: DeltaOrMarketPrice;\n priceMode: SwapMode;\n cachedError: Error | null;\n priceImpact?: PriceImpactResult;\n isMaxImpactReachedError: boolean;\n isNoUsdPriceError: boolean;\n};\n\nexport function useCurrentSwapPriceError(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceErrorReturn {\n const { price, priceMode, cachedError } = useCurrentSwapPrice(params);\n\n // cachedError keeps the error until the query succeeds,\n // so if the prices errored for the current token pair,\n // the error is unlikely to disappear unless the user changes tokenFrom/tokenTo (main screen unmount -> ref resets to null -> error disappears)\n const isMaxImpactReachedError =\n isMarketPriceImpactError(cachedError) ||\n isDeltaMaxImpactReachedError(cachedError);\n const isNoUsdPriceError =\n isMarketBadUsdPriceError(cachedError) ||\n isDeltaNoUsdPriceError(cachedError);\n\n const priceImpact =\n (!!price &&\n getPriceImpact({\n srcUSD: price.srcUSD,\n destUSD: isDeltaPrice(price) ? price.receivedDestUSD : price.destUSD,\n })) ||\n undefined;\n\n return {\n price,\n priceMode,\n cachedError,\n priceImpact,\n isMaxImpactReachedError,\n isNoUsdPriceError,\n };\n}\n"],"names":["useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","extraDeltaPriceParams","useExtraDeltaPriceParams","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","t8","enabled","t9","refetchInterval","PRICE_REFETCH_INTERVAL_MS","staleTime","retry","t10","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t11","t12","t13","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","marketErrorCached","t14","side","t15","error","isError","isFetching","isLoading","isRefetching","refetch","price","cachedError","canBeUsed","t16","getSwapSideFromDeltaPrice","t17","t18","userSelectedPriceMode","market","delta","useCurrentSwapPrice","selectedBridgePrice","useSelectedBridgePrice","useCurrentSwapPriceError","isMarketPriceImpactError","isDeltaMaxImpactReachedError","isMaxImpactReachedError","isMarketBadUsdPriceError","isDeltaNoUsdPriceError","isNoUsdPriceError","getPriceImpact","srcUSD","destUSD","isDeltaPrice","receivedDestUSD","priceImpact"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { useExtraDeltaPriceParams, usePricesParams } from \"./usePricesParams\";\nimport {\n isDeltaPrice,\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport type {\n BridgePrice,\n DeltaPrice,\n OptimalRate,\n SwapSideUnion,\n} from \"@velora-dex/sdk\";\nimport type { DeltaOrMarketPrice, UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\nimport { getSwapSideFromDeltaPrice } from \"./delta/queries/utils\";\nimport { useSelectedBridgePrice } from \"./delta/bridge/useSelectedBridgePrice\";\nimport { PRICE_REFETCH_INTERVAL_MS } from \"./constants\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport {\n getPriceImpact,\n type PriceImpactResult,\n} from \"@/lib/utils/priceImpact\";\nimport {\n isDeltaMaxImpactReachedError,\n isDeltaNoUsdPriceError,\n} from \"./delta/queries/errors\";\nimport {\n isMarketPriceImpactError,\n isMarketBadUsdPriceError,\n} from \"./market/queries/errors\";\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n side?: SwapSideUnion;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<OptimalRate, Error>>;\n error: Error | null;\n cachedError: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n side?: SwapSideUnion;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<DeltaPrice | BridgePrice, Error>>;\n error: Error | null;\n cachedError: Error | null;\n queryKey: DeltaPriceQueryKey;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n // deltaParams include excluded bridges and beneficiary\n const extraDeltaPriceParams = useExtraDeltaPriceParams();\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId: destChainId || chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n ...extraDeltaPriceParams,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL_MS,\n staleTime: PRICE_REFETCH_INTERVAL_MS,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL_MS\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL_MS;\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n staleTime: marketRefetchInterval,\n retry: false,\n },\n });\n\n const marketErrorCached = useCachedQueryError(marketPriceQuery);\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n side: marketPriceQuery.data?.side,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isRefetching: marketPriceQuery.isRefetching,\n isError: marketPriceQuery.isError,\n refetch: marketPriceQuery.refetch,\n error: marketPriceQuery.error,\n cachedError: marketErrorCached,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n side: deltaPriceQuery.data\n ? getSwapSideFromDeltaPrice(deltaPriceQuery.data)\n : undefined,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isRefetching: deltaPriceQuery.isRefetching,\n isError: deltaPriceQuery.isError,\n refetch: deltaPriceQuery.refetch,\n error: deltaPriceQuery.error,\n cachedError: deltaErrorCached,\n canBeUsed: deltaCanBeUsed,\n queryKey: deltaPriceQueryKey,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n cachedError: Error | null;\n side?: SwapSideUnion;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n const selectedBridgePrice = useSelectedBridgePrice({ price: delta.price });\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n side: market.side,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n cachedError: market.cachedError,\n queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: selectedBridgePrice || delta.price,\n side: delta.side,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n cachedError: delta.cachedError,\n queryKey: delta.queryKey,\n };\n}\n\ntype UseCurrentSwapPriceErrorReturn = {\n price?: DeltaOrMarketPrice;\n priceMode: SwapMode;\n cachedError: Error | null;\n priceImpact?: PriceImpactResult;\n isMaxImpactReachedError: boolean;\n isNoUsdPriceError: boolean;\n};\n\nexport function useCurrentSwapPriceError(\n params: UseSwapPricesInput = { enabled: false }\n): UseCurrentSwapPriceErrorReturn {\n const { price, priceMode, cachedError } = useCurrentSwapPrice(params);\n\n // cachedError keeps the error until the query succeeds,\n // so if the prices errored for the current token pair,\n // the error is unlikely to disappear unless the user changes tokenFrom/tokenTo (main screen unmount -> ref resets to null -> error disappears)\n const isMaxImpactReachedError =\n isMarketPriceImpactError(cachedError) ||\n isDeltaMaxImpactReachedError(cachedError);\n const isNoUsdPriceError =\n isMarketBadUsdPriceError(cachedError) ||\n isDeltaNoUsdPriceError(cachedError);\n\n const priceImpact =\n (!!price &&\n getPriceImpact({\n srcUSD: price.srcUSD,\n destUSD: isDeltaPrice(price) ? price.receivedDestUSD : price.destUSD,\n })) ||\n undefined;\n\n return {\n price,\n priceMode,\n cachedError,\n priceImpact,\n isMaxImpactReachedError,\n isNoUsdPriceError,\n };\n}\n"],"names":["useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","extraDeltaPriceParams","useExtraDeltaPriceParams","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","t8","enabled","t9","refetchInterval","PRICE_REFETCH_INTERVAL_MS","staleTime","retry","t10","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t11","t12","t13","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","marketErrorCached","t14","side","t15","error","isError","isFetching","isLoading","isRefetching","refetch","price","cachedError","canBeUsed","t16","getSwapSideFromDeltaPrice","t17","t18","userSelectedPriceMode","market","delta","useCurrentSwapPrice","selectedBridgePrice","useSelectedBridgePrice","useCurrentSwapPriceError","isMarketPriceImpactError","isDeltaMaxImpactReachedError","isMaxImpactReachedError","isMarketBadUsdPriceError","isDeltaNoUsdPriceError","isNoUsdPriceError","getPriceImpact","srcUSD","destUSD","isDeltaPrice","receivedDestUSD","priceImpact"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceImpact.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/priceImpact.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAC;AAEzB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,GAAG,CAUL;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAKF,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,GACR,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"priceImpact.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/priceImpact.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAC;AAEzB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,GAAG,CAUL;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAKF,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,GACR,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,iBAAiB,CAyBpB;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAE1E"}
|
|
@@ -28,10 +28,12 @@ function getPriceImpact({
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
const impactAbsoluteValue = impact.abs();
|
|
31
|
+
const isMediumImpact = impactAbsoluteValue.gt(MEDIUM_IMPACT_THRESHOLD);
|
|
32
|
+
const isHighImpact = impactAbsoluteValue.gt(HIGH_IMPACT_THRESHOLD);
|
|
31
33
|
return {
|
|
32
34
|
priceImpact: impactAbsoluteValue.toNumber(),
|
|
33
|
-
isMediumImpact:
|
|
34
|
-
isHighImpact
|
|
35
|
+
isMediumImpact: isMediumImpact && !isHighImpact,
|
|
36
|
+
isHighImpact,
|
|
35
37
|
isUnavailable: false
|
|
36
38
|
};
|
|
37
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceImpact.js","sources":["../../../src/lib/utils/priceImpact.ts"],"sourcesContent":["import Big from \"big.js\";\n\nexport function calculatePriceImpactPercent(\n fromUSD: string,\n toUSD: string\n): Big {\n if (fromUSD === \"0\" || toUSD === \"0\") {\n return new Big(0);\n }\n\n const toBN = Big(toUSD);\n if (toBN.gte(fromUSD)) return Big(0);\n const calculatedImpact = Big(1).minus(toBN.div(fromUSD)).times(100);\n\n return Big(Math.min(calculatedImpact.toNumber(), 100));\n}\n\nexport type PriceImpactResult = {\n priceImpact: number;\n isHighImpact: boolean;\n isMediumImpact: boolean;\n isUnavailable: boolean;\n};\n\nconst MEDIUM_IMPACT_THRESHOLD = 2; // 2%\nconst HIGH_IMPACT_THRESHOLD = 5; // 5%\n\nexport function getPriceImpact({\n srcUSD,\n destUSD,\n}: {\n srcUSD: string | null;\n destUSD: string | null;\n}): PriceImpactResult {\n const impact =\n // can't calc priceImpact without knowing USD prices of tokens\n srcUSD && destUSD ? calculatePriceImpactPercent(srcUSD, destUSD) : null;\n\n if (impact === null) {\n return {\n priceImpact: 0,\n isMediumImpact: false,\n isHighImpact: false,\n isUnavailable: true,\n };\n }\n\n const impactAbsoluteValue = impact.abs();\n\n return {\n priceImpact: impactAbsoluteValue.toNumber(),\n isMediumImpact:
|
|
1
|
+
{"version":3,"file":"priceImpact.js","sources":["../../../src/lib/utils/priceImpact.ts"],"sourcesContent":["import Big from \"big.js\";\n\nexport function calculatePriceImpactPercent(\n fromUSD: string,\n toUSD: string\n): Big {\n if (fromUSD === \"0\" || toUSD === \"0\") {\n return new Big(0);\n }\n\n const toBN = Big(toUSD);\n if (toBN.gte(fromUSD)) return Big(0);\n const calculatedImpact = Big(1).minus(toBN.div(fromUSD)).times(100);\n\n return Big(Math.min(calculatedImpact.toNumber(), 100));\n}\n\nexport type PriceImpactResult = {\n priceImpact: number;\n isHighImpact: boolean;\n isMediumImpact: boolean;\n isUnavailable: boolean;\n};\n\nconst MEDIUM_IMPACT_THRESHOLD = 2; // 2%\nconst HIGH_IMPACT_THRESHOLD = 5; // 5%\n\nexport function getPriceImpact({\n srcUSD,\n destUSD,\n}: {\n srcUSD: string | null;\n destUSD: string | null;\n}): PriceImpactResult {\n const impact =\n // can't calc priceImpact without knowing USD prices of tokens\n srcUSD && destUSD ? calculatePriceImpactPercent(srcUSD, destUSD) : null;\n\n if (impact === null) {\n return {\n priceImpact: 0,\n isMediumImpact: false,\n isHighImpact: false,\n isUnavailable: true,\n };\n }\n\n const impactAbsoluteValue = impact.abs();\n\n const isMediumImpact = impactAbsoluteValue.gt(MEDIUM_IMPACT_THRESHOLD);\n const isHighImpact = impactAbsoluteValue.gt(HIGH_IMPACT_THRESHOLD);\n\n return {\n priceImpact: impactAbsoluteValue.toNumber(),\n isMediumImpact: isMediumImpact && !isHighImpact,\n isHighImpact,\n isUnavailable: false,\n };\n}\n\nexport function formatPriceImpactPercent(priceImpact: number): `${string}%` {\n return `${priceImpact.toFixed(2)}%`;\n}\n"],"names":["calculatePriceImpactPercent","fromUSD","toUSD","Big","toBN","gte","calculatedImpact","minus","div","times","Math","min","toNumber","MEDIUM_IMPACT_THRESHOLD","HIGH_IMPACT_THRESHOLD","getPriceImpact","srcUSD","destUSD","impact","priceImpact","isMediumImpact","isHighImpact","isUnavailable","impactAbsoluteValue","abs","gt","formatPriceImpactPercent","toFixed"],"mappings":";;AAEO,SAASA,2BAAAA,CACdC,SACAC,KAAAA,EACK;AACL,EAAA,IAAID,OAAAA,KAAY,GAAA,IAAOC,KAAAA,KAAU,GAAA,EAAK;AACpC,IAAA,OAAO,IAAIC,IAAI,CAAC,CAAA;AAAA,EAClB;AAEA,EAAA,MAAMC,IAAAA,GAAOD,IAAID,KAAK,CAAA;AACtB,EAAA,IAAIE,KAAKC,GAAAA,CAAIJ,OAAO,CAAA,EAAG,OAAOE,IAAI,CAAC,CAAA;AACnC,EAAA,MAAMG,gBAAAA,GAAmBH,GAAAA,CAAI,CAAC,CAAA,CAAEI,KAAAA,CAAMH,IAAAA,CAAKI,GAAAA,CAAIP,OAAO,CAAC,CAAA,CAAEQ,KAAAA,CAAM,GAAG,CAAA;AAElE,EAAA,OAAON,IAAIO,IAAAA,CAAKC,GAAAA,CAAIL,iBAAiBM,QAAAA,EAAS,EAAG,GAAG,CAAC,CAAA;AACvD;AASA,MAAMC,uBAAAA,GAA0B,CAAA;AAChC,MAAMC,qBAAAA,GAAwB,CAAA;AAEvB,SAASC,cAAAA,CAAe;AAAA,EAC7BC,MAAAA;AAAAA,EACAC;AAIF,CAAA,EAAsB;AACpB,EAAA,MAAMC,MAAAA;AAAAA;AAAAA,IAEJF,MAAAA,IAAUC,OAAAA,GAAUjB,2BAAAA,CAA4BgB,MAAAA,EAAQC,OAAO,CAAA,GAAI;AAAA,GAAA;AAErE,EAAA,IAAIC,WAAW,IAAA,EAAM;AACnB,IAAA,OAAO;AAAA,MACLC,WAAAA,EAAa,CAAA;AAAA,MACbC,cAAAA,EAAgB,KAAA;AAAA,MAChBC,YAAAA,EAAc,KAAA;AAAA,MACdC,aAAAA,EAAe;AAAA,KACjB;AAAA,EACF;AAEA,EAAA,MAAMC,mBAAAA,GAAsBL,OAAOM,GAAAA,EAAI;AAEvC,EAAA,MAAMJ,cAAAA,GAAiBG,mBAAAA,CAAoBE,EAAAA,CAAGZ,uBAAuB,CAAA;AACrE,EAAA,MAAMQ,YAAAA,GAAeE,mBAAAA,CAAoBE,EAAAA,CAAGX,qBAAqB,CAAA;AAEjE,EAAA,OAAO;AAAA,IACLK,WAAAA,EAAaI,oBAAoBX,QAAAA,EAAS;AAAA,IAC1CQ,cAAAA,EAAgBA,kBAAkB,CAACC,YAAAA;AAAAA,IACnCA,YAAAA;AAAAA,IACAC,aAAAA,EAAe;AAAA,GACjB;AACF;AAEO,SAASI,yBAAyBP,WAAAA,EAAmC;AAC1E,EAAA,OAAO,CAAA,EAAGA,WAAAA,CAAYQ,OAAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA;AAClC;;;;"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsDangerSwap.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/useIsDangerSwap.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,YAc9B"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { d as distExports } from '../../_virtual/index.js';
|
|
2
|
-
import { useCurrentSwapPriceError } from '../../hooks/swap/prices/useSwapPrices.js';
|
|
3
|
-
|
|
4
|
-
function useIsDangerSwap() {
|
|
5
|
-
const $ = distExports.c(1);
|
|
6
|
-
let t0;
|
|
7
|
-
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
8
|
-
t0 = {
|
|
9
|
-
enabled: false
|
|
10
|
-
};
|
|
11
|
-
$[0] = t0;
|
|
12
|
-
} else {
|
|
13
|
-
t0 = $[0];
|
|
14
|
-
}
|
|
15
|
-
const {
|
|
16
|
-
price,
|
|
17
|
-
cachedError,
|
|
18
|
-
priceImpact
|
|
19
|
-
} = useCurrentSwapPriceError(t0);
|
|
20
|
-
if (!price) {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
return !!(cachedError || priceImpact?.isHighImpact || priceImpact?.isUnavailable);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export { useIsDangerSwap };
|
|
27
|
-
//# sourceMappingURL=useIsDangerSwap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsDangerSwap.js","sources":["../../../src/core/swapDetails/useIsDangerSwap.ts"],"sourcesContent":["import { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\n\nexport function useIsDangerSwap() {\n const { price, cachedError, priceImpact } = useCurrentSwapPriceError({\n enabled: false,\n });\n\n if (!price) {\n return false;\n }\n\n return !!(\n cachedError ||\n priceImpact?.isHighImpact ||\n priceImpact?.isUnavailable\n );\n}\n"],"names":["useIsDangerSwap","$","_c","t0","Symbol","for","enabled","price","cachedError","priceImpact","useCurrentSwapPriceError","isHighImpact","isUnavailable"],"mappings":";;;AAEO,SAAAA,eAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAG,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACgEF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,OAAAA,EAC1D;AAAA,KACX;AAACL,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAA;AAAA,IAAAM,KAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAA4CC,yBAAyBP,EAEpE,CAAA;AAED,EAAA,IAAI,CAACI,KAAAA,EAAK;AAAA,IAAA,OACD,KAAA;AAAA,EAAK;AACb,EAAA,OAEM,CAAC,EACNC,WAAAA,IACAC,WAAAA,EAAWE,gBACXF,WAAAA,EAAWG,aAAAA,CAAAA;AACZ;;;;"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare function usePriceImpactWarning(): {
|
|
2
|
-
readonly title: "Price impact is high.";
|
|
3
|
-
readonly message: "This trade may result in a loss of value.";
|
|
4
|
-
} | {
|
|
5
|
-
readonly title: "Price impact couldn't be calculated.";
|
|
6
|
-
readonly message: "This trade may result in a loss of value.";
|
|
7
|
-
} | undefined;
|
|
8
|
-
//# sourceMappingURL=usePriceImpactWarning.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePriceImpactWarning.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/usePriceImpactWarning.ts"],"names":[],"mappings":"AAgBA,wBAAgB,qBAAqB;;;;;;cAiBpC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { useCurrentSwapPriceError } from '../../hooks/swap/prices/useSwapPrices.js';
|
|
2
|
-
import { useSwapTokenTo } from '../inputs/state/selectedTokenAtom.js';
|
|
3
|
-
|
|
4
|
-
const warningMessageByReason = {
|
|
5
|
-
highPriceImpact: {
|
|
6
|
-
// explicit threshold breach, more severe warning
|
|
7
|
-
title: "Price impact is high.",
|
|
8
|
-
message: "This trade may result in a loss of value."
|
|
9
|
-
},
|
|
10
|
-
unavailablePriceImpact: {
|
|
11
|
-
// unable to calculate price impact, more generic warning
|
|
12
|
-
title: "Price impact couldn't be calculated.",
|
|
13
|
-
message: "This trade may result in a loss of value."
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
function usePriceImpactWarning() {
|
|
17
|
-
const tokenTo = useSwapTokenTo();
|
|
18
|
-
const {
|
|
19
|
-
isMaxImpactReachedError,
|
|
20
|
-
isNoUsdPriceError,
|
|
21
|
-
priceImpact
|
|
22
|
-
} = useCurrentSwapPriceError();
|
|
23
|
-
if (!tokenTo) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (priceImpact?.isHighImpact || isMaxImpactReachedError) {
|
|
27
|
-
return warningMessageByReason.highPriceImpact;
|
|
28
|
-
}
|
|
29
|
-
if (priceImpact?.isUnavailable || isNoUsdPriceError) {
|
|
30
|
-
return warningMessageByReason.unavailablePriceImpact;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export { usePriceImpactWarning };
|
|
35
|
-
//# sourceMappingURL=usePriceImpactWarning.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePriceImpactWarning.js","sources":["../../../src/core/swapDetails/usePriceImpactWarning.ts"],"sourcesContent":["import { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useSwapTokenTo } from \"../inputs/state/selectedTokenAtom\";\n\nconst warningMessageByReason = {\n highPriceImpact: {\n // explicit threshold breach, more severe warning\n title: \"Price impact is high.\",\n message: \"This trade may result in a loss of value.\",\n },\n unavailablePriceImpact: {\n // unable to calculate price impact, more generic warning\n title: \"Price impact couldn't be calculated.\",\n message: \"This trade may result in a loss of value.\",\n },\n} as const;\n\nexport function usePriceImpactWarning() {\n const tokenTo = useSwapTokenTo();\n\n const { isMaxImpactReachedError, isNoUsdPriceError, priceImpact } =\n useCurrentSwapPriceError();\n\n if (!tokenTo) {\n return;\n }\n\n if (priceImpact?.isHighImpact || isMaxImpactReachedError) {\n return warningMessageByReason.highPriceImpact;\n }\n\n if (priceImpact?.isUnavailable || isNoUsdPriceError) {\n return warningMessageByReason.unavailablePriceImpact;\n }\n}\n"],"names":["warningMessageByReason","highPriceImpact","title","message","unavailablePriceImpact","usePriceImpactWarning","tokenTo","useSwapTokenTo","isMaxImpactReachedError","isNoUsdPriceError","priceImpact","useCurrentSwapPriceError","isHighImpact","isUnavailable"],"mappings":";;;AAGA,MAAMA,sBAAAA,GAAyB;AAAA,EAC7BC,eAAAA,EAAiB;AAAA;AAAA,IAEfC,KAAAA,EAAO,uBAAA;AAAA,IACPC,OAAAA,EAAS;AAAA,GACX;AAAA,EACAC,sBAAAA,EAAwB;AAAA;AAAA,IAEtBF,KAAAA,EAAO,sCAAA;AAAA,IACPC,OAAAA,EAAS;AAAA;AAEb,CAAA;AAEO,SAAAE,qBAAAA,GAAA;AACL,EAAA,MAAAC,UAAgBC,cAAAA,EAAe;AAE/B,EAAA,MAAA;AAAA,IAAAC,uBAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC;AAAAA,MACEC,wBAAAA,EAAyB;AAE3B,EAAA,IAAI,CAACL,OAAAA,EAAO;AAAA,IAAA;AAAA,EAAA;AAIZ,EAAA,IAAII,WAAAA,EAAWE,gBAAXJ,uBAAAA,EAAoD;AAAA,IAAA,OAC/CR,sBAAAA,CAAsBC,eAAAA;AAAAA,EAAgB;AAG/C,EAAA,IAAIS,WAAAA,EAAWG,iBAAXJ,iBAAAA,EAA+C;AAAA,IAAA,OAC1CT,sBAAAA,CAAsBI,sBAAAA;AAAAA,EAAuB;AACrD;;;;"}
|