@agg-build/hooks 2.7.0 → 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/index.mjs CHANGED
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  useRampQuotes,
3
3
  useRampSession
4
- } from "./chunk-Q4FRCMP6.mjs";
4
+ } from "./chunk-LOFGAX6T.mjs";
5
5
  import {
6
6
  useWithdrawEstimate,
7
7
  useWithdrawFlow,
8
8
  useWithdrawPreview,
9
9
  useWithdrawalLifecycle
10
- } from "./chunk-DP6VYGAX.mjs";
10
+ } from "./chunk-X4MMFGU5.mjs";
11
11
  import {
12
12
  AggAuthContext,
13
13
  AggBalanceProvider,
@@ -71,6 +71,7 @@ import {
71
71
  useAggUiConfig,
72
72
  useAggWebSocket,
73
73
  useAggWebSocketConnectionState,
74
+ useBalanceRefillPolicies,
74
75
  useCancelManagedOrder,
75
76
  useDepositAddresses,
76
77
  useEventListState,
@@ -97,7 +98,7 @@ import {
97
98
  useSyncBalances,
98
99
  useWithdrawManaged,
99
100
  userActivityQueryKeys
100
- } from "./chunk-TJRQ55UC.mjs";
101
+ } from "./chunk-3UEZQTMJ.mjs";
101
102
 
102
103
  // src/index.ts
103
104
  import { QueryClient as QueryClient4, QueryClientProvider, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
@@ -960,12 +961,15 @@ function useLiveOutcomePrices(venueMarkets) {
960
961
  features: { enableLiveUpdates }
961
962
  } = useAggUiConfig();
962
963
  const outcomeIds = useMemo6(() => {
963
- var _a;
964
+ var _a, _b;
964
965
  if (!(venueMarkets == null ? void 0 : venueMarkets.length)) return [];
965
966
  const ids = /* @__PURE__ */ new Set();
966
967
  for (const vm of venueMarkets) {
967
968
  for (const outcome of (_a = vm.venueMarketOutcomes) != null ? _a : []) {
968
969
  if (outcome.id) ids.add(outcome.id);
970
+ for (const ref of (_b = outcome.matchedVenueMarketOutcomes) != null ? _b : []) {
971
+ if (ref.venueMarketOutcomeId) ids.add(ref.venueMarketOutcomeId);
972
+ }
969
973
  }
970
974
  }
971
975
  return [...ids].sort();
@@ -986,7 +990,7 @@ function useLiveOutcomePrices(venueMarkets) {
986
990
  prices: EMPTY_PRICES
987
991
  });
988
992
  const data = useMemo6(() => {
989
- var _a, _b, _c, _d;
993
+ var _a, _b, _c;
990
994
  if (!(venueMarkets == null ? void 0 : venueMarkets.length)) return EMPTY_PRICES;
991
995
  if (fingerprint === prevRef.current.fingerprint) {
992
996
  return prevRef.current.prices;
@@ -997,16 +1001,10 @@ function useLiveOutcomePrices(venueMarkets) {
997
1001
  const state = (_a = queries[i]) == null ? void 0 : _a.data;
998
1002
  liveByOutcomeId.set(outcomeIds[i], (_c = (_b = state == null ? void 0 : state.orderbook) == null ? void 0 : _b.midpoint) != null ? _c : null);
999
1003
  }
1000
- for (const vm of venueMarkets) {
1001
- for (const outcome of (_d = vm.venueMarketOutcomes) != null ? _d : []) {
1002
- if (!enableLiveUpdates) {
1003
- continue;
1004
- }
1005
- const liveMidpoint = liveByOutcomeId.get(outcome.id);
1006
- if (liveMidpoint != null) {
1007
- prices.set(outcome.id, liveMidpoint);
1008
- }
1009
- }
1004
+ if (!enableLiveUpdates) return prices;
1005
+ for (const outcomeId of outcomeIds) {
1006
+ const liveMidpoint = liveByOutcomeId.get(outcomeId);
1007
+ if (liveMidpoint != null) prices.set(outcomeId, liveMidpoint);
1010
1008
  }
1011
1009
  prevRef.current = { fingerprint, prices };
1012
1010
  return prices;
@@ -1517,8 +1515,9 @@ function useMidpoints(venueMarkets, options) {
1517
1515
  const result = useMemo8(() => {
1518
1516
  var _a2, _b, _c, _d, _e, _f;
1519
1517
  const map = /* @__PURE__ */ new Map();
1518
+ const currentMap = /* @__PURE__ */ new Map();
1520
1519
  const venueMap = /* @__PURE__ */ new Map();
1521
- if (!(data == null ? void 0 : data.data) || !venueMarkets) return { map, venueMap };
1520
+ if (!(data == null ? void 0 : data.data) || !venueMarkets) return { map, currentMap, venueMap };
1522
1521
  const itemByMarketId = new Map(data.data.map((item) => [item.venueMarketId, item]));
1523
1522
  const marketById = new Map(venueMarkets.map((market) => [market.id, market]));
1524
1523
  for (const item of data.data) {
@@ -1526,6 +1525,7 @@ function useMidpoints(venueMarkets, options) {
1526
1525
  for (const o of item.outcomes) {
1527
1526
  if (o.midpoint == null) continue;
1528
1527
  map.set(o.venueMarketOutcomeId, o.midpoint);
1528
+ currentMap.set(o.venueMarketOutcomeId, o.midpoint);
1529
1529
  if (item.venue) venueMap.set(o.venueMarketOutcomeId, item.venue);
1530
1530
  }
1531
1531
  }
@@ -1540,6 +1540,7 @@ function useMidpoints(venueMarkets, options) {
1540
1540
  for (const ref of refs) {
1541
1541
  const sib = resolveSiblingOutcomeMidpoint(item.matched, ref);
1542
1542
  if (sib == null) continue;
1543
+ currentMap.set(ref.venueMarketOutcomeId, sib.midpoint);
1543
1544
  if (best == null || sib.midpoint < best) {
1544
1545
  best = sib.midpoint;
1545
1546
  bestVenue = (_e = sib.venue) != null ? _e : bestVenue;
@@ -1562,7 +1563,7 @@ function useMidpoints(venueMarkets, options) {
1562
1563
  }
1563
1564
  }
1564
1565
  }
1565
- return { map, venueMap };
1566
+ return { map, currentMap, venueMap };
1566
1567
  }, [data, venueMarkets]);
1567
1568
  const { bestMidpoint, bestMidpointVenue } = useMemo8(() => {
1568
1569
  let value;
@@ -1592,6 +1593,7 @@ function useMidpoints(venueMarkets, options) {
1592
1593
  return {
1593
1594
  prices: result.map,
1594
1595
  bestMidpointsByOutcomeId: result.map,
1596
+ currentMidpointsByOutcomeId: result.currentMap,
1595
1597
  venueByOutcomeId: result.venueMap,
1596
1598
  bestPrices,
1597
1599
  bestPriceVenuesByOutcomeId,
@@ -2393,13 +2395,123 @@ function useSmartRoute(options) {
2393
2395
  };
2394
2396
  }
2395
2397
 
2396
- // src/use-venue-sell-quotes.ts
2397
- import { useQueries as useQueries6 } from "@tanstack/react-query";
2398
+ // src/use-limit-order-venue-quotes.ts
2399
+ import { keepPreviousData as keepPreviousData7, useQueries as useQueries6 } from "@tanstack/react-query";
2398
2400
  var getIsDocumentVisible2 = () => {
2399
2401
  if (typeof document === "undefined") return true;
2400
2402
  return document.visibilityState !== "hidden";
2401
2403
  };
2402
2404
  var getUniqueVenueRequests = (requests) => {
2405
+ const requestsByVenue = /* @__PURE__ */ new Map();
2406
+ for (const request of requests) {
2407
+ if (!request.venueMarketOutcomeId || requestsByVenue.has(request.venue)) continue;
2408
+ requestsByVenue.set(request.venue, request);
2409
+ }
2410
+ return [...requestsByVenue.values()].sort((left, right) => left.venue.localeCompare(right.venue));
2411
+ };
2412
+ var useLimitOrderVenueQuotes = (options) => {
2413
+ var _a, _b;
2414
+ const client = useAggClient();
2415
+ const {
2416
+ requests,
2417
+ tradeSide,
2418
+ amount,
2419
+ marketId,
2420
+ accountId,
2421
+ chainBalances,
2422
+ mode,
2423
+ slipCapBps,
2424
+ enabled = true,
2425
+ staleTimeMs = SMART_ROUTE_STALE_TIME_MS,
2426
+ refreshContext
2427
+ } = options;
2428
+ const uniqueRequests = getUniqueVenueRequests(requests);
2429
+ const hasValidInput = typeof amount === "number" && Number.isFinite(amount) && amount > 0;
2430
+ const hasRequiredAccount = tradeSide === "buy" || Boolean(accountId);
2431
+ const queryEnabled = enabled && hasValidInput && hasRequiredAccount;
2432
+ const serializedChainBalances = chainBalances ? JSON.stringify(chainBalances) : null;
2433
+ const queries = useQueries6({
2434
+ queries: uniqueRequests.map((request) => ({
2435
+ queryKey: [
2436
+ "smart-route",
2437
+ request.venueMarketOutcomeId,
2438
+ "limit-order-venue-info",
2439
+ {
2440
+ venue: request.venue,
2441
+ tradeSide,
2442
+ amount: amount != null ? amount : null,
2443
+ // The quote endpoint does not use limit price, so it must not be
2444
+ // part of this key or trigger a new informational quote.
2445
+ marketId: marketId != null ? marketId : null,
2446
+ accountId: accountId != null ? accountId : null,
2447
+ chainBalances: serializedChainBalances,
2448
+ mode: mode != null ? mode : null,
2449
+ slipCapBps: slipCapBps != null ? slipCapBps : null
2450
+ }
2451
+ ],
2452
+ queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
2453
+ return client.getSmartRoute(
2454
+ __spreadProps(__spreadValues(__spreadValues(__spreadValues({
2455
+ venueMarketOutcomeId: request.venueMarketOutcomeId,
2456
+ tradeSide
2457
+ }, tradeSide === "buy" ? { maxSpend: amount } : { sellShares: amount }), chainBalances ? { chainBalances } : {}), mode ? { mode } : {}), {
2458
+ slipCapBps,
2459
+ allowedVenues: [request.venue]
2460
+ }),
2461
+ { signal }
2462
+ );
2463
+ }),
2464
+ enabled: queryEnabled,
2465
+ placeholderData: keepPreviousData7,
2466
+ staleTime: staleTimeMs,
2467
+ refetchInterval: (queryState) => {
2468
+ var _a2, _b2, _c, _d;
2469
+ return resolveSmartRouteRefetchInterval({
2470
+ data: queryState.state.data,
2471
+ defaultIntervalMs: staleTimeMs,
2472
+ isDocumentVisible: getIsDocumentVisible2(),
2473
+ isEditing: (_a2 = refreshContext == null ? void 0 : refreshContext.isEditing) != null ? _a2 : false,
2474
+ isInputValid: hasValidInput,
2475
+ isMarketOpen: (_b2 = refreshContext == null ? void 0 : refreshContext.isMarketOpen) != null ? _b2 : true,
2476
+ isPanelActive: (_c = refreshContext == null ? void 0 : refreshContext.isPanelActive) != null ? _c : true,
2477
+ isSubmitting: (_d = refreshContext == null ? void 0 : refreshContext.isSubmitting) != null ? _d : false,
2478
+ queryEnabled
2479
+ });
2480
+ },
2481
+ gcTime: 6e4,
2482
+ refetchOnWindowFocus: false,
2483
+ refetchIntervalInBackground: false,
2484
+ retry: 1
2485
+ }))
2486
+ });
2487
+ const quotes = queries.map((query, index) => {
2488
+ var _a2;
2489
+ const queryError = query.error;
2490
+ return {
2491
+ request: uniqueRequests[index],
2492
+ data: (_a2 = query.data) != null ? _a2 : null,
2493
+ isLoading: query.isLoading,
2494
+ isFetching: query.isFetching,
2495
+ error: queryError instanceof Error ? queryError : queryError ? new Error(String(queryError)) : null,
2496
+ refetch: query.refetch
2497
+ };
2498
+ });
2499
+ return {
2500
+ quotes,
2501
+ isLoading: quotes.some((quote) => quote.isLoading),
2502
+ isFetching: quotes.some((quote) => quote.isFetching),
2503
+ error: (_b = (_a = quotes.find((quote) => quote.error)) == null ? void 0 : _a.error) != null ? _b : null,
2504
+ refetch: () => Promise.all(quotes.map((quote) => quote.refetch()))
2505
+ };
2506
+ };
2507
+
2508
+ // src/use-venue-sell-quotes.ts
2509
+ import { useQueries as useQueries7 } from "@tanstack/react-query";
2510
+ var getIsDocumentVisible3 = () => {
2511
+ if (typeof document === "undefined") return true;
2512
+ return document.visibilityState !== "hidden";
2513
+ };
2514
+ var getUniqueVenueRequests2 = (requests) => {
2403
2515
  const requestsByVenue = /* @__PURE__ */ new Map();
2404
2516
  for (const request of requests) {
2405
2517
  if (request.requestedSellShares <= 0 || request.sellShares <= 0 || request.availableShares <= 0) {
@@ -2424,8 +2536,8 @@ var useVenueSellQuotes = (options) => {
2424
2536
  staleTimeMs = SMART_ROUTE_STALE_TIME_MS,
2425
2537
  refreshContext
2426
2538
  } = options;
2427
- const uniqueRequests = getUniqueVenueRequests(requests);
2428
- const queries = useQueries6({
2539
+ const uniqueRequests = getUniqueVenueRequests2(requests);
2540
+ const queries = useQueries7({
2429
2541
  queries: uniqueRequests.map((request) => {
2430
2542
  const hasValidInput = request.requestedSellShares > 0 && request.sellShares > 0 && request.availableShares > 0;
2431
2543
  const queryEnabled = enabled && !!venueMarketOutcomeId && !!accountId && hasValidInput;
@@ -2467,7 +2579,7 @@ var useVenueSellQuotes = (options) => {
2467
2579
  return resolveSmartRouteRefetchInterval({
2468
2580
  data: queryState.state.data,
2469
2581
  defaultIntervalMs: staleTimeMs,
2470
- isDocumentVisible: getIsDocumentVisible2(),
2582
+ isDocumentVisible: getIsDocumentVisible3(),
2471
2583
  isEditing: (_a2 = refreshContext == null ? void 0 : refreshContext.isEditing) != null ? _a2 : false,
2472
2584
  isInputValid: hasValidInput,
2473
2585
  isMarketOpen: (_b2 = refreshContext == null ? void 0 : refreshContext.isMarketOpen) != null ? _b2 : true,
@@ -2580,7 +2692,7 @@ function useVenueEvent(options) {
2580
2692
  import { QueryClient as QueryClient2, QueryClientContext as QueryClientContext2, useInfiniteQuery as useInfiniteQuery7 } from "@tanstack/react-query";
2581
2693
  import { useContext as useContext3, useEffect as useEffect8, useState as useState8 } from "react";
2582
2694
  function useVenueMarkets(options) {
2583
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2695
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
2584
2696
  const client = useContext3(AggClientContext);
2585
2697
  const queryClient = useContext3(QueryClientContext2);
2586
2698
  const [fallbackQueryClient] = useState8(() => new QueryClient2());
@@ -2666,6 +2778,12 @@ function useVenueMarkets(options) {
2666
2778
  );
2667
2779
  const markets = (_j = (_i = query.data) == null ? void 0 : _i.pages.flatMap((page) => page.data)) != null ? _j : [];
2668
2780
  const hasNextPage = !!query.hasNextPage;
2781
+ const { fetchNextPage, isFetchingNextPage } = query;
2782
+ const fetchAll = (_k = options == null ? void 0 : options.fetchAll) != null ? _k : false;
2783
+ useEffect8(() => {
2784
+ if (!fetchAll || !hasNextPage || isFetchingNextPage) return;
2785
+ void fetchNextPage();
2786
+ }, [fetchAll, hasNextPage, isFetchingNextPage, fetchNextPage]);
2669
2787
  return __spreadProps(__spreadValues({}, query), {
2670
2788
  markets,
2671
2789
  hasNextPage
@@ -2691,19 +2809,23 @@ function useEnrichedVenueEvent(options) {
2691
2809
  const { markets: openMarkets, isLoading: isEnrichingOpenMarkets } = useVenueMarkets({
2692
2810
  venueEventId: options.eventId,
2693
2811
  enabled: ((_b = options.enabled) != null ? _b : true) && !!event,
2694
- status: shouldFetchOnlyOpenMarkets ? "open" /* open */ : void 0
2812
+ status: shouldFetchOnlyOpenMarkets ? "open" /* open */ : void 0,
2695
2813
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
2696
2814
  // type-aware order (structureOrderBy). Keeping this in lockstep with
2697
- // MarketDetailsList preserves the shared React Query cache key and the
2698
- // event-type ordering.
2815
+ // MarketDetailsList (including limit, part of the query key) preserves the
2816
+ // shared React Query cache key and the event-type ordering.
2817
+ limit: 100,
2818
+ fetchAll: true
2699
2819
  });
2700
2820
  const shouldFetchAllMarketsFallback = ((_c = options.enabled) != null ? _c : true) && !!event && shouldFetchOnlyOpenMarkets && !isEnrichingOpenMarkets && openMarkets.length === 0;
2701
2821
  const { markets: fallbackMarkets, isLoading: isEnrichingFallbackMarkets } = useVenueMarkets({
2702
2822
  venueEventId: options.eventId,
2703
- enabled: shouldFetchAllMarketsFallback
2823
+ enabled: shouldFetchAllMarketsFallback,
2704
2824
  // No status filter on fallback: if an active event temporarily has only
2705
2825
  // closed/resolved markets, still render the event page instead of the
2706
2826
  // unavailable state.
2827
+ limit: 100,
2828
+ fetchAll: true
2707
2829
  });
2708
2830
  const markets = fallbackMarkets.length > 0 ? fallbackMarkets : openMarkets;
2709
2831
  const isEnriching = isEnrichingOpenMarkets || isEnrichingFallbackMarkets;
@@ -2724,7 +2846,7 @@ function useEnrichedVenueEvent(options) {
2724
2846
  import {
2725
2847
  QueryClient as QueryClient3,
2726
2848
  QueryClientContext as QueryClientContext3,
2727
- keepPreviousData as keepPreviousData7,
2849
+ keepPreviousData as keepPreviousData8,
2728
2850
  useInfiniteQuery as useInfiniteQuery8
2729
2851
  } from "@tanstack/react-query";
2730
2852
  import { useContext as useContext4, useEffect as useEffect9, useMemo as useMemo11, useRef as useRef5, useState as useState9 } from "react";
@@ -2806,7 +2928,7 @@ function useVenueEvents(options) {
2806
2928
  return (_a2 = lastPage.nextCursor) != null ? _a2 : void 0;
2807
2929
  },
2808
2930
  // TODO: RMIK - Comment out to show skeletons on category switch
2809
- placeholderData: keepPreviousData7,
2931
+ placeholderData: keepPreviousData8,
2810
2932
  enabled: enabled && !!client
2811
2933
  },
2812
2934
  queryClient != null ? queryClient : fallbackQueryClient
@@ -2848,7 +2970,7 @@ function useVenueEvents(options) {
2848
2970
  }
2849
2971
 
2850
2972
  // src/use-venue-market-midpoints.ts
2851
- import { keepPreviousData as keepPreviousData8, useQuery as useQuery9 } from "@tanstack/react-query";
2973
+ import { keepPreviousData as keepPreviousData9, useQuery as useQuery9 } from "@tanstack/react-query";
2852
2974
  var normalizeVenueMarketIds2 = (venueMarketIds) => {
2853
2975
  return [
2854
2976
  ...new Set(venueMarketIds.map((venueMarketId) => venueMarketId.trim()).filter(Boolean))
@@ -2903,7 +3025,7 @@ function useVenueMarketMidpoints(options) {
2903
3025
  gcTime: 5 * 6e4,
2904
3026
  refetchOnWindowFocus: false,
2905
3027
  retry: 1,
2906
- placeholderData: keepPreviousData8
3028
+ placeholderData: keepPreviousData9
2907
3029
  });
2908
3030
  const midpointRows = (_d = (_c = query.data) == null ? void 0 : _c.data) != null ? _d : [];
2909
3031
  const midpointsByVenueMarketId = mapMidpointsByVenueMarketId(midpointRows);
@@ -3267,6 +3389,7 @@ export {
3267
3389
  useAggWebSocket,
3268
3390
  useAppConfig,
3269
3391
  useArbFeed,
3392
+ useBalanceRefillPolicies,
3270
3393
  useCachedAppConfig,
3271
3394
  useCancelManagedOrder,
3272
3395
  useCategories,
@@ -3284,6 +3407,7 @@ export {
3284
3407
  useExternalId,
3285
3408
  useGeoBlock,
3286
3409
  useLabels,
3410
+ useLimitOrderVenueQuotes,
3287
3411
  useLinkAccount,
3288
3412
  useLiveBestPriceCandidates,
3289
3413
  useLiveBestPrices,
package/dist/withdraw.js CHANGED
@@ -133,6 +133,34 @@ var enUsLabels = {
133
133
  claimableWinningsTooltip: (count) => `${count} position${count === 1 ? "" : "s"} ready to claim`,
134
134
  walletMenuFor: (profileLabel) => `Profile menu for ${profileLabel}`
135
135
  },
136
+ balanceRefill: {
137
+ tabLabel: "Balance management",
138
+ title: "Automatic balance refill",
139
+ description: "Keep a minimum USDC balance on one network by moving funds from another managed network.",
140
+ networkLabel: "Network to maintain",
141
+ minimumLabel: "Minimum balance",
142
+ refillAmountLabel: "Refill by at least",
143
+ dailyCapLabel: "Maximum per day",
144
+ maximumFeeLabel: "Maximum fee per refill",
145
+ activeLabel: "Automatic refill is active",
146
+ pausedLabel: "Automatic refill is paused",
147
+ enableAction: "Enable automatic refill",
148
+ saveAction: "Save refill settings",
149
+ pauseAction: "Pause automatic refill",
150
+ resumeAction: "Resume automatic refill",
151
+ loading: "Loading refill settings...",
152
+ loadError: "Refill settings could not be loaded.",
153
+ saveError: "Refill settings could not be saved.",
154
+ saved: "Refill settings saved.",
155
+ consent: "By enabling, you authorize AGG to move USDC between your managed wallets within these limits.",
156
+ lastRefill: "Latest refill",
157
+ statuses: {
158
+ reserved: "Funds reserved",
159
+ executing: "Refill in progress",
160
+ completed: "Refill completed",
161
+ failed: "Refill failed"
162
+ }
163
+ },
136
164
  deposit: {
137
165
  title: "Deposit",
138
166
  back: "Go back",
@@ -708,6 +736,7 @@ var enUsLabels = {
708
736
  tradingAccessAddKalshiAccount: "Add Kalshi Account",
709
737
  outcome: (label) => `Outcome: ${label}`,
710
738
  smartRouting: "Smart Routing",
739
+ limitRoutingCurrentPrice: (priceLabel, feeLabel) => feeLabel ? `Current ${priceLabel} \xB7 Fee ${feeLabel}` : `Current ${priceLabel}`,
711
740
  orderTypeMarket: "Market",
712
741
  orderTypeLimit: "Limit",
713
742
  orderTypeAria: "Order type",
@@ -1172,7 +1201,8 @@ var executionKeys = {
1172
1201
  claimableClosedPositionsCount: () => ["execution", "positions", "claimable-count"],
1173
1202
  orders: (status, cursor, limit) => ["execution", "orders", status != null ? status : null, cursor != null ? cursor : null, limit != null ? limit : null],
1174
1203
  ordersPrefix: () => ["execution", "orders"],
1175
- depositAddresses: () => ["execution", "deposit-addresses"]
1204
+ depositAddresses: () => ["execution", "deposit-addresses"],
1205
+ balanceRefillPolicies: () => ["execution", "balance-refill-policies"]
1176
1206
  };
1177
1207
 
1178
1208
  // src/execution/balance-invalidation.ts
package/dist/withdraw.mjs CHANGED
@@ -3,12 +3,12 @@ import {
3
3
  useWithdrawFlow,
4
4
  useWithdrawPreview,
5
5
  useWithdrawalLifecycle
6
- } from "./chunk-DP6VYGAX.mjs";
6
+ } from "./chunk-X4MMFGU5.mjs";
7
7
  import {
8
8
  useDepositAddresses,
9
9
  useManagedBalances,
10
10
  useWithdrawManaged
11
- } from "./chunk-TJRQ55UC.mjs";
11
+ } from "./chunk-3UEZQTMJ.mjs";
12
12
  export {
13
13
  useDepositAddresses,
14
14
  useManagedBalances,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agg-build/hooks",
3
- "version": "2.7.0",
3
+ "version": "2.8.0",
4
4
  "description": "React hooks and providers for the AGG prediction market aggregator. Wraps @agg-build/sdk with TanStack Query, shared session state, and live WebSocket data.",
5
5
  "sideEffects": false,
6
6
  "license": "MIT",