@agg-build/hooks 2.5.1 → 2.6.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.
- package/dist/{chunk-PK2JGXQV.mjs → chunk-DP6VYGAX.mjs} +1 -1
- package/dist/{chunk-DPY6RZNW.mjs → chunk-Q4FRCMP6.mjs} +1 -1
- package/dist/{chunk-5NJBAP42.mjs → chunk-TJRQ55UC.mjs} +52 -10
- package/dist/deposit.js +32 -0
- package/dist/deposit.mjs +2 -2
- package/dist/index.d.mts +97 -3
- package/dist/index.d.ts +97 -3
- package/dist/index.js +266 -84
- package/dist/index.mjs +168 -31
- package/dist/withdraw.js +32 -0
- package/dist/withdraw.mjs +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -84,8 +84,8 @@ __export(src_exports, {
|
|
|
84
84
|
MarketStatus: () => MarketStatus,
|
|
85
85
|
MatchStatus: () => MatchStatus,
|
|
86
86
|
MatchType: () => MatchType,
|
|
87
|
-
QueryClient: () =>
|
|
88
|
-
QueryClientProvider: () =>
|
|
87
|
+
QueryClient: () => import_react_query43.QueryClient,
|
|
88
|
+
QueryClientProvider: () => import_react_query43.QueryClientProvider,
|
|
89
89
|
RedeemRejectedError: () => RedeemRejectedError,
|
|
90
90
|
TradeSide: () => TradeSide,
|
|
91
91
|
TurnstileChallengeError: () => import_sdk4.TurnstileChallengeError,
|
|
@@ -184,7 +184,7 @@ __export(src_exports, {
|
|
|
184
184
|
useOrders: () => useOrders,
|
|
185
185
|
usePlaceLimitOrder: () => usePlaceLimitOrder,
|
|
186
186
|
usePositions: () => usePositions,
|
|
187
|
-
useQueryClient: () =>
|
|
187
|
+
useQueryClient: () => import_react_query43.useQueryClient,
|
|
188
188
|
useQuoteManaged: () => useQuoteManaged,
|
|
189
189
|
useRampQuotes: () => useRampQuotes,
|
|
190
190
|
useRampSession: () => useRampSession,
|
|
@@ -202,8 +202,10 @@ __export(src_exports, {
|
|
|
202
202
|
useUserHoldings: () => useUserHoldings,
|
|
203
203
|
useVenueEvent: () => useVenueEvent,
|
|
204
204
|
useVenueEvents: () => useVenueEvents,
|
|
205
|
+
useVenueKeyStatus: () => useVenueKeyStatus,
|
|
205
206
|
useVenueMarketMidpoints: () => useVenueMarketMidpoints,
|
|
206
207
|
useVenueMarkets: () => useVenueMarkets,
|
|
208
|
+
useVenueSellQuotes: () => useVenueSellQuotes,
|
|
207
209
|
useViewportMidpoints: () => useViewportMidpoints,
|
|
208
210
|
useVisibleIds: () => useVisibleIds,
|
|
209
211
|
useWithdrawEstimate: () => useWithdrawEstimate,
|
|
@@ -211,7 +213,8 @@ __export(src_exports, {
|
|
|
211
213
|
useWithdrawManaged: () => useWithdrawManaged,
|
|
212
214
|
useWithdrawPreview: () => useWithdrawPreview,
|
|
213
215
|
useWithdrawalLifecycle: () => useWithdrawalLifecycle,
|
|
214
|
-
userActivityQueryKeys: () => userActivityQueryKeys
|
|
216
|
+
userActivityQueryKeys: () => userActivityQueryKeys,
|
|
217
|
+
venueKeyQueryKeys: () => venueKeyQueryKeys
|
|
215
218
|
});
|
|
216
219
|
module.exports = __toCommonJS(src_exports);
|
|
217
220
|
|
|
@@ -349,7 +352,7 @@ var getVenueOrder = (venue) => {
|
|
|
349
352
|
var sortVenues = (venues) => [...venues].sort((a, b) => getVenueOrder(a) - getVenueOrder(b));
|
|
350
353
|
|
|
351
354
|
// src/index.ts
|
|
352
|
-
var
|
|
355
|
+
var import_react_query43 = require("@tanstack/react-query");
|
|
353
356
|
|
|
354
357
|
// src/candle-store.ts
|
|
355
358
|
var import_sdk = require("@agg-build/sdk");
|
|
@@ -819,6 +822,8 @@ var enUsLabels = {
|
|
|
819
822
|
balance: {
|
|
820
823
|
availableBalance: "Available Balance",
|
|
821
824
|
reservedForOpenOrders: (amount) => `${amount} reserved for open orders`,
|
|
825
|
+
positionsValue: "Positions Value",
|
|
826
|
+
kalshiBalance: "Kalshi Balance",
|
|
822
827
|
balanceByNetwork: "Balance by network",
|
|
823
828
|
paperModeNetwork: "Paper",
|
|
824
829
|
paperModeWarning: "Paper mode is enabled. These are simulated funds for paper trading.",
|
|
@@ -1153,6 +1158,24 @@ var enUsLabels = {
|
|
|
1153
1158
|
noBidsAboveMinPrice: "No venue bids above the minimum price.",
|
|
1154
1159
|
signInToTrade: "Sign in to trade",
|
|
1155
1160
|
deposit: "Deposit",
|
|
1161
|
+
addFundsToKalshi: "Add funds to Kalshi",
|
|
1162
|
+
fundKalshiModal: {
|
|
1163
|
+
ariaLabel: "Fund your Kalshi account",
|
|
1164
|
+
title: "Fund Your Kalshi Account",
|
|
1165
|
+
description: "Kalshi manages its own account balances, so funds can't be deposited through agg.market. Add funds directly in Kalshi, then return here to trade with your updated balance.",
|
|
1166
|
+
howItWorks: "How it works",
|
|
1167
|
+
kalshiLinkLabel: "Kalshi",
|
|
1168
|
+
kalshiUrl: "https://kalshi.com",
|
|
1169
|
+
firstStepPrefix: "Go to",
|
|
1170
|
+
firstStepSuffix: "and sign in to your account.",
|
|
1171
|
+
remainingSteps: [
|
|
1172
|
+
"Click Add Funds.",
|
|
1173
|
+
"Complete your deposit using your preferred payment method.",
|
|
1174
|
+
"Return here - your Kalshi balance will be available automatically."
|
|
1175
|
+
],
|
|
1176
|
+
doItLater: "I'll do it later",
|
|
1177
|
+
done: "Done"
|
|
1178
|
+
},
|
|
1156
1179
|
kycRequired: "Verify to trade Kalshi",
|
|
1157
1180
|
kycNotVerifiedTooltip: "You have not been verified yet",
|
|
1158
1181
|
kycVerify: "Verify Identity",
|
|
@@ -1163,6 +1186,10 @@ var enUsLabels = {
|
|
|
1163
1186
|
kycSuccessTitle: "Verification successful",
|
|
1164
1187
|
kycSuccessDescription: "Your identity has been confirmed and you now have full access to trade on Kalshi markets.",
|
|
1165
1188
|
kycSuccessDone: "Done",
|
|
1189
|
+
connectKalshi: "Connect to trade Kalshi",
|
|
1190
|
+
tradingAccessVenues: "Venues",
|
|
1191
|
+
tradingAccessAvailable: "Available",
|
|
1192
|
+
tradingAccessAddKalshiAccount: "Add Kalshi Account",
|
|
1166
1193
|
outcome: (label) => `Outcome: ${label}`,
|
|
1167
1194
|
smartRouting: "Smart Routing",
|
|
1168
1195
|
orderTypeMarket: "Market",
|
|
@@ -1354,6 +1381,11 @@ var enUsLabels = {
|
|
|
1354
1381
|
cancel: "Cancel",
|
|
1355
1382
|
verifyConnection: "Verify Connection"
|
|
1356
1383
|
},
|
|
1384
|
+
success: {
|
|
1385
|
+
title: "Kalshi Account Connected",
|
|
1386
|
+
description: "Your Kalshi account is now connected to AGG. You can start trading Kalshi markets.",
|
|
1387
|
+
done: "Done"
|
|
1388
|
+
},
|
|
1357
1389
|
fallbackError: "Verification failed. Please check your credentials and try again."
|
|
1358
1390
|
}
|
|
1359
1391
|
},
|
|
@@ -1403,6 +1435,9 @@ var enUsLabels = {
|
|
|
1403
1435
|
moreMarketsTitle: "More markets",
|
|
1404
1436
|
gameLinesTab: "Game Lines",
|
|
1405
1437
|
halvesTab: "Halves",
|
|
1438
|
+
quartersTab: "Quarters",
|
|
1439
|
+
setsTab: "Sets",
|
|
1440
|
+
playerPropsTab: "Player Props",
|
|
1406
1441
|
exactScoreTab: "Exact Score",
|
|
1407
1442
|
cornersTab: "Corners",
|
|
1408
1443
|
goalsTab: "Goals",
|
|
@@ -2062,6 +2097,7 @@ var EMPTY_MANAGED_BALANCES = {
|
|
|
2062
2097
|
positions: []
|
|
2063
2098
|
};
|
|
2064
2099
|
function AggBalanceProvider({ children }) {
|
|
2100
|
+
var _a;
|
|
2065
2101
|
const client = (0, import_react3.useContext)(AggClientContext);
|
|
2066
2102
|
const authContext = (0, import_react3.useContext)(AggAuthContext);
|
|
2067
2103
|
const {
|
|
@@ -2106,8 +2142,8 @@ function AggBalanceProvider({ children }) {
|
|
|
2106
2142
|
if (!isUsdBasedToken(token.tokenSymbol)) return sum;
|
|
2107
2143
|
const tokenAcrossChains = token.chains.reduce(
|
|
2108
2144
|
(chainSum, chain) => {
|
|
2109
|
-
var
|
|
2110
|
-
return chainSum + toTokenUnits(chain.balanceRaw, (
|
|
2145
|
+
var _a2;
|
|
2146
|
+
return chainSum + toTokenUnits(chain.balanceRaw, (_a2 = chain.decimals) != null ? _a2 : token.decimals);
|
|
2111
2147
|
},
|
|
2112
2148
|
0
|
|
2113
2149
|
);
|
|
@@ -2122,8 +2158,8 @@ function AggBalanceProvider({ children }) {
|
|
|
2122
2158
|
}
|
|
2123
2159
|
return sum + token.chains.reduce(
|
|
2124
2160
|
(chainSum, chain) => {
|
|
2125
|
-
var
|
|
2126
|
-
return chainSum + toTokenUnits((
|
|
2161
|
+
var _a2, _b;
|
|
2162
|
+
return chainSum + toTokenUnits((_a2 = chain.availableRaw) != null ? _a2 : chain.balanceRaw, (_b = chain.decimals) != null ? _b : token.decimals);
|
|
2127
2163
|
},
|
|
2128
2164
|
0
|
|
2129
2165
|
);
|
|
@@ -2137,8 +2173,8 @@ function AggBalanceProvider({ children }) {
|
|
|
2137
2173
|
}
|
|
2138
2174
|
return sum + token.chains.reduce(
|
|
2139
2175
|
(chainSum, chain) => {
|
|
2140
|
-
var
|
|
2141
|
-
return chainSum + toTokenUnits((
|
|
2176
|
+
var _a2, _b;
|
|
2177
|
+
return chainSum + toTokenUnits((_a2 = chain.heldRaw) != null ? _a2 : "0", (_b = chain.decimals) != null ? _b : token.decimals);
|
|
2142
2178
|
},
|
|
2143
2179
|
0
|
|
2144
2180
|
);
|
|
@@ -2146,13 +2182,13 @@ function AggBalanceProvider({ children }) {
|
|
|
2146
2182
|
}, [managedBalances]);
|
|
2147
2183
|
const buildBalanceBreakdown = (0, import_react3.useCallback)(
|
|
2148
2184
|
(rawForChain) => {
|
|
2149
|
-
var
|
|
2185
|
+
var _a2, _b;
|
|
2150
2186
|
const byChain = /* @__PURE__ */ new Map();
|
|
2151
2187
|
const cash = managedBalances.cash;
|
|
2152
2188
|
for (const token of cash) {
|
|
2153
2189
|
if (!isUsdBasedToken(token.tokenSymbol)) continue;
|
|
2154
2190
|
for (const chain of token.chains) {
|
|
2155
|
-
const current = (
|
|
2191
|
+
const current = (_a2 = byChain.get(chain.chainId)) != null ? _a2 : {
|
|
2156
2192
|
label: chainLabelFromId(chain.chainId),
|
|
2157
2193
|
balance: 0,
|
|
2158
2194
|
accountCount: 0
|
|
@@ -2177,8 +2213,8 @@ function AggBalanceProvider({ children }) {
|
|
|
2177
2213
|
}, [buildBalanceBreakdown]);
|
|
2178
2214
|
const availableBalanceBreakdown = (0, import_react3.useMemo)(() => {
|
|
2179
2215
|
return buildBalanceBreakdown((chain) => {
|
|
2180
|
-
var
|
|
2181
|
-
return (
|
|
2216
|
+
var _a2;
|
|
2217
|
+
return (_a2 = chain.availableRaw) != null ? _a2 : chain.balanceRaw;
|
|
2182
2218
|
});
|
|
2183
2219
|
}, [buildBalanceBreakdown]);
|
|
2184
2220
|
const positionsBalanceTotal = (0, import_react3.useMemo)(() => {
|
|
@@ -2188,6 +2224,9 @@ function AggBalanceProvider({ children }) {
|
|
|
2188
2224
|
0
|
|
2189
2225
|
);
|
|
2190
2226
|
}, [managedBalances]);
|
|
2227
|
+
const kalshiVenueCash = (_a = managedBalances.venueCash) == null ? void 0 : _a.find((item) => item.venue === "kalshi");
|
|
2228
|
+
const kalshiBalance = kalshiVenueCash ? kalshiVenueCash.balanceCents / 100 : null;
|
|
2229
|
+
const kalshiPortfolioValue = (kalshiVenueCash == null ? void 0 : kalshiVenueCash.portfolioValueCents) == null ? null : kalshiVenueCash.portfolioValueCents / 100;
|
|
2191
2230
|
const refetch = (0, import_react3.useCallback)(() => {
|
|
2192
2231
|
if (!isAuthenticated) return;
|
|
2193
2232
|
void refetchBalances();
|
|
@@ -2204,6 +2243,8 @@ function AggBalanceProvider({ children }) {
|
|
|
2204
2243
|
availableBalance: 0,
|
|
2205
2244
|
reservedBalance: 0,
|
|
2206
2245
|
positionsBalanceTotal: 0,
|
|
2246
|
+
kalshiBalance: null,
|
|
2247
|
+
kalshiPortfolioValue: null,
|
|
2207
2248
|
balanceBreakdown: [],
|
|
2208
2249
|
availableBalanceBreakdown: [],
|
|
2209
2250
|
connectedVenues: [],
|
|
@@ -2220,6 +2261,8 @@ function AggBalanceProvider({ children }) {
|
|
|
2220
2261
|
availableBalance,
|
|
2221
2262
|
reservedBalance,
|
|
2222
2263
|
positionsBalanceTotal,
|
|
2264
|
+
kalshiBalance,
|
|
2265
|
+
kalshiPortfolioValue,
|
|
2223
2266
|
balanceBreakdown,
|
|
2224
2267
|
availableBalanceBreakdown,
|
|
2225
2268
|
connectedVenues,
|
|
@@ -2236,6 +2279,8 @@ function AggBalanceProvider({ children }) {
|
|
|
2236
2279
|
connectedVenues,
|
|
2237
2280
|
isBalancesLoading,
|
|
2238
2281
|
isAuthenticated,
|
|
2282
|
+
kalshiBalance,
|
|
2283
|
+
kalshiPortfolioValue,
|
|
2239
2284
|
managedBalances,
|
|
2240
2285
|
positionsBalanceTotal,
|
|
2241
2286
|
refetch,
|
|
@@ -5527,13 +5572,30 @@ var getVisibleVenueIdsByConfig = (venueIds, disabledVenues) => {
|
|
|
5527
5572
|
var getVenueAvailabilityState = ({
|
|
5528
5573
|
venueId,
|
|
5529
5574
|
disabledVenues,
|
|
5575
|
+
isConfigLoading,
|
|
5530
5576
|
isLocationBlocked
|
|
5531
5577
|
}) => {
|
|
5578
|
+
if (isConfigLoading) return "hidden";
|
|
5532
5579
|
if (isVenueDisabledByConfig(venueId, disabledVenues)) return "hidden";
|
|
5533
5580
|
if (isLocationBlocked) return "geoblocked";
|
|
5534
5581
|
return "available";
|
|
5535
5582
|
};
|
|
5536
5583
|
|
|
5584
|
+
// src/use-venue-key-status.ts
|
|
5585
|
+
var import_react_query20 = require("@tanstack/react-query");
|
|
5586
|
+
var venueKeyQueryKeys = {
|
|
5587
|
+
all: ["agg", "venue-keys"],
|
|
5588
|
+
status: (venue) => [...venueKeyQueryKeys.all, venue, "status"]
|
|
5589
|
+
};
|
|
5590
|
+
var useVenueKeyStatus = (venue, enabled = true) => {
|
|
5591
|
+
const client = useAggClient();
|
|
5592
|
+
return (0, import_react_query20.useQuery)({
|
|
5593
|
+
queryKey: venueKeyQueryKeys.status(venue),
|
|
5594
|
+
queryFn: () => client.getVenueKeyStatus(venue),
|
|
5595
|
+
enabled
|
|
5596
|
+
});
|
|
5597
|
+
};
|
|
5598
|
+
|
|
5537
5599
|
// src/use-agg-auth.ts
|
|
5538
5600
|
var import_react17 = require("react");
|
|
5539
5601
|
function useAggAuth(options = {}) {
|
|
@@ -5602,7 +5664,7 @@ var requestAggAuthChooserOpen = () => {
|
|
|
5602
5664
|
};
|
|
5603
5665
|
|
|
5604
5666
|
// src/use-categories.ts
|
|
5605
|
-
var
|
|
5667
|
+
var import_react_query21 = require("@tanstack/react-query");
|
|
5606
5668
|
function useCategories(options) {
|
|
5607
5669
|
var _a, _b, _c, _d, _e, _f;
|
|
5608
5670
|
const client = useAggClient();
|
|
@@ -5610,7 +5672,7 @@ function useCategories(options) {
|
|
|
5610
5672
|
const parentId = (_b = options == null ? void 0 : options.parentId) != null ? _b : null;
|
|
5611
5673
|
const enabled = (_c = options == null ? void 0 : options.enabled) != null ? _c : true;
|
|
5612
5674
|
const limit = (_d = options == null ? void 0 : options.limit) != null ? _d : 20;
|
|
5613
|
-
const query = (0,
|
|
5675
|
+
const query = (0, import_react_query21.useInfiniteQuery)({
|
|
5614
5676
|
queryKey: [queryKeyScope, "parent", parentId != null ? parentId : "__root__", limit],
|
|
5615
5677
|
queryFn: (_0) => __async(null, [_0], function* ({ pageParam }) {
|
|
5616
5678
|
const res = yield client.getCategories(__spreadValues({
|
|
@@ -5642,7 +5704,7 @@ function useCategoryChildren(options) {
|
|
|
5642
5704
|
const parentIds = Array.from(
|
|
5643
5705
|
new Set(((_d = options == null ? void 0 : options.parentIds) != null ? _d : []).filter((parentId) => Boolean(parentId)))
|
|
5644
5706
|
);
|
|
5645
|
-
const queries = (0,
|
|
5707
|
+
const queries = (0, import_react_query21.useQueries)({
|
|
5646
5708
|
queries: parentIds.map((parentId) => ({
|
|
5647
5709
|
queryKey: [queryKeyScope, "parent", parentId, limit],
|
|
5648
5710
|
queryFn: () => __async(null, null, function* () {
|
|
@@ -5685,7 +5747,7 @@ function useDebouncedValue(value, delay) {
|
|
|
5685
5747
|
}
|
|
5686
5748
|
|
|
5687
5749
|
// src/use-execution-orders.ts
|
|
5688
|
-
var
|
|
5750
|
+
var import_react_query22 = require("@tanstack/react-query");
|
|
5689
5751
|
function useExecutionOrders(options = {}) {
|
|
5690
5752
|
var _a, _b;
|
|
5691
5753
|
const client = useAggClient();
|
|
@@ -5698,7 +5760,7 @@ function useExecutionOrders(options = {}) {
|
|
|
5698
5760
|
enabled = true,
|
|
5699
5761
|
refetchIntervalMs = false
|
|
5700
5762
|
} = options;
|
|
5701
|
-
const query = (0,
|
|
5763
|
+
const query = (0, import_react_query22.useInfiniteQuery)({
|
|
5702
5764
|
// quoteId + orderId are part of the cache key — different filters
|
|
5703
5765
|
// produce different result sets, so they have to vary the key.
|
|
5704
5766
|
queryKey: [
|
|
@@ -5734,7 +5796,7 @@ function useExecutionOrders(options = {}) {
|
|
|
5734
5796
|
}
|
|
5735
5797
|
|
|
5736
5798
|
// src/use-user-activity.ts
|
|
5737
|
-
var
|
|
5799
|
+
var import_react_query23 = require("@tanstack/react-query");
|
|
5738
5800
|
var DEFAULT_PENDING_REFETCH_INTERVAL_MS = 15e3;
|
|
5739
5801
|
var PENDING_ACTIVITY_STATUSES = /* @__PURE__ */ new Set([
|
|
5740
5802
|
"pending",
|
|
@@ -5768,7 +5830,7 @@ function useUserActivity(options = {}) {
|
|
|
5768
5830
|
enabled = true,
|
|
5769
5831
|
pendingRefetchIntervalMs = DEFAULT_PENDING_REFETCH_INTERVAL_MS
|
|
5770
5832
|
} = options;
|
|
5771
|
-
const query = (0,
|
|
5833
|
+
const query = (0, import_react_query23.useInfiniteQuery)({
|
|
5772
5834
|
queryKey: userActivityQueryKeys.feed(type, limit),
|
|
5773
5835
|
queryFn: ({ pageParam }) => client.getUserActivity({
|
|
5774
5836
|
type,
|
|
@@ -5785,7 +5847,7 @@ function useUserActivity(options = {}) {
|
|
|
5785
5847
|
// flight (typically after a deposit / withdraw cache invalidation).
|
|
5786
5848
|
// Without this the feed flashes to the skeleton mid-session, which
|
|
5787
5849
|
// is worse UX than briefly showing slightly-stale rows.
|
|
5788
|
-
placeholderData:
|
|
5850
|
+
placeholderData: import_react_query23.keepPreviousData,
|
|
5789
5851
|
refetchInterval: (q) => {
|
|
5790
5852
|
if (pendingRefetchIntervalMs === false) return false;
|
|
5791
5853
|
const data = q.state.data;
|
|
@@ -5830,12 +5892,12 @@ function useExternalId(options = {}) {
|
|
|
5830
5892
|
}
|
|
5831
5893
|
|
|
5832
5894
|
// src/use-execution-positions.ts
|
|
5833
|
-
var
|
|
5895
|
+
var import_react_query24 = require("@tanstack/react-query");
|
|
5834
5896
|
function useExecutionPositions(options = {}) {
|
|
5835
5897
|
var _a, _b;
|
|
5836
5898
|
const client = useAggClient();
|
|
5837
5899
|
const { limit = 50, status, mode, enabled = true } = options;
|
|
5838
|
-
const query = (0,
|
|
5900
|
+
const query = (0, import_react_query24.useInfiniteQuery)({
|
|
5839
5901
|
queryKey: executionKeys.positions(null, limit, status != null ? status : null, mode != null ? mode : null),
|
|
5840
5902
|
queryFn: ({ pageParam }) => client.getExecutionPositions(__spreadProps(__spreadValues({
|
|
5841
5903
|
limit,
|
|
@@ -5866,7 +5928,7 @@ var import_react23 = require("react");
|
|
|
5866
5928
|
var import_sdk3 = require("@agg-build/sdk");
|
|
5867
5929
|
|
|
5868
5930
|
// src/use-market-chart.ts
|
|
5869
|
-
var
|
|
5931
|
+
var import_react_query25 = require("@tanstack/react-query");
|
|
5870
5932
|
|
|
5871
5933
|
// src/market-data/subscription.ts
|
|
5872
5934
|
var import_react21 = require("react");
|
|
@@ -5951,7 +6013,7 @@ function useMarketChart(options) {
|
|
|
5951
6013
|
orderbook: true,
|
|
5952
6014
|
trades: true
|
|
5953
6015
|
});
|
|
5954
|
-
const queries = (0,
|
|
6016
|
+
const queries = (0, import_react_query25.useQueries)({
|
|
5955
6017
|
queries: outcomeIds.map((outcomeId) => ({
|
|
5956
6018
|
// Cache key is intentionally time-free. The rolling window's
|
|
5957
6019
|
// startTs/endTs advance on every bucket but the user expects the same
|
|
@@ -5986,7 +6048,7 @@ function useMarketChart(options) {
|
|
|
5986
6048
|
gcTime: 60 * 6e4,
|
|
5987
6049
|
refetchOnWindowFocus: false,
|
|
5988
6050
|
retry: 1,
|
|
5989
|
-
placeholderData:
|
|
6051
|
+
placeholderData: import_react_query25.keepPreviousData,
|
|
5990
6052
|
refetchInterval: refetchIntervalMs != null && refetchIntervalMs > 0 ? refetchIntervalMs : false,
|
|
5991
6053
|
refetchIntervalInBackground: false
|
|
5992
6054
|
}))
|
|
@@ -6229,7 +6291,7 @@ function useEventOrderbookData(venueMarkets, selectedMarketId) {
|
|
|
6229
6291
|
}
|
|
6230
6292
|
|
|
6231
6293
|
// src/use-live-market.ts
|
|
6232
|
-
var
|
|
6294
|
+
var import_react_query26 = require("@tanstack/react-query");
|
|
6233
6295
|
function outcomeOrderbookToState(response, marketId) {
|
|
6234
6296
|
var _a, _b, _c, _d;
|
|
6235
6297
|
const { venue, orderbook, midpoint, spread, seq, checksum, timestamp, venueMarketOutcomeId } = response;
|
|
@@ -6279,7 +6341,7 @@ function useLiveMarket(canonicalMarketId) {
|
|
|
6279
6341
|
enabled: isLiveSubscriptionEnabled,
|
|
6280
6342
|
orderbook: true
|
|
6281
6343
|
});
|
|
6282
|
-
const query = (0,
|
|
6344
|
+
const query = (0, import_react_query26.useQuery)({
|
|
6283
6345
|
queryKey: marketDataKeys.live(canonicalMarketId != null ? canonicalMarketId : "__disabled__"),
|
|
6284
6346
|
queryFn: () => __async(null, null, function* () {
|
|
6285
6347
|
return createMarketLiveState(canonicalMarketId != null ? canonicalMarketId : "__disabled__");
|
|
@@ -6291,7 +6353,7 @@ function useLiveMarket(canonicalMarketId) {
|
|
|
6291
6353
|
isConnected: Boolean(isLiveSubscriptionEnabled && isConnected)
|
|
6292
6354
|
})
|
|
6293
6355
|
});
|
|
6294
|
-
const seedQuery = (0,
|
|
6356
|
+
const seedQuery = (0, import_react_query26.useQuery)({
|
|
6295
6357
|
queryKey: ["live-market-seed", canonicalMarketId],
|
|
6296
6358
|
queryFn: ({ signal }) => canonicalMarketId ? client.getOutcomeOrderbook(canonicalMarketId, { signal }) : Promise.resolve(null),
|
|
6297
6359
|
enabled: Boolean(canonicalMarketId),
|
|
@@ -6312,7 +6374,7 @@ function useLiveMarket(canonicalMarketId) {
|
|
|
6312
6374
|
|
|
6313
6375
|
// src/use-live-outcome-prices.ts
|
|
6314
6376
|
var import_react26 = require("react");
|
|
6315
|
-
var
|
|
6377
|
+
var import_react_query27 = require("@tanstack/react-query");
|
|
6316
6378
|
var EMPTY_PRICES = /* @__PURE__ */ new Map();
|
|
6317
6379
|
var buildMidpointFingerprint = (outcomeIds, queries) => {
|
|
6318
6380
|
var _a, _b, _c;
|
|
@@ -6338,7 +6400,7 @@ function useLiveOutcomePrices(venueMarkets) {
|
|
|
6338
6400
|
}
|
|
6339
6401
|
return [...ids].sort();
|
|
6340
6402
|
}, [venueMarkets]);
|
|
6341
|
-
const queries = (0,
|
|
6403
|
+
const queries = (0, import_react_query27.useQueries)({
|
|
6342
6404
|
queries: outcomeIds.map((id) => ({
|
|
6343
6405
|
queryKey: marketDataKeys.live(id),
|
|
6344
6406
|
queryFn: () => createMarketLiveState(id),
|
|
@@ -6387,7 +6449,7 @@ function findLivePriceById(livePrices, id) {
|
|
|
6387
6449
|
|
|
6388
6450
|
// src/use-live-best-prices.ts
|
|
6389
6451
|
var import_react27 = require("react");
|
|
6390
|
-
var
|
|
6452
|
+
var import_react_query28 = require("@tanstack/react-query");
|
|
6391
6453
|
var EMPTY = /* @__PURE__ */ new Map();
|
|
6392
6454
|
var EMPTY_CANDIDATES = /* @__PURE__ */ new Map();
|
|
6393
6455
|
var extractOutcomeBestPrices = (state) => {
|
|
@@ -6430,7 +6492,7 @@ function useLiveBestPrices(venueMarkets) {
|
|
|
6430
6492
|
}
|
|
6431
6493
|
return [...ids].sort();
|
|
6432
6494
|
}, [venueMarkets]);
|
|
6433
|
-
const queries = (0,
|
|
6495
|
+
const queries = (0, import_react_query28.useQueries)({
|
|
6434
6496
|
queries: outcomeIds.map((id) => ({
|
|
6435
6497
|
queryKey: marketDataKeys.live(id),
|
|
6436
6498
|
queryFn: () => createMarketLiveState(id),
|
|
@@ -6649,7 +6711,7 @@ function useLiveBestPriceCandidates(venueMarkets) {
|
|
|
6649
6711
|
}
|
|
6650
6712
|
return [...ids].sort();
|
|
6651
6713
|
}, [venueMarkets]);
|
|
6652
|
-
const queries = (0,
|
|
6714
|
+
const queries = (0, import_react_query28.useQueries)({
|
|
6653
6715
|
queries: outcomeIds.map((id) => ({
|
|
6654
6716
|
queryKey: marketDataKeys.live(id),
|
|
6655
6717
|
queryFn: () => createMarketLiveState(id),
|
|
@@ -6693,7 +6755,7 @@ function useLiveTrades(canonicalMarketId) {
|
|
|
6693
6755
|
}
|
|
6694
6756
|
|
|
6695
6757
|
// src/use-midpoints.ts
|
|
6696
|
-
var
|
|
6758
|
+
var import_react_query29 = require("@tanstack/react-query");
|
|
6697
6759
|
var import_react28 = require("react");
|
|
6698
6760
|
var normalizeVenueMarketIds = (venueMarkets) => {
|
|
6699
6761
|
var _a;
|
|
@@ -6872,7 +6934,7 @@ function useMidpoints(venueMarkets, options) {
|
|
|
6872
6934
|
() => resolveBestMidpointCandidateOutcomeIds(venueMarkets),
|
|
6873
6935
|
[venueMarkets]
|
|
6874
6936
|
);
|
|
6875
|
-
const { data, isLoading } = (0,
|
|
6937
|
+
const { data, isLoading } = (0, import_react_query29.useQuery)({
|
|
6876
6938
|
queryKey: ["midpoints", ids, maxMidpointIdsPerRequest],
|
|
6877
6939
|
queryFn: () => client.getMidpoints(ids, { bestPrice: true, maxMidpointIdsPerRequest }),
|
|
6878
6940
|
enabled: ids.length > 0,
|
|
@@ -7017,10 +7079,10 @@ var useRollingChartWindow = (options) => {
|
|
|
7017
7079
|
};
|
|
7018
7080
|
|
|
7019
7081
|
// src/use-market-orderbook.ts
|
|
7020
|
-
var
|
|
7082
|
+
var import_react_query30 = require("@tanstack/react-query");
|
|
7021
7083
|
function useMarketOrderbook(options) {
|
|
7022
7084
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
7023
|
-
const queryClient = (0,
|
|
7085
|
+
const queryClient = (0, import_react_query30.useQueryClient)();
|
|
7024
7086
|
const ws = useAggWebSocket();
|
|
7025
7087
|
const isConnected = useAggWebSocketConnectionState();
|
|
7026
7088
|
const {
|
|
@@ -7038,7 +7100,7 @@ function useMarketOrderbook(options) {
|
|
|
7038
7100
|
enabled: enabled && !!selectedOutcomeId,
|
|
7039
7101
|
orderbook: true
|
|
7040
7102
|
});
|
|
7041
|
-
const liveQueries = (0,
|
|
7103
|
+
const liveQueries = (0, import_react_query30.useQueries)({
|
|
7042
7104
|
queries: subscriptionIds.map((subscriptionId) => ({
|
|
7043
7105
|
queryKey: marketDataKeys.live(subscriptionId),
|
|
7044
7106
|
queryFn: () => createMarketLiveState(subscriptionId),
|
|
@@ -7162,7 +7224,7 @@ function useArbFeed() {
|
|
|
7162
7224
|
}
|
|
7163
7225
|
|
|
7164
7226
|
// src/use-order-book.ts
|
|
7165
|
-
var
|
|
7227
|
+
var import_react_query31 = require("@tanstack/react-query");
|
|
7166
7228
|
function useOrderBook(options) {
|
|
7167
7229
|
const client = useAggClient();
|
|
7168
7230
|
const { orderbooks, enabled = true, canonicalMarketId } = options;
|
|
@@ -7175,7 +7237,7 @@ function useOrderBook(options) {
|
|
|
7175
7237
|
venueMarketOutcomeId: outcome.id
|
|
7176
7238
|
})) : void 0
|
|
7177
7239
|
});
|
|
7178
|
-
const batchedResult = (0,
|
|
7240
|
+
const batchedResult = (0, import_react_query31.useQuery)({
|
|
7179
7241
|
queryKey: requestedVenueMarketIds.length ? ["orderbooks", requestedVenueMarketIds, null] : ["orderbooks", "__disabled__", null],
|
|
7180
7242
|
queryFn: ({ signal }) => client.getOrderbooks(
|
|
7181
7243
|
{
|
|
@@ -7188,7 +7250,7 @@ function useOrderBook(options) {
|
|
|
7188
7250
|
gcTime: 5 * 6e4,
|
|
7189
7251
|
refetchOnWindowFocus: false,
|
|
7190
7252
|
retry: 1,
|
|
7191
|
-
placeholderData:
|
|
7253
|
+
placeholderData: import_react_query31.keepPreviousData
|
|
7192
7254
|
});
|
|
7193
7255
|
const data = (() => {
|
|
7194
7256
|
var _a, _b;
|
|
@@ -7243,7 +7305,7 @@ function useOrderBook(options) {
|
|
|
7243
7305
|
}
|
|
7244
7306
|
|
|
7245
7307
|
// src/use-orderbook-quote.ts
|
|
7246
|
-
var
|
|
7308
|
+
var import_react_query32 = require("@tanstack/react-query");
|
|
7247
7309
|
var QUOTE_DEBOUNCE_MS = 300;
|
|
7248
7310
|
var createUnavailableOrderbookError = (message, code, retryable) => {
|
|
7249
7311
|
const error = new Error(message);
|
|
@@ -7305,7 +7367,7 @@ function useOrderbookQuote(options) {
|
|
|
7305
7367
|
const { marketId, side, size, enabled = true } = options;
|
|
7306
7368
|
const debouncedSize = useDebouncedValue(size, QUOTE_DEBOUNCE_MS);
|
|
7307
7369
|
const shouldFetch = enabled && !!marketId && debouncedSize > 0;
|
|
7308
|
-
const query = (0,
|
|
7370
|
+
const query = (0, import_react_query32.useQuery)({
|
|
7309
7371
|
queryKey: marketId ? marketDataKeys.orderbookQuote(marketId, side, debouncedSize) : ["market-data", "orderbook-quote", "__disabled__"],
|
|
7310
7372
|
queryFn: () => __async(null, null, function* () {
|
|
7311
7373
|
var _a2, _b, _c, _d;
|
|
@@ -7336,7 +7398,7 @@ function useOrderbookQuote(options) {
|
|
|
7336
7398
|
staleTime: 1e4,
|
|
7337
7399
|
gcTime: 5 * 6e4,
|
|
7338
7400
|
retry: 1,
|
|
7339
|
-
placeholderData:
|
|
7401
|
+
placeholderData: import_react_query32.keepPreviousData
|
|
7340
7402
|
});
|
|
7341
7403
|
return {
|
|
7342
7404
|
data: (_a = query.data) != null ? _a : null,
|
|
@@ -7347,12 +7409,12 @@ function useOrderbookQuote(options) {
|
|
|
7347
7409
|
}
|
|
7348
7410
|
|
|
7349
7411
|
// src/use-orders.ts
|
|
7350
|
-
var
|
|
7412
|
+
var import_react_query33 = require("@tanstack/react-query");
|
|
7351
7413
|
function useOrders(options = {}) {
|
|
7352
7414
|
var _a, _b, _c, _d;
|
|
7353
7415
|
const client = useAggClient();
|
|
7354
7416
|
const { userId, status, limit = 50, offset = 0, enabled = true } = options;
|
|
7355
|
-
const query = (0,
|
|
7417
|
+
const query = (0, import_react_query33.useQuery)({
|
|
7356
7418
|
queryKey: ["orders", userId != null ? userId : "me", status != null ? status : "all", limit, offset],
|
|
7357
7419
|
queryFn: () => client.getOrders({
|
|
7358
7420
|
userId,
|
|
@@ -7369,13 +7431,13 @@ function useOrders(options = {}) {
|
|
|
7369
7431
|
}
|
|
7370
7432
|
|
|
7371
7433
|
// src/use-search.ts
|
|
7372
|
-
var
|
|
7434
|
+
var import_react_query34 = require("@tanstack/react-query");
|
|
7373
7435
|
var import_react31 = require("react");
|
|
7374
7436
|
function useSearch(options) {
|
|
7375
7437
|
var _a, _b, _c, _d;
|
|
7376
7438
|
const client = (0, import_react31.useContext)(AggClientContext);
|
|
7377
|
-
const queryClient = (0, import_react31.useContext)(
|
|
7378
|
-
const [fallbackQueryClient] = (0, import_react31.useState)(() => new
|
|
7439
|
+
const queryClient = (0, import_react31.useContext)(import_react_query34.QueryClientContext);
|
|
7440
|
+
const [fallbackQueryClient] = (0, import_react31.useState)(() => new import_react_query34.QueryClient());
|
|
7379
7441
|
const { q, type, categoryIds, status, limit = 20, enabled = true, deep = false } = options;
|
|
7380
7442
|
const isEnabled = enabled && q.length > 0;
|
|
7381
7443
|
(0, import_react31.useEffect)(() => {
|
|
@@ -7388,7 +7450,7 @@ function useSearch(options) {
|
|
|
7388
7450
|
if (isEnabled && !client) {
|
|
7389
7451
|
throw new Error("useSearch must be used within an <AggProvider>");
|
|
7390
7452
|
}
|
|
7391
|
-
const query = (0,
|
|
7453
|
+
const query = (0, import_react_query34.useInfiniteQuery)(
|
|
7392
7454
|
{
|
|
7393
7455
|
// deep is part of the key — TanStack treats deep vs light as
|
|
7394
7456
|
// independent queries so users can have both modes cached side-by-side.
|
|
@@ -7422,7 +7484,7 @@ function useSearch(options) {
|
|
|
7422
7484
|
if (!lastPage.hasMore) return void 0;
|
|
7423
7485
|
return (_a2 = lastPage.nextCursor) != null ? _a2 : void 0;
|
|
7424
7486
|
},
|
|
7425
|
-
placeholderData:
|
|
7487
|
+
placeholderData: import_react_query34.keepPreviousData,
|
|
7426
7488
|
enabled: isEnabled && !!client
|
|
7427
7489
|
},
|
|
7428
7490
|
queryClient != null ? queryClient : fallbackQueryClient
|
|
@@ -7530,7 +7592,7 @@ function useMarketSearch(options) {
|
|
|
7530
7592
|
}
|
|
7531
7593
|
|
|
7532
7594
|
// src/use-smart-route.ts
|
|
7533
|
-
var
|
|
7595
|
+
var import_react_query35 = require("@tanstack/react-query");
|
|
7534
7596
|
|
|
7535
7597
|
// src/smart-route-refresh-policy.ts
|
|
7536
7598
|
var THIN_SMART_ROUTE_REFETCH_INTERVAL_MS = 5e3;
|
|
@@ -7656,7 +7718,7 @@ var getIsDocumentVisible = () => {
|
|
|
7656
7718
|
return document.visibilityState !== "hidden";
|
|
7657
7719
|
};
|
|
7658
7720
|
function useSmartRoute(options) {
|
|
7659
|
-
var _a, _b;
|
|
7721
|
+
var _a, _b, _c, _d;
|
|
7660
7722
|
const client = useAggClient();
|
|
7661
7723
|
const {
|
|
7662
7724
|
venueMarketOutcomeId,
|
|
@@ -7670,6 +7732,7 @@ function useSmartRoute(options) {
|
|
|
7670
7732
|
chainBalances,
|
|
7671
7733
|
slipCapBps,
|
|
7672
7734
|
compareVenues,
|
|
7735
|
+
sellCacheScope,
|
|
7673
7736
|
deepEstimate,
|
|
7674
7737
|
enabled = true,
|
|
7675
7738
|
staleTimeMs = SMART_ROUTE_STALE_TIME_MS,
|
|
@@ -7678,7 +7741,7 @@ function useSmartRoute(options) {
|
|
|
7678
7741
|
const resolvedVenueMarketOutcomeId = (_a = venueMarketOutcomeId != null ? venueMarketOutcomeId : venueMarketId) != null ? _a : outcomeId;
|
|
7679
7742
|
const hasValidInput = (maxSpend != null ? maxSpend : 0) > 0 || (sellShares != null ? sellShares : 0) > 0;
|
|
7680
7743
|
const queryEnabled = enabled && !!resolvedVenueMarketOutcomeId && hasValidInput;
|
|
7681
|
-
const query = (0,
|
|
7744
|
+
const query = (0, import_react_query35.useQuery)({
|
|
7682
7745
|
queryKey: [
|
|
7683
7746
|
"smart-route",
|
|
7684
7747
|
resolvedVenueMarketOutcomeId,
|
|
@@ -7690,7 +7753,8 @@ function useSmartRoute(options) {
|
|
|
7690
7753
|
chainBalances ? JSON.stringify(chainBalances) : null,
|
|
7691
7754
|
slipCapBps != null ? slipCapBps : null,
|
|
7692
7755
|
compareVenues != null ? compareVenues : false,
|
|
7693
|
-
deepEstimate != null ? deepEstimate : false
|
|
7756
|
+
deepEstimate != null ? deepEstimate : false,
|
|
7757
|
+
...tradeSide === "sell" ? [(_b = sellCacheScope == null ? void 0 : sellCacheScope.accountId) != null ? _b : null, (_c = sellCacheScope == null ? void 0 : sellCacheScope.positionVersion) != null ? _c : null] : []
|
|
7694
7758
|
],
|
|
7695
7759
|
queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
|
|
7696
7760
|
return client.getSmartRoute(
|
|
@@ -7712,7 +7776,7 @@ function useSmartRoute(options) {
|
|
|
7712
7776
|
enabled: queryEnabled,
|
|
7713
7777
|
staleTime: staleTimeMs,
|
|
7714
7778
|
refetchInterval: (queryState) => {
|
|
7715
|
-
var _a2, _b2,
|
|
7779
|
+
var _a2, _b2, _c2, _d2;
|
|
7716
7780
|
return resolveSmartRouteRefetchInterval({
|
|
7717
7781
|
data: queryState.state.data,
|
|
7718
7782
|
defaultIntervalMs: staleTimeMs,
|
|
@@ -7720,8 +7784,8 @@ function useSmartRoute(options) {
|
|
|
7720
7784
|
isEditing: (_a2 = refreshContext == null ? void 0 : refreshContext.isEditing) != null ? _a2 : false,
|
|
7721
7785
|
isInputValid: hasValidInput,
|
|
7722
7786
|
isMarketOpen: (_b2 = refreshContext == null ? void 0 : refreshContext.isMarketOpen) != null ? _b2 : true,
|
|
7723
|
-
isPanelActive: (
|
|
7724
|
-
isSubmitting: (
|
|
7787
|
+
isPanelActive: (_c2 = refreshContext == null ? void 0 : refreshContext.isPanelActive) != null ? _c2 : true,
|
|
7788
|
+
isSubmitting: (_d2 = refreshContext == null ? void 0 : refreshContext.isSubmitting) != null ? _d2 : false,
|
|
7725
7789
|
queryEnabled
|
|
7726
7790
|
});
|
|
7727
7791
|
},
|
|
@@ -7729,7 +7793,11 @@ function useSmartRoute(options) {
|
|
|
7729
7793
|
refetchOnWindowFocus: false,
|
|
7730
7794
|
refetchIntervalInBackground: false,
|
|
7731
7795
|
retry: 1,
|
|
7732
|
-
|
|
7796
|
+
// A previous SELL quote can carry a quoteId and position availability for
|
|
7797
|
+
// a different amount or position snapshot. Never expose it under a new
|
|
7798
|
+
// sell key while the replacement request is in flight. BUY retains the
|
|
7799
|
+
// existing no-flicker behavior.
|
|
7800
|
+
placeholderData: tradeSide === "sell" ? void 0 : import_react_query35.keepPreviousData
|
|
7733
7801
|
});
|
|
7734
7802
|
const error = query.error;
|
|
7735
7803
|
let loadingReason = null;
|
|
@@ -7741,7 +7809,7 @@ function useSmartRoute(options) {
|
|
|
7741
7809
|
}
|
|
7742
7810
|
}
|
|
7743
7811
|
return {
|
|
7744
|
-
data: (
|
|
7812
|
+
data: (_d = query.data) != null ? _d : null,
|
|
7745
7813
|
isLoading: query.isLoading,
|
|
7746
7814
|
isFetching: query.isFetching,
|
|
7747
7815
|
error: error instanceof Error ? error : error ? new Error(String(error)) : null,
|
|
@@ -7750,13 +7818,124 @@ function useSmartRoute(options) {
|
|
|
7750
7818
|
};
|
|
7751
7819
|
}
|
|
7752
7820
|
|
|
7821
|
+
// src/use-venue-sell-quotes.ts
|
|
7822
|
+
var import_react_query36 = require("@tanstack/react-query");
|
|
7823
|
+
var getIsDocumentVisible2 = () => {
|
|
7824
|
+
if (typeof document === "undefined") return true;
|
|
7825
|
+
return document.visibilityState !== "hidden";
|
|
7826
|
+
};
|
|
7827
|
+
var getUniqueVenueRequests = (requests) => {
|
|
7828
|
+
const requestsByVenue = /* @__PURE__ */ new Map();
|
|
7829
|
+
for (const request of requests) {
|
|
7830
|
+
if (request.requestedSellShares <= 0 || request.sellShares <= 0 || request.availableShares <= 0) {
|
|
7831
|
+
continue;
|
|
7832
|
+
}
|
|
7833
|
+
if (requestsByVenue.has(request.venue)) continue;
|
|
7834
|
+
requestsByVenue.set(request.venue, request);
|
|
7835
|
+
}
|
|
7836
|
+
return [...requestsByVenue.values()].sort((left, right) => left.venue.localeCompare(right.venue));
|
|
7837
|
+
};
|
|
7838
|
+
var useVenueSellQuotes = (options) => {
|
|
7839
|
+
var _a, _b;
|
|
7840
|
+
const client = useAggClient();
|
|
7841
|
+
const {
|
|
7842
|
+
venueMarketOutcomeId,
|
|
7843
|
+
accountId,
|
|
7844
|
+
positionVersion,
|
|
7845
|
+
requests,
|
|
7846
|
+
mode,
|
|
7847
|
+
slipCapBps,
|
|
7848
|
+
enabled = true,
|
|
7849
|
+
staleTimeMs = SMART_ROUTE_STALE_TIME_MS,
|
|
7850
|
+
refreshContext
|
|
7851
|
+
} = options;
|
|
7852
|
+
const uniqueRequests = getUniqueVenueRequests(requests);
|
|
7853
|
+
const queries = (0, import_react_query36.useQueries)({
|
|
7854
|
+
queries: uniqueRequests.map((request) => {
|
|
7855
|
+
const hasValidInput = request.requestedSellShares > 0 && request.sellShares > 0 && request.availableShares > 0;
|
|
7856
|
+
const queryEnabled = enabled && !!venueMarketOutcomeId && !!accountId && hasValidInput;
|
|
7857
|
+
return {
|
|
7858
|
+
queryKey: [
|
|
7859
|
+
"smart-route",
|
|
7860
|
+
venueMarketOutcomeId,
|
|
7861
|
+
"venue-sell",
|
|
7862
|
+
{
|
|
7863
|
+
accountId: accountId != null ? accountId : null,
|
|
7864
|
+
positionVersion: positionVersion != null ? positionVersion : null,
|
|
7865
|
+
requestedSellShares: request.requestedSellShares,
|
|
7866
|
+
sellShares: request.sellShares,
|
|
7867
|
+
availableShares: request.availableShares,
|
|
7868
|
+
allowedVenues: [request.venue],
|
|
7869
|
+
compareVenues: false,
|
|
7870
|
+
tradeSide: "sell",
|
|
7871
|
+
mode: mode != null ? mode : null,
|
|
7872
|
+
slipCapBps: slipCapBps != null ? slipCapBps : null
|
|
7873
|
+
}
|
|
7874
|
+
],
|
|
7875
|
+
queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
|
|
7876
|
+
return client.getSmartRoute(
|
|
7877
|
+
__spreadProps(__spreadValues({
|
|
7878
|
+
venueMarketOutcomeId,
|
|
7879
|
+
tradeSide: "sell"
|
|
7880
|
+
}, mode ? { mode } : {}), {
|
|
7881
|
+
sellShares: request.sellShares,
|
|
7882
|
+
slipCapBps,
|
|
7883
|
+
allowedVenues: [request.venue]
|
|
7884
|
+
}),
|
|
7885
|
+
{ signal }
|
|
7886
|
+
);
|
|
7887
|
+
}),
|
|
7888
|
+
enabled: queryEnabled,
|
|
7889
|
+
staleTime: staleTimeMs,
|
|
7890
|
+
refetchInterval: (queryState) => {
|
|
7891
|
+
var _a2, _b2, _c, _d;
|
|
7892
|
+
return resolveSmartRouteRefetchInterval({
|
|
7893
|
+
data: queryState.state.data,
|
|
7894
|
+
defaultIntervalMs: staleTimeMs,
|
|
7895
|
+
isDocumentVisible: getIsDocumentVisible2(),
|
|
7896
|
+
isEditing: (_a2 = refreshContext == null ? void 0 : refreshContext.isEditing) != null ? _a2 : false,
|
|
7897
|
+
isInputValid: hasValidInput,
|
|
7898
|
+
isMarketOpen: (_b2 = refreshContext == null ? void 0 : refreshContext.isMarketOpen) != null ? _b2 : true,
|
|
7899
|
+
isPanelActive: (_c = refreshContext == null ? void 0 : refreshContext.isPanelActive) != null ? _c : true,
|
|
7900
|
+
isSubmitting: (_d = refreshContext == null ? void 0 : refreshContext.isSubmitting) != null ? _d : false,
|
|
7901
|
+
queryEnabled
|
|
7902
|
+
});
|
|
7903
|
+
},
|
|
7904
|
+
gcTime: 6e4,
|
|
7905
|
+
refetchOnWindowFocus: false,
|
|
7906
|
+
refetchIntervalInBackground: false,
|
|
7907
|
+
retry: 1
|
|
7908
|
+
};
|
|
7909
|
+
})
|
|
7910
|
+
});
|
|
7911
|
+
const quotes = queries.map((query, index) => {
|
|
7912
|
+
var _a2;
|
|
7913
|
+
const queryError = query.error;
|
|
7914
|
+
return {
|
|
7915
|
+
request: uniqueRequests[index],
|
|
7916
|
+
data: (_a2 = query.data) != null ? _a2 : null,
|
|
7917
|
+
isLoading: query.isLoading,
|
|
7918
|
+
isFetching: query.isFetching,
|
|
7919
|
+
error: queryError instanceof Error ? queryError : queryError ? new Error(String(queryError)) : null,
|
|
7920
|
+
refetch: query.refetch
|
|
7921
|
+
};
|
|
7922
|
+
});
|
|
7923
|
+
return {
|
|
7924
|
+
quotes,
|
|
7925
|
+
isLoading: quotes.some((quote) => quote.isLoading),
|
|
7926
|
+
isFetching: quotes.some((quote) => quote.isFetching),
|
|
7927
|
+
error: (_b = (_a = quotes.find((quote) => quote.error)) == null ? void 0 : _a.error) != null ? _b : null,
|
|
7928
|
+
refetch: () => Promise.all(quotes.map((quote) => quote.refetch()))
|
|
7929
|
+
};
|
|
7930
|
+
};
|
|
7931
|
+
|
|
7753
7932
|
// src/use-user-holdings.ts
|
|
7754
|
-
var
|
|
7933
|
+
var import_react_query37 = require("@tanstack/react-query");
|
|
7755
7934
|
function useUserHoldings(options) {
|
|
7756
7935
|
var _a, _b;
|
|
7757
7936
|
const client = useAggClient();
|
|
7758
7937
|
const { venue, venueMarketId, venueEventId, enabled = true } = options;
|
|
7759
|
-
const query = (0,
|
|
7938
|
+
const query = (0, import_react_query37.useInfiniteQuery)({
|
|
7760
7939
|
queryKey: ["user-holdings", venue, venueMarketId, venueEventId],
|
|
7761
7940
|
queryFn: (_0) => __async(null, [_0], function* ({ pageParam }) {
|
|
7762
7941
|
return client.getUserHoldings({
|
|
@@ -7785,7 +7964,7 @@ function useUserHoldings(options) {
|
|
|
7785
7964
|
var import_react34 = require("react");
|
|
7786
7965
|
|
|
7787
7966
|
// src/use-venue-event.ts
|
|
7788
|
-
var
|
|
7967
|
+
var import_react_query38 = require("@tanstack/react-query");
|
|
7789
7968
|
var RESOLUTION_POLL_MS = 15e3;
|
|
7790
7969
|
var RESOLUTION_POLL_MAX_PAST_END_MS = 60 * 6e4;
|
|
7791
7970
|
function resolutionPollInterval(event) {
|
|
@@ -7803,7 +7982,7 @@ function useVenueEvent(options) {
|
|
|
7803
7982
|
var _a;
|
|
7804
7983
|
const client = useAggClient();
|
|
7805
7984
|
const { eventId, enabled = true } = options;
|
|
7806
|
-
const query = (0,
|
|
7985
|
+
const query = (0, import_react_query38.useQuery)({
|
|
7807
7986
|
queryKey: ["venue-event", eventId],
|
|
7808
7987
|
queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
|
|
7809
7988
|
return client.getVenueEventById(eventId, { signal });
|
|
@@ -7823,13 +8002,13 @@ function useVenueEvent(options) {
|
|
|
7823
8002
|
}
|
|
7824
8003
|
|
|
7825
8004
|
// src/use-venue-markets.ts
|
|
7826
|
-
var
|
|
8005
|
+
var import_react_query39 = require("@tanstack/react-query");
|
|
7827
8006
|
var import_react33 = require("react");
|
|
7828
8007
|
function useVenueMarkets(options) {
|
|
7829
8008
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
7830
8009
|
const client = (0, import_react33.useContext)(AggClientContext);
|
|
7831
|
-
const queryClient = (0, import_react33.useContext)(
|
|
7832
|
-
const [fallbackQueryClient] = (0, import_react33.useState)(() => new
|
|
8010
|
+
const queryClient = (0, import_react33.useContext)(import_react_query39.QueryClientContext);
|
|
8011
|
+
const [fallbackQueryClient] = (0, import_react33.useState)(() => new import_react_query39.QueryClient());
|
|
7833
8012
|
const venue = options == null ? void 0 : options.venue;
|
|
7834
8013
|
const venueEventId = options == null ? void 0 : options.venueEventId;
|
|
7835
8014
|
const search = options == null ? void 0 : options.search;
|
|
@@ -7856,7 +8035,7 @@ function useVenueMarkets(options) {
|
|
|
7856
8035
|
if (enabled && !client) {
|
|
7857
8036
|
throw new Error("useVenueMarkets must be used within an <AggProvider>");
|
|
7858
8037
|
}
|
|
7859
|
-
const query = (0,
|
|
8038
|
+
const query = (0, import_react_query39.useInfiniteQuery)(
|
|
7860
8039
|
{
|
|
7861
8040
|
queryKey: [
|
|
7862
8041
|
"venue-markets",
|
|
@@ -7967,13 +8146,13 @@ function useEnrichedVenueEvent(options) {
|
|
|
7967
8146
|
}
|
|
7968
8147
|
|
|
7969
8148
|
// src/use-venue-events.ts
|
|
7970
|
-
var
|
|
8149
|
+
var import_react_query40 = require("@tanstack/react-query");
|
|
7971
8150
|
var import_react35 = require("react");
|
|
7972
8151
|
function useVenueEvents(options) {
|
|
7973
8152
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
7974
8153
|
const client = (0, import_react35.useContext)(AggClientContext);
|
|
7975
|
-
const queryClient = (0, import_react35.useContext)(
|
|
7976
|
-
const [fallbackQueryClient] = (0, import_react35.useState)(() => new
|
|
8154
|
+
const queryClient = (0, import_react35.useContext)(import_react_query40.QueryClientContext);
|
|
8155
|
+
const [fallbackQueryClient] = (0, import_react35.useState)(() => new import_react_query40.QueryClient());
|
|
7977
8156
|
const venues = options == null ? void 0 : options.venues;
|
|
7978
8157
|
const search = options == null ? void 0 : options.search;
|
|
7979
8158
|
const categoryIds = options == null ? void 0 : options.categoryIds;
|
|
@@ -8000,7 +8179,7 @@ function useVenueEvents(options) {
|
|
|
8000
8179
|
if (enabled && !client) {
|
|
8001
8180
|
throw new Error("useVenueEvents must be used within an <AggProvider>");
|
|
8002
8181
|
}
|
|
8003
|
-
const query = (0,
|
|
8182
|
+
const query = (0, import_react_query40.useInfiniteQuery)(
|
|
8004
8183
|
{
|
|
8005
8184
|
queryKey: [
|
|
8006
8185
|
queryKeyScope,
|
|
@@ -8047,7 +8226,7 @@ function useVenueEvents(options) {
|
|
|
8047
8226
|
return (_a2 = lastPage.nextCursor) != null ? _a2 : void 0;
|
|
8048
8227
|
},
|
|
8049
8228
|
// TODO: RMIK - Comment out to show skeletons on category switch
|
|
8050
|
-
placeholderData:
|
|
8229
|
+
placeholderData: import_react_query40.keepPreviousData,
|
|
8051
8230
|
enabled: enabled && !!client
|
|
8052
8231
|
},
|
|
8053
8232
|
queryClient != null ? queryClient : fallbackQueryClient
|
|
@@ -8089,7 +8268,7 @@ function useVenueEvents(options) {
|
|
|
8089
8268
|
}
|
|
8090
8269
|
|
|
8091
8270
|
// src/use-venue-market-midpoints.ts
|
|
8092
|
-
var
|
|
8271
|
+
var import_react_query41 = require("@tanstack/react-query");
|
|
8093
8272
|
var normalizeVenueMarketIds2 = (venueMarketIds) => {
|
|
8094
8273
|
return [
|
|
8095
8274
|
...new Set(venueMarketIds.map((venueMarketId) => venueMarketId.trim()).filter(Boolean))
|
|
@@ -8128,7 +8307,7 @@ function useVenueMarketMidpoints(options) {
|
|
|
8128
8307
|
const enabled = (_a = options.enabled) != null ? _a : true;
|
|
8129
8308
|
const requestedVenueMarketIds = normalizeVenueMarketIds2(options.venueMarketIds);
|
|
8130
8309
|
const maxMidpointIdsPerRequest = (_b = options.maxMidpointIdsPerRequest) != null ? _b : configuredMaxMidpointIdsPerRequest;
|
|
8131
|
-
const query = (0,
|
|
8310
|
+
const query = (0, import_react_query41.useQuery)({
|
|
8132
8311
|
queryKey: requestedVenueMarketIds.length ? ["venue-market-midpoints", requestedVenueMarketIds, maxMidpointIdsPerRequest] : ["venue-market-midpoints", "__disabled__"],
|
|
8133
8312
|
queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
|
|
8134
8313
|
if (requestedVenueMarketIds.length === 0) {
|
|
@@ -8144,7 +8323,7 @@ function useVenueMarketMidpoints(options) {
|
|
|
8144
8323
|
gcTime: 5 * 6e4,
|
|
8145
8324
|
refetchOnWindowFocus: false,
|
|
8146
8325
|
retry: 1,
|
|
8147
|
-
placeholderData:
|
|
8326
|
+
placeholderData: import_react_query41.keepPreviousData
|
|
8148
8327
|
});
|
|
8149
8328
|
const midpointRows = (_d = (_c = query.data) == null ? void 0 : _c.data) != null ? _d : [];
|
|
8150
8329
|
const midpointsByVenueMarketId = mapMidpointsByVenueMarketId(midpointRows);
|
|
@@ -8395,12 +8574,12 @@ function useVisibleIds(options = {}) {
|
|
|
8395
8574
|
}
|
|
8396
8575
|
|
|
8397
8576
|
// src/use-app-config.ts
|
|
8398
|
-
var
|
|
8577
|
+
var import_react_query42 = require("@tanstack/react-query");
|
|
8399
8578
|
var FIVE_MINUTES = 5 * 60 * 1e3;
|
|
8400
8579
|
var APP_CONFIG_QUERY_KEY = ["agg", "app-config"];
|
|
8401
8580
|
function useAppConfig() {
|
|
8402
8581
|
const client = useAggClient();
|
|
8403
|
-
const query = (0,
|
|
8582
|
+
const query = (0, import_react_query42.useQuery)({
|
|
8404
8583
|
queryKey: APP_CONFIG_QUERY_KEY,
|
|
8405
8584
|
queryFn: () => client.getAppConfig(),
|
|
8406
8585
|
staleTime: FIVE_MINUTES
|
|
@@ -8412,8 +8591,8 @@ function useAppConfig() {
|
|
|
8412
8591
|
});
|
|
8413
8592
|
}
|
|
8414
8593
|
function useCachedAppConfig() {
|
|
8415
|
-
const queryClient = (0,
|
|
8416
|
-
const query = (0,
|
|
8594
|
+
const queryClient = (0, import_react_query42.useQueryClient)();
|
|
8595
|
+
const query = (0, import_react_query42.useQuery)({
|
|
8417
8596
|
queryKey: APP_CONFIG_QUERY_KEY,
|
|
8418
8597
|
enabled: false,
|
|
8419
8598
|
initialData: () => queryClient.getQueryData(APP_CONFIG_QUERY_KEY),
|
|
@@ -8570,8 +8749,10 @@ var toAppConfigResult = (query) => {
|
|
|
8570
8749
|
useUserHoldings,
|
|
8571
8750
|
useVenueEvent,
|
|
8572
8751
|
useVenueEvents,
|
|
8752
|
+
useVenueKeyStatus,
|
|
8573
8753
|
useVenueMarketMidpoints,
|
|
8574
8754
|
useVenueMarkets,
|
|
8755
|
+
useVenueSellQuotes,
|
|
8575
8756
|
useViewportMidpoints,
|
|
8576
8757
|
useVisibleIds,
|
|
8577
8758
|
useWithdrawEstimate,
|
|
@@ -8579,5 +8760,6 @@ var toAppConfigResult = (query) => {
|
|
|
8579
8760
|
useWithdrawManaged,
|
|
8580
8761
|
useWithdrawPreview,
|
|
8581
8762
|
useWithdrawalLifecycle,
|
|
8582
|
-
userActivityQueryKeys
|
|
8763
|
+
userActivityQueryKeys,
|
|
8764
|
+
venueKeyQueryKeys
|
|
8583
8765
|
});
|