@velora-dex/widget 0.2.1 → 0.2.3-dev.0

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 (156) hide show
  1. package/README.md +3 -3
  2. package/dist/assets/price-impact.svg.js +12 -0
  3. package/dist/assets/price-impact.svg.js.map +1 -0
  4. package/dist/components/ui/accordion.js +1 -1
  5. package/dist/components/ui/accordion.js.map +1 -1
  6. package/dist/components/ui/progress.d.ts.map +1 -1
  7. package/dist/components/ui/progress.js.map +1 -1
  8. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +3 -1
  9. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
  10. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +70 -64
  11. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  12. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts +3 -1
  13. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts.map +1 -1
  14. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js +39 -21
  15. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
  16. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
  17. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +1 -1
  18. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
  19. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +1 -1
  20. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
  21. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
  22. package/dist/components/widget/Drawer/state/useDrawerControls.js +5 -0
  23. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  24. package/dist/components/widget/ImportToken/ImportToken.d.ts.map +1 -1
  25. package/dist/components/widget/ImportToken/ImportToken.js +1 -1
  26. package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
  27. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js +4 -4
  28. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
  29. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts.map +1 -1
  30. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +21 -18
  31. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
  32. package/dist/components/widget/NetworkSwitcher/types.d.ts +1 -0
  33. package/dist/components/widget/NetworkSwitcher/types.d.ts.map +1 -1
  34. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts.map +1 -1
  35. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js +33 -39
  36. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
  37. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts.map +1 -1
  38. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +1 -1
  39. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
  40. package/dist/components/widget/SelectToken/SelectTokenButton.d.ts +6 -2
  41. package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
  42. package/dist/components/widget/SelectToken/SelectTokenButton.js +84 -76
  43. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  44. package/dist/components/widget/SelectToken/types.d.ts +2 -0
  45. package/dist/components/widget/SelectToken/types.d.ts.map +1 -1
  46. package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
  47. package/dist/components/widget/TokenInput/index.js +43 -41
  48. package/dist/components/widget/TokenInput/index.js.map +1 -1
  49. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts +1 -1
  50. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
  51. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
  52. package/dist/configurator/Configurator.d.ts.map +1 -1
  53. package/dist/core/Toaster.js +1 -1
  54. package/dist/core/Toaster.js.map +1 -1
  55. package/dist/core/Updaters.d.ts.map +1 -1
  56. package/dist/core/Updaters.js +2 -0
  57. package/dist/core/Updaters.js.map +1 -1
  58. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  59. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +5 -1
  60. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  61. package/dist/core/index.d.ts.map +1 -1
  62. package/dist/core/index.js.map +1 -1
  63. package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
  64. package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
  65. package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
  66. package/dist/core/limit/state/selectedTokenAtom.js +5 -1
  67. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  68. package/dist/core/limit/useLimitTokenToInputProps.d.ts +7 -0
  69. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  70. package/dist/core/limit/useLimitTokenToInputProps.js +167 -23
  71. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  72. package/dist/core/otc/state/selectedTokenAtom.d.ts.map +1 -1
  73. package/dist/core/otc/state/selectedTokenAtom.js +3 -1
  74. package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
  75. package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -1
  76. package/dist/core/otc/useOtcTokenToInputProps.js +42 -16
  77. package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
  78. package/dist/core/swapDetails/fees.d.ts.map +1 -1
  79. package/dist/core/swapDetails/fees.js +4 -2
  80. package/dist/core/swapDetails/fees.js.map +1 -1
  81. package/dist/core/swapDetails/orderRouting.d.ts.map +1 -1
  82. package/dist/core/swapDetails/orderRouting.js +7 -3
  83. package/dist/core/swapDetails/orderRouting.js.map +1 -1
  84. package/dist/core/swapDetails/priceImpact.d.ts +3 -1
  85. package/dist/core/swapDetails/priceImpact.d.ts.map +1 -1
  86. package/dist/core/swapDetails/priceImpact.js +6 -2
  87. package/dist/core/swapDetails/priceImpact.js.map +1 -1
  88. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
  89. package/dist/core/swapDetails/useSwapDetailsListProps.js +155 -42
  90. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  91. package/dist/core/swapDetails/youGet.d.ts.map +1 -1
  92. package/dist/core/swapDetails/youGet.js +5 -2
  93. package/dist/core/swapDetails/youGet.js.map +1 -1
  94. package/dist/events/hooks/useOnPriceUpdates.d.ts +2 -0
  95. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -0
  96. package/dist/events/hooks/useOnPriceUpdates.js +71 -0
  97. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -0
  98. package/dist/events/types/priceChange.d.ts +7 -0
  99. package/dist/events/types/priceChange.d.ts.map +1 -1
  100. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +4 -4
  101. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
  102. package/dist/hooks/otc/mutations/useCancelLimitOrder.js +2 -2
  103. package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
  104. package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts +2 -2
  105. package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
  106. package/dist/hooks/otc/mutations/useCreateLimitOrder.js +2 -2
  107. package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
  108. package/dist/hooks/otc/mutations/useFillOrder.d.ts +5 -5
  109. package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
  110. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  111. package/dist/hooks/swap/prices/delta/bridge/useBridgedDeposit.d.ts.map +1 -1
  112. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -2
  113. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
  114. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
  115. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +2 -2
  116. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  117. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +2 -2
  118. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  119. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +2 -2
  120. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
  121. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
  122. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +2 -2
  123. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
  124. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
  125. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +21 -1
  126. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  127. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +117 -29
  128. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  129. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  130. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  131. package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts +2 -2
  132. package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts.map +1 -1
  133. package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
  134. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +14 -1
  135. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
  136. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +130 -98
  137. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  138. package/dist/hooks/swap/prices/useSwapPrices.d.ts +10 -0
  139. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  140. package/dist/hooks/swap/prices/useSwapPrices.js +96 -4
  141. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  142. package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts +7 -1
  143. package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts.map +1 -1
  144. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +81 -67
  145. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
  146. package/dist/hooks/tokens/useAllTokensWithFilter.js +1 -1
  147. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  148. package/dist/lib/utils/useDateNow.d.ts +2 -0
  149. package/dist/lib/utils/useDateNow.d.ts.map +1 -0
  150. package/dist/lib/utils/useDateNow.js +7 -0
  151. package/dist/lib/utils/useDateNow.js.map +1 -0
  152. package/dist/styles.css +3 -4
  153. package/dist/tokens/state/addImportedTokenAtom.d.ts.map +1 -1
  154. package/dist/tokens/state/addImportedTokenAtom.js +6 -23
  155. package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
  156. package/package.json +8 -7
@@ -1,12 +1,12 @@
1
1
  import { d as distExports } from '../../../../../_virtual/index.js';
2
2
  import { useMarketSwapSDK } from '../../../../useSDK.js';
3
3
  import { useDebouncedValue } from '@tanstack/react-pacer/debouncer';
4
- import { useQueryClient, useQuery, QueryObserver } from '@tanstack/react-query';
4
+ import { useQuery, useQueryClient, QueryObserver } from '@tanstack/react-query';
5
5
  import { assert } from 'ts-essentials';
6
6
 
7
7
  const MarketPriceQueryKeyPrefix = "swap/prices/market";
8
8
  function useMarketPriceQuery(t0) {
9
- const $ = distExports.c(41);
9
+ const $ = distExports.c(17);
10
10
  const {
11
11
  priceParams,
12
12
  query,
@@ -28,54 +28,27 @@ function useMarketPriceQuery(t0) {
28
28
  } = useMarketSwapSDK(t1);
29
29
  const queryEnabled = query?.enabled ?? true;
30
30
  let t2;
31
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
31
+ if ($[2] !== chainId || $[3] !== priceParams) {
32
32
  t2 = {
33
- wait: 500
33
+ priceParams,
34
+ chainId
34
35
  };
35
- $[2] = t2;
36
+ $[2] = chainId;
37
+ $[3] = priceParams;
38
+ $[4] = t2;
36
39
  } else {
37
- t2 = $[2];
40
+ t2 = $[4];
38
41
  }
39
- const [debouncedAmount] = useDebouncedValue(priceParams.amount, t2);
42
+ const {
43
+ queryKey,
44
+ sanitizedPriceParams
45
+ } = useMarketPriceQueryKey(t2);
40
46
  let t3;
41
- let t4;
42
- let t5;
43
- let t6;
44
- let t7;
45
- if ($[3] !== chainId || $[4] !== debouncedAmount || $[5] !== priceParams.destDecimals || $[6] !== priceParams.destToken || $[7] !== priceParams.destTokenDexTransferFee || $[8] !== priceParams.destTokenTransferFee || $[9] !== priceParams.excludeContractMethods || $[10] !== priceParams.excludeContractMethodsWithoutFeeModel || $[11] !== priceParams.excludeDEXS || $[12] !== priceParams.excludePools || $[13] !== priceParams.excludeRFQ || $[14] !== priceParams.ignoreBadUsdPrice || $[15] !== priceParams.includeContractMethods || $[16] !== priceParams.includeDEXS || $[17] !== priceParams.maxImpact || $[18] !== priceParams.maxUSDImpact || $[19] !== priceParams.otherExchangePrices || $[20] !== priceParams.partner || $[21] !== priceParams.side || $[22] !== priceParams.srcDecimals || $[23] !== priceParams.srcToken || $[24] !== priceParams.srcTokenDexTransferFee || $[25] !== priceParams.srcTokenTransferFee || $[26] !== priceParams.userAddress || $[27] !== query || $[28] !== queryEnabled || $[29] !== sdk || $[30] !== timeout) {
46
- const sanitizedPriceParams = {
47
- amount: debouncedAmount,
48
- userAddress: priceParams.userAddress,
49
- side: priceParams.side,
50
- srcDecimals: priceParams.srcDecimals,
51
- destDecimals: priceParams.destDecimals,
52
- srcToken: priceParams.srcToken,
53
- destToken: priceParams.destToken,
54
- options: {
55
- excludeDEXS: priceParams.excludeDEXS,
56
- includeDEXS: priceParams.includeDEXS,
57
- excludePools: priceParams.excludePools,
58
- excludeContractMethods: priceParams.excludeContractMethods,
59
- includeContractMethods: priceParams.includeContractMethods,
60
- partner: priceParams.partner,
61
- maxImpact: priceParams.maxImpact,
62
- maxUSDImpact: priceParams.maxUSDImpact,
63
- otherExchangePrices: priceParams.otherExchangePrices,
64
- ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,
65
- excludeRFQ: priceParams.excludeRFQ,
66
- excludeContractMethodsWithoutFeeModel: priceParams.excludeContractMethodsWithoutFeeModel,
67
- srcTokenTransferFee: priceParams.srcTokenTransferFee,
68
- destTokenTransferFee: priceParams.destTokenTransferFee,
69
- srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,
70
- destTokenDexTransferFee: priceParams.destTokenDexTransferFee
71
- }
72
- };
73
- t7 = useQuery;
74
- t3 = [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
75
- t4 = (t82) => {
47
+ if ($[5] !== sanitizedPriceParams || $[6] !== sdk || $[7] !== timeout) {
48
+ t3 = (t42) => {
76
49
  const {
77
50
  signal
78
- } = t82;
51
+ } = t42;
79
52
  assert(isPriceParamsValid(sanitizedPriceParams), "destToken is required");
80
53
  const price = sdk.getRate(sanitizedPriceParams, {
81
54
  signal,
@@ -83,65 +56,39 @@ function useMarketPriceQuery(t0) {
83
56
  });
84
57
  return price;
85
58
  };
86
- t5 = query;
87
- t6 = queryEnabled && isPriceParamsValid(sanitizedPriceParams);
88
- $[3] = chainId;
89
- $[4] = debouncedAmount;
90
- $[5] = priceParams.destDecimals;
91
- $[6] = priceParams.destToken;
92
- $[7] = priceParams.destTokenDexTransferFee;
93
- $[8] = priceParams.destTokenTransferFee;
94
- $[9] = priceParams.excludeContractMethods;
95
- $[10] = priceParams.excludeContractMethodsWithoutFeeModel;
96
- $[11] = priceParams.excludeDEXS;
97
- $[12] = priceParams.excludePools;
98
- $[13] = priceParams.excludeRFQ;
99
- $[14] = priceParams.ignoreBadUsdPrice;
100
- $[15] = priceParams.includeContractMethods;
101
- $[16] = priceParams.includeDEXS;
102
- $[17] = priceParams.maxImpact;
103
- $[18] = priceParams.maxUSDImpact;
104
- $[19] = priceParams.otherExchangePrices;
105
- $[20] = priceParams.partner;
106
- $[21] = priceParams.side;
107
- $[22] = priceParams.srcDecimals;
108
- $[23] = priceParams.srcToken;
109
- $[24] = priceParams.srcTokenDexTransferFee;
110
- $[25] = priceParams.srcTokenTransferFee;
111
- $[26] = priceParams.userAddress;
112
- $[27] = query;
113
- $[28] = queryEnabled;
114
- $[29] = sdk;
115
- $[30] = timeout;
116
- $[31] = t3;
117
- $[32] = t4;
118
- $[33] = t5;
119
- $[34] = t6;
120
- $[35] = t7;
59
+ $[5] = sanitizedPriceParams;
60
+ $[6] = sdk;
61
+ $[7] = timeout;
62
+ $[8] = t3;
121
63
  } else {
122
- t3 = $[31];
123
- t4 = $[32];
124
- t5 = $[33];
125
- t6 = $[34];
126
- t7 = $[35];
64
+ t3 = $[8];
127
65
  }
128
- let t8;
129
- if ($[36] !== t3 || $[37] !== t4 || $[38] !== t5 || $[39] !== t6) {
130
- t8 = {
131
- queryKey: t3,
132
- queryFn: t4,
133
- ...t5,
134
- enabled: t6
66
+ let t4;
67
+ if ($[9] !== queryEnabled || $[10] !== sanitizedPriceParams) {
68
+ t4 = queryEnabled && isPriceParamsValid(sanitizedPriceParams);
69
+ $[9] = queryEnabled;
70
+ $[10] = sanitizedPriceParams;
71
+ $[11] = t4;
72
+ } else {
73
+ t4 = $[11];
74
+ }
75
+ let t5;
76
+ if ($[12] !== query || $[13] !== queryKey || $[14] !== t3 || $[15] !== t4) {
77
+ t5 = {
78
+ queryKey,
79
+ queryFn: t3,
80
+ ...query,
81
+ enabled: t4
135
82
  };
136
- $[36] = t3;
137
- $[37] = t4;
138
- $[38] = t5;
139
- $[39] = t6;
140
- $[40] = t8;
83
+ $[12] = query;
84
+ $[13] = queryKey;
85
+ $[14] = t3;
86
+ $[15] = t4;
87
+ $[16] = t5;
141
88
  } else {
142
- t8 = $[40];
89
+ t5 = $[16];
143
90
  }
144
- return t7(t8);
91
+ return useQuery(t5);
145
92
  }
146
93
  function isPriceParamsValid(priceParams) {
147
94
  return !!priceParams.destToken && Number(priceParams.amount) > 0;
@@ -217,6 +164,91 @@ function getLastMarketPrice(queryClient) {
217
164
  function isDataMarketPrice(price) {
218
165
  return typeof price === "object" && price !== null && "bestRoute" in price && "srcToken" in price && "destToken" in price && "srcAmount" in price && "destAmount" in price;
219
166
  }
167
+ function sanitizePriceParams({
168
+ debouncedAmount,
169
+ priceParams
170
+ }) {
171
+ return {
172
+ amount: debouncedAmount,
173
+ userAddress: priceParams.userAddress,
174
+ side: priceParams.side,
175
+ srcDecimals: priceParams.srcDecimals,
176
+ destDecimals: priceParams.destDecimals,
177
+ srcToken: priceParams.srcToken,
178
+ destToken: priceParams.destToken,
179
+ options: {
180
+ excludeDEXS: priceParams.excludeDEXS,
181
+ includeDEXS: priceParams.includeDEXS,
182
+ excludePools: priceParams.excludePools,
183
+ excludeContractMethods: priceParams.excludeContractMethods,
184
+ includeContractMethods: priceParams.includeContractMethods,
185
+ partner: priceParams.partner,
186
+ maxImpact: priceParams.maxImpact,
187
+ maxUSDImpact: priceParams.maxUSDImpact,
188
+ otherExchangePrices: priceParams.otherExchangePrices,
189
+ ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,
190
+ excludeRFQ: priceParams.excludeRFQ,
191
+ excludeContractMethodsWithoutFeeModel: priceParams.excludeContractMethodsWithoutFeeModel,
192
+ srcTokenTransferFee: priceParams.srcTokenTransferFee,
193
+ destTokenTransferFee: priceParams.destTokenTransferFee,
194
+ srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,
195
+ destTokenDexTransferFee: priceParams.destTokenDexTransferFee
196
+ }
197
+ };
198
+ }
199
+ function useMarketPriceQueryKey(t0) {
200
+ const $ = distExports.c(10);
201
+ const {
202
+ priceParams,
203
+ chainId
204
+ } = t0;
205
+ let t1;
206
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
207
+ t1 = {
208
+ wait: 500
209
+ };
210
+ $[0] = t1;
211
+ } else {
212
+ t1 = $[0];
213
+ }
214
+ const [debouncedAmount] = useDebouncedValue(priceParams.amount, t1);
215
+ let t2;
216
+ if ($[1] !== debouncedAmount || $[2] !== priceParams) {
217
+ t2 = sanitizePriceParams({
218
+ debouncedAmount,
219
+ priceParams
220
+ });
221
+ $[1] = debouncedAmount;
222
+ $[2] = priceParams;
223
+ $[3] = t2;
224
+ } else {
225
+ t2 = $[3];
226
+ }
227
+ const sanitizedPriceParams = t2;
228
+ let t3;
229
+ if ($[4] !== chainId || $[5] !== sanitizedPriceParams) {
230
+ t3 = [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
231
+ $[4] = chainId;
232
+ $[5] = sanitizedPriceParams;
233
+ $[6] = t3;
234
+ } else {
235
+ t3 = $[6];
236
+ }
237
+ const queryKey = t3;
238
+ let t4;
239
+ if ($[7] !== queryKey || $[8] !== sanitizedPriceParams) {
240
+ t4 = {
241
+ queryKey,
242
+ sanitizedPriceParams
243
+ };
244
+ $[7] = queryKey;
245
+ $[8] = sanitizedPriceParams;
246
+ $[9] = t4;
247
+ } else {
248
+ t4 = $[9];
249
+ }
250
+ return t4;
251
+ }
220
252
 
221
- export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useSubscribeToMarketPrice };
253
+ export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useMarketPriceQueryKey, useSubscribeToMarketPrice };
222
254
  //# sourceMappingURL=useMarketPriceQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n OptimalRate,\n GetRateInput as GetRateInputSDK,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional, type Prettify } from \"ts-essentials\";\n\ntype GetRateInput = Prettify<GetRateInputSDK>;\n\ntype RequiredRateParams = Prettify<\n Omit<GetRateInput, \"options\"> & GetRateInput[\"options\"]\n>;\n\nexport type RateParamsInput = MarkOptional<RequiredRateParams, \"destToken\">;\n\ntype MarketQueryParams<TData = OptimalRate> = Omit<\n UseQueryOptions<OptimalRate, Error, TData, MarketPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype MarketQueryResult<TData = OptimalRate> = UseQueryResult<TData, Error>;\n\ntype MarketPriceQueryInput<TData = OptimalRate> = {\n priceParams: RateParamsInput;\n query?: MarketQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const MarketPriceQueryKeyPrefix = \"swap/prices/market\";\n\ntype MarketPriceQueryKey = [\n base: typeof MarketPriceQueryKeyPrefix,\n chainId: number,\n priceParams: RateParamsInput,\n];\n\nexport function useMarketPriceQuery<TData = OptimalRate>({\n priceParams,\n query,\n chainId,\n timeout,\n}: MarketPriceQueryInput<TData>): MarketQueryResult<TData> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: MarkOptional<GetRateInput, \"destToken\"> = {\n amount: debouncedAmount,\n userAddress: priceParams.userAddress,\n side: priceParams.side,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n options: {\n excludeDEXS: priceParams.excludeDEXS,\n includeDEXS: priceParams.includeDEXS,\n excludePools: priceParams.excludePools,\n excludeContractMethods: priceParams.excludeContractMethods,\n includeContractMethods: priceParams.includeContractMethods,\n partner: priceParams.partner,\n maxImpact: priceParams.maxImpact,\n maxUSDImpact: priceParams.maxUSDImpact,\n otherExchangePrices: priceParams.otherExchangePrices,\n ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,\n excludeRFQ: priceParams.excludeRFQ,\n excludeContractMethodsWithoutFeeModel:\n priceParams.excludeContractMethodsWithoutFeeModel,\n srcTokenTransferFee: priceParams.srcTokenTransferFee,\n destTokenTransferFee: priceParams.destTokenTransferFee,\n srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,\n destTokenDexTransferFee: priceParams.destTokenDexTransferFee,\n },\n };\n\n return useQuery<OptimalRate, Error, TData, MarketPriceQueryKey>({\n queryKey: [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams],\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getRate(sanitizedPriceParams, { signal, timeout });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: MarkOptional<GetRateInput, \"destToken\">\n): priceParams is GetRateInput {\n return !!priceParams.destToken && Number(priceParams.amount) > 0;\n}\n\ntype GetMarketPriceQueryForPriceInput = {\n price: OptimalRate;\n chainId: number;\n};\n\ntype MarketPriceQuery = Query<\n OptimalRate,\n Error,\n OptimalRate,\n MarketPriceQueryKey\n>;\n\ntype GetMarketPriceQueryForPrice = (\n input: GetMarketPriceQueryForPriceInput\n) => Query<OptimalRate, Error, OptimalRate, MarketPriceQueryKey> | undefined;\n\n// get query for a given marketPrice\nexport function useMarketPriceQueryForPrice(): GetMarketPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [MarketPriceQueryKey[0], MarketPriceQueryKey[1]] = [\n MarketPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as MarketPriceQuery | undefined;\n };\n}\n\ntype SubscribeToMarketPriceInput = {\n queryKey: MarketPriceQueryKey;\n onData?: (data: OptimalRate) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToMarketPriceResult = (\n input: SubscribeToMarketPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n OptimalRate,\n Error,\n OptimalRate,\n OptimalRate,\n MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nexport function getLastMarketPrice(\n queryClient: QueryClient\n): OptimalRate | undefined {\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey: [MarketPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n\n return query?.state.data;\n}\n\nexport function isDataMarketPrice(price: unknown): price is OptimalRate {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bestRoute\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n"],"names":["MarketPriceQueryKeyPrefix","useMarketPriceQuery","t0","$","_c","priceParams","query","chainId","timeout","t1","sdk","useMarketSwapSDK","queryEnabled","enabled","t2","Symbol","for","wait","debouncedAmount","useDebouncedValue","amount","t3","t4","t5","t6","t7","destDecimals","destToken","destTokenDexTransferFee","destTokenTransferFee","excludeContractMethods","excludeContractMethodsWithoutFeeModel","excludeDEXS","excludePools","excludeRFQ","ignoreBadUsdPrice","includeContractMethods","includeDEXS","maxImpact","maxUSDImpact","otherExchangePrices","partner","side","srcDecimals","srcToken","srcTokenDexTransferFee","srcTokenTransferFee","userAddress","sanitizedPriceParams","options","useQuery","t8","signal","assert","isPriceParamsValid","price","getRate","queryKey","queryFn","Number","useMarketPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToMarketPrice","onData","onError","observer","QueryObserver","subscribe","result","error","getLastMarketPrice","type","isDataMarketPrice"],"mappings":"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"}
1
+ {"version":3,"file":"useMarketPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n OptimalRate,\n GetRateInput as GetRateInputSDK,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional, type Prettify } from \"ts-essentials\";\n\ntype GetRateInput = Prettify<GetRateInputSDK>;\n\ntype RequiredRateParams = Prettify<\n Omit<GetRateInput, \"options\"> & GetRateInput[\"options\"]\n>;\n\nexport type RateParamsInput = MarkOptional<RequiredRateParams, \"destToken\">;\n\ntype MarketQueryParams<TData = OptimalRate> = Omit<\n UseQueryOptions<OptimalRate, Error, TData, MarketPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype MarketQueryResult<TData = OptimalRate> = UseQueryResult<TData, Error>;\n\ntype MarketPriceQueryInput<TData = OptimalRate> = {\n priceParams: RateParamsInput;\n query?: MarketQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const MarketPriceQueryKeyPrefix = \"swap/prices/market\";\n\nexport type MarketPriceQueryKey = [\n base: typeof MarketPriceQueryKeyPrefix,\n chainId: number,\n priceParams: RateParamsInput,\n];\n\nexport function useMarketPriceQuery<TData = OptimalRate>({\n priceParams,\n query,\n chainId,\n timeout,\n}: MarketPriceQueryInput<TData>): MarketQueryResult<TData> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useMarketPriceQueryKey({\n priceParams,\n chainId,\n });\n\n return useQuery<OptimalRate, Error, TData, MarketPriceQueryKey>({\n queryKey,\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getRate(sanitizedPriceParams, { signal, timeout });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: MarkOptional<GetRateInput, \"destToken\">\n): priceParams is GetRateInput {\n return !!priceParams.destToken && Number(priceParams.amount) > 0;\n}\n\ntype GetMarketPriceQueryForPriceInput = {\n price: OptimalRate;\n chainId: number;\n};\n\ntype MarketPriceQuery = Query<\n OptimalRate,\n Error,\n OptimalRate,\n MarketPriceQueryKey\n>;\n\ntype GetMarketPriceQueryForPrice = (\n input: GetMarketPriceQueryForPriceInput\n) => Query<OptimalRate, Error, OptimalRate, MarketPriceQueryKey> | undefined;\n\n// get query for a given marketPrice\nexport function useMarketPriceQueryForPrice(): GetMarketPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [MarketPriceQueryKey[0], MarketPriceQueryKey[1]] = [\n MarketPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as MarketPriceQuery | undefined;\n };\n}\n\ntype SubscribeToMarketPriceInput = {\n queryKey: MarketPriceQueryKey;\n onData?: (data: OptimalRate) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToMarketPriceResult = (\n input: SubscribeToMarketPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n OptimalRate,\n Error,\n OptimalRate,\n OptimalRate,\n MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nexport function getLastMarketPrice(\n queryClient: QueryClient\n): OptimalRate | undefined {\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey: [MarketPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n\n return query?.state.data;\n}\n\nexport function isDataMarketPrice(price: unknown): price is OptimalRate {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bestRoute\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n\nfunction sanitizePriceParams({\n debouncedAmount,\n priceParams,\n}: {\n debouncedAmount: string;\n priceParams: RateParamsInput;\n}): MarkOptional<GetRateInput, \"destToken\"> {\n return {\n amount: debouncedAmount,\n userAddress: priceParams.userAddress,\n side: priceParams.side,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n options: {\n excludeDEXS: priceParams.excludeDEXS,\n includeDEXS: priceParams.includeDEXS,\n excludePools: priceParams.excludePools,\n excludeContractMethods: priceParams.excludeContractMethods,\n includeContractMethods: priceParams.includeContractMethods,\n partner: priceParams.partner,\n maxImpact: priceParams.maxImpact,\n maxUSDImpact: priceParams.maxUSDImpact,\n otherExchangePrices: priceParams.otherExchangePrices,\n ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,\n excludeRFQ: priceParams.excludeRFQ,\n excludeContractMethodsWithoutFeeModel:\n priceParams.excludeContractMethodsWithoutFeeModel,\n srcTokenTransferFee: priceParams.srcTokenTransferFee,\n destTokenTransferFee: priceParams.destTokenTransferFee,\n srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,\n destTokenDexTransferFee: priceParams.destTokenDexTransferFee,\n },\n };\n}\n\nexport function useMarketPriceQueryKey({\n priceParams,\n chainId,\n}: Pick<MarketPriceQueryInput, \"priceParams\" | \"chainId\">) {\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams = sanitizePriceParams({\n debouncedAmount,\n priceParams,\n });\n\n const queryKey: MarketPriceQueryKey = [\n MarketPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n}\n"],"names":["MarketPriceQueryKeyPrefix","useMarketPriceQuery","t0","$","_c","priceParams","query","chainId","timeout","t1","sdk","useMarketSwapSDK","queryEnabled","enabled","t2","queryKey","sanitizedPriceParams","useMarketPriceQueryKey","t3","t4","signal","assert","isPriceParamsValid","price","getRate","t5","queryFn","useQuery","destToken","Number","amount","useMarketPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToMarketPrice","onData","onError","observer","QueryObserver","subscribe","result","error","getLastMarketPrice","type","isDataMarketPrice","sanitizePriceParams","debouncedAmount","userAddress","side","srcDecimals","destDecimals","srcToken","options","excludeDEXS","includeDEXS","excludePools","excludeContractMethods","includeContractMethods","partner","maxImpact","maxUSDImpact","otherExchangePrices","ignoreBadUsdPrice","excludeRFQ","excludeContractMethodsWithoutFeeModel","srcTokenTransferFee","destTokenTransferFee","srcTokenDexTransferFee","destTokenDexTransferFee","Symbol","for","wait","useDebouncedValue"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { useMarketPriceQueryKey } from './market/queries/useMarketPriceQuery';
2
+ import { useDeltaPriceQueryKey } from './delta/queries/useDeltaPriceQuery';
1
3
  import { SwapMode } from '../../../components/widget/SwapModeSwitcher/state/types';
2
4
  import { BridgePrice, DeltaPrice, OptimalRate } from '@velora-dex/sdk';
3
5
  import { UseSwapPricesInput } from './types';
@@ -9,6 +11,7 @@ type UseSwapPricesReturn = {
9
11
  /** @description whether the market price can be used for the current price params */
10
12
  canBeUsed: boolean;
11
13
  isLoading: boolean;
14
+ isFetching: boolean;
12
15
  isError: boolean;
13
16
  error: Error | null;
14
17
  };
@@ -17,6 +20,7 @@ type UseSwapPricesReturn = {
17
20
  /** @description whether the delta price can be used for the current price params && widget config */
18
21
  canBeUsed: boolean;
19
22
  isLoading: boolean;
23
+ isFetching: boolean;
20
24
  isError: boolean;
21
25
  error: Error | null;
22
26
  };
@@ -34,5 +38,11 @@ type UseCurrentSwapPriceReturn = {
34
38
  price?: DeltaPrice | BridgePrice;
35
39
  });
36
40
  export declare function useCurrentSwapPrice(params?: UseSwapPricesInput): UseCurrentSwapPriceReturn;
41
+ type UseCurrentSwapPriceQueryKeyReturn = (ReturnType<typeof useMarketPriceQueryKey> & {
42
+ priceMode: "market";
43
+ }) | (ReturnType<typeof useDeltaPriceQueryKey> & {
44
+ priceMode: "delta";
45
+ });
46
+ export declare function useCurrentSwapPriceQueryKey(): UseCurrentSwapPriceQueryKeyReturn;
37
47
  export {};
38
48
  //# sourceMappingURL=useSwapPrices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQlD,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAC;IACpB,qBAAqB,EAAE,QAAQ,CAAC;IAChC,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,qFAAqF;QACrF,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACjC,qGAAqG;QACrG,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CA0IrB;AAED,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,GAAG,CACA;IACE,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CAClC,CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,kBAAsC,GAC7C,yBAAyB,CAoB3B"}
1
+ {"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AASlD,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAC;IACpB,qBAAqB,EAAE,QAAQ,CAAC;IAChC,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,qFAAqF;QACrF,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACjC,qGAAqG;QACrG,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CA0JrB;AAED,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,GAAG,CACA;IACE,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CAClC,CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,kBAAsC,GAC7C,yBAAyB,CAoB3B;AAED,KAAK,iCAAiC,GAClC,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,GAAG;IAC3C,SAAS,EAAE,QAAQ,CAAC;CACrB,CAAC,GACF,CAAC,UAAU,CAAC,OAAO,qBAAqB,CAAC,GAAG;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEP,wBAAgB,2BAA2B,IAAI,iCAAiC,CAmB/E"}
@@ -1,13 +1,14 @@
1
1
  import { d as distExports } from '../../../_virtual/index.js';
2
- import { useMarketPriceQuery } from './market/queries/useMarketPriceQuery.js';
2
+ import { useMarketPriceQueryKey, useMarketPriceQuery } from './market/queries/useMarketPriceQuery.js';
3
3
  import { usePricesParams } from './usePricesParams.js';
4
- import { useDeltaPriceQuery } from './delta/queries/useDeltaPriceQuery.js';
4
+ import { useDeltaPriceQueryKey, useDeltaPriceQuery } from './delta/queries/useDeltaPriceQuery.js';
5
5
  import { swapModeAtom } from '../../../components/widget/SwapModeSwitcher/state/swapModeAtom.js';
6
6
  import { useAtomValue } from 'jotai';
7
7
  import { useGlobalDeltaEnabled } from '../../useGlobalDeltaEnabled.js';
8
8
  import { useRef } from 'react';
9
9
  import { isETH, isWETH } from '../../../tokens/utils/eth.js';
10
10
  import { wrappedNativeCurrency } from '../../../lib/constants/weth.js';
11
+ import { useIsTokenSupportedInDeltaQuery } from './delta/queries/useIsTokenSupportedInDelta.js';
11
12
 
12
13
  const PRICE_REFETCH_INTERVAL = 5e3;
13
14
  function useSwapPrices(params = {}) {
@@ -35,6 +36,18 @@ function useSwapPrices(params = {}) {
35
36
  }, chainId) && isETH({
36
37
  address: priceParams.destToken
37
38
  });
39
+ const {
40
+ data: isSrcTokenSupported
41
+ } = useIsTokenSupportedInDeltaQuery({
42
+ token: priceParams.srcToken,
43
+ chainId
44
+ });
45
+ const {
46
+ data: isDestTokenSupported
47
+ } = useIsTokenSupportedInDeltaQuery({
48
+ token: priceParams.destToken,
49
+ chainId
50
+ });
38
51
  const deltaEnabled = (
39
52
  // enabled in widget config
40
53
  deltaEnabledInConfig && // enabled in user settings
@@ -43,7 +56,8 @@ function useSwapPrices(params = {}) {
43
56
  priceParams.side === "SELL" && // ETH -> WETH same chain is market only
44
57
  !isEthToWethSameChain && // WETH -> ETH same chain is market only
45
58
  !isWethToEthSameChain && // user selected Delta
46
- swapMode === "delta"
59
+ swapMode === "delta" && // tokens are supported in Delta
60
+ isSrcTokenSupported !== false && isDestTokenSupported !== false
47
61
  );
48
62
  const deltaCanBeUsed = fetchAnyPrice && deltaEnabledInConfig && deltaEnabledOnCurrentChain && priceParams.side === "SELL" && // @TODO add BUY support for Delta when available
49
63
  !isEthToWethSameChain && !isWethToEthSameChain;
@@ -102,6 +116,7 @@ function useSwapPrices(params = {}) {
102
116
  market: {
103
117
  price: marketPriceQuery.data,
104
118
  isLoading: marketPriceQuery.isLoading,
119
+ isFetching: marketPriceQuery.isFetching,
105
120
  isError: marketPriceQuery.isError,
106
121
  error: marketPriceQuery.error,
107
122
  canBeUsed: marketCanBeUsed
@@ -109,6 +124,7 @@ function useSwapPrices(params = {}) {
109
124
  delta: {
110
125
  price: deltaPriceQuery.data,
111
126
  isLoading: deltaPriceQuery.isLoading,
127
+ isFetching: deltaPriceQuery.isFetching,
112
128
  isError: deltaPriceQuery.isError,
113
129
  error: deltaPriceQuery.error,
114
130
  canBeUsed: deltaCanBeUsed
@@ -174,6 +190,82 @@ function useCurrentSwapPrice(t0) {
174
190
  }
175
191
  return t2;
176
192
  }
193
+ function useCurrentSwapPriceQueryKey() {
194
+ const $ = distExports.c(14);
195
+ const {
196
+ priceParams,
197
+ chainId,
198
+ destChainId
199
+ } = usePricesParams("swap");
200
+ let t0;
201
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
202
+ t0 = {
203
+ enabled: false
204
+ };
205
+ $[0] = t0;
206
+ } else {
207
+ t0 = $[0];
208
+ }
209
+ const {
210
+ priceMode
211
+ } = useSwapPrices(t0);
212
+ let t1;
213
+ if ($[1] !== chainId || $[2] !== priceParams) {
214
+ t1 = {
215
+ priceParams,
216
+ chainId
217
+ };
218
+ $[1] = chainId;
219
+ $[2] = priceParams;
220
+ $[3] = t1;
221
+ } else {
222
+ t1 = $[3];
223
+ }
224
+ const marketQueryKey = useMarketPriceQueryKey(t1);
225
+ let t2;
226
+ if ($[4] !== chainId || $[5] !== destChainId || $[6] !== priceParams) {
227
+ t2 = {
228
+ priceParams,
229
+ chainId,
230
+ destChainId
231
+ };
232
+ $[4] = chainId;
233
+ $[5] = destChainId;
234
+ $[6] = priceParams;
235
+ $[7] = t2;
236
+ } else {
237
+ t2 = $[7];
238
+ }
239
+ const deltaQueryKey = useDeltaPriceQueryKey(t2);
240
+ if (priceMode === "market") {
241
+ let t32;
242
+ if ($[8] !== marketQueryKey || $[9] !== priceMode) {
243
+ t32 = {
244
+ ...marketQueryKey,
245
+ priceMode
246
+ };
247
+ $[8] = marketQueryKey;
248
+ $[9] = priceMode;
249
+ $[10] = t32;
250
+ } else {
251
+ t32 = $[10];
252
+ }
253
+ return t32;
254
+ }
255
+ let t3;
256
+ if ($[11] !== deltaQueryKey || $[12] !== priceMode) {
257
+ t3 = {
258
+ ...deltaQueryKey,
259
+ priceMode
260
+ };
261
+ $[11] = deltaQueryKey;
262
+ $[12] = priceMode;
263
+ $[13] = t3;
264
+ } else {
265
+ t3 = $[13];
266
+ }
267
+ return t3;
268
+ }
177
269
 
178
- export { useCurrentSwapPrice, useSwapPrices };
270
+ export { useCurrentSwapPrice, useCurrentSwapPriceQueryKey, useSwapPrices };
179
271
  //# sourceMappingURL=useSwapPrices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport { useDeltaPriceQuery } from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useRef } from \"react\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\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 const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\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 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 // SELL side only\n priceParams.side === \"SELL\" &&\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 // @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 priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const deltaPriceQuery = useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n // keep track if last result was error\n const deltaErrorRef = useRef(deltaPriceQuery.error);\n // by itself isError resets when fetching\n if (deltaPriceQuery.error) deltaErrorRef.current = deltaPriceQuery.error;\n // keep errorRef until delta succeeds\n if (deltaPriceQuery.isSuccess) deltaErrorRef.current = null;\n\n const deltaErrorCached = deltaErrorRef.current;\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 || isBUY;\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\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const marketPriceQuery = useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","isEthToWethSameChain","isETH","address","srcToken","isWETH","isWethToEthSameChain","deltaEnabled","deltaCanBeUsed","srcTokenForDelta","wrappedNativeCurrency","deltaPriceQuery","useDeltaPriceQuery","timeout","query","enabled","refetchInterval","retry","deltaErrorRef","useRef","error","current","isSuccess","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","marketPriceQuery","useMarketPriceQuery","userSelectedPriceMode","market","price","data","isLoading","isError","canBeUsed","delta","useCurrentSwapPrice","t0","$","_c","t1","undefined","t2"],"mappings":"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"}
1
+ {"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n useMarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n useDeltaPriceQueryKey,\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 \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useRef } from \"react\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\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 isError: boolean;\n error: Error | null;\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 const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\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,\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 // SELL side only\n priceParams.side === \"SELL\" &&\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 priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const deltaPriceQuery = useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n // keep track if last result was error\n const deltaErrorRef = useRef(deltaPriceQuery.error);\n // by itself isError resets when fetching\n /* eslint-disable react-hooks/refs */\n if (deltaPriceQuery.error) deltaErrorRef.current = deltaPriceQuery.error;\n // keep errorRef until delta succeeds\n if (deltaPriceQuery.isSuccess) deltaErrorRef.current = null;\n\n const deltaErrorCached = deltaErrorRef.current;\n /* eslint-enable react-hooks/refs */\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 || isBUY;\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\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const marketPriceQuery = useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n };\n}\n\ntype UseCurrentSwapPriceQueryKeyReturn =\n | (ReturnType<typeof useMarketPriceQueryKey> & {\n priceMode: \"market\";\n })\n | (ReturnType<typeof useDeltaPriceQueryKey> & {\n priceMode: \"delta\";\n });\n\nexport function useCurrentSwapPriceQueryKey(): UseCurrentSwapPriceQueryKeyReturn {\n const { priceParams, chainId, destChainId } = usePricesParams(\"swap\");\n const { priceMode } = useSwapPrices({ enabled: false });\n\n const marketQueryKey = useMarketPriceQueryKey({\n priceParams,\n chainId,\n });\n const deltaQueryKey = useDeltaPriceQueryKey({\n priceParams,\n chainId,\n destChainId,\n });\n\n if (priceMode === \"market\") {\n return { ...marketQueryKey, priceMode };\n }\n\n return { ...deltaQueryKey, priceMode };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","isEthToWethSameChain","isETH","address","srcToken","isWETH","isWethToEthSameChain","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","token","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","srcTokenForDelta","wrappedNativeCurrency","deltaPriceQuery","useDeltaPriceQuery","timeout","query","enabled","refetchInterval","retry","deltaErrorRef","useRef","error","current","isSuccess","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","marketPriceQuery","useMarketPriceQuery","userSelectedPriceMode","market","price","isLoading","isFetching","isError","canBeUsed","delta","useCurrentSwapPrice","t0","$","_c","t1","undefined","t2","useCurrentSwapPriceQueryKey","Symbol","for","marketQueryKey","useMarketPriceQueryKey","deltaQueryKey","useDeltaPriceQueryKey","t3"],"mappings":"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"}
@@ -1,8 +1,14 @@
1
1
  import { TokenMaybeWithUsdBalance } from '../../../tokens/state/types';
2
2
  import { TokenRowForFetchedToken } from '../../../components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow';
3
+ import { SupportedChainId } from '../../../lib/web3/wagmi/types';
3
4
  type UseCombineTokensWithFetchedReturn = {
4
5
  tokenRowsCombined: TokenRowForFetchedToken[];
5
6
  };
6
- export declare const useCombineTokensWithFetched: (allTokenRows: TokenMaybeWithUsdBalance[], tokenFilter: string) => UseCombineTokensWithFetchedReturn;
7
+ type UseCombineTokensWithFetchedInput = {
8
+ allTokenRows: TokenMaybeWithUsdBalance[];
9
+ tokenFilter: string;
10
+ selectableChains?: SupportedChainId[];
11
+ };
12
+ export declare const useCombineTokensWithFetched: ({ allTokenRows, tokenFilter, selectableChains, }: UseCombineTokensWithFetchedInput) => UseCombineTokensWithFetchedReturn;
7
13
  export {};
8
14
  //# sourceMappingURL=useCombineTokensWithFetched.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCombineTokensWithFetched.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yEAAyE,CAAC;AAOvH,KAAK,iCAAiC,GAAG;IACvC,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C,CAAC;AACF,eAAO,MAAM,2BAA2B,GACtC,cAAc,wBAAwB,EAAE,EACxC,aAAa,MAAM,KAClB,iCAqDF,CAAC"}
1
+ {"version":3,"file":"useCombineTokensWithFetched.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yEAAyE,CAAC;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,KAAK,iCAAiC,GAAG;IACvC,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AACF,eAAO,MAAM,2BAA2B,GAAI,kDAIzC,gCAAgC,KAAG,iCAsErC,CAAC"}