@agg-build/hooks 2.7.2 → 2.8.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-TJRQ55UC.mjs → chunk-3UEZQTMJ.mjs} +92 -11
- package/dist/{chunk-Q4FRCMP6.mjs → chunk-LOFGAX6T.mjs} +1 -1
- package/dist/{chunk-DP6VYGAX.mjs → chunk-X4MMFGU5.mjs} +1 -1
- package/dist/deposit.js +31 -1
- package/dist/deposit.mjs +2 -2
- package/dist/index.d.mts +287 -2
- package/dist/index.d.ts +287 -2
- package/dist/index.js +297 -102
- package/dist/index.mjs +140 -26
- package/dist/withdraw.js +31 -1
- 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_query45.QueryClient,
|
|
88
|
+
QueryClientProvider: () => import_react_query45.QueryClientProvider,
|
|
89
89
|
RedeemRejectedError: () => RedeemRejectedError,
|
|
90
90
|
TradeSide: () => TradeSide,
|
|
91
91
|
TurnstileChallengeError: () => import_sdk4.TurnstileChallengeError,
|
|
@@ -141,6 +141,7 @@ __export(src_exports, {
|
|
|
141
141
|
useAggWebSocket: () => useAggWebSocket,
|
|
142
142
|
useAppConfig: () => useAppConfig,
|
|
143
143
|
useArbFeed: () => useArbFeed,
|
|
144
|
+
useBalanceRefillPolicies: () => useBalanceRefillPolicies,
|
|
144
145
|
useCachedAppConfig: () => useCachedAppConfig,
|
|
145
146
|
useCancelManagedOrder: () => useCancelManagedOrder,
|
|
146
147
|
useCategories: () => useCategories,
|
|
@@ -158,6 +159,7 @@ __export(src_exports, {
|
|
|
158
159
|
useExternalId: () => useExternalId,
|
|
159
160
|
useGeoBlock: () => useGeoBlock,
|
|
160
161
|
useLabels: () => useLabels,
|
|
162
|
+
useLimitOrderVenueQuotes: () => useLimitOrderVenueQuotes,
|
|
161
163
|
useLinkAccount: () => useLinkAccount,
|
|
162
164
|
useLiveBestPriceCandidates: () => useLiveBestPriceCandidates,
|
|
163
165
|
useLiveBestPrices: () => useLiveBestPrices,
|
|
@@ -184,7 +186,7 @@ __export(src_exports, {
|
|
|
184
186
|
useOrders: () => useOrders,
|
|
185
187
|
usePlaceLimitOrder: () => usePlaceLimitOrder,
|
|
186
188
|
usePositions: () => usePositions,
|
|
187
|
-
useQueryClient: () =>
|
|
189
|
+
useQueryClient: () => import_react_query45.useQueryClient,
|
|
188
190
|
useQuoteManaged: () => useQuoteManaged,
|
|
189
191
|
useRampQuotes: () => useRampQuotes,
|
|
190
192
|
useRampSession: () => useRampSession,
|
|
@@ -352,7 +354,7 @@ var getVenueOrder = (venue) => {
|
|
|
352
354
|
var sortVenues = (venues) => [...venues].sort((a, b) => getVenueOrder(a) - getVenueOrder(b));
|
|
353
355
|
|
|
354
356
|
// src/index.ts
|
|
355
|
-
var
|
|
357
|
+
var import_react_query45 = require("@tanstack/react-query");
|
|
356
358
|
|
|
357
359
|
// src/candle-store.ts
|
|
358
360
|
var import_sdk = require("@agg-build/sdk");
|
|
@@ -617,6 +619,34 @@ var enUsLabels = {
|
|
|
617
619
|
claimableWinningsTooltip: (count) => `${count} position${count === 1 ? "" : "s"} ready to claim`,
|
|
618
620
|
walletMenuFor: (profileLabel) => `Profile menu for ${profileLabel}`
|
|
619
621
|
},
|
|
622
|
+
balanceRefill: {
|
|
623
|
+
tabLabel: "Balance management",
|
|
624
|
+
title: "Automatic balance refill",
|
|
625
|
+
description: "Keep a minimum USDC balance on one network by moving funds from another managed network.",
|
|
626
|
+
networkLabel: "Network to maintain",
|
|
627
|
+
minimumLabel: "Minimum balance",
|
|
628
|
+
refillAmountLabel: "Refill by at least",
|
|
629
|
+
dailyCapLabel: "Maximum per day",
|
|
630
|
+
maximumFeeLabel: "Maximum fee per refill",
|
|
631
|
+
activeLabel: "Automatic refill is active",
|
|
632
|
+
pausedLabel: "Automatic refill is paused",
|
|
633
|
+
enableAction: "Enable automatic refill",
|
|
634
|
+
saveAction: "Save refill settings",
|
|
635
|
+
pauseAction: "Pause automatic refill",
|
|
636
|
+
resumeAction: "Resume automatic refill",
|
|
637
|
+
loading: "Loading refill settings...",
|
|
638
|
+
loadError: "Refill settings could not be loaded.",
|
|
639
|
+
saveError: "Refill settings could not be saved.",
|
|
640
|
+
saved: "Refill settings saved.",
|
|
641
|
+
consent: "By enabling, you authorize AGG to move USDC between your managed wallets within these limits.",
|
|
642
|
+
lastRefill: "Latest refill",
|
|
643
|
+
statuses: {
|
|
644
|
+
reserved: "Funds reserved",
|
|
645
|
+
executing: "Refill in progress",
|
|
646
|
+
completed: "Refill completed",
|
|
647
|
+
failed: "Refill failed"
|
|
648
|
+
}
|
|
649
|
+
},
|
|
620
650
|
deposit: {
|
|
621
651
|
title: "Deposit",
|
|
622
652
|
back: "Go back",
|
|
@@ -1192,6 +1222,7 @@ var enUsLabels = {
|
|
|
1192
1222
|
tradingAccessAddKalshiAccount: "Add Kalshi Account",
|
|
1193
1223
|
outcome: (label) => `Outcome: ${label}`,
|
|
1194
1224
|
smartRouting: "Smart Routing",
|
|
1225
|
+
limitRoutingCurrentPrice: (priceLabel, feeLabel) => feeLabel ? `Current ${priceLabel} \xB7 Fee ${feeLabel}` : `Current ${priceLabel}`,
|
|
1195
1226
|
orderTypeMarket: "Market",
|
|
1196
1227
|
orderTypeLimit: "Limit",
|
|
1197
1228
|
orderTypeAria: "Order type",
|
|
@@ -1665,7 +1696,7 @@ var mergeAggUiSearchConfig = (config) => {
|
|
|
1665
1696
|
};
|
|
1666
1697
|
};
|
|
1667
1698
|
var mergeAggUiConfig = (persisted, config) => {
|
|
1668
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _
|
|
1699
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa;
|
|
1669
1700
|
const locale = (_d = (_c = (_a = config == null ? void 0 : config.general) == null ? void 0 : _a.locale) != null ? _c : (_b = persisted.general) == null ? void 0 : _b.locale) != null ? _d : DEFAULT_LOCALE;
|
|
1670
1701
|
const theme = (_h = (_g = (_e = config == null ? void 0 : config.general) == null ? void 0 : _e.theme) != null ? _g : (_f = persisted.general) == null ? void 0 : _f.theme) != null ? _h : defaultAggUiConfig.general.theme;
|
|
1671
1702
|
const formatters = createFormatters(locale);
|
|
@@ -1703,13 +1734,16 @@ var mergeAggUiConfig = (persisted, config) => {
|
|
|
1703
1734
|
formatting: {
|
|
1704
1735
|
formatNumber: (_R = (_Q = config == null ? void 0 : config.formatting) == null ? void 0 : _Q.formatNumber) != null ? _R : formatters.formatNumber,
|
|
1705
1736
|
formatPercent: (_T = (_S = config == null ? void 0 : config.formatting) == null ? void 0 : _S.formatPercent) != null ? _T : formatters.formatPercent,
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1737
|
+
// ponytail: no default here — each cents surface keeps its own rendering
|
|
1738
|
+
// when unset, so adding this knob changes nothing for existing partners.
|
|
1739
|
+
formatPrice: (_U = config == null ? void 0 : config.formatting) == null ? void 0 : _U.formatPrice,
|
|
1740
|
+
formatCurrency: (_W = (_V = config == null ? void 0 : config.formatting) == null ? void 0 : _V.formatCurrency) != null ? _W : formatters.formatCurrency,
|
|
1741
|
+
formatCompactCurrency: (_Y = (_X = config == null ? void 0 : config.formatting) == null ? void 0 : _X.formatCompactCurrency) != null ? _Y : formatters.formatCompactCurrency,
|
|
1742
|
+
formatDate: (__ = (_Z = config == null ? void 0 : config.formatting) == null ? void 0 : _Z.formatDate) != null ? __ : formatters.formatDate
|
|
1709
1743
|
},
|
|
1710
1744
|
search: mergeAggUiSearchConfig(config == null ? void 0 : config.search),
|
|
1711
1745
|
trading: {
|
|
1712
|
-
executionMode: (
|
|
1746
|
+
executionMode: (_aa = (_$ = config == null ? void 0 : config.trading) == null ? void 0 : _$.executionMode) != null ? _aa : defaultAggUiConfig.trading.executionMode
|
|
1713
1747
|
},
|
|
1714
1748
|
walletActions: config == null ? void 0 : config.walletActions,
|
|
1715
1749
|
solanaRpcUrl: config == null ? void 0 : config.solanaRpcUrl
|
|
@@ -1985,7 +2019,8 @@ var executionKeys = {
|
|
|
1985
2019
|
claimableClosedPositionsCount: () => ["execution", "positions", "claimable-count"],
|
|
1986
2020
|
orders: (status, cursor, limit) => ["execution", "orders", status != null ? status : null, cursor != null ? cursor : null, limit != null ? limit : null],
|
|
1987
2021
|
ordersPrefix: () => ["execution", "orders"],
|
|
1988
|
-
depositAddresses: () => ["execution", "deposit-addresses"]
|
|
2022
|
+
depositAddresses: () => ["execution", "deposit-addresses"],
|
|
2023
|
+
balanceRefillPolicies: () => ["execution", "balance-refill-policies"]
|
|
1989
2024
|
};
|
|
1990
2025
|
|
|
1991
2026
|
// src/execution/balance-invalidation.ts
|
|
@@ -4800,6 +4835,53 @@ function useExecutionProgress({
|
|
|
4800
4835
|
return { phase, submittedOrders, latestBalance, dagProgress, terminalOrderEvents };
|
|
4801
4836
|
}
|
|
4802
4837
|
|
|
4838
|
+
// src/execution/use-balance-refill-policies.ts
|
|
4839
|
+
var import_react_query16 = require("@tanstack/react-query");
|
|
4840
|
+
function useBalanceRefillPolicies(options) {
|
|
4841
|
+
var _a, _b;
|
|
4842
|
+
const client = useAggClient();
|
|
4843
|
+
const queryClient = (0, import_react_query16.useQueryClient)();
|
|
4844
|
+
const queryKey = executionKeys.balanceRefillPolicies();
|
|
4845
|
+
const query = (0, import_react_query16.useQuery)({
|
|
4846
|
+
queryKey,
|
|
4847
|
+
queryFn: () => client.getBalanceRefillPolicies(),
|
|
4848
|
+
enabled: (_a = options == null ? void 0 : options.enabled) != null ? _a : true,
|
|
4849
|
+
staleTime: 15e3,
|
|
4850
|
+
refetchInterval: (state) => {
|
|
4851
|
+
var _a2;
|
|
4852
|
+
return ((_a2 = state.state.data) == null ? void 0 : _a2.some(
|
|
4853
|
+
(policy) => {
|
|
4854
|
+
var _a3, _b2;
|
|
4855
|
+
return ["reserved", "executing"].includes((_b2 = (_a3 = policy.latestAttempt) == null ? void 0 : _a3.status) != null ? _b2 : "");
|
|
4856
|
+
}
|
|
4857
|
+
)) ? 5e3 : false;
|
|
4858
|
+
}
|
|
4859
|
+
});
|
|
4860
|
+
const createPolicy = (0, import_react_query16.useMutation)({
|
|
4861
|
+
mutationFn: (params) => client.createBalanceRefillPolicy(params),
|
|
4862
|
+
onSuccess: (policy) => {
|
|
4863
|
+
queryClient.setQueryData(queryKey, [policy]);
|
|
4864
|
+
}
|
|
4865
|
+
});
|
|
4866
|
+
const updatePolicy = (0, import_react_query16.useMutation)({
|
|
4867
|
+
mutationFn: ({
|
|
4868
|
+
policyId,
|
|
4869
|
+
params
|
|
4870
|
+
}) => client.updateBalanceRefillPolicy(policyId, params),
|
|
4871
|
+
onSuccess: (updated) => {
|
|
4872
|
+
queryClient.setQueryData(
|
|
4873
|
+
queryKey,
|
|
4874
|
+
(current) => (current != null ? current : []).map((policy) => policy.id === updated.id ? updated : policy)
|
|
4875
|
+
);
|
|
4876
|
+
}
|
|
4877
|
+
});
|
|
4878
|
+
return __spreadProps(__spreadValues({}, query), {
|
|
4879
|
+
policies: (_b = query.data) != null ? _b : [],
|
|
4880
|
+
createPolicy,
|
|
4881
|
+
updatePolicy
|
|
4882
|
+
});
|
|
4883
|
+
}
|
|
4884
|
+
|
|
4803
4885
|
// src/execution/compute-closed-position-totals.ts
|
|
4804
4886
|
var computeClosedPositionTotals = (group) => {
|
|
4805
4887
|
const outcomes = group.venueMarket.venueMarketOutcomes;
|
|
@@ -4839,7 +4921,7 @@ var computeClosedPositionTotals = (group) => {
|
|
|
4839
4921
|
};
|
|
4840
4922
|
|
|
4841
4923
|
// src/execution/use-redeem.ts
|
|
4842
|
-
var
|
|
4924
|
+
var import_react_query17 = require("@tanstack/react-query");
|
|
4843
4925
|
var RedeemRejectedError = class extends Error {
|
|
4844
4926
|
constructor(message, response) {
|
|
4845
4927
|
super(message);
|
|
@@ -4850,8 +4932,8 @@ var RedeemRejectedError = class extends Error {
|
|
|
4850
4932
|
var isLegRejected = (status) => status === "ineligible" || status === "rejected";
|
|
4851
4933
|
var useRedeem = () => {
|
|
4852
4934
|
const client = useAggClient();
|
|
4853
|
-
const queryClient = (0,
|
|
4854
|
-
return (0,
|
|
4935
|
+
const queryClient = (0, import_react_query17.useQueryClient)();
|
|
4936
|
+
return (0, import_react_query17.useMutation)({
|
|
4855
4937
|
mutationFn: (body) => __async(null, null, function* () {
|
|
4856
4938
|
const response = yield client.redeem(body);
|
|
4857
4939
|
if (response.results.length > 0 && response.results.every((r) => isLegRejected(r.status))) {
|
|
@@ -4873,7 +4955,7 @@ var useOnRedeemEvent2 = (listener) => {
|
|
|
4873
4955
|
};
|
|
4874
4956
|
|
|
4875
4957
|
// src/execution/use-redeem-eligible-count.ts
|
|
4876
|
-
var
|
|
4958
|
+
var import_react_query18 = require("@tanstack/react-query");
|
|
4877
4959
|
var CLAIMABLE_COUNT_PAGE_LIMIT = 100;
|
|
4878
4960
|
var getClaimablePositionsCount = (client) => __async(null, null, function* () {
|
|
4879
4961
|
var _a;
|
|
@@ -4898,7 +4980,7 @@ var useRedeemEligibleCount = () => {
|
|
|
4898
4980
|
var _a;
|
|
4899
4981
|
const client = useAggClient();
|
|
4900
4982
|
const { isAuthenticated } = useAggAuthState();
|
|
4901
|
-
const query = (0,
|
|
4983
|
+
const query = (0, import_react_query18.useQuery)({
|
|
4902
4984
|
queryKey: executionKeys.claimablePositionsCount(),
|
|
4903
4985
|
queryFn: () => getClaimablePositionsCount(client),
|
|
4904
4986
|
enabled: isAuthenticated,
|
|
@@ -5374,7 +5456,7 @@ function useWithdrawEstimate({
|
|
|
5374
5456
|
|
|
5375
5457
|
// src/withdraw/use-withdrawal-lifecycle.ts
|
|
5376
5458
|
var import_react15 = require("react");
|
|
5377
|
-
var
|
|
5459
|
+
var import_react_query19 = require("@tanstack/react-query");
|
|
5378
5460
|
var INITIAL_STATE2 = {
|
|
5379
5461
|
pending: true,
|
|
5380
5462
|
status: null,
|
|
@@ -5431,7 +5513,7 @@ var restToLifecycleState = (response) => {
|
|
|
5431
5513
|
function useWithdrawalLifecycle(withdrawalId) {
|
|
5432
5514
|
const client = useAggClient();
|
|
5433
5515
|
const wsConnected = useAggWebSocketConnectionState();
|
|
5434
|
-
const queryClient = (0,
|
|
5516
|
+
const queryClient = (0, import_react_query19.useQueryClient)();
|
|
5435
5517
|
const [state, setState] = (0, import_react15.useState)(INITIAL_STATE2);
|
|
5436
5518
|
const stateRef = (0, import_react15.useRef)(state);
|
|
5437
5519
|
stateRef.current = state;
|
|
@@ -5500,7 +5582,7 @@ function useWithdrawalLifecycle(withdrawalId) {
|
|
|
5500
5582
|
}
|
|
5501
5583
|
|
|
5502
5584
|
// src/withdraw/use-withdraw-preview.ts
|
|
5503
|
-
var
|
|
5585
|
+
var import_react_query20 = require("@tanstack/react-query");
|
|
5504
5586
|
function useWithdrawPreview({
|
|
5505
5587
|
amountRaw,
|
|
5506
5588
|
tokenSymbol,
|
|
@@ -5510,7 +5592,7 @@ function useWithdrawPreview({
|
|
|
5510
5592
|
}) {
|
|
5511
5593
|
const client = useAggClient();
|
|
5512
5594
|
const enabled = !!amountRaw && BigInt(amountRaw || "0") > BigInt(0) && !!tokenSymbol && !!destinationChainId && !!destinationAddress;
|
|
5513
|
-
return (0,
|
|
5595
|
+
return (0, import_react_query20.useQuery)({
|
|
5514
5596
|
queryKey: [
|
|
5515
5597
|
"withdraw-preview",
|
|
5516
5598
|
tokenSymbol,
|
|
@@ -5582,14 +5664,14 @@ var getVenueAvailabilityState = ({
|
|
|
5582
5664
|
};
|
|
5583
5665
|
|
|
5584
5666
|
// src/use-venue-key-status.ts
|
|
5585
|
-
var
|
|
5667
|
+
var import_react_query21 = require("@tanstack/react-query");
|
|
5586
5668
|
var venueKeyQueryKeys = {
|
|
5587
5669
|
all: ["agg", "venue-keys"],
|
|
5588
5670
|
status: (venue) => [...venueKeyQueryKeys.all, venue, "status"]
|
|
5589
5671
|
};
|
|
5590
5672
|
var useVenueKeyStatus = (venue, enabled = true) => {
|
|
5591
5673
|
const client = useAggClient();
|
|
5592
|
-
return (0,
|
|
5674
|
+
return (0, import_react_query21.useQuery)({
|
|
5593
5675
|
queryKey: venueKeyQueryKeys.status(venue),
|
|
5594
5676
|
queryFn: () => client.getVenueKeyStatus(venue),
|
|
5595
5677
|
enabled
|
|
@@ -5664,7 +5746,7 @@ var requestAggAuthChooserOpen = () => {
|
|
|
5664
5746
|
};
|
|
5665
5747
|
|
|
5666
5748
|
// src/use-categories.ts
|
|
5667
|
-
var
|
|
5749
|
+
var import_react_query22 = require("@tanstack/react-query");
|
|
5668
5750
|
function useCategories(options) {
|
|
5669
5751
|
var _a, _b, _c, _d, _e, _f;
|
|
5670
5752
|
const client = useAggClient();
|
|
@@ -5672,7 +5754,7 @@ function useCategories(options) {
|
|
|
5672
5754
|
const parentId = (_b = options == null ? void 0 : options.parentId) != null ? _b : null;
|
|
5673
5755
|
const enabled = (_c = options == null ? void 0 : options.enabled) != null ? _c : true;
|
|
5674
5756
|
const limit = (_d = options == null ? void 0 : options.limit) != null ? _d : 20;
|
|
5675
|
-
const query = (0,
|
|
5757
|
+
const query = (0, import_react_query22.useInfiniteQuery)({
|
|
5676
5758
|
queryKey: [queryKeyScope, "parent", parentId != null ? parentId : "__root__", limit],
|
|
5677
5759
|
queryFn: (_0) => __async(null, [_0], function* ({ pageParam }) {
|
|
5678
5760
|
const res = yield client.getCategories(__spreadValues({
|
|
@@ -5704,7 +5786,7 @@ function useCategoryChildren(options) {
|
|
|
5704
5786
|
const parentIds = Array.from(
|
|
5705
5787
|
new Set(((_d = options == null ? void 0 : options.parentIds) != null ? _d : []).filter((parentId) => Boolean(parentId)))
|
|
5706
5788
|
);
|
|
5707
|
-
const queries = (0,
|
|
5789
|
+
const queries = (0, import_react_query22.useQueries)({
|
|
5708
5790
|
queries: parentIds.map((parentId) => ({
|
|
5709
5791
|
queryKey: [queryKeyScope, "parent", parentId, limit],
|
|
5710
5792
|
queryFn: () => __async(null, null, function* () {
|
|
@@ -5747,7 +5829,7 @@ function useDebouncedValue(value, delay) {
|
|
|
5747
5829
|
}
|
|
5748
5830
|
|
|
5749
5831
|
// src/use-execution-orders.ts
|
|
5750
|
-
var
|
|
5832
|
+
var import_react_query23 = require("@tanstack/react-query");
|
|
5751
5833
|
function useExecutionOrders(options = {}) {
|
|
5752
5834
|
var _a, _b;
|
|
5753
5835
|
const client = useAggClient();
|
|
@@ -5760,7 +5842,7 @@ function useExecutionOrders(options = {}) {
|
|
|
5760
5842
|
enabled = true,
|
|
5761
5843
|
refetchIntervalMs = false
|
|
5762
5844
|
} = options;
|
|
5763
|
-
const query = (0,
|
|
5845
|
+
const query = (0, import_react_query23.useInfiniteQuery)({
|
|
5764
5846
|
// quoteId + orderId are part of the cache key — different filters
|
|
5765
5847
|
// produce different result sets, so they have to vary the key.
|
|
5766
5848
|
queryKey: [
|
|
@@ -5796,7 +5878,7 @@ function useExecutionOrders(options = {}) {
|
|
|
5796
5878
|
}
|
|
5797
5879
|
|
|
5798
5880
|
// src/use-user-activity.ts
|
|
5799
|
-
var
|
|
5881
|
+
var import_react_query24 = require("@tanstack/react-query");
|
|
5800
5882
|
var DEFAULT_PENDING_REFETCH_INTERVAL_MS = 15e3;
|
|
5801
5883
|
var PENDING_ACTIVITY_STATUSES = /* @__PURE__ */ new Set([
|
|
5802
5884
|
"pending",
|
|
@@ -5830,7 +5912,7 @@ function useUserActivity(options = {}) {
|
|
|
5830
5912
|
enabled = true,
|
|
5831
5913
|
pendingRefetchIntervalMs = DEFAULT_PENDING_REFETCH_INTERVAL_MS
|
|
5832
5914
|
} = options;
|
|
5833
|
-
const query = (0,
|
|
5915
|
+
const query = (0, import_react_query24.useInfiniteQuery)({
|
|
5834
5916
|
queryKey: userActivityQueryKeys.feed(type, limit),
|
|
5835
5917
|
queryFn: ({ pageParam }) => client.getUserActivity({
|
|
5836
5918
|
type,
|
|
@@ -5847,7 +5929,7 @@ function useUserActivity(options = {}) {
|
|
|
5847
5929
|
// flight (typically after a deposit / withdraw cache invalidation).
|
|
5848
5930
|
// Without this the feed flashes to the skeleton mid-session, which
|
|
5849
5931
|
// is worse UX than briefly showing slightly-stale rows.
|
|
5850
|
-
placeholderData:
|
|
5932
|
+
placeholderData: import_react_query24.keepPreviousData,
|
|
5851
5933
|
refetchInterval: (q) => {
|
|
5852
5934
|
if (pendingRefetchIntervalMs === false) return false;
|
|
5853
5935
|
const data = q.state.data;
|
|
@@ -5892,12 +5974,12 @@ function useExternalId(options = {}) {
|
|
|
5892
5974
|
}
|
|
5893
5975
|
|
|
5894
5976
|
// src/use-execution-positions.ts
|
|
5895
|
-
var
|
|
5977
|
+
var import_react_query25 = require("@tanstack/react-query");
|
|
5896
5978
|
function useExecutionPositions(options = {}) {
|
|
5897
5979
|
var _a, _b;
|
|
5898
5980
|
const client = useAggClient();
|
|
5899
5981
|
const { limit = 50, status, mode, enabled = true } = options;
|
|
5900
|
-
const query = (0,
|
|
5982
|
+
const query = (0, import_react_query25.useInfiniteQuery)({
|
|
5901
5983
|
queryKey: executionKeys.positions(null, limit, status != null ? status : null, mode != null ? mode : null),
|
|
5902
5984
|
queryFn: ({ pageParam }) => client.getExecutionPositions(__spreadProps(__spreadValues({
|
|
5903
5985
|
limit,
|
|
@@ -5928,7 +6010,7 @@ var import_react23 = require("react");
|
|
|
5928
6010
|
var import_sdk3 = require("@agg-build/sdk");
|
|
5929
6011
|
|
|
5930
6012
|
// src/use-market-chart.ts
|
|
5931
|
-
var
|
|
6013
|
+
var import_react_query26 = require("@tanstack/react-query");
|
|
5932
6014
|
|
|
5933
6015
|
// src/market-data/subscription.ts
|
|
5934
6016
|
var import_react21 = require("react");
|
|
@@ -6013,7 +6095,7 @@ function useMarketChart(options) {
|
|
|
6013
6095
|
orderbook: true,
|
|
6014
6096
|
trades: true
|
|
6015
6097
|
});
|
|
6016
|
-
const queries = (0,
|
|
6098
|
+
const queries = (0, import_react_query26.useQueries)({
|
|
6017
6099
|
queries: outcomeIds.map((outcomeId) => ({
|
|
6018
6100
|
// Cache key is intentionally time-free. The rolling window's
|
|
6019
6101
|
// startTs/endTs advance on every bucket but the user expects the same
|
|
@@ -6048,7 +6130,7 @@ function useMarketChart(options) {
|
|
|
6048
6130
|
gcTime: 60 * 6e4,
|
|
6049
6131
|
refetchOnWindowFocus: false,
|
|
6050
6132
|
retry: 1,
|
|
6051
|
-
placeholderData:
|
|
6133
|
+
placeholderData: import_react_query26.keepPreviousData,
|
|
6052
6134
|
refetchInterval: refetchIntervalMs != null && refetchIntervalMs > 0 ? refetchIntervalMs : false,
|
|
6053
6135
|
refetchIntervalInBackground: false
|
|
6054
6136
|
}))
|
|
@@ -6291,7 +6373,7 @@ function useEventOrderbookData(venueMarkets, selectedMarketId) {
|
|
|
6291
6373
|
}
|
|
6292
6374
|
|
|
6293
6375
|
// src/use-live-market.ts
|
|
6294
|
-
var
|
|
6376
|
+
var import_react_query27 = require("@tanstack/react-query");
|
|
6295
6377
|
function outcomeOrderbookToState(response, marketId) {
|
|
6296
6378
|
var _a, _b, _c, _d;
|
|
6297
6379
|
const { venue, orderbook, midpoint, spread, seq, checksum, timestamp, venueMarketOutcomeId } = response;
|
|
@@ -6341,7 +6423,7 @@ function useLiveMarket(canonicalMarketId) {
|
|
|
6341
6423
|
enabled: isLiveSubscriptionEnabled,
|
|
6342
6424
|
orderbook: true
|
|
6343
6425
|
});
|
|
6344
|
-
const query = (0,
|
|
6426
|
+
const query = (0, import_react_query27.useQuery)({
|
|
6345
6427
|
queryKey: marketDataKeys.live(canonicalMarketId != null ? canonicalMarketId : "__disabled__"),
|
|
6346
6428
|
queryFn: () => __async(null, null, function* () {
|
|
6347
6429
|
return createMarketLiveState(canonicalMarketId != null ? canonicalMarketId : "__disabled__");
|
|
@@ -6353,7 +6435,7 @@ function useLiveMarket(canonicalMarketId) {
|
|
|
6353
6435
|
isConnected: Boolean(isLiveSubscriptionEnabled && isConnected)
|
|
6354
6436
|
})
|
|
6355
6437
|
});
|
|
6356
|
-
const seedQuery = (0,
|
|
6438
|
+
const seedQuery = (0, import_react_query27.useQuery)({
|
|
6357
6439
|
queryKey: ["live-market-seed", canonicalMarketId],
|
|
6358
6440
|
queryFn: ({ signal }) => canonicalMarketId ? client.getOutcomeOrderbook(canonicalMarketId, { signal }) : Promise.resolve(null),
|
|
6359
6441
|
enabled: Boolean(canonicalMarketId),
|
|
@@ -6374,7 +6456,7 @@ function useLiveMarket(canonicalMarketId) {
|
|
|
6374
6456
|
|
|
6375
6457
|
// src/use-live-outcome-prices.ts
|
|
6376
6458
|
var import_react26 = require("react");
|
|
6377
|
-
var
|
|
6459
|
+
var import_react_query28 = require("@tanstack/react-query");
|
|
6378
6460
|
var EMPTY_PRICES = /* @__PURE__ */ new Map();
|
|
6379
6461
|
var buildMidpointFingerprint = (outcomeIds, queries) => {
|
|
6380
6462
|
var _a, _b, _c;
|
|
@@ -6390,17 +6472,20 @@ function useLiveOutcomePrices(venueMarkets) {
|
|
|
6390
6472
|
features: { enableLiveUpdates }
|
|
6391
6473
|
} = useAggUiConfig();
|
|
6392
6474
|
const outcomeIds = (0, import_react26.useMemo)(() => {
|
|
6393
|
-
var _a;
|
|
6475
|
+
var _a, _b;
|
|
6394
6476
|
if (!(venueMarkets == null ? void 0 : venueMarkets.length)) return [];
|
|
6395
6477
|
const ids = /* @__PURE__ */ new Set();
|
|
6396
6478
|
for (const vm of venueMarkets) {
|
|
6397
6479
|
for (const outcome of (_a = vm.venueMarketOutcomes) != null ? _a : []) {
|
|
6398
6480
|
if (outcome.id) ids.add(outcome.id);
|
|
6481
|
+
for (const ref of (_b = outcome.matchedVenueMarketOutcomes) != null ? _b : []) {
|
|
6482
|
+
if (ref.venueMarketOutcomeId) ids.add(ref.venueMarketOutcomeId);
|
|
6483
|
+
}
|
|
6399
6484
|
}
|
|
6400
6485
|
}
|
|
6401
6486
|
return [...ids].sort();
|
|
6402
6487
|
}, [venueMarkets]);
|
|
6403
|
-
const queries = (0,
|
|
6488
|
+
const queries = (0, import_react_query28.useQueries)({
|
|
6404
6489
|
queries: outcomeIds.map((id) => ({
|
|
6405
6490
|
queryKey: marketDataKeys.live(id),
|
|
6406
6491
|
queryFn: () => createMarketLiveState(id),
|
|
@@ -6416,7 +6501,7 @@ function useLiveOutcomePrices(venueMarkets) {
|
|
|
6416
6501
|
prices: EMPTY_PRICES
|
|
6417
6502
|
});
|
|
6418
6503
|
const data = (0, import_react26.useMemo)(() => {
|
|
6419
|
-
var _a, _b, _c
|
|
6504
|
+
var _a, _b, _c;
|
|
6420
6505
|
if (!(venueMarkets == null ? void 0 : venueMarkets.length)) return EMPTY_PRICES;
|
|
6421
6506
|
if (fingerprint === prevRef.current.fingerprint) {
|
|
6422
6507
|
return prevRef.current.prices;
|
|
@@ -6427,16 +6512,10 @@ function useLiveOutcomePrices(venueMarkets) {
|
|
|
6427
6512
|
const state = (_a = queries[i]) == null ? void 0 : _a.data;
|
|
6428
6513
|
liveByOutcomeId.set(outcomeIds[i], (_c = (_b = state == null ? void 0 : state.orderbook) == null ? void 0 : _b.midpoint) != null ? _c : null);
|
|
6429
6514
|
}
|
|
6430
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
|
|
6434
|
-
}
|
|
6435
|
-
const liveMidpoint = liveByOutcomeId.get(outcome.id);
|
|
6436
|
-
if (liveMidpoint != null) {
|
|
6437
|
-
prices.set(outcome.id, liveMidpoint);
|
|
6438
|
-
}
|
|
6439
|
-
}
|
|
6515
|
+
if (!enableLiveUpdates) return prices;
|
|
6516
|
+
for (const outcomeId of outcomeIds) {
|
|
6517
|
+
const liveMidpoint = liveByOutcomeId.get(outcomeId);
|
|
6518
|
+
if (liveMidpoint != null) prices.set(outcomeId, liveMidpoint);
|
|
6440
6519
|
}
|
|
6441
6520
|
prevRef.current = { fingerprint, prices };
|
|
6442
6521
|
return prices;
|
|
@@ -6449,7 +6528,7 @@ function findLivePriceById(livePrices, id) {
|
|
|
6449
6528
|
|
|
6450
6529
|
// src/use-live-best-prices.ts
|
|
6451
6530
|
var import_react27 = require("react");
|
|
6452
|
-
var
|
|
6531
|
+
var import_react_query29 = require("@tanstack/react-query");
|
|
6453
6532
|
var EMPTY = /* @__PURE__ */ new Map();
|
|
6454
6533
|
var EMPTY_CANDIDATES = /* @__PURE__ */ new Map();
|
|
6455
6534
|
var extractOutcomeBestPrices = (state) => {
|
|
@@ -6492,7 +6571,7 @@ function useLiveBestPrices(venueMarkets) {
|
|
|
6492
6571
|
}
|
|
6493
6572
|
return [...ids].sort();
|
|
6494
6573
|
}, [venueMarkets]);
|
|
6495
|
-
const queries = (0,
|
|
6574
|
+
const queries = (0, import_react_query29.useQueries)({
|
|
6496
6575
|
queries: outcomeIds.map((id) => ({
|
|
6497
6576
|
queryKey: marketDataKeys.live(id),
|
|
6498
6577
|
queryFn: () => createMarketLiveState(id),
|
|
@@ -6711,7 +6790,7 @@ function useLiveBestPriceCandidates(venueMarkets) {
|
|
|
6711
6790
|
}
|
|
6712
6791
|
return [...ids].sort();
|
|
6713
6792
|
}, [venueMarkets]);
|
|
6714
|
-
const queries = (0,
|
|
6793
|
+
const queries = (0, import_react_query29.useQueries)({
|
|
6715
6794
|
queries: outcomeIds.map((id) => ({
|
|
6716
6795
|
queryKey: marketDataKeys.live(id),
|
|
6717
6796
|
queryFn: () => createMarketLiveState(id),
|
|
@@ -6755,7 +6834,7 @@ function useLiveTrades(canonicalMarketId) {
|
|
|
6755
6834
|
}
|
|
6756
6835
|
|
|
6757
6836
|
// src/use-midpoints.ts
|
|
6758
|
-
var
|
|
6837
|
+
var import_react_query30 = require("@tanstack/react-query");
|
|
6759
6838
|
var import_react28 = require("react");
|
|
6760
6839
|
var normalizeVenueMarketIds = (venueMarkets) => {
|
|
6761
6840
|
var _a;
|
|
@@ -6934,7 +7013,7 @@ function useMidpoints(venueMarkets, options) {
|
|
|
6934
7013
|
() => resolveBestMidpointCandidateOutcomeIds(venueMarkets),
|
|
6935
7014
|
[venueMarkets]
|
|
6936
7015
|
);
|
|
6937
|
-
const { data, isLoading } = (0,
|
|
7016
|
+
const { data, isLoading } = (0, import_react_query30.useQuery)({
|
|
6938
7017
|
queryKey: ["midpoints", ids, maxMidpointIdsPerRequest],
|
|
6939
7018
|
queryFn: () => client.getMidpoints(ids, { bestPrice: true, maxMidpointIdsPerRequest }),
|
|
6940
7019
|
enabled: ids.length > 0,
|
|
@@ -6947,8 +7026,9 @@ function useMidpoints(venueMarkets, options) {
|
|
|
6947
7026
|
const result = (0, import_react28.useMemo)(() => {
|
|
6948
7027
|
var _a2, _b, _c, _d, _e, _f;
|
|
6949
7028
|
const map = /* @__PURE__ */ new Map();
|
|
7029
|
+
const currentMap = /* @__PURE__ */ new Map();
|
|
6950
7030
|
const venueMap = /* @__PURE__ */ new Map();
|
|
6951
|
-
if (!(data == null ? void 0 : data.data) || !venueMarkets) return { map, venueMap };
|
|
7031
|
+
if (!(data == null ? void 0 : data.data) || !venueMarkets) return { map, currentMap, venueMap };
|
|
6952
7032
|
const itemByMarketId = new Map(data.data.map((item) => [item.venueMarketId, item]));
|
|
6953
7033
|
const marketById = new Map(venueMarkets.map((market) => [market.id, market]));
|
|
6954
7034
|
for (const item of data.data) {
|
|
@@ -6956,6 +7036,7 @@ function useMidpoints(venueMarkets, options) {
|
|
|
6956
7036
|
for (const o of item.outcomes) {
|
|
6957
7037
|
if (o.midpoint == null) continue;
|
|
6958
7038
|
map.set(o.venueMarketOutcomeId, o.midpoint);
|
|
7039
|
+
currentMap.set(o.venueMarketOutcomeId, o.midpoint);
|
|
6959
7040
|
if (item.venue) venueMap.set(o.venueMarketOutcomeId, item.venue);
|
|
6960
7041
|
}
|
|
6961
7042
|
}
|
|
@@ -6970,6 +7051,7 @@ function useMidpoints(venueMarkets, options) {
|
|
|
6970
7051
|
for (const ref of refs) {
|
|
6971
7052
|
const sib = resolveSiblingOutcomeMidpoint(item.matched, ref);
|
|
6972
7053
|
if (sib == null) continue;
|
|
7054
|
+
currentMap.set(ref.venueMarketOutcomeId, sib.midpoint);
|
|
6973
7055
|
if (best == null || sib.midpoint < best) {
|
|
6974
7056
|
best = sib.midpoint;
|
|
6975
7057
|
bestVenue = (_e = sib.venue) != null ? _e : bestVenue;
|
|
@@ -6992,7 +7074,7 @@ function useMidpoints(venueMarkets, options) {
|
|
|
6992
7074
|
}
|
|
6993
7075
|
}
|
|
6994
7076
|
}
|
|
6995
|
-
return { map, venueMap };
|
|
7077
|
+
return { map, currentMap, venueMap };
|
|
6996
7078
|
}, [data, venueMarkets]);
|
|
6997
7079
|
const { bestMidpoint, bestMidpointVenue } = (0, import_react28.useMemo)(() => {
|
|
6998
7080
|
let value;
|
|
@@ -7022,6 +7104,7 @@ function useMidpoints(venueMarkets, options) {
|
|
|
7022
7104
|
return {
|
|
7023
7105
|
prices: result.map,
|
|
7024
7106
|
bestMidpointsByOutcomeId: result.map,
|
|
7107
|
+
currentMidpointsByOutcomeId: result.currentMap,
|
|
7025
7108
|
venueByOutcomeId: result.venueMap,
|
|
7026
7109
|
bestPrices,
|
|
7027
7110
|
bestPriceVenuesByOutcomeId,
|
|
@@ -7079,10 +7162,10 @@ var useRollingChartWindow = (options) => {
|
|
|
7079
7162
|
};
|
|
7080
7163
|
|
|
7081
7164
|
// src/use-market-orderbook.ts
|
|
7082
|
-
var
|
|
7165
|
+
var import_react_query31 = require("@tanstack/react-query");
|
|
7083
7166
|
function useMarketOrderbook(options) {
|
|
7084
7167
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
7085
|
-
const queryClient = (0,
|
|
7168
|
+
const queryClient = (0, import_react_query31.useQueryClient)();
|
|
7086
7169
|
const ws = useAggWebSocket();
|
|
7087
7170
|
const isConnected = useAggWebSocketConnectionState();
|
|
7088
7171
|
const {
|
|
@@ -7100,7 +7183,7 @@ function useMarketOrderbook(options) {
|
|
|
7100
7183
|
enabled: enabled && !!selectedOutcomeId,
|
|
7101
7184
|
orderbook: true
|
|
7102
7185
|
});
|
|
7103
|
-
const liveQueries = (0,
|
|
7186
|
+
const liveQueries = (0, import_react_query31.useQueries)({
|
|
7104
7187
|
queries: subscriptionIds.map((subscriptionId) => ({
|
|
7105
7188
|
queryKey: marketDataKeys.live(subscriptionId),
|
|
7106
7189
|
queryFn: () => createMarketLiveState(subscriptionId),
|
|
@@ -7224,7 +7307,7 @@ function useArbFeed() {
|
|
|
7224
7307
|
}
|
|
7225
7308
|
|
|
7226
7309
|
// src/use-order-book.ts
|
|
7227
|
-
var
|
|
7310
|
+
var import_react_query32 = require("@tanstack/react-query");
|
|
7228
7311
|
function useOrderBook(options) {
|
|
7229
7312
|
const client = useAggClient();
|
|
7230
7313
|
const { orderbooks, enabled = true, canonicalMarketId } = options;
|
|
@@ -7237,7 +7320,7 @@ function useOrderBook(options) {
|
|
|
7237
7320
|
venueMarketOutcomeId: outcome.id
|
|
7238
7321
|
})) : void 0
|
|
7239
7322
|
});
|
|
7240
|
-
const batchedResult = (0,
|
|
7323
|
+
const batchedResult = (0, import_react_query32.useQuery)({
|
|
7241
7324
|
queryKey: requestedVenueMarketIds.length ? ["orderbooks", requestedVenueMarketIds, null] : ["orderbooks", "__disabled__", null],
|
|
7242
7325
|
queryFn: ({ signal }) => client.getOrderbooks(
|
|
7243
7326
|
{
|
|
@@ -7250,7 +7333,7 @@ function useOrderBook(options) {
|
|
|
7250
7333
|
gcTime: 5 * 6e4,
|
|
7251
7334
|
refetchOnWindowFocus: false,
|
|
7252
7335
|
retry: 1,
|
|
7253
|
-
placeholderData:
|
|
7336
|
+
placeholderData: import_react_query32.keepPreviousData
|
|
7254
7337
|
});
|
|
7255
7338
|
const data = (() => {
|
|
7256
7339
|
var _a, _b;
|
|
@@ -7305,7 +7388,7 @@ function useOrderBook(options) {
|
|
|
7305
7388
|
}
|
|
7306
7389
|
|
|
7307
7390
|
// src/use-orderbook-quote.ts
|
|
7308
|
-
var
|
|
7391
|
+
var import_react_query33 = require("@tanstack/react-query");
|
|
7309
7392
|
var QUOTE_DEBOUNCE_MS = 300;
|
|
7310
7393
|
var createUnavailableOrderbookError = (message, code, retryable) => {
|
|
7311
7394
|
const error = new Error(message);
|
|
@@ -7367,7 +7450,7 @@ function useOrderbookQuote(options) {
|
|
|
7367
7450
|
const { marketId, side, size, enabled = true } = options;
|
|
7368
7451
|
const debouncedSize = useDebouncedValue(size, QUOTE_DEBOUNCE_MS);
|
|
7369
7452
|
const shouldFetch = enabled && !!marketId && debouncedSize > 0;
|
|
7370
|
-
const query = (0,
|
|
7453
|
+
const query = (0, import_react_query33.useQuery)({
|
|
7371
7454
|
queryKey: marketId ? marketDataKeys.orderbookQuote(marketId, side, debouncedSize) : ["market-data", "orderbook-quote", "__disabled__"],
|
|
7372
7455
|
queryFn: () => __async(null, null, function* () {
|
|
7373
7456
|
var _a2, _b, _c, _d;
|
|
@@ -7398,7 +7481,7 @@ function useOrderbookQuote(options) {
|
|
|
7398
7481
|
staleTime: 1e4,
|
|
7399
7482
|
gcTime: 5 * 6e4,
|
|
7400
7483
|
retry: 1,
|
|
7401
|
-
placeholderData:
|
|
7484
|
+
placeholderData: import_react_query33.keepPreviousData
|
|
7402
7485
|
});
|
|
7403
7486
|
return {
|
|
7404
7487
|
data: (_a = query.data) != null ? _a : null,
|
|
@@ -7409,12 +7492,12 @@ function useOrderbookQuote(options) {
|
|
|
7409
7492
|
}
|
|
7410
7493
|
|
|
7411
7494
|
// src/use-orders.ts
|
|
7412
|
-
var
|
|
7495
|
+
var import_react_query34 = require("@tanstack/react-query");
|
|
7413
7496
|
function useOrders(options = {}) {
|
|
7414
7497
|
var _a, _b, _c, _d;
|
|
7415
7498
|
const client = useAggClient();
|
|
7416
7499
|
const { userId, status, limit = 50, offset = 0, enabled = true } = options;
|
|
7417
|
-
const query = (0,
|
|
7500
|
+
const query = (0, import_react_query34.useQuery)({
|
|
7418
7501
|
queryKey: ["orders", userId != null ? userId : "me", status != null ? status : "all", limit, offset],
|
|
7419
7502
|
queryFn: () => client.getOrders({
|
|
7420
7503
|
userId,
|
|
@@ -7431,13 +7514,13 @@ function useOrders(options = {}) {
|
|
|
7431
7514
|
}
|
|
7432
7515
|
|
|
7433
7516
|
// src/use-search.ts
|
|
7434
|
-
var
|
|
7517
|
+
var import_react_query35 = require("@tanstack/react-query");
|
|
7435
7518
|
var import_react31 = require("react");
|
|
7436
7519
|
function useSearch(options) {
|
|
7437
7520
|
var _a, _b, _c, _d;
|
|
7438
7521
|
const client = (0, import_react31.useContext)(AggClientContext);
|
|
7439
|
-
const queryClient = (0, import_react31.useContext)(
|
|
7440
|
-
const [fallbackQueryClient] = (0, import_react31.useState)(() => new
|
|
7522
|
+
const queryClient = (0, import_react31.useContext)(import_react_query35.QueryClientContext);
|
|
7523
|
+
const [fallbackQueryClient] = (0, import_react31.useState)(() => new import_react_query35.QueryClient());
|
|
7441
7524
|
const { q, type, categoryIds, status, limit = 20, enabled = true, deep = false } = options;
|
|
7442
7525
|
const isEnabled = enabled && q.length > 0;
|
|
7443
7526
|
(0, import_react31.useEffect)(() => {
|
|
@@ -7450,7 +7533,7 @@ function useSearch(options) {
|
|
|
7450
7533
|
if (isEnabled && !client) {
|
|
7451
7534
|
throw new Error("useSearch must be used within an <AggProvider>");
|
|
7452
7535
|
}
|
|
7453
|
-
const query = (0,
|
|
7536
|
+
const query = (0, import_react_query35.useInfiniteQuery)(
|
|
7454
7537
|
{
|
|
7455
7538
|
// deep is part of the key — TanStack treats deep vs light as
|
|
7456
7539
|
// independent queries so users can have both modes cached side-by-side.
|
|
@@ -7484,7 +7567,7 @@ function useSearch(options) {
|
|
|
7484
7567
|
if (!lastPage.hasMore) return void 0;
|
|
7485
7568
|
return (_a2 = lastPage.nextCursor) != null ? _a2 : void 0;
|
|
7486
7569
|
},
|
|
7487
|
-
placeholderData:
|
|
7570
|
+
placeholderData: import_react_query35.keepPreviousData,
|
|
7488
7571
|
enabled: isEnabled && !!client
|
|
7489
7572
|
},
|
|
7490
7573
|
queryClient != null ? queryClient : fallbackQueryClient
|
|
@@ -7592,7 +7675,7 @@ function useMarketSearch(options) {
|
|
|
7592
7675
|
}
|
|
7593
7676
|
|
|
7594
7677
|
// src/use-smart-route.ts
|
|
7595
|
-
var
|
|
7678
|
+
var import_react_query36 = require("@tanstack/react-query");
|
|
7596
7679
|
|
|
7597
7680
|
// src/smart-route-refresh-policy.ts
|
|
7598
7681
|
var THIN_SMART_ROUTE_REFETCH_INTERVAL_MS = 5e3;
|
|
@@ -7741,7 +7824,7 @@ function useSmartRoute(options) {
|
|
|
7741
7824
|
const resolvedVenueMarketOutcomeId = (_a = venueMarketOutcomeId != null ? venueMarketOutcomeId : venueMarketId) != null ? _a : outcomeId;
|
|
7742
7825
|
const hasValidInput = (maxSpend != null ? maxSpend : 0) > 0 || (sellShares != null ? sellShares : 0) > 0;
|
|
7743
7826
|
const queryEnabled = enabled && !!resolvedVenueMarketOutcomeId && hasValidInput;
|
|
7744
|
-
const query = (0,
|
|
7827
|
+
const query = (0, import_react_query36.useQuery)({
|
|
7745
7828
|
queryKey: [
|
|
7746
7829
|
"smart-route",
|
|
7747
7830
|
resolvedVenueMarketOutcomeId,
|
|
@@ -7797,7 +7880,7 @@ function useSmartRoute(options) {
|
|
|
7797
7880
|
// a different amount or position snapshot. Never expose it under a new
|
|
7798
7881
|
// sell key while the replacement request is in flight. BUY retains the
|
|
7799
7882
|
// existing no-flicker behavior.
|
|
7800
|
-
placeholderData: tradeSide === "sell" ? void 0 :
|
|
7883
|
+
placeholderData: tradeSide === "sell" ? void 0 : import_react_query36.keepPreviousData
|
|
7801
7884
|
});
|
|
7802
7885
|
const error = query.error;
|
|
7803
7886
|
let loadingReason = null;
|
|
@@ -7818,13 +7901,123 @@ function useSmartRoute(options) {
|
|
|
7818
7901
|
};
|
|
7819
7902
|
}
|
|
7820
7903
|
|
|
7821
|
-
// src/use-venue-
|
|
7822
|
-
var
|
|
7904
|
+
// src/use-limit-order-venue-quotes.ts
|
|
7905
|
+
var import_react_query37 = require("@tanstack/react-query");
|
|
7823
7906
|
var getIsDocumentVisible2 = () => {
|
|
7824
7907
|
if (typeof document === "undefined") return true;
|
|
7825
7908
|
return document.visibilityState !== "hidden";
|
|
7826
7909
|
};
|
|
7827
7910
|
var getUniqueVenueRequests = (requests) => {
|
|
7911
|
+
const requestsByVenue = /* @__PURE__ */ new Map();
|
|
7912
|
+
for (const request of requests) {
|
|
7913
|
+
if (!request.venueMarketOutcomeId || requestsByVenue.has(request.venue)) continue;
|
|
7914
|
+
requestsByVenue.set(request.venue, request);
|
|
7915
|
+
}
|
|
7916
|
+
return [...requestsByVenue.values()].sort((left, right) => left.venue.localeCompare(right.venue));
|
|
7917
|
+
};
|
|
7918
|
+
var useLimitOrderVenueQuotes = (options) => {
|
|
7919
|
+
var _a, _b;
|
|
7920
|
+
const client = useAggClient();
|
|
7921
|
+
const {
|
|
7922
|
+
requests,
|
|
7923
|
+
tradeSide,
|
|
7924
|
+
amount,
|
|
7925
|
+
marketId,
|
|
7926
|
+
accountId,
|
|
7927
|
+
chainBalances,
|
|
7928
|
+
mode,
|
|
7929
|
+
slipCapBps,
|
|
7930
|
+
enabled = true,
|
|
7931
|
+
staleTimeMs = SMART_ROUTE_STALE_TIME_MS,
|
|
7932
|
+
refreshContext
|
|
7933
|
+
} = options;
|
|
7934
|
+
const uniqueRequests = getUniqueVenueRequests(requests);
|
|
7935
|
+
const hasValidInput = typeof amount === "number" && Number.isFinite(amount) && amount > 0;
|
|
7936
|
+
const hasRequiredAccount = tradeSide === "buy" || Boolean(accountId);
|
|
7937
|
+
const queryEnabled = enabled && hasValidInput && hasRequiredAccount;
|
|
7938
|
+
const serializedChainBalances = chainBalances ? JSON.stringify(chainBalances) : null;
|
|
7939
|
+
const queries = (0, import_react_query37.useQueries)({
|
|
7940
|
+
queries: uniqueRequests.map((request) => ({
|
|
7941
|
+
queryKey: [
|
|
7942
|
+
"smart-route",
|
|
7943
|
+
request.venueMarketOutcomeId,
|
|
7944
|
+
"limit-order-venue-info",
|
|
7945
|
+
{
|
|
7946
|
+
venue: request.venue,
|
|
7947
|
+
tradeSide,
|
|
7948
|
+
amount: amount != null ? amount : null,
|
|
7949
|
+
// The quote endpoint does not use limit price, so it must not be
|
|
7950
|
+
// part of this key or trigger a new informational quote.
|
|
7951
|
+
marketId: marketId != null ? marketId : null,
|
|
7952
|
+
accountId: accountId != null ? accountId : null,
|
|
7953
|
+
chainBalances: serializedChainBalances,
|
|
7954
|
+
mode: mode != null ? mode : null,
|
|
7955
|
+
slipCapBps: slipCapBps != null ? slipCapBps : null
|
|
7956
|
+
}
|
|
7957
|
+
],
|
|
7958
|
+
queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
|
|
7959
|
+
return client.getSmartRoute(
|
|
7960
|
+
__spreadProps(__spreadValues(__spreadValues(__spreadValues({
|
|
7961
|
+
venueMarketOutcomeId: request.venueMarketOutcomeId,
|
|
7962
|
+
tradeSide
|
|
7963
|
+
}, tradeSide === "buy" ? { maxSpend: amount } : { sellShares: amount }), chainBalances ? { chainBalances } : {}), mode ? { mode } : {}), {
|
|
7964
|
+
slipCapBps,
|
|
7965
|
+
allowedVenues: [request.venue]
|
|
7966
|
+
}),
|
|
7967
|
+
{ signal }
|
|
7968
|
+
);
|
|
7969
|
+
}),
|
|
7970
|
+
enabled: queryEnabled,
|
|
7971
|
+
placeholderData: import_react_query37.keepPreviousData,
|
|
7972
|
+
staleTime: staleTimeMs,
|
|
7973
|
+
refetchInterval: (queryState) => {
|
|
7974
|
+
var _a2, _b2, _c, _d;
|
|
7975
|
+
return resolveSmartRouteRefetchInterval({
|
|
7976
|
+
data: queryState.state.data,
|
|
7977
|
+
defaultIntervalMs: staleTimeMs,
|
|
7978
|
+
isDocumentVisible: getIsDocumentVisible2(),
|
|
7979
|
+
isEditing: (_a2 = refreshContext == null ? void 0 : refreshContext.isEditing) != null ? _a2 : false,
|
|
7980
|
+
isInputValid: hasValidInput,
|
|
7981
|
+
isMarketOpen: (_b2 = refreshContext == null ? void 0 : refreshContext.isMarketOpen) != null ? _b2 : true,
|
|
7982
|
+
isPanelActive: (_c = refreshContext == null ? void 0 : refreshContext.isPanelActive) != null ? _c : true,
|
|
7983
|
+
isSubmitting: (_d = refreshContext == null ? void 0 : refreshContext.isSubmitting) != null ? _d : false,
|
|
7984
|
+
queryEnabled
|
|
7985
|
+
});
|
|
7986
|
+
},
|
|
7987
|
+
gcTime: 6e4,
|
|
7988
|
+
refetchOnWindowFocus: false,
|
|
7989
|
+
refetchIntervalInBackground: false,
|
|
7990
|
+
retry: 1
|
|
7991
|
+
}))
|
|
7992
|
+
});
|
|
7993
|
+
const quotes = queries.map((query, index) => {
|
|
7994
|
+
var _a2;
|
|
7995
|
+
const queryError = query.error;
|
|
7996
|
+
return {
|
|
7997
|
+
request: uniqueRequests[index],
|
|
7998
|
+
data: (_a2 = query.data) != null ? _a2 : null,
|
|
7999
|
+
isLoading: query.isLoading,
|
|
8000
|
+
isFetching: query.isFetching,
|
|
8001
|
+
error: queryError instanceof Error ? queryError : queryError ? new Error(String(queryError)) : null,
|
|
8002
|
+
refetch: query.refetch
|
|
8003
|
+
};
|
|
8004
|
+
});
|
|
8005
|
+
return {
|
|
8006
|
+
quotes,
|
|
8007
|
+
isLoading: quotes.some((quote) => quote.isLoading),
|
|
8008
|
+
isFetching: quotes.some((quote) => quote.isFetching),
|
|
8009
|
+
error: (_b = (_a = quotes.find((quote) => quote.error)) == null ? void 0 : _a.error) != null ? _b : null,
|
|
8010
|
+
refetch: () => Promise.all(quotes.map((quote) => quote.refetch()))
|
|
8011
|
+
};
|
|
8012
|
+
};
|
|
8013
|
+
|
|
8014
|
+
// src/use-venue-sell-quotes.ts
|
|
8015
|
+
var import_react_query38 = require("@tanstack/react-query");
|
|
8016
|
+
var getIsDocumentVisible3 = () => {
|
|
8017
|
+
if (typeof document === "undefined") return true;
|
|
8018
|
+
return document.visibilityState !== "hidden";
|
|
8019
|
+
};
|
|
8020
|
+
var getUniqueVenueRequests2 = (requests) => {
|
|
7828
8021
|
const requestsByVenue = /* @__PURE__ */ new Map();
|
|
7829
8022
|
for (const request of requests) {
|
|
7830
8023
|
if (request.requestedSellShares <= 0 || request.sellShares <= 0 || request.availableShares <= 0) {
|
|
@@ -7849,8 +8042,8 @@ var useVenueSellQuotes = (options) => {
|
|
|
7849
8042
|
staleTimeMs = SMART_ROUTE_STALE_TIME_MS,
|
|
7850
8043
|
refreshContext
|
|
7851
8044
|
} = options;
|
|
7852
|
-
const uniqueRequests =
|
|
7853
|
-
const queries = (0,
|
|
8045
|
+
const uniqueRequests = getUniqueVenueRequests2(requests);
|
|
8046
|
+
const queries = (0, import_react_query38.useQueries)({
|
|
7854
8047
|
queries: uniqueRequests.map((request) => {
|
|
7855
8048
|
const hasValidInput = request.requestedSellShares > 0 && request.sellShares > 0 && request.availableShares > 0;
|
|
7856
8049
|
const queryEnabled = enabled && !!venueMarketOutcomeId && !!accountId && hasValidInput;
|
|
@@ -7892,7 +8085,7 @@ var useVenueSellQuotes = (options) => {
|
|
|
7892
8085
|
return resolveSmartRouteRefetchInterval({
|
|
7893
8086
|
data: queryState.state.data,
|
|
7894
8087
|
defaultIntervalMs: staleTimeMs,
|
|
7895
|
-
isDocumentVisible:
|
|
8088
|
+
isDocumentVisible: getIsDocumentVisible3(),
|
|
7896
8089
|
isEditing: (_a2 = refreshContext == null ? void 0 : refreshContext.isEditing) != null ? _a2 : false,
|
|
7897
8090
|
isInputValid: hasValidInput,
|
|
7898
8091
|
isMarketOpen: (_b2 = refreshContext == null ? void 0 : refreshContext.isMarketOpen) != null ? _b2 : true,
|
|
@@ -7930,12 +8123,12 @@ var useVenueSellQuotes = (options) => {
|
|
|
7930
8123
|
};
|
|
7931
8124
|
|
|
7932
8125
|
// src/use-user-holdings.ts
|
|
7933
|
-
var
|
|
8126
|
+
var import_react_query39 = require("@tanstack/react-query");
|
|
7934
8127
|
function useUserHoldings(options) {
|
|
7935
8128
|
var _a, _b;
|
|
7936
8129
|
const client = useAggClient();
|
|
7937
8130
|
const { venue, venueMarketId, venueEventId, enabled = true } = options;
|
|
7938
|
-
const query = (0,
|
|
8131
|
+
const query = (0, import_react_query39.useInfiniteQuery)({
|
|
7939
8132
|
queryKey: ["user-holdings", venue, venueMarketId, venueEventId],
|
|
7940
8133
|
queryFn: (_0) => __async(null, [_0], function* ({ pageParam }) {
|
|
7941
8134
|
return client.getUserHoldings({
|
|
@@ -7964,7 +8157,7 @@ function useUserHoldings(options) {
|
|
|
7964
8157
|
var import_react34 = require("react");
|
|
7965
8158
|
|
|
7966
8159
|
// src/use-venue-event.ts
|
|
7967
|
-
var
|
|
8160
|
+
var import_react_query40 = require("@tanstack/react-query");
|
|
7968
8161
|
var RESOLUTION_POLL_MS = 15e3;
|
|
7969
8162
|
var RESOLUTION_POLL_MAX_PAST_END_MS = 60 * 6e4;
|
|
7970
8163
|
function resolutionPollInterval(event) {
|
|
@@ -7982,7 +8175,7 @@ function useVenueEvent(options) {
|
|
|
7982
8175
|
var _a;
|
|
7983
8176
|
const client = useAggClient();
|
|
7984
8177
|
const { eventId, enabled = true } = options;
|
|
7985
|
-
const query = (0,
|
|
8178
|
+
const query = (0, import_react_query40.useQuery)({
|
|
7986
8179
|
queryKey: ["venue-event", eventId],
|
|
7987
8180
|
queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
|
|
7988
8181
|
return client.getVenueEventById(eventId, { signal });
|
|
@@ -8002,13 +8195,13 @@ function useVenueEvent(options) {
|
|
|
8002
8195
|
}
|
|
8003
8196
|
|
|
8004
8197
|
// src/use-venue-markets.ts
|
|
8005
|
-
var
|
|
8198
|
+
var import_react_query41 = require("@tanstack/react-query");
|
|
8006
8199
|
var import_react33 = require("react");
|
|
8007
8200
|
function useVenueMarkets(options) {
|
|
8008
8201
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
8009
8202
|
const client = (0, import_react33.useContext)(AggClientContext);
|
|
8010
|
-
const queryClient = (0, import_react33.useContext)(
|
|
8011
|
-
const [fallbackQueryClient] = (0, import_react33.useState)(() => new
|
|
8203
|
+
const queryClient = (0, import_react33.useContext)(import_react_query41.QueryClientContext);
|
|
8204
|
+
const [fallbackQueryClient] = (0, import_react33.useState)(() => new import_react_query41.QueryClient());
|
|
8012
8205
|
const venue = options == null ? void 0 : options.venue;
|
|
8013
8206
|
const venueEventId = options == null ? void 0 : options.venueEventId;
|
|
8014
8207
|
const search = options == null ? void 0 : options.search;
|
|
@@ -8035,7 +8228,7 @@ function useVenueMarkets(options) {
|
|
|
8035
8228
|
if (enabled && !client) {
|
|
8036
8229
|
throw new Error("useVenueMarkets must be used within an <AggProvider>");
|
|
8037
8230
|
}
|
|
8038
|
-
const query = (0,
|
|
8231
|
+
const query = (0, import_react_query41.useInfiniteQuery)(
|
|
8039
8232
|
{
|
|
8040
8233
|
queryKey: [
|
|
8041
8234
|
"venue-markets",
|
|
@@ -8156,13 +8349,13 @@ function useEnrichedVenueEvent(options) {
|
|
|
8156
8349
|
}
|
|
8157
8350
|
|
|
8158
8351
|
// src/use-venue-events.ts
|
|
8159
|
-
var
|
|
8352
|
+
var import_react_query42 = require("@tanstack/react-query");
|
|
8160
8353
|
var import_react35 = require("react");
|
|
8161
8354
|
function useVenueEvents(options) {
|
|
8162
8355
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
8163
8356
|
const client = (0, import_react35.useContext)(AggClientContext);
|
|
8164
|
-
const queryClient = (0, import_react35.useContext)(
|
|
8165
|
-
const [fallbackQueryClient] = (0, import_react35.useState)(() => new
|
|
8357
|
+
const queryClient = (0, import_react35.useContext)(import_react_query42.QueryClientContext);
|
|
8358
|
+
const [fallbackQueryClient] = (0, import_react35.useState)(() => new import_react_query42.QueryClient());
|
|
8166
8359
|
const venues = options == null ? void 0 : options.venues;
|
|
8167
8360
|
const search = options == null ? void 0 : options.search;
|
|
8168
8361
|
const categoryIds = options == null ? void 0 : options.categoryIds;
|
|
@@ -8189,7 +8382,7 @@ function useVenueEvents(options) {
|
|
|
8189
8382
|
if (enabled && !client) {
|
|
8190
8383
|
throw new Error("useVenueEvents must be used within an <AggProvider>");
|
|
8191
8384
|
}
|
|
8192
|
-
const query = (0,
|
|
8385
|
+
const query = (0, import_react_query42.useInfiniteQuery)(
|
|
8193
8386
|
{
|
|
8194
8387
|
queryKey: [
|
|
8195
8388
|
queryKeyScope,
|
|
@@ -8236,7 +8429,7 @@ function useVenueEvents(options) {
|
|
|
8236
8429
|
return (_a2 = lastPage.nextCursor) != null ? _a2 : void 0;
|
|
8237
8430
|
},
|
|
8238
8431
|
// TODO: RMIK - Comment out to show skeletons on category switch
|
|
8239
|
-
placeholderData:
|
|
8432
|
+
placeholderData: import_react_query42.keepPreviousData,
|
|
8240
8433
|
enabled: enabled && !!client
|
|
8241
8434
|
},
|
|
8242
8435
|
queryClient != null ? queryClient : fallbackQueryClient
|
|
@@ -8278,7 +8471,7 @@ function useVenueEvents(options) {
|
|
|
8278
8471
|
}
|
|
8279
8472
|
|
|
8280
8473
|
// src/use-venue-market-midpoints.ts
|
|
8281
|
-
var
|
|
8474
|
+
var import_react_query43 = require("@tanstack/react-query");
|
|
8282
8475
|
var normalizeVenueMarketIds2 = (venueMarketIds) => {
|
|
8283
8476
|
return [
|
|
8284
8477
|
...new Set(venueMarketIds.map((venueMarketId) => venueMarketId.trim()).filter(Boolean))
|
|
@@ -8317,7 +8510,7 @@ function useVenueMarketMidpoints(options) {
|
|
|
8317
8510
|
const enabled = (_a = options.enabled) != null ? _a : true;
|
|
8318
8511
|
const requestedVenueMarketIds = normalizeVenueMarketIds2(options.venueMarketIds);
|
|
8319
8512
|
const maxMidpointIdsPerRequest = (_b = options.maxMidpointIdsPerRequest) != null ? _b : configuredMaxMidpointIdsPerRequest;
|
|
8320
|
-
const query = (0,
|
|
8513
|
+
const query = (0, import_react_query43.useQuery)({
|
|
8321
8514
|
queryKey: requestedVenueMarketIds.length ? ["venue-market-midpoints", requestedVenueMarketIds, maxMidpointIdsPerRequest] : ["venue-market-midpoints", "__disabled__"],
|
|
8322
8515
|
queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
|
|
8323
8516
|
if (requestedVenueMarketIds.length === 0) {
|
|
@@ -8333,7 +8526,7 @@ function useVenueMarketMidpoints(options) {
|
|
|
8333
8526
|
gcTime: 5 * 6e4,
|
|
8334
8527
|
refetchOnWindowFocus: false,
|
|
8335
8528
|
retry: 1,
|
|
8336
|
-
placeholderData:
|
|
8529
|
+
placeholderData: import_react_query43.keepPreviousData
|
|
8337
8530
|
});
|
|
8338
8531
|
const midpointRows = (_d = (_c = query.data) == null ? void 0 : _c.data) != null ? _d : [];
|
|
8339
8532
|
const midpointsByVenueMarketId = mapMidpointsByVenueMarketId(midpointRows);
|
|
@@ -8584,12 +8777,12 @@ function useVisibleIds(options = {}) {
|
|
|
8584
8777
|
}
|
|
8585
8778
|
|
|
8586
8779
|
// src/use-app-config.ts
|
|
8587
|
-
var
|
|
8780
|
+
var import_react_query44 = require("@tanstack/react-query");
|
|
8588
8781
|
var FIVE_MINUTES = 5 * 60 * 1e3;
|
|
8589
8782
|
var APP_CONFIG_QUERY_KEY = ["agg", "app-config"];
|
|
8590
8783
|
function useAppConfig() {
|
|
8591
8784
|
const client = useAggClient();
|
|
8592
|
-
const query = (0,
|
|
8785
|
+
const query = (0, import_react_query44.useQuery)({
|
|
8593
8786
|
queryKey: APP_CONFIG_QUERY_KEY,
|
|
8594
8787
|
queryFn: () => client.getAppConfig(),
|
|
8595
8788
|
staleTime: FIVE_MINUTES
|
|
@@ -8601,8 +8794,8 @@ function useAppConfig() {
|
|
|
8601
8794
|
});
|
|
8602
8795
|
}
|
|
8603
8796
|
function useCachedAppConfig() {
|
|
8604
|
-
const queryClient = (0,
|
|
8605
|
-
const query = (0,
|
|
8797
|
+
const queryClient = (0, import_react_query44.useQueryClient)();
|
|
8798
|
+
const query = (0, import_react_query44.useQuery)({
|
|
8606
8799
|
queryKey: APP_CONFIG_QUERY_KEY,
|
|
8607
8800
|
enabled: false,
|
|
8608
8801
|
initialData: () => queryClient.getQueryData(APP_CONFIG_QUERY_KEY),
|
|
@@ -8698,6 +8891,7 @@ var toAppConfigResult = (query) => {
|
|
|
8698
8891
|
useAggWebSocket,
|
|
8699
8892
|
useAppConfig,
|
|
8700
8893
|
useArbFeed,
|
|
8894
|
+
useBalanceRefillPolicies,
|
|
8701
8895
|
useCachedAppConfig,
|
|
8702
8896
|
useCancelManagedOrder,
|
|
8703
8897
|
useCategories,
|
|
@@ -8715,6 +8909,7 @@ var toAppConfigResult = (query) => {
|
|
|
8715
8909
|
useExternalId,
|
|
8716
8910
|
useGeoBlock,
|
|
8717
8911
|
useLabels,
|
|
8912
|
+
useLimitOrderVenueQuotes,
|
|
8718
8913
|
useLinkAccount,
|
|
8719
8914
|
useLiveBestPriceCandidates,
|
|
8720
8915
|
useLiveBestPrices,
|