@velora-dex/widget 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts +1 -0
  2. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts.map +1 -1
  3. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js +30 -16
  4. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js.map +1 -1
  5. package/dist/components/web3/ConnectWallets/walletIcons.js +1 -1
  6. package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -1
  7. package/dist/components/widget/AppHeader/TradeModeSwitcher.js +61 -53
  8. package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
  9. package/dist/components/widget/Button/RefreshButton.d.ts +3 -0
  10. package/dist/components/widget/Button/RefreshButton.d.ts.map +1 -0
  11. package/dist/components/widget/Button/RefreshButton.js +28 -0
  12. package/dist/components/widget/Button/RefreshButton.js.map +1 -0
  13. package/dist/components/widget/Button/types.d.ts +7 -0
  14. package/dist/components/widget/Button/types.d.ts.map +1 -0
  15. package/dist/components/widget/CompareQuotes/CompareQuotes.d.ts.map +1 -1
  16. package/dist/components/widget/CompareQuotes/CompareQuotes.js +67 -73
  17. package/dist/components/widget/CompareQuotes/CompareQuotes.js.map +1 -1
  18. package/dist/components/widget/Dropdown/DropdownWithItems.d.ts.map +1 -1
  19. package/dist/components/widget/Dropdown/DropdownWithItems.js +3 -2
  20. package/dist/components/widget/Dropdown/DropdownWithItems.js.map +1 -1
  21. package/dist/components/widget/Dropdown/types.d.ts +1 -1
  22. package/dist/components/widget/Dropdown/types.d.ts.map +1 -1
  23. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts +4 -1
  24. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts.map +1 -1
  25. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js +51 -28
  26. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js.map +1 -1
  27. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  28. package/dist/core/inputs/state/setTokenByAddressAtom.js +1 -1
  29. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  30. package/dist/core/state/configAtom.js +2 -2
  31. package/dist/core/state/configAtom.js.map +1 -1
  32. package/dist/core/state/enabledTradeModesAtom.d.ts +7 -1
  33. package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -1
  34. package/dist/core/state/enabledTradeModesAtom.js +1 -1
  35. package/dist/core/state/enabledTradeModesAtom.js.map +1 -1
  36. package/dist/core/state/tradeModeAtom.js +1 -1
  37. package/dist/core/state/tradeModeAtom.js.map +1 -1
  38. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
  39. package/dist/core/swapDetails/useSwapDetailsListProps.js +37 -31
  40. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  41. package/dist/core/twap/useTwapDetailsListProps.d.ts.map +1 -1
  42. package/dist/core/twap/useTwapDetailsListProps.js +36 -31
  43. package/dist/core/twap/useTwapDetailsListProps.js.map +1 -1
  44. package/dist/hooks/swap/prices/useSwapPrices.d.ts +4 -7
  45. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  46. package/dist/hooks/swap/prices/useSwapPrices.js +28 -24
  47. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  48. package/dist/lib/tradeMode.d.ts +1 -0
  49. package/dist/lib/tradeMode.d.ts.map +1 -1
  50. package/dist/lib/tradeMode.js +4 -1
  51. package/dist/lib/tradeMode.js.map +1 -1
  52. package/dist/styles.css +1 -1
  53. package/package.json +1 -1
@@ -15,16 +15,16 @@ import { c as h } from "react-compiler-runtime";
15
15
  import { jsx as g } from "react/jsx-runtime";
16
16
  //#region src/core/swapDetails/useSwapDetailsListProps.tsx
17
17
  var _ = () => {
18
- let _ = h(25), { tokenFrom: v, tokenTo: y } = a("swap"), b = e(n), x = e(r), S;
18
+ let _ = h(30), { tokenFrom: v, tokenTo: y } = a("swap"), b = e(n), x = e(r), S;
19
19
  _[0] === Symbol.for("react.memo_cache_sentinel") ? (S = { enabled: !1 }, _[0] = S) : S = _[0];
20
- let { isLoading: C, price: w, priceMode: T, getPriceImpact: E } = s(S), { resolvedSlippage: D } = o("swap"), O = i(), k, A;
21
- if (_[1] !== E || _[2] !== C || _[3] !== w || _[4] !== T || _[5] !== D || _[6] !== O || _[7] !== v || _[8] !== y) {
20
+ let { isLoading: C, price: w, priceMode: T, getPriceImpact: E, refetch: D, isFetching: O } = s(S), { resolvedSlippage: k } = o("swap"), A = i(), j, M;
21
+ if (_[1] !== E || _[2] !== C || _[3] !== w || _[4] !== T || _[5] !== k || _[6] !== A || _[7] !== v || _[8] !== y) {
22
22
  let e = c({
23
23
  bestRoutes: w && "bestRoute" in w ? w.bestRoute : void 0,
24
24
  swapMode: T,
25
25
  isLoading: C
26
26
  });
27
- k = l({
27
+ j = l({
28
28
  priceImpactResult: E(),
29
29
  isLoading: C
30
30
  });
@@ -35,52 +35,58 @@ var _ = () => {
35
35
  price: w,
36
36
  swapMode: T,
37
37
  isLoading: C
38
- }), i = O === "SELL" ? f({
38
+ }), i = A === "SELL" ? f({
39
39
  price: w,
40
40
  isLoading: C,
41
- slippagePercent: D,
41
+ slippagePercent: k,
42
42
  tokenTo: y,
43
- swapSide: O
43
+ swapSide: A
44
44
  }) : p({
45
45
  price: w,
46
46
  isLoading: C,
47
- slippagePercent: D,
47
+ slippagePercent: k,
48
48
  tokenFrom: v,
49
- swapSide: O
49
+ swapSide: A
50
50
  });
51
- A = [
51
+ M = [
52
52
  e,
53
- k,
53
+ j,
54
54
  n,
55
55
  i,
56
56
  r
57
- ].filter(t), _[1] = E, _[2] = C, _[3] = w, _[4] = T, _[5] = D, _[6] = O, _[7] = v, _[8] = y, _[9] = k, _[10] = A;
58
- } else k = _[9], A = _[10];
59
- let j = A, M = O === "BUY", N;
60
- _[11] !== x || _[12] !== M || _[13] !== C || _[14] !== b || _[15] !== v || _[16] !== y ? (N = {
57
+ ].filter(t), _[1] = E, _[2] = C, _[3] = w, _[4] = T, _[5] = k, _[6] = A, _[7] = v, _[8] = y, _[9] = j, _[10] = M;
58
+ } else j = _[9], M = _[10];
59
+ let N = M, P = A === "BUY", F;
60
+ _[11] !== x || _[12] !== P || _[13] !== C || _[14] !== b || _[15] !== v || _[16] !== y ? (F = {
61
61
  srcToken: v,
62
62
  destToken: y,
63
63
  srcAmountWei: b,
64
64
  destAmountWei: x,
65
65
  isLoading: C,
66
- reverse: M
67
- }, _[11] = x, _[12] = M, _[13] = C, _[14] = b, _[15] = v, _[16] = y, _[17] = N) : N = _[17];
68
- let P;
69
- _[18] !== k || _[19] !== N ? (P = /* @__PURE__ */ g(m, {
70
- swapRateProps: N,
71
- priceImpactDetail: k
72
- }), _[18] = k, _[19] = N, _[20] = P) : P = _[20];
73
- let F;
74
- _[21] === Symbol.for("react.memo_cache_sentinel") ? (F = {
66
+ reverse: P
67
+ }, _[11] = x, _[12] = P, _[13] = C, _[14] = b, _[15] = v, _[16] = y, _[17] = F) : F = _[17];
68
+ let I;
69
+ _[18] !== O || _[19] !== w || _[20] !== D ? (I = w ? {
70
+ onClick: () => D({ cancelRefetch: !1 }),
71
+ animate: O
72
+ } : void 0, _[18] = O, _[19] = w, _[20] = D, _[21] = I) : I = _[21];
73
+ let L;
74
+ _[22] !== j || _[23] !== F || _[24] !== I ? (L = /* @__PURE__ */ g(m, {
75
+ swapRateProps: F,
76
+ priceImpactDetail: j,
77
+ refreshButtonProps: I
78
+ }), _[22] = j, _[23] = F, _[24] = I, _[25] = L) : L = _[25];
79
+ let R;
80
+ _[26] === Symbol.for("react.memo_cache_sentinel") ? (R = {
75
81
  root: "mt-4 items-center",
76
82
  trigger: "items-center"
77
- }, _[21] = F) : F = _[21];
78
- let I;
79
- return _[22] !== j || _[23] !== P ? (I = {
80
- trigger: P,
81
- details: j,
82
- classes: F
83
- }, _[22] = j, _[23] = P, _[24] = I) : I = _[24], I;
83
+ }, _[26] = R) : R = _[26];
84
+ let z;
85
+ return _[27] !== N || _[28] !== L ? (z = {
86
+ trigger: L,
87
+ details: N,
88
+ classes: R
89
+ }, _[27] = N, _[28] = L, _[29] = z) : z = _[29], z;
84
90
  };
85
91
  //#endregion
86
92
  export { _ as useSwapDetailsListProps };
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapDetailsListProps.js","names":["DetailWithValue","DetailWithValueListExpandableProps","useCurrentSwapPrice","useWidgetTokens","useAtomValue","payInputAmountWeiAtom","receiveInputAmountWeiAtom","constructOrderRoutingDetail","constructPriceImpactDetail","constructSwapFeesDetail","constructNetworkFeesDetail","useSwapSide","isTruthy","constructYouGetDetail","useSlippage","constructMaxToPayDetail","SwapRateWithPriceImpactRow","useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","srcAmountWei","destAmountWei","t0","Symbol","for","enabled","isLoading","price","priceMode","getPriceImpact","resolvedSlippage","swapSide","priceImpactDetail","t1","orderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","priceImpactResult","swapFeesDetail","networkFeesDetail","minMaxDetail","slippagePercent","filter","details","isBuy","t2","srcToken","destToken","reverse","t3","t4","root","trigger","t5","classes"],"sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { constructMaxToPayDetail } from \"./maxToPay\";\nimport { SwapRateWithPriceImpactRow } from \"@/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode, getPriceImpact } = useCurrentSwapPrice(\n { enabled: false }\n );\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const priceImpactDetail = constructPriceImpactDetail({\n priceImpactResult: getPriceImpact(),\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const minMaxDetail =\n swapSide === \"SELL\"\n ? // minimum received when SELLing\n constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n })\n : // maximum to pay when BUYing\n constructMaxToPayDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenFrom,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n minMaxDetail,\n networkFeesDetail,\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <SwapRateWithPriceImpactRow\n swapRateProps={{\n srcToken: tokenFrom,\n destToken: tokenTo,\n srcAmountWei,\n destAmountWei,\n isLoading,\n reverse: isBuy,\n }}\n priceImpactDetail={priceImpactDetail}\n />\n ),\n details,\n classes: {\n root: \"mt-4 items-center\",\n trigger: \"items-center\",\n },\n };\n };\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSwapDetailsListProps.js","names":["DetailWithValue","DetailWithValueListExpandableProps","useCurrentSwapPrice","useWidgetTokens","useAtomValue","payInputAmountWeiAtom","receiveInputAmountWeiAtom","constructOrderRoutingDetail","constructPriceImpactDetail","constructSwapFeesDetail","constructNetworkFeesDetail","useSwapSide","isTruthy","constructYouGetDetail","useSlippage","constructMaxToPayDetail","SwapRateWithPriceImpactRow","useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","srcAmountWei","destAmountWei","t0","Symbol","for","enabled","isLoading","price","priceMode","getPriceImpact","refetch","isFetching","resolvedSlippage","swapSide","priceImpactDetail","t1","orderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","priceImpactResult","swapFeesDetail","networkFeesDetail","minMaxDetail","slippagePercent","filter","details","isBuy","t2","srcToken","destToken","reverse","t3","onClick","cancelRefetch","animate","t4","t5","root","trigger","t6","classes"],"sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { constructMaxToPayDetail } from \"./maxToPay\";\nimport { SwapRateWithPriceImpactRow } from \"@/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode, getPriceImpact, refetch, isFetching } =\n useCurrentSwapPrice({ enabled: false });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const priceImpactDetail = constructPriceImpactDetail({\n priceImpactResult: getPriceImpact(),\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const minMaxDetail =\n swapSide === \"SELL\"\n ? // minimum received when SELLing\n constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n })\n : // maximum to pay when BUYing\n constructMaxToPayDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenFrom,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n minMaxDetail,\n networkFeesDetail,\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <SwapRateWithPriceImpactRow\n swapRateProps={{\n srcToken: tokenFrom,\n destToken: tokenTo,\n srcAmountWei,\n destAmountWei,\n isLoading,\n reverse: isBuy,\n }}\n priceImpactDetail={priceImpactDetail}\n refreshButtonProps={\n price\n ? {\n onClick: () => refetch({ cancelRefetch: false }),\n animate: isFetching,\n }\n : undefined\n }\n />\n ),\n details,\n classes: {\n root: \"mt-4 items-center\",\n trigger: \"items-center\",\n },\n };\n };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTwapDetailsListProps.d.ts","sourceRoot":"","sources":["../../../src/core/twap/useTwapDetailsListProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kCAAkC,EACnC,MAAM,mCAAmC,CAAC;AAkB3C,eAAO,MAAM,uBAAuB,QAC9B,kCAAkC,GAAG,IAiFxC,CAAC"}
1
+ {"version":3,"file":"useTwapDetailsListProps.d.ts","sourceRoot":"","sources":["../../../src/core/twap/useTwapDetailsListProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kCAAkC,EACnC,MAAM,mCAAmC,CAAC;AAkB3C,eAAO,MAAM,uBAAuB,QAC9B,kCAAkC,GAAG,IAiGxC,CAAC"}
@@ -14,12 +14,12 @@ import { c as m } from "react-compiler-runtime";
14
14
  import { jsx as h, jsxs as g } from "react/jsx-runtime";
15
15
  //#region src/core/twap/useTwapDetailsListProps.tsx
16
16
  var _ = () => {
17
- let _ = m(25), { tokenFrom: v, tokenTo: y } = s("twap"), { isLoading: b, side: x, price: S, numSlices: C, getPriceImpact: w } = d(), T = e(n), E = e(r), D = e(a), O = e(o);
18
- if (!y || E === void 0 || !T || T === "0") return null;
19
- let k = x === "BUY", A, j;
20
- if (_[0] !== D || _[1] !== w || _[2] !== b || _[3] !== C || _[4] !== S || _[5] !== x || _[6] !== O || _[7] !== y) {
21
- let e = i.find((e) => e.value === D)?.label ?? /* @__PURE__ */ h(f, { timeMs: D * 60 * 1e3 });
22
- A = l({
17
+ let _ = m(30), { tokenFrom: v, tokenTo: y } = s("twap"), { isLoading: b, side: x, price: S, numSlices: C, getPriceImpact: w, refetch: T, isFetching: E } = d(), D = e(n), O = e(r), k = e(a), A = e(o);
18
+ if (!y || O === void 0 || !D || D === "0") return null;
19
+ let j = x === "BUY", M, N;
20
+ if (_[0] !== k || _[1] !== w || _[2] !== b || _[3] !== C || _[4] !== S || _[5] !== x || _[6] !== A || _[7] !== y) {
21
+ let e = i.find((e) => e.value === k)?.label ?? /* @__PURE__ */ h(f, { timeMs: k * 60 * 1e3 });
22
+ M = l({
23
23
  priceImpactResult: w(),
24
24
  isLoading: b
25
25
  });
@@ -28,52 +28,57 @@ var _ = () => {
28
28
  isLoading: b,
29
29
  numSlices: C,
30
30
  tokenTo: y,
31
- slippagePercent: O,
31
+ slippagePercent: A,
32
32
  swapSide: x
33
33
  }), r;
34
34
  _[10] === Symbol.for("react.memo_cache_sentinel") ? (r = /* @__PURE__ */ g("div", {
35
35
  className: "flex items-center gap-1",
36
36
  children: [/* @__PURE__ */ h(c, {}), " Delta"]
37
- }), _[10] = r) : r = _[10], j = [
37
+ }), _[10] = r) : r = _[10], N = [
38
38
  {
39
39
  title: "Order Routing",
40
40
  value: r
41
41
  },
42
- A,
42
+ M,
43
43
  {
44
44
  title: "Slippage Tolerance",
45
- value: `${O}%`
45
+ value: `${A}%`
46
46
  },
47
47
  {
48
48
  title: "Order Duration",
49
49
  value: e
50
50
  },
51
51
  n
52
- ].filter(t), _[0] = D, _[1] = w, _[2] = b, _[3] = C, _[4] = S, _[5] = x, _[6] = O, _[7] = y, _[8] = A, _[9] = j;
53
- } else A = _[8], j = _[9];
54
- let M = j, N;
55
- _[11] !== E || _[12] !== k || _[13] !== b || _[14] !== T || _[15] !== v || _[16] !== y ? (N = {
52
+ ].filter(t), _[0] = k, _[1] = w, _[2] = b, _[3] = C, _[4] = S, _[5] = x, _[6] = A, _[7] = y, _[8] = M, _[9] = N;
53
+ } else M = _[8], N = _[9];
54
+ let P = N, F;
55
+ _[11] !== O || _[12] !== j || _[13] !== b || _[14] !== D || _[15] !== v || _[16] !== y ? (F = {
56
56
  srcToken: v,
57
57
  destToken: y,
58
- srcAmountWei: T,
59
- destAmountWei: E,
58
+ srcAmountWei: D,
59
+ destAmountWei: O,
60
60
  isLoading: b,
61
- reverse: k,
62
- prefix: "Market Rate:"
63
- }, _[11] = E, _[12] = k, _[13] = b, _[14] = T, _[15] = v, _[16] = y, _[17] = N) : N = _[17];
64
- let P;
65
- _[18] !== A || _[19] !== N ? (P = /* @__PURE__ */ h(u, {
66
- swapRateProps: N,
67
- priceImpactDetail: A
68
- }), _[18] = A, _[19] = N, _[20] = P) : P = _[20];
69
- let F;
70
- _[21] === Symbol.for("react.memo_cache_sentinel") ? (F = { root: "mt-4" }, _[21] = F) : F = _[21];
61
+ reverse: j
62
+ }, _[11] = O, _[12] = j, _[13] = b, _[14] = D, _[15] = v, _[16] = y, _[17] = F) : F = _[17];
71
63
  let I;
72
- return _[22] !== M || _[23] !== P ? (I = {
73
- details: M,
74
- trigger: P,
75
- classes: F
76
- }, _[22] = M, _[23] = P, _[24] = I) : I = _[24], I;
64
+ _[18] !== E || _[19] !== S || _[20] !== T ? (I = S ? {
65
+ onClick: () => T({ cancelRefetch: !1 }),
66
+ animate: E
67
+ } : void 0, _[18] = E, _[19] = S, _[20] = T, _[21] = I) : I = _[21];
68
+ let L;
69
+ _[22] !== M || _[23] !== F || _[24] !== I ? (L = /* @__PURE__ */ h(u, {
70
+ swapRateProps: F,
71
+ priceImpactDetail: M,
72
+ refreshButtonProps: I
73
+ }), _[22] = M, _[23] = F, _[24] = I, _[25] = L) : L = _[25];
74
+ let R;
75
+ _[26] === Symbol.for("react.memo_cache_sentinel") ? (R = { root: "mt-4" }, _[26] = R) : R = _[26];
76
+ let z;
77
+ return _[27] !== P || _[28] !== L ? (z = {
78
+ details: P,
79
+ trigger: L,
80
+ classes: R
81
+ }, _[27] = P, _[28] = L, _[29] = z) : z = _[29], z;
77
82
  };
78
83
  //#endregion
79
84
  export { _ as useTwapDetailsListProps };
@@ -1 +1 @@
1
- {"version":3,"file":"useTwapDetailsListProps.js","names":["DetailWithValue","DetailWithValueListExpandableProps","useWidgetTokens","useAtomValue","twapPayInputAmountWeiAtom","twapReceiveInputAmountWeiAtom","twapDurationAtom","twapSlippageAtom","TWAP_DURATION_OPTIONS","DeltaIcon","useTwapPrices","constructMinReceivedForTwapDetail","isTruthy","constructPriceImpactDetail","SwapRateWithPriceImpactRow","Duration","useTwapDetailsListProps","$","_c","tokenFrom","tokenTo","isLoading","side","price","numSlices","getPriceImpact","srcAmountWei","destAmountWei","duration","slippage","undefined","isBuy","priceImpactDetail","t0","durationLabel","find","o","value","label","priceImpactResult","minReceivableDetail","slippagePercent","swapSide","t1","Symbol","for","title","filter","details","srcToken","destToken","reverse","prefix","t2","t3","root","t4","trigger","classes"],"sources":["../../../src/core/twap/useTwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"./state/twapInputAmountAtom\";\nimport { twapDurationAtom } from \"./state/twapParamsAtom\";\nimport { twapSlippageAtom } from \"./state/twapParamsAtom\";\nimport { TWAP_DURATION_OPTIONS } from \"./state/constants\";\nimport { DeltaIcon } from \"@/components/widget/Icon/DeltaIcon\";\nimport { useTwapPrices } from \"@/hooks/swap/prices/useTwapPrices\";\nimport { constructMinReceivedForTwapDetail } from \"./twapDetails/minimumReceiveable\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { constructPriceImpactDetail } from \"../swapDetails/priceImpact\";\nimport { SwapRateWithPriceImpactRow } from \"@/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow\";\nimport { Duration } from \"@/components/widget/Duration/Duration\";\n\nexport const useTwapDetailsListProps =\n (): DetailWithValueListExpandableProps | null => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"twap\");\n const { isLoading, side, price, numSlices, getPriceImpact } =\n useTwapPrices();\n\n const srcAmountWei = useAtomValue(twapPayInputAmountWeiAtom);\n const destAmountWei = useAtomValue(twapReceiveInputAmountWeiAtom);\n\n const duration = useAtomValue(twapDurationAtom);\n const slippage = useAtomValue(twapSlippageAtom);\n\n if (\n !tokenTo ||\n destAmountWei === undefined ||\n !srcAmountWei ||\n srcAmountWei === \"0\"\n ) {\n return null;\n }\n\n const isBuy = side === \"BUY\";\n\n const durationLabel = TWAP_DURATION_OPTIONS.find(\n (o) => o.value === duration\n )?.label ?? <Duration timeMs={duration * 60 * 1000} />;\n\n const priceImpactDetail = constructPriceImpactDetail({\n priceImpactResult: getPriceImpact(),\n isLoading,\n });\n\n const minReceivableDetail = constructMinReceivedForTwapDetail({\n price,\n isLoading,\n numSlices,\n tokenTo,\n slippagePercent: slippage,\n swapSide: side,\n });\n\n const details: DetailWithValue[] = [\n {\n title: \"Order Routing\",\n value: (\n <div className=\"flex items-center gap-1\">\n <DeltaIcon /> Delta\n </div>\n ),\n },\n priceImpactDetail,\n {\n title: \"Slippage Tolerance\",\n value: `${slippage}%`,\n },\n {\n title: \"Order Duration\",\n value: durationLabel,\n },\n minReceivableDetail,\n ].filter(isTruthy);\n\n return {\n details,\n trigger: (\n <SwapRateWithPriceImpactRow\n swapRateProps={{\n srcToken: tokenFrom,\n destToken: tokenTo,\n srcAmountWei,\n destAmountWei,\n isLoading,\n reverse: isBuy,\n prefix: \"Market Rate:\",\n }}\n priceImpactDetail={priceImpactDetail}\n />\n ),\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"mappings":"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"}
1
+ {"version":3,"file":"useTwapDetailsListProps.js","names":["DetailWithValue","DetailWithValueListExpandableProps","useWidgetTokens","useAtomValue","twapPayInputAmountWeiAtom","twapReceiveInputAmountWeiAtom","twapDurationAtom","twapSlippageAtom","TWAP_DURATION_OPTIONS","DeltaIcon","useTwapPrices","constructMinReceivedForTwapDetail","isTruthy","constructPriceImpactDetail","SwapRateWithPriceImpactRow","Duration","useTwapDetailsListProps","$","_c","tokenFrom","tokenTo","isLoading","side","price","numSlices","getPriceImpact","refetch","isFetching","srcAmountWei","destAmountWei","duration","slippage","undefined","isBuy","priceImpactDetail","t0","durationLabel","find","o","value","label","priceImpactResult","minReceivableDetail","slippagePercent","swapSide","t1","Symbol","for","title","filter","details","srcToken","destToken","reverse","t2","onClick","cancelRefetch","animate","t3","t4","root","t5","trigger","classes"],"sources":["../../../src/core/twap/useTwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"./state/twapInputAmountAtom\";\nimport { twapDurationAtom } from \"./state/twapParamsAtom\";\nimport { twapSlippageAtom } from \"./state/twapParamsAtom\";\nimport { TWAP_DURATION_OPTIONS } from \"./state/constants\";\nimport { DeltaIcon } from \"@/components/widget/Icon/DeltaIcon\";\nimport { useTwapPrices } from \"@/hooks/swap/prices/useTwapPrices\";\nimport { constructMinReceivedForTwapDetail } from \"./twapDetails/minimumReceiveable\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { constructPriceImpactDetail } from \"../swapDetails/priceImpact\";\nimport { SwapRateWithPriceImpactRow } from \"@/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow\";\nimport { Duration } from \"@/components/widget/Duration/Duration\";\n\nexport const useTwapDetailsListProps =\n (): DetailWithValueListExpandableProps | null => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"twap\");\n const {\n isLoading,\n side,\n price,\n numSlices,\n getPriceImpact,\n refetch,\n isFetching,\n } = useTwapPrices();\n\n const srcAmountWei = useAtomValue(twapPayInputAmountWeiAtom);\n const destAmountWei = useAtomValue(twapReceiveInputAmountWeiAtom);\n\n const duration = useAtomValue(twapDurationAtom);\n const slippage = useAtomValue(twapSlippageAtom);\n\n if (\n !tokenTo ||\n destAmountWei === undefined ||\n !srcAmountWei ||\n srcAmountWei === \"0\"\n ) {\n return null;\n }\n\n const isBuy = side === \"BUY\";\n\n const durationLabel = TWAP_DURATION_OPTIONS.find(\n (o) => o.value === duration\n )?.label ?? <Duration timeMs={duration * 60 * 1000} />;\n\n const priceImpactDetail = constructPriceImpactDetail({\n priceImpactResult: getPriceImpact(),\n isLoading,\n });\n\n const minReceivableDetail = constructMinReceivedForTwapDetail({\n price,\n isLoading,\n numSlices,\n tokenTo,\n slippagePercent: slippage,\n swapSide: side,\n });\n\n const details: DetailWithValue[] = [\n {\n title: \"Order Routing\",\n value: (\n <div className=\"flex items-center gap-1\">\n <DeltaIcon /> Delta\n </div>\n ),\n },\n priceImpactDetail,\n {\n title: \"Slippage Tolerance\",\n value: `${slippage}%`,\n },\n {\n title: \"Order Duration\",\n value: durationLabel,\n },\n minReceivableDetail,\n ].filter(isTruthy);\n\n return {\n details,\n trigger: (\n <SwapRateWithPriceImpactRow\n swapRateProps={{\n srcToken: tokenFrom,\n destToken: tokenTo,\n srcAmountWei,\n destAmountWei,\n isLoading,\n reverse: isBuy,\n // comment prefix out so the whole row doesn't wrap whith refresh button\n // prefix: \"Market Rate:\",\n }}\n priceImpactDetail={priceImpactDetail}\n refreshButtonProps={\n price\n ? {\n onClick: () => refetch({ cancelRefetch: false }),\n animate: isFetching,\n }\n : undefined\n }\n />\n ),\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"mappings":"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"}
@@ -40,20 +40,17 @@ type UseSwapPricesReturn = {
40
40
  export declare function useSwapPrices(params?: UseSwapPricesInput): UseSwapPricesReturn;
41
41
  type UseCurrentSwapPriceReturn = {
42
42
  isLoading: boolean;
43
+ isFetching: boolean;
43
44
  isError: boolean;
44
45
  error: Error | null;
45
46
  cachedError: Error | null;
46
47
  side?: SwapSideUnion;
47
48
  getPriceImpact: () => PriceImpactResult;
48
- } & ({
49
+ } & (({
49
50
  priceMode: "market";
50
- price?: OptimalRate;
51
- queryKey: MarketPriceQueryKey;
52
- } | {
51
+ } & Pick<UseSwapPricesReturn["market"], "refetch" | "queryKey" | "price">) | ({
53
52
  priceMode: "delta";
54
- price?: DeltaPrice | BridgePrice;
55
- queryKey: DeltaPriceQueryKey;
56
- });
53
+ } & Pick<UseSwapPricesReturn["delta"], "refetch" | "queryKey" | "price">));
57
54
  export declare function useCurrentSwapPrice(params?: UseSwapPricesInput): UseCurrentSwapPriceReturn;
58
55
  type UseCurrentSwapPriceErrorReturn = {
59
56
  price?: DeltaOrMarketPrice;
@@ -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;AAM9C,OAAO,EAEL,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,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AASjE,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAC;IACpB,qBAAqB,EAAE,QAAQ,CAAC;IAChC,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,qFAAqF;QACrF,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,CACP,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;QAC1B,QAAQ,EAAE,mBAAmB,CAAC;KAC/B,CAAC;IACF,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACjC,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,qGAAqG;QACrG,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,CACP,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,mBAAmB,CAAC,UAAU,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;QAC1B,QAAQ,EAAE,kBAAkB,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CA2JrB;AAED,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,cAAc,EAAE,MAAM,iBAAiB,CAAC;CACzC,GAAG,CACA;IACE,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACjC,QAAQ,EAAE,kBAAkB,CAAC;CAC9B,CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,kBAAsC,GAC7C,yBAAyB,CAmC3B;AAED,KAAK,8BAA8B,GAAG;IACpC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,QAAQ,CAAC;IACpB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,iBAAiB,CAAC;IACxC,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,6BAA6B,EAAE,OAAO,CAAC;IACvC,4BAA4B,EAAE,OAAO,CAAC;IACtC,oCAAoC,EAAE,OAAO,CAAC;CAC/C,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,GAAE,kBAAuC,GAC9C,8BAA8B,CAoChC"}
1
+ {"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"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"}
@@ -108,47 +108,51 @@ function b(s) {
108
108
  }, h[64] = V, h[65] = S, h[66] = X, h[67] = Q, h[68] = $) : $ = h[68], $;
109
109
  }
110
110
  function x(e) {
111
- let t = ee(30), n;
111
+ let t = ee(34), n;
112
112
  t[0] === e ? n = t[1] : (n = e === void 0 ? { enabled: !0 } : e, t[0] = e, t[1] = n);
113
113
  let { market: r, delta: i, priceMode: a } = b(n), o;
114
114
  t[2] === i.price ? o = t[3] : (o = { price: i.price }, t[2] = i.price, t[3] = o);
115
115
  let s = h(o);
116
116
  if (a === "market") {
117
- let e = r.price, n = r.side, i = r.isLoading, o = r.isError, s = r.error, c = r.cachedError, l = r.queryKey, u;
118
- t[4] !== r.cachedError || t[5] !== r.price ? (u = y({
117
+ let e = r.price, n = r.side, i = r.isLoading, o = r.isFetching, s = r.isError, c = r.error, l = r.cachedError, u = r.queryKey, d;
118
+ t[4] !== r.cachedError || t[5] !== r.price ? (d = y({
119
119
  priceError: r.cachedError,
120
120
  price: r.price
121
- }), t[4] = r.cachedError, t[5] = r.price, t[6] = u) : u = t[6];
122
- let d;
123
- return t[7] !== r.cachedError || t[8] !== r.error || t[9] !== r.isError || t[10] !== r.isLoading || t[11] !== r.price || t[12] !== r.queryKey || t[13] !== r.side || t[14] !== a || t[15] !== u ? (d = {
121
+ }), t[4] = r.cachedError, t[5] = r.price, t[6] = d) : d = t[6];
122
+ let f;
123
+ return t[7] !== r.cachedError || t[8] !== r.error || t[9] !== r.isError || t[10] !== r.isFetching || t[11] !== r.isLoading || t[12] !== r.price || t[13] !== r.queryKey || t[14] !== r.refetch || t[15] !== r.side || t[16] !== a || t[17] !== d ? (f = {
124
124
  priceMode: a,
125
125
  price: e,
126
126
  side: n,
127
127
  isLoading: i,
128
- isError: o,
129
- error: s,
130
- cachedError: c,
131
- queryKey: l,
132
- getPriceImpact: u
133
- }, t[7] = r.cachedError, t[8] = r.error, t[9] = r.isError, t[10] = r.isLoading, t[11] = r.price, t[12] = r.queryKey, t[13] = r.side, t[14] = a, t[15] = u, t[16] = d) : d = t[16], d;
128
+ isFetching: o,
129
+ isError: s,
130
+ error: c,
131
+ cachedError: l,
132
+ queryKey: u,
133
+ getPriceImpact: d,
134
+ refetch: r.refetch
135
+ }, t[7] = r.cachedError, t[8] = r.error, t[9] = r.isError, t[10] = r.isFetching, t[11] = r.isLoading, t[12] = r.price, t[13] = r.queryKey, t[14] = r.refetch, t[15] = r.side, t[16] = a, t[17] = d, t[18] = f) : f = t[18], f;
134
136
  }
135
- let c = s || i.price, l = i.side, u = i.isLoading, d = i.isError, f = i.error, p = i.cachedError, m = i.queryKey, g = s || i.price, _;
136
- t[17] !== i.cachedError || t[18] !== g ? (_ = y({
137
+ let c = s || i.price, l = i.side, u = i.isLoading, d = i.isFetching, f = i.isError, p = i.error, m = i.cachedError, g = i.queryKey, _ = s || i.price, v;
138
+ t[19] !== i.cachedError || t[20] !== _ ? (v = y({
137
139
  priceError: i.cachedError,
138
- price: g
139
- }), t[17] = i.cachedError, t[18] = g, t[19] = _) : _ = t[19];
140
- let v;
141
- return t[20] !== i.cachedError || t[21] !== i.error || t[22] !== i.isError || t[23] !== i.isLoading || t[24] !== i.queryKey || t[25] !== i.side || t[26] !== a || t[27] !== _ || t[28] !== c ? (v = {
140
+ price: _
141
+ }), t[19] = i.cachedError, t[20] = _, t[21] = v) : v = t[21];
142
+ let x;
143
+ return t[22] !== i.cachedError || t[23] !== i.error || t[24] !== i.isError || t[25] !== i.isFetching || t[26] !== i.isLoading || t[27] !== i.queryKey || t[28] !== i.refetch || t[29] !== i.side || t[30] !== a || t[31] !== v || t[32] !== c ? (x = {
142
144
  priceMode: a,
143
145
  price: c,
144
146
  side: l,
145
147
  isLoading: u,
146
- isError: d,
147
- error: f,
148
- cachedError: p,
149
- queryKey: m,
150
- getPriceImpact: _
151
- }, t[20] = i.cachedError, t[21] = i.error, t[22] = i.isError, t[23] = i.isLoading, t[24] = i.queryKey, t[25] = i.side, t[26] = a, t[27] = _, t[28] = c, t[29] = v) : v = t[29], v;
148
+ isFetching: d,
149
+ isError: f,
150
+ error: p,
151
+ cachedError: m,
152
+ queryKey: g,
153
+ getPriceImpact: v,
154
+ refetch: i.refetch
155
+ }, t[22] = i.cachedError, t[23] = i.error, t[24] = i.isError, t[25] = i.isFetching, t[26] = i.isLoading, t[27] = i.queryKey, t[28] = i.refetch, t[29] = i.side, t[30] = a, t[31] = v, t[32] = c, t[33] = x) : x = t[33], x;
152
156
  }
153
157
  function S(e) {
154
158
  let t = ee(23), n;
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapPrices.js","names":["useMarketPriceQuery","MarketPriceQueryKey","useExtraDeltaPriceParams","useExtraMarketPriceParams","usePricesParams","useDeltaPriceQuery","DeltaPriceQueryKey","swapModeAtom","SwapMode","useAtomValue","BridgePrice","DeltaPrice","OptimalRate","SwapSideUnion","DeltaOrMarketPrice","UseSwapPricesInput","useGlobalDeltaEnabled","isETH","isWETH","useIsTokenSupportedInDeltaQuery","useCachedQueryError","getSwapSideFromDeltaPrice","useSelectedBridgePrice","PRICE_REFETCH_INTERVAL_MS","QueryObserverResult","RefetchOptions","PriceImpactResult","getDeltaPriceErrorType","isMarketPriceImpactError","isMarketBadUsdPriceError","isMarketNoLiquidityError","getPriceImpactFromPriceFactory","UseSwapPricesReturn","priceMode","userSelectedPriceMode","market","price","side","canBeUsed","isLoading","isFetching","isRefetching","isError","refetch","options","Promise","Error","error","cachedError","queryKey","delta","useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","swapMode","extraMarketPriceParams","extraDeltaPriceParams","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","fetchAnyPrice","amount","destToken","t2","srcToken","address","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","t8","enabled","t9","refetchInterval","staleTime","retry","t10","query","result","deltaPriceQuery","deltaPriceQueryKey","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","marketRefetchInterval","t11","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","marketErrorCached","t15","t16","t17","t18","t19","UseCurrentSwapPriceReturn","getPriceImpact","useCurrentSwapPrice","selectedBridgePrice","priceError","UseCurrentSwapPriceErrorReturn","isMaxImpactReachedError","isNoUsdPriceError","isNoLiquidityError","isDeltaNoAvailablePricesError","isDeltaUnsupportedTokenError","isDeltaNoAvailableBridgeOptionsError","useCurrentSwapPriceError","deltaPriceErrorType"],"sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport {\n useExtraDeltaPriceParams,\n useExtraMarketPriceParams,\n usePricesParams,\n} from \"./usePricesParams\";\nimport {\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/orders/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 { type PriceImpactResult } from \"@/lib/utils/priceImpact\";\nimport { getDeltaPriceErrorType } from \"./delta/queries/errors\";\nimport {\n isMarketPriceImpactError,\n isMarketBadUsdPriceError,\n isMarketNoLiquidityError,\n} from \"./market/queries/errors\";\nimport { getPriceImpactFromPriceFactory } from \"./factory\";\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\n // extra market params include excludedDEXS\n const extraMarketPriceParams = useExtraMarketPriceParams();\n // extra delta params 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 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 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 ...priceParams,\n ...extraMarketPriceParams,\n },\n chainId,\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 getPriceImpact: () => PriceImpactResult;\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 getPriceImpact: getPriceImpactFromPriceFactory({\n priceError: market.cachedError,\n price: market.price,\n }),\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 getPriceImpact: getPriceImpactFromPriceFactory({\n priceError: delta.cachedError,\n price: selectedBridgePrice || delta.price,\n }),\n };\n}\n\ntype UseCurrentSwapPriceErrorReturn = {\n price?: DeltaOrMarketPrice;\n priceMode: SwapMode;\n cachedError: Error | null;\n getPriceImpact: () => PriceImpactResult;\n isMaxImpactReachedError: boolean;\n isNoUsdPriceError: boolean;\n isNoLiquidityError: boolean;\n isDeltaNoAvailablePricesError: boolean;\n isDeltaUnsupportedTokenError: boolean;\n isDeltaNoAvailableBridgeOptionsError: boolean;\n};\n\nexport function useCurrentSwapPriceError(\n params: UseSwapPricesInput = { enabled: false }\n): UseCurrentSwapPriceErrorReturn {\n const { price, priceMode, cachedError, getPriceImpact } =\n useCurrentSwapPrice(params);\n\n const deltaPriceErrorType = getDeltaPriceErrorType(cachedError);\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 deltaPriceErrorType === \"MaxImpactReached\";\n const isNoUsdPriceError =\n isMarketBadUsdPriceError(cachedError) ||\n deltaPriceErrorType === \"NoUSDPriceForToken\";\n const isNoLiquidityError = isMarketNoLiquidityError(cachedError);\n\n const isDeltaNoAvailablePricesError =\n deltaPriceErrorType === \"NoAvailablePrices\";\n const isDeltaUnsupportedTokenError =\n deltaPriceErrorType === \"UnsupportedToken\";\n const isDeltaNoAvailableBridgeOptionsError =\n deltaPriceErrorType === \"NoAvailableBridgeOptions\";\n\n return {\n price,\n priceMode,\n cachedError,\n getPriceImpact,\n isMaxImpactReachedError,\n isNoUsdPriceError,\n isNoLiquidityError,\n isDeltaNoAvailablePricesError,\n isDeltaUnsupportedTokenError,\n isDeltaNoAvailableBridgeOptionsError,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSwapPrices.js","names":["useMarketPriceQuery","MarketPriceQueryKey","useExtraDeltaPriceParams","useExtraMarketPriceParams","usePricesParams","useDeltaPriceQuery","DeltaPriceQueryKey","swapModeAtom","SwapMode","useAtomValue","BridgePrice","DeltaPrice","OptimalRate","SwapSideUnion","DeltaOrMarketPrice","UseSwapPricesInput","useGlobalDeltaEnabled","isETH","isWETH","useIsTokenSupportedInDeltaQuery","useCachedQueryError","getSwapSideFromDeltaPrice","useSelectedBridgePrice","PRICE_REFETCH_INTERVAL_MS","QueryObserverResult","RefetchOptions","PriceImpactResult","getDeltaPriceErrorType","isMarketPriceImpactError","isMarketBadUsdPriceError","isMarketNoLiquidityError","getPriceImpactFromPriceFactory","UseSwapPricesReturn","priceMode","userSelectedPriceMode","market","price","side","canBeUsed","isLoading","isFetching","isRefetching","isError","refetch","options","Promise","Error","error","cachedError","queryKey","delta","useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","swapMode","extraMarketPriceParams","extraDeltaPriceParams","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","fetchAnyPrice","amount","destToken","t2","srcToken","address","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","t8","enabled","t9","refetchInterval","staleTime","retry","t10","query","result","deltaPriceQuery","deltaPriceQueryKey","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","marketRefetchInterval","t11","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","marketErrorCached","t15","t16","t17","t18","t19","UseCurrentSwapPriceReturn","getPriceImpact","Pick","useCurrentSwapPrice","selectedBridgePrice","priceError","UseCurrentSwapPriceErrorReturn","isMaxImpactReachedError","isNoUsdPriceError","isNoLiquidityError","isDeltaNoAvailablePricesError","isDeltaUnsupportedTokenError","isDeltaNoAvailableBridgeOptionsError","useCurrentSwapPriceError","deltaPriceErrorType"],"sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport {\n useExtraDeltaPriceParams,\n useExtraMarketPriceParams,\n usePricesParams,\n} from \"./usePricesParams\";\nimport {\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/orders/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 { type PriceImpactResult } from \"@/lib/utils/priceImpact\";\nimport { getDeltaPriceErrorType } from \"./delta/queries/errors\";\nimport {\n isMarketPriceImpactError,\n isMarketBadUsdPriceError,\n isMarketNoLiquidityError,\n} from \"./market/queries/errors\";\nimport { getPriceImpactFromPriceFactory } from \"./factory\";\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\n // extra market params include excludedDEXS\n const extraMarketPriceParams = useExtraMarketPriceParams();\n // extra delta params 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 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 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 ...priceParams,\n ...extraMarketPriceParams,\n },\n chainId,\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 isFetching: boolean;\n isError: boolean;\n error: Error | null;\n cachedError: Error | null;\n side?: SwapSideUnion;\n getPriceImpact: () => PriceImpactResult;\n} & (\n | ({\n priceMode: \"market\";\n } & Pick<UseSwapPricesReturn[\"market\"], \"refetch\" | \"queryKey\" | \"price\">)\n | ({\n priceMode: \"delta\";\n } & Pick<UseSwapPricesReturn[\"delta\"], \"refetch\" | \"queryKey\" | \"price\">)\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 isFetching: market.isFetching,\n isError: market.isError,\n error: market.error,\n cachedError: market.cachedError,\n queryKey: market.queryKey,\n getPriceImpact: getPriceImpactFromPriceFactory({\n priceError: market.cachedError,\n price: market.price,\n }),\n refetch: market.refetch,\n };\n }\n\n return {\n priceMode,\n price: selectedBridgePrice || delta.price,\n side: delta.side,\n isLoading: delta.isLoading,\n isFetching: delta.isFetching,\n isError: delta.isError,\n error: delta.error,\n cachedError: delta.cachedError,\n queryKey: delta.queryKey,\n getPriceImpact: getPriceImpactFromPriceFactory({\n priceError: delta.cachedError,\n price: selectedBridgePrice || delta.price,\n }),\n refetch: delta.refetch,\n };\n}\n\ntype UseCurrentSwapPriceErrorReturn = {\n price?: DeltaOrMarketPrice;\n priceMode: SwapMode;\n cachedError: Error | null;\n getPriceImpact: () => PriceImpactResult;\n isMaxImpactReachedError: boolean;\n isNoUsdPriceError: boolean;\n isNoLiquidityError: boolean;\n isDeltaNoAvailablePricesError: boolean;\n isDeltaUnsupportedTokenError: boolean;\n isDeltaNoAvailableBridgeOptionsError: boolean;\n};\n\nexport function useCurrentSwapPriceError(\n params: UseSwapPricesInput = { enabled: false }\n): UseCurrentSwapPriceErrorReturn {\n const { price, priceMode, cachedError, getPriceImpact } =\n useCurrentSwapPrice(params);\n\n const deltaPriceErrorType = getDeltaPriceErrorType(cachedError);\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 deltaPriceErrorType === \"MaxImpactReached\";\n const isNoUsdPriceError =\n isMarketBadUsdPriceError(cachedError) ||\n deltaPriceErrorType === \"NoUSDPriceForToken\";\n const isNoLiquidityError = isMarketNoLiquidityError(cachedError);\n\n const isDeltaNoAvailablePricesError =\n deltaPriceErrorType === \"NoAvailablePrices\";\n const isDeltaUnsupportedTokenError =\n deltaPriceErrorType === \"UnsupportedToken\";\n const isDeltaNoAvailableBridgeOptionsError =\n deltaPriceErrorType === \"NoAvailableBridgeOptions\";\n\n return {\n price,\n priceMode,\n cachedError,\n getPriceImpact,\n isMaxImpactReachedError,\n isNoUsdPriceError,\n isNoLiquidityError,\n isDeltaNoAvailablePricesError,\n isDeltaUnsupportedTokenError,\n isDeltaNoAvailableBridgeOptionsError,\n };\n}\n"],"mappings":"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"}
@@ -9,4 +9,5 @@ export declare const tradeModesWithCrosschain: Set<TradeMode>;
9
9
  */
10
10
  export declare const tradeModesWithSide: Set<TradeMode>;
11
11
  export declare function isTradeMode(mode: string): mode is TradeMode;
12
+ export declare function sortTradeModes(a: TradeMode, b: TradeMode): number;
12
13
  //# sourceMappingURL=tradeMode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tradeMode.d.ts","sourceRoot":"","sources":["../../src/lib/tradeMode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,eAAO,MAAM,mBAAmB,kCAKa,CAAC;AAI9C;;GAEG;AACH,eAAO,MAAM,wBAAwB,gBAInC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,gBAAuC,CAAC;AAEvE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAE3D"}
1
+ {"version":3,"file":"tradeMode.d.ts","sourceRoot":"","sources":["../../src/lib/tradeMode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,eAAO,MAAM,mBAAmB,kCAKa,CAAC;AAI9C;;GAEG;AACH,eAAO,MAAM,wBAAwB,gBAInC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,gBAAuC,CAAC;AAEvE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAE3D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,UAExD"}
@@ -12,7 +12,10 @@ var e = [
12
12
  function i(e) {
13
13
  return t.includes(e);
14
14
  }
15
+ function a(t, n) {
16
+ return e.indexOf(t) - e.indexOf(n);
17
+ }
15
18
  //#endregion
16
- export { i as isTradeMode, e as supportedTradeModes, n as tradeModesWithCrosschain, r as tradeModesWithSide };
19
+ export { i as isTradeMode, a as sortTradeModes, e as supportedTradeModes, n as tradeModesWithCrosschain, r as tradeModesWithSide };
17
20
 
18
21
  //# sourceMappingURL=tradeMode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tradeMode.js","names":["TradeMode","NonEmptyArray","supportedTradeModes","const","validTradeModes","tradeModesWithCrosschain","Set","tradeModesWithSide","isTradeMode","mode","includes"],"sources":["../../src/lib/tradeMode.ts"],"sourcesContent":["import type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { NonEmptyArray } from \"ts-essentials\";\n\nexport const supportedTradeModes = [\n \"swap\",\n \"limit\",\n \"otc\",\n \"twap\",\n] as const satisfies NonEmptyArray<TradeMode>;\n\nconst validTradeModes: string[] = supportedTradeModes;\n\n/**\n * Trade modes that support cross-chain.\n */\nexport const tradeModesWithCrosschain = new Set<TradeMode>([\n \"swap\",\n \"limit\",\n \"twap\",\n]);\n\n/**\n * Trade modes that have a side (BUY/SELL) selection in the form.\n */\nexport const tradeModesWithSide = new Set<TradeMode>([\"swap\", \"twap\"]);\n\nexport function isTradeMode(mode: string): mode is TradeMode {\n return validTradeModes.includes(mode);\n}\n"],"mappings":";AAGA,IAAaE,IAAsB;CACjC;CACA;CACA;CACA;CACD,EAEKE,IAA4BF,GAKrBG,IAA2B,IAAIC,IAAe;CACzD;CACA;CACA;CACD,CAAC,EAKWC,IAAqB,IAAID,IAAe,CAAC,QAAQ,OAAO,CAAC;AAEtE,SAAgBE,EAAYC,GAAiC;AAC3D,QAAOL,EAAgBM,SAASD,EAAK"}
1
+ {"version":3,"file":"tradeMode.js","names":["TradeMode","NonEmptyArray","supportedTradeModes","const","validTradeModes","tradeModesWithCrosschain","Set","tradeModesWithSide","isTradeMode","mode","includes","sortTradeModes","a","b","indexOf"],"sources":["../../src/lib/tradeMode.ts"],"sourcesContent":["import type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { NonEmptyArray } from \"ts-essentials\";\n\nexport const supportedTradeModes = [\n \"swap\",\n \"limit\",\n \"otc\",\n \"twap\",\n] as const satisfies NonEmptyArray<TradeMode>;\n\nconst validTradeModes: string[] = supportedTradeModes;\n\n/**\n * Trade modes that support cross-chain.\n */\nexport const tradeModesWithCrosschain = new Set<TradeMode>([\n \"swap\",\n \"limit\",\n \"twap\",\n]);\n\n/**\n * Trade modes that have a side (BUY/SELL) selection in the form.\n */\nexport const tradeModesWithSide = new Set<TradeMode>([\"swap\", \"twap\"]);\n\nexport function isTradeMode(mode: string): mode is TradeMode {\n return validTradeModes.includes(mode);\n}\n\nexport function sortTradeModes(a: TradeMode, b: TradeMode) {\n return supportedTradeModes.indexOf(a) - supportedTradeModes.indexOf(b);\n}\n"],"mappings":";AAGA,IAAaE,IAAsB;CACjC;CACA;CACA;CACA;CACD,EAEKE,IAA4BF,GAKrBG,IAA2B,IAAIC,IAAe;CACzD;CACA;CACA;CACD,CAAC,EAKWC,IAAqB,IAAID,IAAe,CAAC,QAAQ,OAAO,CAAC;AAEtE,SAAgBE,EAAYC,GAAiC;AAC3D,QAAOL,EAAgBM,SAASD,EAAK;;AAGvC,SAAgBE,EAAeC,GAAcC,GAAc;AACzD,QAAOX,EAAoBY,QAAQF,EAAE,GAAGV,EAAoBY,QAAQD,EAAE"}