@agg-build/hooks 4.24.0 → 4.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -2,7 +2,7 @@ import * as _tanstack_react_query from '@tanstack/react-query';
2
2
  import { QueryClient } from '@tanstack/react-query';
3
3
  export { QueryClient, QueryClientProvider, useQueryClient } from '@tanstack/react-query';
4
4
  import * as _agg_build_sdk from '@agg-build/sdk';
5
- import { CandleBuilder, AggAuthStartBody, AggAuthStartResult, AggClientSessionInput, AggClient, RampQuote, RampQuoteRequest, RampWidgetSession, RampSessionRequest, ExecuteManagedResponse, ExecuteManagedParams, PlaceLimitOrderResponse, PlaceLimitOrderParams, CancelManagedExecutionResponse, GetPositionsParams, ExecutionStatusStep, WsOrderSubmitted, WsBalanceUpdate, ExecutionStatusOrder, CreateBalanceRefillPolicyParams, UpdateBalanceRefillPolicyParams, RedeemResponse, RedeemRequest, WsRedeemEvent, AggWebSocket, WsOrderEvent, WsWithdrawalLifecycleEvent, ChartBarsMeta, WsCandleInterval, WsTrade, AggregatedOrderbookResponse, Venue as Venue$1, VenueKeyStatus, AggLinkAccountBody, AggLinkAccountResult, AggLinkAccountWalletConfirmBody, AggLinkAccountConfirmResult, Category, UserActivityQuery, UserActivityItem, PaginatedResponse, LeaderboardMetric, LeaderboardRow, CandleInterval, OrderbookState, OrderbookQuoteResponse, OrderListQuery, TradeExecutorOrder, SmartRouteSide, ExecutionMode, SmartRouteResponse, RecurringCryptoDuration, RecurringCryptoVenueMarket, RecurringCryptoWindowMarket, RecurrenceFilter, SportsLiveResponse, SportsLiveState, MidpointRow, BatchMidpointsResponse, AppClientConfigResponse, AppTradingMode, VenueMarket as VenueMarket$1, HostedVenueWithdrawalRequest } from '@agg-build/sdk';
5
+ import { CandleBuilder, AggAuthStartBody, AggAuthStartResult, AggClientSessionInput, AggClient, RampQuote, RampQuoteRequest, RampWidgetSession, RampSessionRequest, ExecuteManagedResponse, ExecuteManagedParams, PlaceLimitOrderResponse, PlaceLimitOrderParams, CancelManagedExecutionResponse, GetPositionsParams, ExecutionStatusStep, WsOrderSubmitted, WsBalanceUpdate, ExecutionStatusOrder, CreateBalanceRefillPolicyParams, UpdateBalanceRefillPolicyParams, RedeemResponse, RedeemRequest, WsRedeemEvent, AggWebSocket, WsOrderEvent, WsWithdrawalLifecycleEvent, ChartBarsMeta, WsCandleInterval, WsTrade, AggregatedOrderbookResponse, Venue as Venue$1, VenueKeyStatus, AggLinkAccountBody, AggLinkAccountResult, AggLinkAccountWalletConfirmBody, AggLinkAccountConfirmResult, Category, UserActivityQuery, UserActivityItem, PaginatedResponse, LeaderboardMetric, LeaderboardRow, CandleInterval, OrderbookState, OrderbookQuoteResponse, OrderListQuery, TradeExecutorOrder, SmartRouteSide, ExecutionMode, SmartRouteResponse, BatchOrderbooksResponse, RecurringCryptoDuration, RecurringCryptoVenueMarket, RecurringCryptoWindowMarket, RecurrenceFilter, SportsLiveResponse, SportsLiveState, MidpointRow, BatchMidpointsResponse, AppClientConfigResponse, AppTradingMode, VenueMarket as VenueMarket$1, HostedVenueWithdrawalRequest } from '@agg-build/sdk';
6
6
  export { SportsGameStatus, SportsLiveParticipant, SportsLiveResponse, SportsLiveState, TurnstileChallengeError } from '@agg-build/sdk';
7
7
  import React, { ReactNode } from 'react';
8
8
  export { UseManagedBalancesOptions, UseWithdrawEstimateParams, UseWithdrawFlowOptions, UseWithdrawFlowResult, UseWithdrawManagedOptions, UseWithdrawPreviewParams, UseWithdrawalLifecycleResult, WithdrawFeeEstimate, WithdrawalLifecycleState, useManagedBalances, useWithdrawEstimate, useWithdrawFlow, useWithdrawManaged, useWithdrawPreview, useWithdrawalLifecycle } from './withdraw.mjs';
@@ -219,6 +219,12 @@ type GetPositionsQuery = {
219
219
  cursor?: string | undefined;
220
220
  limit?: number | undefined;
221
221
  status?: "active" | "closed" | undefined;
222
+ venueEventId?: string | undefined;
223
+ venueMarketId?: string | undefined;
224
+ /** Only positions on events in any of these categories (a league is a category). At most 20. */
225
+ categoryIds?: string[] | undefined;
226
+ /** `realizedPnl`: highest realized P&L first. Live positions only. */
227
+ sort?: "realizedPnl" | undefined;
222
228
  };
223
229
  type OrderListItem = {
224
230
  status: string;
@@ -370,6 +376,8 @@ type PositionGroup = {
370
376
  currentPrice: number;
371
377
  totalValue: number;
372
378
  unrealizedPnlPercent: number;
379
+ /** Realized P&L across the legs (sells + settlement), before fees. USD. */
380
+ realizedPnl: number;
373
381
  priceSource: PriceSource;
374
382
  bookQuality: BookQuality;
375
383
  }[];
@@ -5701,6 +5709,8 @@ declare function useSmartRoute(options: UseSmartRouteOptions): UseSmartRouteResu
5701
5709
  interface LimitOrderVenueQuoteRequest {
5702
5710
  venue: Venue$1;
5703
5711
  venueMarketOutcomeId: string;
5712
+ /** The venue's own market; its tick and size rules are fetched with the selected market's. */
5713
+ venueMarketId?: string;
5704
5714
  }
5705
5715
  interface UseLimitOrderVenueQuotesOptions {
5706
5716
  requests: LimitOrderVenueQuoteRequest[];
@@ -5719,6 +5729,10 @@ interface LimitOrderVenueQuoteResult {
5719
5729
  request: LimitOrderVenueQuoteRequest;
5720
5730
  data: SmartRouteResponse | null;
5721
5731
  tickSize?: number | null;
5732
+ /** Limit size step, raw 6-dec shares, from orderbook metadata. Null = 1-raw step. */
5733
+ sizeStepRaw?: string | null;
5734
+ /** Limit size minimum, raw 6-dec shares, from orderbook metadata. Null = none known. */
5735
+ minSizeRaw?: string | null;
5722
5736
  isLoading: boolean;
5723
5737
  isFetching: boolean;
5724
5738
  error: Error | null;
@@ -5726,11 +5740,19 @@ interface LimitOrderVenueQuoteResult {
5726
5740
  }
5727
5741
  interface UseLimitOrderVenueQuotesResult {
5728
5742
  quotes: LimitOrderVenueQuoteResult[];
5743
+ /** The market's orderbook metadata (ticks, size rules) has not loaded yet. */
5744
+ isMetadataPending: boolean;
5729
5745
  isLoading: boolean;
5730
5746
  isFetching: boolean;
5731
5747
  error: Error | null;
5732
5748
  refetch: () => Promise<unknown>;
5733
5749
  }
5750
+ interface LimitOrderSizeRules {
5751
+ sizeStepRaw?: string;
5752
+ minSizeRaw?: string;
5753
+ }
5754
+ /** Per-venue limit size rules from the same batch orderbook metadata as ticks. */
5755
+ declare const resolveLimitOrderSizeRulesByVenue: (response: BatchOrderbooksResponse | null | undefined) => Map<Venue$1, LimitOrderSizeRules>;
5734
5756
  /**
5735
5757
  * Fetches informational single-venue quotes for limit-order routing cards.
5736
5758
  * Quote IDs are intentionally not consumed by the limit-order execution flow.
@@ -7763,7 +7785,8 @@ override?: AppTradingMode): UseResolvedExecutionModeResult;
7763
7785
 
7764
7786
  interface UseSettlementDetailsDataOptions {
7765
7787
  eventId: string;
7766
- market: Pick<VenueMarket$1, "id" | "venue" | "externalIdentifier">;
7788
+ /** Omit when only the event's details (description, settlementDiff) are needed. */
7789
+ market?: Pick<VenueMarket$1, "id" | "venue" | "externalIdentifier">;
7767
7790
  enabled: boolean;
7768
7791
  needsEvent: boolean;
7769
7792
  needsMarket: boolean;
@@ -8270,4 +8293,4 @@ declare function useHostedVenueTransfers(accountId: string, environment: Environ
8270
8293
  clear: () => void;
8271
8294
  };
8272
8295
 
8273
- export { AUTH_CHOOSER_OPEN_EVENT, type AggAuthContextValue, type AggAuthSignInOptions, type AggBalanceContextValue, AggBalanceProvider, AggProvider, type AggProviderProps, AggProvider as AggSdkProvider, type AggProviderProps as AggSdkProviderProps, type AggUiConfig, type AggUiConfigInput, type AggUiLabels, type AggUiLabelsInput, AggUiProvider, type AggUiTradingExecutionMode, CHART_TIME_RANGES, CONFIRMED_MATCH_STATUSES, type ChartTimeRange, type ClosedPositionTotals, type ComputePriceGapsOptions, DEFAULT_AGG_ROOT_CLASS_NAME, type DagStepProgress, type EventListStateContextValue, EventListStateProvider, type EventListStateSnapshot, type EventTradingContextValue, type EventTradingState, type ExecutionProgressPhase, type ExecutionRawStepProgress, type ExecutionStepProgress, type ExecutionTerminalOrderEvent, type GeoBlockState, type GetOrdersQuery, type GetPositionsQuery, type InvalidateUserActivityOptions, type InvalidateUserMoneyStateOptions, LEADERBOARD_PERIODS, type LeaderboardPeriod, type LimitOrderVenueQuoteRequest, type LimitOrderVenueQuoteResult, type LiveBestPriceCandidate, type LiveBestPriceCandidates, type LiveBestPrices, type LiveCandle, MAX_ORDER_VENUE_MARKET_IDS_PER_REQUEST, MAX_PRICE_GAP_PCT, MIN_PRICE_GAP_PCT, type MarketChartAvailability, type MarketChartCandle, type MarketChartData, type MarketChartVenueData, type MarketOrderbookData, type MarketOrderbookIntegrity, MarketStatus, type MarketTradingState, MatchStatus, MatchType, type OrderEligibility, type OrderEligibilityReason, type OrderListItem, type OrderbookResult, type PositionGroup, type PriceGapValue, type RecurringCryptoIdentity, type RecurringCryptoMarketInstance, type RecurringCryptoTimeline, type RedeemEvent, type RedeemLegLifecycle, type RedeemLifecycleState, RedeemRejectedError, type RollingChartWindow, SPORTS_LIVE_POLL_INTERVAL_MS, SPORTS_SCHEDULED_POLL_INTERVAL_MS, type ScaledCandlePoint, type SdkUiConfig, type SdkUiConfigInput, type SdkUiProviderProps, type SettlementDiff, type SettlementDifference, type SmartRouteLoadingReason, type ThemeMode, TradeSide, type TradingAction, type TradingState, type TradingStateBase, type TradingStateKind, type UseAggAuthOptions, type UseAggAuthReturn, type UseAppConfigResult, type UseArbFeedResult, type UseCancelManagedOrderOptions, type UseCategoriesOptions, type UseCategoryChildrenOptions, type UseEnrichedVenueEventOptions, type UseExecuteManagedOptions, type UseExecutionOrdersForMarketsOptions, type UseExecutionOrdersForMarketsResult, type UseExecutionOrdersOptions, type UseExecutionPositionsOptions, type UseExecutionProgressOptions, type UseExecutionProgressResult, type UseExternalIdOptions, type UseExternalIdReturn, type UseLeaderboardOptions, type UseLimitOrderVenueQuotesOptions, type UseLimitOrderVenueQuotesResult, type UseLinkAccountReturn, type UseLiveCandleOverlayOptions, type UseLiveCandleOverlayResult, type UseLiveCandlesOptions, type UseLiveCandlesResult, type UseLiveMarketResult, type UseMarketArbResult, type UseMarketChartOptions, type UseMarketChartResult, type UseMarketChartsResult, type UseMarketOrderbookOptions, type UseMarketOrderbookResult, type UseMarketOrderbookVenueOutcome, type UseMarketSearchOptions, type UseMidpointsOptions, type UseMidpointsResult, type UseOrderBookOptions, type UseOrderbookQuoteOptions, type UseOrderbookQuoteResult, type UseOrdersOptions, type UsePaperOnboardingResult, type UsePlaceLimitOrderOptions, type UsePositionsOptions, type UseRecurringCryptoMarketsOptions, type UseRedeemLifecycleInput, type UseResolvedExecutionModeResult, type UseRollingChartWindowOptions, type UseSearchOptions, type UseSettlementDetailsDataOptions, type UseSmartRouteOptions, type UseSmartRouteResult, type UseUserActivityOptions, type UseUserHoldingsOptions, type UseVenueEventOptions, type UseVenueEventsOptions, type UseVenueMarketMidpointsOptions, type UseVenueMarketsOptions, type UseVenueSellQuotesOptions, type UseVenueSellQuotesResult, type UseViewportMidpointsOptions, type UseVisibleIdsOptions, type UseVisibleIdsResult, type UserActivityInvalidationStrategy, Venue, type VenueAvailabilityState, type VenueEvent, type VenueEventWithMarkets, type VenueMarket, type VenueMarketOutcome, type VenueSellQuoteRequest, type VenueSellQuoteResult, type WalletActionSendTokenParams, type WalletActions, appConfigQueryKey, buildLiveBestPriceCandidates, computeClosedPositionTotals, computePriceGaps, defaultAggUiConfig, defaultAggUiConfig as defaultSdkUiConfig, executionKeys, extractOutcomeBestCandidate, fetchRecurringCryptoMarkets, findLivePriceById, getBuilder, getOrCreateBuilder, getVenueAvailabilityState, getVisibleVenueIdsByConfig, getVisibleVenuesByConfig, getWalletAddressFromUserProfile, hostedVenueAccountQueryKeys, invalidateBalanceQueries, invalidatePositionQueries, invalidateUserActivityQueries, invalidateUserClaimState, invalidateUserMoneyState, isVenueDisabledByConfig, leaderboardQueryKeys, leaderboardRange, mergeBestPricesPreferringLive, mergeRecurringCryptoWindows, normalizeVenueId, optimizedImageUrl, parseEmail, parseEmailStrict, rangeToSeconds, recurringCryptoTransitionPollInterval, requestAggAuthChooserOpen, resolveAggUiLabels, resolveDefaultMarket as resolveDefaultTradingMarket, resolveEventTradingState, resolveMarketTradingState, resolveMarketWinningOutcome, resolveOrderEligibility, resolveRecurringCryptoIdentity, resolveRecurringCryptoTimeline, resolveRollingWindow, resolveTradingStateKind, retinaImageUrl, sharedKycQueryKeys, sortVenues, sportsLiveQueryKey, sportsLiveRefetchInterval, timeRangeToInterval, tradingReducer, useAggAuth, useAggAuthContext, useAggAuthState, useAggBalance, useAggBalanceContext, useAggBalanceState, useAggClient, useAggLabels, useAggUiConfig, useAggWebSocket, useAppConfig, useArbFeed, useBalanceRefillPolicies, useCachedAppConfig, useCancelManagedOrder, useCategories, useCategoryChildren, useDebouncedValue, useEnrichedVenueEvent, useEventListState, useEventOrderbookData, useEventTradingContext, useExecuteManaged, useExecutionOrders, useExecutionOrdersForMarkets, useExecutionPositions, useExecutionProgress, useExternalId, useGeoBlock, useHostedVenueAccount, useHostedVenueActivity, useHostedVenueTransfers, useLabels, useLeaderboard, useLimitOrderVenueQuotes, useLinkAccount, useLiveBestPriceCandidates, useLiveBestPrices, useLiveCandleOverlay, useLiveCandles, useLiveMarket, useLiveMarketStores, useLiveOutcomePrices, useLiveTrades, useMarketArb, useMarketChart, useMarketCharts, useMarketOrderbook, useMarketSearch, useMidpoints, useOnBalanceUpdate, useOnOrderEvent, useOnOrderSubmitted, useOnRedeemEvent, useOnWithdrawalLifecycle, useOptionalAggClient, useOrderBook, useOrderbookQuote, useOrders, usePaperOnboarding, usePlaceLimitOrder, usePositions, useRampQuotes, useRampSession, useRecurringCryptoMarkets, useRedeem, useRedeemEligibleCount, useRedeemLifecycle, useRedeemLifecycles, useResolvedExecutionMode, useRollingChartWindow, useSdkLabels, useSdkUiConfig, useSearch, useSettlementDetailsData, useSharedKyc, useSmartRoute, useSportsLive, useUserActivity, useUserHoldings, useVenueEvent, useVenueEvents, useVenueKeyStatus, useVenueMarketMidpoints, useVenueMarkets, useVenueSellQuotes, useViewportMidpoints, useVisibleIds, userActivityQueryKeys, venueKeyQueryKeys };
8296
+ export { AUTH_CHOOSER_OPEN_EVENT, type AggAuthContextValue, type AggAuthSignInOptions, type AggBalanceContextValue, AggBalanceProvider, AggProvider, type AggProviderProps, AggProvider as AggSdkProvider, type AggProviderProps as AggSdkProviderProps, type AggUiConfig, type AggUiConfigInput, type AggUiLabels, type AggUiLabelsInput, AggUiProvider, type AggUiTradingExecutionMode, CHART_TIME_RANGES, CONFIRMED_MATCH_STATUSES, type ChartTimeRange, type ClosedPositionTotals, type ComputePriceGapsOptions, DEFAULT_AGG_ROOT_CLASS_NAME, type DagStepProgress, type EventListStateContextValue, EventListStateProvider, type EventListStateSnapshot, type EventTradingContextValue, type EventTradingState, type ExecutionProgressPhase, type ExecutionRawStepProgress, type ExecutionStepProgress, type ExecutionTerminalOrderEvent, type GeoBlockState, type GetOrdersQuery, type GetPositionsQuery, type InvalidateUserActivityOptions, type InvalidateUserMoneyStateOptions, LEADERBOARD_PERIODS, type LeaderboardPeriod, type LimitOrderSizeRules, type LimitOrderVenueQuoteRequest, type LimitOrderVenueQuoteResult, type LiveBestPriceCandidate, type LiveBestPriceCandidates, type LiveBestPrices, type LiveCandle, MAX_ORDER_VENUE_MARKET_IDS_PER_REQUEST, MAX_PRICE_GAP_PCT, MIN_PRICE_GAP_PCT, type MarketChartAvailability, type MarketChartCandle, type MarketChartData, type MarketChartVenueData, type MarketOrderbookData, type MarketOrderbookIntegrity, MarketStatus, type MarketTradingState, MatchStatus, MatchType, type OrderEligibility, type OrderEligibilityReason, type OrderListItem, type OrderbookResult, type PositionGroup, type PriceGapValue, type RecurringCryptoIdentity, type RecurringCryptoMarketInstance, type RecurringCryptoTimeline, type RedeemEvent, type RedeemLegLifecycle, type RedeemLifecycleState, RedeemRejectedError, type RollingChartWindow, SPORTS_LIVE_POLL_INTERVAL_MS, SPORTS_SCHEDULED_POLL_INTERVAL_MS, type ScaledCandlePoint, type SdkUiConfig, type SdkUiConfigInput, type SdkUiProviderProps, type SettlementDiff, type SettlementDifference, type SmartRouteLoadingReason, type ThemeMode, TradeSide, type TradingAction, type TradingState, type TradingStateBase, type TradingStateKind, type UseAggAuthOptions, type UseAggAuthReturn, type UseAppConfigResult, type UseArbFeedResult, type UseCancelManagedOrderOptions, type UseCategoriesOptions, type UseCategoryChildrenOptions, type UseEnrichedVenueEventOptions, type UseExecuteManagedOptions, type UseExecutionOrdersForMarketsOptions, type UseExecutionOrdersForMarketsResult, type UseExecutionOrdersOptions, type UseExecutionPositionsOptions, type UseExecutionProgressOptions, type UseExecutionProgressResult, type UseExternalIdOptions, type UseExternalIdReturn, type UseLeaderboardOptions, type UseLimitOrderVenueQuotesOptions, type UseLimitOrderVenueQuotesResult, type UseLinkAccountReturn, type UseLiveCandleOverlayOptions, type UseLiveCandleOverlayResult, type UseLiveCandlesOptions, type UseLiveCandlesResult, type UseLiveMarketResult, type UseMarketArbResult, type UseMarketChartOptions, type UseMarketChartResult, type UseMarketChartsResult, type UseMarketOrderbookOptions, type UseMarketOrderbookResult, type UseMarketOrderbookVenueOutcome, type UseMarketSearchOptions, type UseMidpointsOptions, type UseMidpointsResult, type UseOrderBookOptions, type UseOrderbookQuoteOptions, type UseOrderbookQuoteResult, type UseOrdersOptions, type UsePaperOnboardingResult, type UsePlaceLimitOrderOptions, type UsePositionsOptions, type UseRecurringCryptoMarketsOptions, type UseRedeemLifecycleInput, type UseResolvedExecutionModeResult, type UseRollingChartWindowOptions, type UseSearchOptions, type UseSettlementDetailsDataOptions, type UseSmartRouteOptions, type UseSmartRouteResult, type UseUserActivityOptions, type UseUserHoldingsOptions, type UseVenueEventOptions, type UseVenueEventsOptions, type UseVenueMarketMidpointsOptions, type UseVenueMarketsOptions, type UseVenueSellQuotesOptions, type UseVenueSellQuotesResult, type UseViewportMidpointsOptions, type UseVisibleIdsOptions, type UseVisibleIdsResult, type UserActivityInvalidationStrategy, Venue, type VenueAvailabilityState, type VenueEvent, type VenueEventWithMarkets, type VenueMarket, type VenueMarketOutcome, type VenueSellQuoteRequest, type VenueSellQuoteResult, type WalletActionSendTokenParams, type WalletActions, appConfigQueryKey, buildLiveBestPriceCandidates, computeClosedPositionTotals, computePriceGaps, defaultAggUiConfig, defaultAggUiConfig as defaultSdkUiConfig, executionKeys, extractOutcomeBestCandidate, fetchRecurringCryptoMarkets, findLivePriceById, getBuilder, getOrCreateBuilder, getVenueAvailabilityState, getVisibleVenueIdsByConfig, getVisibleVenuesByConfig, getWalletAddressFromUserProfile, hostedVenueAccountQueryKeys, invalidateBalanceQueries, invalidatePositionQueries, invalidateUserActivityQueries, invalidateUserClaimState, invalidateUserMoneyState, isVenueDisabledByConfig, leaderboardQueryKeys, leaderboardRange, mergeBestPricesPreferringLive, mergeRecurringCryptoWindows, normalizeVenueId, optimizedImageUrl, parseEmail, parseEmailStrict, rangeToSeconds, recurringCryptoTransitionPollInterval, requestAggAuthChooserOpen, resolveAggUiLabels, resolveDefaultMarket as resolveDefaultTradingMarket, resolveEventTradingState, resolveLimitOrderSizeRulesByVenue, resolveMarketTradingState, resolveMarketWinningOutcome, resolveOrderEligibility, resolveRecurringCryptoIdentity, resolveRecurringCryptoTimeline, resolveRollingWindow, resolveTradingStateKind, retinaImageUrl, sharedKycQueryKeys, sortVenues, sportsLiveQueryKey, sportsLiveRefetchInterval, timeRangeToInterval, tradingReducer, useAggAuth, useAggAuthContext, useAggAuthState, useAggBalance, useAggBalanceContext, useAggBalanceState, useAggClient, useAggLabels, useAggUiConfig, useAggWebSocket, useAppConfig, useArbFeed, useBalanceRefillPolicies, useCachedAppConfig, useCancelManagedOrder, useCategories, useCategoryChildren, useDebouncedValue, useEnrichedVenueEvent, useEventListState, useEventOrderbookData, useEventTradingContext, useExecuteManaged, useExecutionOrders, useExecutionOrdersForMarkets, useExecutionPositions, useExecutionProgress, useExternalId, useGeoBlock, useHostedVenueAccount, useHostedVenueActivity, useHostedVenueTransfers, useLabels, useLeaderboard, useLimitOrderVenueQuotes, useLinkAccount, useLiveBestPriceCandidates, useLiveBestPrices, useLiveCandleOverlay, useLiveCandles, useLiveMarket, useLiveMarketStores, useLiveOutcomePrices, useLiveTrades, useMarketArb, useMarketChart, useMarketCharts, useMarketOrderbook, useMarketSearch, useMidpoints, useOnBalanceUpdate, useOnOrderEvent, useOnOrderSubmitted, useOnRedeemEvent, useOnWithdrawalLifecycle, useOptionalAggClient, useOrderBook, useOrderbookQuote, useOrders, usePaperOnboarding, usePlaceLimitOrder, usePositions, useRampQuotes, useRampSession, useRecurringCryptoMarkets, useRedeem, useRedeemEligibleCount, useRedeemLifecycle, useRedeemLifecycles, useResolvedExecutionMode, useRollingChartWindow, useSdkLabels, useSdkUiConfig, useSearch, useSettlementDetailsData, useSharedKyc, useSmartRoute, useSportsLive, useUserActivity, useUserHoldings, useVenueEvent, useVenueEvents, useVenueKeyStatus, useVenueMarketMidpoints, useVenueMarkets, useVenueSellQuotes, useViewportMidpoints, useVisibleIds, userActivityQueryKeys, venueKeyQueryKeys };
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as _tanstack_react_query from '@tanstack/react-query';
2
2
  import { QueryClient } from '@tanstack/react-query';
3
3
  export { QueryClient, QueryClientProvider, useQueryClient } from '@tanstack/react-query';
4
4
  import * as _agg_build_sdk from '@agg-build/sdk';
5
- import { CandleBuilder, AggAuthStartBody, AggAuthStartResult, AggClientSessionInput, AggClient, RampQuote, RampQuoteRequest, RampWidgetSession, RampSessionRequest, ExecuteManagedResponse, ExecuteManagedParams, PlaceLimitOrderResponse, PlaceLimitOrderParams, CancelManagedExecutionResponse, GetPositionsParams, ExecutionStatusStep, WsOrderSubmitted, WsBalanceUpdate, ExecutionStatusOrder, CreateBalanceRefillPolicyParams, UpdateBalanceRefillPolicyParams, RedeemResponse, RedeemRequest, WsRedeemEvent, AggWebSocket, WsOrderEvent, WsWithdrawalLifecycleEvent, ChartBarsMeta, WsCandleInterval, WsTrade, AggregatedOrderbookResponse, Venue as Venue$1, VenueKeyStatus, AggLinkAccountBody, AggLinkAccountResult, AggLinkAccountWalletConfirmBody, AggLinkAccountConfirmResult, Category, UserActivityQuery, UserActivityItem, PaginatedResponse, LeaderboardMetric, LeaderboardRow, CandleInterval, OrderbookState, OrderbookQuoteResponse, OrderListQuery, TradeExecutorOrder, SmartRouteSide, ExecutionMode, SmartRouteResponse, RecurringCryptoDuration, RecurringCryptoVenueMarket, RecurringCryptoWindowMarket, RecurrenceFilter, SportsLiveResponse, SportsLiveState, MidpointRow, BatchMidpointsResponse, AppClientConfigResponse, AppTradingMode, VenueMarket as VenueMarket$1, HostedVenueWithdrawalRequest } from '@agg-build/sdk';
5
+ import { CandleBuilder, AggAuthStartBody, AggAuthStartResult, AggClientSessionInput, AggClient, RampQuote, RampQuoteRequest, RampWidgetSession, RampSessionRequest, ExecuteManagedResponse, ExecuteManagedParams, PlaceLimitOrderResponse, PlaceLimitOrderParams, CancelManagedExecutionResponse, GetPositionsParams, ExecutionStatusStep, WsOrderSubmitted, WsBalanceUpdate, ExecutionStatusOrder, CreateBalanceRefillPolicyParams, UpdateBalanceRefillPolicyParams, RedeemResponse, RedeemRequest, WsRedeemEvent, AggWebSocket, WsOrderEvent, WsWithdrawalLifecycleEvent, ChartBarsMeta, WsCandleInterval, WsTrade, AggregatedOrderbookResponse, Venue as Venue$1, VenueKeyStatus, AggLinkAccountBody, AggLinkAccountResult, AggLinkAccountWalletConfirmBody, AggLinkAccountConfirmResult, Category, UserActivityQuery, UserActivityItem, PaginatedResponse, LeaderboardMetric, LeaderboardRow, CandleInterval, OrderbookState, OrderbookQuoteResponse, OrderListQuery, TradeExecutorOrder, SmartRouteSide, ExecutionMode, SmartRouteResponse, BatchOrderbooksResponse, RecurringCryptoDuration, RecurringCryptoVenueMarket, RecurringCryptoWindowMarket, RecurrenceFilter, SportsLiveResponse, SportsLiveState, MidpointRow, BatchMidpointsResponse, AppClientConfigResponse, AppTradingMode, VenueMarket as VenueMarket$1, HostedVenueWithdrawalRequest } from '@agg-build/sdk';
6
6
  export { SportsGameStatus, SportsLiveParticipant, SportsLiveResponse, SportsLiveState, TurnstileChallengeError } from '@agg-build/sdk';
7
7
  import React, { ReactNode } from 'react';
8
8
  export { UseManagedBalancesOptions, UseWithdrawEstimateParams, UseWithdrawFlowOptions, UseWithdrawFlowResult, UseWithdrawManagedOptions, UseWithdrawPreviewParams, UseWithdrawalLifecycleResult, WithdrawFeeEstimate, WithdrawalLifecycleState, useManagedBalances, useWithdrawEstimate, useWithdrawFlow, useWithdrawManaged, useWithdrawPreview, useWithdrawalLifecycle } from './withdraw.js';
@@ -219,6 +219,12 @@ type GetPositionsQuery = {
219
219
  cursor?: string | undefined;
220
220
  limit?: number | undefined;
221
221
  status?: "active" | "closed" | undefined;
222
+ venueEventId?: string | undefined;
223
+ venueMarketId?: string | undefined;
224
+ /** Only positions on events in any of these categories (a league is a category). At most 20. */
225
+ categoryIds?: string[] | undefined;
226
+ /** `realizedPnl`: highest realized P&L first. Live positions only. */
227
+ sort?: "realizedPnl" | undefined;
222
228
  };
223
229
  type OrderListItem = {
224
230
  status: string;
@@ -370,6 +376,8 @@ type PositionGroup = {
370
376
  currentPrice: number;
371
377
  totalValue: number;
372
378
  unrealizedPnlPercent: number;
379
+ /** Realized P&L across the legs (sells + settlement), before fees. USD. */
380
+ realizedPnl: number;
373
381
  priceSource: PriceSource;
374
382
  bookQuality: BookQuality;
375
383
  }[];
@@ -5701,6 +5709,8 @@ declare function useSmartRoute(options: UseSmartRouteOptions): UseSmartRouteResu
5701
5709
  interface LimitOrderVenueQuoteRequest {
5702
5710
  venue: Venue$1;
5703
5711
  venueMarketOutcomeId: string;
5712
+ /** The venue's own market; its tick and size rules are fetched with the selected market's. */
5713
+ venueMarketId?: string;
5704
5714
  }
5705
5715
  interface UseLimitOrderVenueQuotesOptions {
5706
5716
  requests: LimitOrderVenueQuoteRequest[];
@@ -5719,6 +5729,10 @@ interface LimitOrderVenueQuoteResult {
5719
5729
  request: LimitOrderVenueQuoteRequest;
5720
5730
  data: SmartRouteResponse | null;
5721
5731
  tickSize?: number | null;
5732
+ /** Limit size step, raw 6-dec shares, from orderbook metadata. Null = 1-raw step. */
5733
+ sizeStepRaw?: string | null;
5734
+ /** Limit size minimum, raw 6-dec shares, from orderbook metadata. Null = none known. */
5735
+ minSizeRaw?: string | null;
5722
5736
  isLoading: boolean;
5723
5737
  isFetching: boolean;
5724
5738
  error: Error | null;
@@ -5726,11 +5740,19 @@ interface LimitOrderVenueQuoteResult {
5726
5740
  }
5727
5741
  interface UseLimitOrderVenueQuotesResult {
5728
5742
  quotes: LimitOrderVenueQuoteResult[];
5743
+ /** The market's orderbook metadata (ticks, size rules) has not loaded yet. */
5744
+ isMetadataPending: boolean;
5729
5745
  isLoading: boolean;
5730
5746
  isFetching: boolean;
5731
5747
  error: Error | null;
5732
5748
  refetch: () => Promise<unknown>;
5733
5749
  }
5750
+ interface LimitOrderSizeRules {
5751
+ sizeStepRaw?: string;
5752
+ minSizeRaw?: string;
5753
+ }
5754
+ /** Per-venue limit size rules from the same batch orderbook metadata as ticks. */
5755
+ declare const resolveLimitOrderSizeRulesByVenue: (response: BatchOrderbooksResponse | null | undefined) => Map<Venue$1, LimitOrderSizeRules>;
5734
5756
  /**
5735
5757
  * Fetches informational single-venue quotes for limit-order routing cards.
5736
5758
  * Quote IDs are intentionally not consumed by the limit-order execution flow.
@@ -7763,7 +7785,8 @@ override?: AppTradingMode): UseResolvedExecutionModeResult;
7763
7785
 
7764
7786
  interface UseSettlementDetailsDataOptions {
7765
7787
  eventId: string;
7766
- market: Pick<VenueMarket$1, "id" | "venue" | "externalIdentifier">;
7788
+ /** Omit when only the event's details (description, settlementDiff) are needed. */
7789
+ market?: Pick<VenueMarket$1, "id" | "venue" | "externalIdentifier">;
7767
7790
  enabled: boolean;
7768
7791
  needsEvent: boolean;
7769
7792
  needsMarket: boolean;
@@ -8270,4 +8293,4 @@ declare function useHostedVenueTransfers(accountId: string, environment: Environ
8270
8293
  clear: () => void;
8271
8294
  };
8272
8295
 
8273
- export { AUTH_CHOOSER_OPEN_EVENT, type AggAuthContextValue, type AggAuthSignInOptions, type AggBalanceContextValue, AggBalanceProvider, AggProvider, type AggProviderProps, AggProvider as AggSdkProvider, type AggProviderProps as AggSdkProviderProps, type AggUiConfig, type AggUiConfigInput, type AggUiLabels, type AggUiLabelsInput, AggUiProvider, type AggUiTradingExecutionMode, CHART_TIME_RANGES, CONFIRMED_MATCH_STATUSES, type ChartTimeRange, type ClosedPositionTotals, type ComputePriceGapsOptions, DEFAULT_AGG_ROOT_CLASS_NAME, type DagStepProgress, type EventListStateContextValue, EventListStateProvider, type EventListStateSnapshot, type EventTradingContextValue, type EventTradingState, type ExecutionProgressPhase, type ExecutionRawStepProgress, type ExecutionStepProgress, type ExecutionTerminalOrderEvent, type GeoBlockState, type GetOrdersQuery, type GetPositionsQuery, type InvalidateUserActivityOptions, type InvalidateUserMoneyStateOptions, LEADERBOARD_PERIODS, type LeaderboardPeriod, type LimitOrderVenueQuoteRequest, type LimitOrderVenueQuoteResult, type LiveBestPriceCandidate, type LiveBestPriceCandidates, type LiveBestPrices, type LiveCandle, MAX_ORDER_VENUE_MARKET_IDS_PER_REQUEST, MAX_PRICE_GAP_PCT, MIN_PRICE_GAP_PCT, type MarketChartAvailability, type MarketChartCandle, type MarketChartData, type MarketChartVenueData, type MarketOrderbookData, type MarketOrderbookIntegrity, MarketStatus, type MarketTradingState, MatchStatus, MatchType, type OrderEligibility, type OrderEligibilityReason, type OrderListItem, type OrderbookResult, type PositionGroup, type PriceGapValue, type RecurringCryptoIdentity, type RecurringCryptoMarketInstance, type RecurringCryptoTimeline, type RedeemEvent, type RedeemLegLifecycle, type RedeemLifecycleState, RedeemRejectedError, type RollingChartWindow, SPORTS_LIVE_POLL_INTERVAL_MS, SPORTS_SCHEDULED_POLL_INTERVAL_MS, type ScaledCandlePoint, type SdkUiConfig, type SdkUiConfigInput, type SdkUiProviderProps, type SettlementDiff, type SettlementDifference, type SmartRouteLoadingReason, type ThemeMode, TradeSide, type TradingAction, type TradingState, type TradingStateBase, type TradingStateKind, type UseAggAuthOptions, type UseAggAuthReturn, type UseAppConfigResult, type UseArbFeedResult, type UseCancelManagedOrderOptions, type UseCategoriesOptions, type UseCategoryChildrenOptions, type UseEnrichedVenueEventOptions, type UseExecuteManagedOptions, type UseExecutionOrdersForMarketsOptions, type UseExecutionOrdersForMarketsResult, type UseExecutionOrdersOptions, type UseExecutionPositionsOptions, type UseExecutionProgressOptions, type UseExecutionProgressResult, type UseExternalIdOptions, type UseExternalIdReturn, type UseLeaderboardOptions, type UseLimitOrderVenueQuotesOptions, type UseLimitOrderVenueQuotesResult, type UseLinkAccountReturn, type UseLiveCandleOverlayOptions, type UseLiveCandleOverlayResult, type UseLiveCandlesOptions, type UseLiveCandlesResult, type UseLiveMarketResult, type UseMarketArbResult, type UseMarketChartOptions, type UseMarketChartResult, type UseMarketChartsResult, type UseMarketOrderbookOptions, type UseMarketOrderbookResult, type UseMarketOrderbookVenueOutcome, type UseMarketSearchOptions, type UseMidpointsOptions, type UseMidpointsResult, type UseOrderBookOptions, type UseOrderbookQuoteOptions, type UseOrderbookQuoteResult, type UseOrdersOptions, type UsePaperOnboardingResult, type UsePlaceLimitOrderOptions, type UsePositionsOptions, type UseRecurringCryptoMarketsOptions, type UseRedeemLifecycleInput, type UseResolvedExecutionModeResult, type UseRollingChartWindowOptions, type UseSearchOptions, type UseSettlementDetailsDataOptions, type UseSmartRouteOptions, type UseSmartRouteResult, type UseUserActivityOptions, type UseUserHoldingsOptions, type UseVenueEventOptions, type UseVenueEventsOptions, type UseVenueMarketMidpointsOptions, type UseVenueMarketsOptions, type UseVenueSellQuotesOptions, type UseVenueSellQuotesResult, type UseViewportMidpointsOptions, type UseVisibleIdsOptions, type UseVisibleIdsResult, type UserActivityInvalidationStrategy, Venue, type VenueAvailabilityState, type VenueEvent, type VenueEventWithMarkets, type VenueMarket, type VenueMarketOutcome, type VenueSellQuoteRequest, type VenueSellQuoteResult, type WalletActionSendTokenParams, type WalletActions, appConfigQueryKey, buildLiveBestPriceCandidates, computeClosedPositionTotals, computePriceGaps, defaultAggUiConfig, defaultAggUiConfig as defaultSdkUiConfig, executionKeys, extractOutcomeBestCandidate, fetchRecurringCryptoMarkets, findLivePriceById, getBuilder, getOrCreateBuilder, getVenueAvailabilityState, getVisibleVenueIdsByConfig, getVisibleVenuesByConfig, getWalletAddressFromUserProfile, hostedVenueAccountQueryKeys, invalidateBalanceQueries, invalidatePositionQueries, invalidateUserActivityQueries, invalidateUserClaimState, invalidateUserMoneyState, isVenueDisabledByConfig, leaderboardQueryKeys, leaderboardRange, mergeBestPricesPreferringLive, mergeRecurringCryptoWindows, normalizeVenueId, optimizedImageUrl, parseEmail, parseEmailStrict, rangeToSeconds, recurringCryptoTransitionPollInterval, requestAggAuthChooserOpen, resolveAggUiLabels, resolveDefaultMarket as resolveDefaultTradingMarket, resolveEventTradingState, resolveMarketTradingState, resolveMarketWinningOutcome, resolveOrderEligibility, resolveRecurringCryptoIdentity, resolveRecurringCryptoTimeline, resolveRollingWindow, resolveTradingStateKind, retinaImageUrl, sharedKycQueryKeys, sortVenues, sportsLiveQueryKey, sportsLiveRefetchInterval, timeRangeToInterval, tradingReducer, useAggAuth, useAggAuthContext, useAggAuthState, useAggBalance, useAggBalanceContext, useAggBalanceState, useAggClient, useAggLabels, useAggUiConfig, useAggWebSocket, useAppConfig, useArbFeed, useBalanceRefillPolicies, useCachedAppConfig, useCancelManagedOrder, useCategories, useCategoryChildren, useDebouncedValue, useEnrichedVenueEvent, useEventListState, useEventOrderbookData, useEventTradingContext, useExecuteManaged, useExecutionOrders, useExecutionOrdersForMarkets, useExecutionPositions, useExecutionProgress, useExternalId, useGeoBlock, useHostedVenueAccount, useHostedVenueActivity, useHostedVenueTransfers, useLabels, useLeaderboard, useLimitOrderVenueQuotes, useLinkAccount, useLiveBestPriceCandidates, useLiveBestPrices, useLiveCandleOverlay, useLiveCandles, useLiveMarket, useLiveMarketStores, useLiveOutcomePrices, useLiveTrades, useMarketArb, useMarketChart, useMarketCharts, useMarketOrderbook, useMarketSearch, useMidpoints, useOnBalanceUpdate, useOnOrderEvent, useOnOrderSubmitted, useOnRedeemEvent, useOnWithdrawalLifecycle, useOptionalAggClient, useOrderBook, useOrderbookQuote, useOrders, usePaperOnboarding, usePlaceLimitOrder, usePositions, useRampQuotes, useRampSession, useRecurringCryptoMarkets, useRedeem, useRedeemEligibleCount, useRedeemLifecycle, useRedeemLifecycles, useResolvedExecutionMode, useRollingChartWindow, useSdkLabels, useSdkUiConfig, useSearch, useSettlementDetailsData, useSharedKyc, useSmartRoute, useSportsLive, useUserActivity, useUserHoldings, useVenueEvent, useVenueEvents, useVenueKeyStatus, useVenueMarketMidpoints, useVenueMarkets, useVenueSellQuotes, useViewportMidpoints, useVisibleIds, userActivityQueryKeys, venueKeyQueryKeys };
8296
+ export { AUTH_CHOOSER_OPEN_EVENT, type AggAuthContextValue, type AggAuthSignInOptions, type AggBalanceContextValue, AggBalanceProvider, AggProvider, type AggProviderProps, AggProvider as AggSdkProvider, type AggProviderProps as AggSdkProviderProps, type AggUiConfig, type AggUiConfigInput, type AggUiLabels, type AggUiLabelsInput, AggUiProvider, type AggUiTradingExecutionMode, CHART_TIME_RANGES, CONFIRMED_MATCH_STATUSES, type ChartTimeRange, type ClosedPositionTotals, type ComputePriceGapsOptions, DEFAULT_AGG_ROOT_CLASS_NAME, type DagStepProgress, type EventListStateContextValue, EventListStateProvider, type EventListStateSnapshot, type EventTradingContextValue, type EventTradingState, type ExecutionProgressPhase, type ExecutionRawStepProgress, type ExecutionStepProgress, type ExecutionTerminalOrderEvent, type GeoBlockState, type GetOrdersQuery, type GetPositionsQuery, type InvalidateUserActivityOptions, type InvalidateUserMoneyStateOptions, LEADERBOARD_PERIODS, type LeaderboardPeriod, type LimitOrderSizeRules, type LimitOrderVenueQuoteRequest, type LimitOrderVenueQuoteResult, type LiveBestPriceCandidate, type LiveBestPriceCandidates, type LiveBestPrices, type LiveCandle, MAX_ORDER_VENUE_MARKET_IDS_PER_REQUEST, MAX_PRICE_GAP_PCT, MIN_PRICE_GAP_PCT, type MarketChartAvailability, type MarketChartCandle, type MarketChartData, type MarketChartVenueData, type MarketOrderbookData, type MarketOrderbookIntegrity, MarketStatus, type MarketTradingState, MatchStatus, MatchType, type OrderEligibility, type OrderEligibilityReason, type OrderListItem, type OrderbookResult, type PositionGroup, type PriceGapValue, type RecurringCryptoIdentity, type RecurringCryptoMarketInstance, type RecurringCryptoTimeline, type RedeemEvent, type RedeemLegLifecycle, type RedeemLifecycleState, RedeemRejectedError, type RollingChartWindow, SPORTS_LIVE_POLL_INTERVAL_MS, SPORTS_SCHEDULED_POLL_INTERVAL_MS, type ScaledCandlePoint, type SdkUiConfig, type SdkUiConfigInput, type SdkUiProviderProps, type SettlementDiff, type SettlementDifference, type SmartRouteLoadingReason, type ThemeMode, TradeSide, type TradingAction, type TradingState, type TradingStateBase, type TradingStateKind, type UseAggAuthOptions, type UseAggAuthReturn, type UseAppConfigResult, type UseArbFeedResult, type UseCancelManagedOrderOptions, type UseCategoriesOptions, type UseCategoryChildrenOptions, type UseEnrichedVenueEventOptions, type UseExecuteManagedOptions, type UseExecutionOrdersForMarketsOptions, type UseExecutionOrdersForMarketsResult, type UseExecutionOrdersOptions, type UseExecutionPositionsOptions, type UseExecutionProgressOptions, type UseExecutionProgressResult, type UseExternalIdOptions, type UseExternalIdReturn, type UseLeaderboardOptions, type UseLimitOrderVenueQuotesOptions, type UseLimitOrderVenueQuotesResult, type UseLinkAccountReturn, type UseLiveCandleOverlayOptions, type UseLiveCandleOverlayResult, type UseLiveCandlesOptions, type UseLiveCandlesResult, type UseLiveMarketResult, type UseMarketArbResult, type UseMarketChartOptions, type UseMarketChartResult, type UseMarketChartsResult, type UseMarketOrderbookOptions, type UseMarketOrderbookResult, type UseMarketOrderbookVenueOutcome, type UseMarketSearchOptions, type UseMidpointsOptions, type UseMidpointsResult, type UseOrderBookOptions, type UseOrderbookQuoteOptions, type UseOrderbookQuoteResult, type UseOrdersOptions, type UsePaperOnboardingResult, type UsePlaceLimitOrderOptions, type UsePositionsOptions, type UseRecurringCryptoMarketsOptions, type UseRedeemLifecycleInput, type UseResolvedExecutionModeResult, type UseRollingChartWindowOptions, type UseSearchOptions, type UseSettlementDetailsDataOptions, type UseSmartRouteOptions, type UseSmartRouteResult, type UseUserActivityOptions, type UseUserHoldingsOptions, type UseVenueEventOptions, type UseVenueEventsOptions, type UseVenueMarketMidpointsOptions, type UseVenueMarketsOptions, type UseVenueSellQuotesOptions, type UseVenueSellQuotesResult, type UseViewportMidpointsOptions, type UseVisibleIdsOptions, type UseVisibleIdsResult, type UserActivityInvalidationStrategy, Venue, type VenueAvailabilityState, type VenueEvent, type VenueEventWithMarkets, type VenueMarket, type VenueMarketOutcome, type VenueSellQuoteRequest, type VenueSellQuoteResult, type WalletActionSendTokenParams, type WalletActions, appConfigQueryKey, buildLiveBestPriceCandidates, computeClosedPositionTotals, computePriceGaps, defaultAggUiConfig, defaultAggUiConfig as defaultSdkUiConfig, executionKeys, extractOutcomeBestCandidate, fetchRecurringCryptoMarkets, findLivePriceById, getBuilder, getOrCreateBuilder, getVenueAvailabilityState, getVisibleVenueIdsByConfig, getVisibleVenuesByConfig, getWalletAddressFromUserProfile, hostedVenueAccountQueryKeys, invalidateBalanceQueries, invalidatePositionQueries, invalidateUserActivityQueries, invalidateUserClaimState, invalidateUserMoneyState, isVenueDisabledByConfig, leaderboardQueryKeys, leaderboardRange, mergeBestPricesPreferringLive, mergeRecurringCryptoWindows, normalizeVenueId, optimizedImageUrl, parseEmail, parseEmailStrict, rangeToSeconds, recurringCryptoTransitionPollInterval, requestAggAuthChooserOpen, resolveAggUiLabels, resolveDefaultMarket as resolveDefaultTradingMarket, resolveEventTradingState, resolveLimitOrderSizeRulesByVenue, resolveMarketTradingState, resolveMarketWinningOutcome, resolveOrderEligibility, resolveRecurringCryptoIdentity, resolveRecurringCryptoTimeline, resolveRollingWindow, resolveTradingStateKind, retinaImageUrl, sharedKycQueryKeys, sortVenues, sportsLiveQueryKey, sportsLiveRefetchInterval, timeRangeToInterval, tradingReducer, useAggAuth, useAggAuthContext, useAggAuthState, useAggBalance, useAggBalanceContext, useAggBalanceState, useAggClient, useAggLabels, useAggUiConfig, useAggWebSocket, useAppConfig, useArbFeed, useBalanceRefillPolicies, useCachedAppConfig, useCancelManagedOrder, useCategories, useCategoryChildren, useDebouncedValue, useEnrichedVenueEvent, useEventListState, useEventOrderbookData, useEventTradingContext, useExecuteManaged, useExecutionOrders, useExecutionOrdersForMarkets, useExecutionPositions, useExecutionProgress, useExternalId, useGeoBlock, useHostedVenueAccount, useHostedVenueActivity, useHostedVenueTransfers, useLabels, useLeaderboard, useLimitOrderVenueQuotes, useLinkAccount, useLiveBestPriceCandidates, useLiveBestPrices, useLiveCandleOverlay, useLiveCandles, useLiveMarket, useLiveMarketStores, useLiveOutcomePrices, useLiveTrades, useMarketArb, useMarketChart, useMarketCharts, useMarketOrderbook, useMarketSearch, useMidpoints, useOnBalanceUpdate, useOnOrderEvent, useOnOrderSubmitted, useOnRedeemEvent, useOnWithdrawalLifecycle, useOptionalAggClient, useOrderBook, useOrderbookQuote, useOrders, usePaperOnboarding, usePlaceLimitOrder, usePositions, useRampQuotes, useRampSession, useRecurringCryptoMarkets, useRedeem, useRedeemEligibleCount, useRedeemLifecycle, useRedeemLifecycles, useResolvedExecutionMode, useRollingChartWindow, useSdkLabels, useSdkUiConfig, useSearch, useSettlementDetailsData, useSharedKyc, useSmartRoute, useSportsLive, useUserActivity, useUserHoldings, useVenueEvent, useVenueEvents, useVenueKeyStatus, useVenueMarketMidpoints, useVenueMarkets, useVenueSellQuotes, useViewportMidpoints, useVisibleIds, userActivityQueryKeys, venueKeyQueryKeys };
package/dist/index.js CHANGED
@@ -132,6 +132,7 @@ __export(src_exports, {
132
132
  resolveAggUiLabels: () => resolveAggUiLabels,
133
133
  resolveDefaultTradingMarket: () => resolveDefaultMarket,
134
134
  resolveEventTradingState: () => resolveEventTradingState,
135
+ resolveLimitOrderSizeRulesByVenue: () => resolveLimitOrderSizeRulesByVenue,
135
136
  resolveMarketTradingState: () => resolveMarketTradingState,
136
137
  resolveMarketWinningOutcome: () => resolveMarketWinningOutcome,
137
138
  resolveOrderEligibility: () => resolveOrderEligibility,
@@ -9557,6 +9558,7 @@ var getIsDocumentVisible2 = () => {
9557
9558
  if (typeof document === "undefined") return true;
9558
9559
  return document.visibilityState !== "hidden";
9559
9560
  };
9561
+ var MAX_ORDERBOOK_METADATA_MARKET_IDS = 20;
9560
9562
  var getUniqueVenueRequests = (requests) => {
9561
9563
  const requestsByVenue = /* @__PURE__ */ new Map();
9562
9564
  for (const request of requests) {
@@ -9586,6 +9588,21 @@ var resolveLimitOrderTickSizesByVenue = (response) => {
9586
9588
  }
9587
9589
  return tickSizes;
9588
9590
  };
9591
+ var resolveLimitOrderSizeRulesByVenue = (response) => {
9592
+ var _a;
9593
+ const rulesByVenue = /* @__PURE__ */ new Map();
9594
+ const setRules = (venue, entry) => {
9595
+ if (rulesByVenue.has(venue)) return;
9596
+ if (!entry.sizeStepRaw && !entry.minSizeRaw) return;
9597
+ rulesByVenue.set(venue, __spreadValues(__spreadValues({}, entry.sizeStepRaw ? { sizeStepRaw: entry.sizeStepRaw } : {}), entry.minSizeRaw ? { minSizeRaw: entry.minSizeRaw } : {}));
9598
+ };
9599
+ for (const item of (_a = response == null ? void 0 : response.data) != null ? _a : []) {
9600
+ for (const [venue, entry] of Object.entries(item.venueOrderbooks)) setRules(venue, entry);
9601
+ for (const market of item.matchedMarkets) setRules(market.venue, market);
9602
+ if (item.requestedMarket) setRules(item.requestedMarket.venue, item.requestedMarket);
9603
+ }
9604
+ return rulesByVenue;
9605
+ };
9589
9606
  var useLimitOrderVenueQuotes = (options) => {
9590
9607
  var _a, _b;
9591
9608
  const client = useAggClient();
@@ -9607,9 +9624,22 @@ var useLimitOrderVenueQuotes = (options) => {
9607
9624
  const hasRequiredAccount = tradeSide === "buy" || Boolean(accountId);
9608
9625
  const queryEnabled = enabled && hasValidInput && hasRequiredAccount;
9609
9626
  const serializedChainBalances = chainBalances ? JSON.stringify(chainBalances) : null;
9627
+ const metadataMarketIds = marketId ? [
9628
+ .../* @__PURE__ */ new Set([
9629
+ marketId,
9630
+ ...uniqueRequests.flatMap(
9631
+ (request) => request.venueMarketId ? [request.venueMarketId] : []
9632
+ )
9633
+ ])
9634
+ ].slice(0, MAX_ORDERBOOK_METADATA_MARKET_IDS) : [];
9610
9635
  const tickMetadataQuery = (0, import_react_query41.useQuery)({
9611
- queryKey: ["orderbooks", marketId != null ? marketId : "__disabled__", "limit-order-ticks"],
9612
- queryFn: ({ signal }) => client.getOrderbooks({ venueMarketIds: [marketId] }, { signal }),
9636
+ queryKey: [
9637
+ "orderbooks",
9638
+ marketId != null ? marketId : "__disabled__",
9639
+ "limit-order-ticks",
9640
+ metadataMarketIds
9641
+ ],
9642
+ queryFn: ({ signal }) => client.getOrderbooks({ venueMarketIds: metadataMarketIds }, { signal }),
9613
9643
  enabled: enabled && Boolean(marketId),
9614
9644
  staleTime: 6e4,
9615
9645
  gcTime: 5 * 6e4,
@@ -9671,14 +9701,17 @@ var useLimitOrderVenueQuotes = (options) => {
9671
9701
  }))
9672
9702
  });
9673
9703
  const tickSizesByVenue = resolveLimitOrderTickSizesByVenue(tickMetadataQuery.data);
9704
+ const sizeRulesByVenue = resolveLimitOrderSizeRulesByVenue(tickMetadataQuery.data);
9674
9705
  const quotes = queries.map((query, index) => {
9675
- var _a2, _b2;
9706
+ var _a2, _b2, _c, _d, _e, _f;
9676
9707
  const queryError = query.error;
9677
9708
  const request = uniqueRequests[index];
9678
9709
  return {
9679
9710
  request,
9680
9711
  data: (_a2 = query.data) != null ? _a2 : null,
9681
9712
  tickSize: (_b2 = tickSizesByVenue.get(request.venue)) != null ? _b2 : null,
9713
+ sizeStepRaw: (_d = (_c = sizeRulesByVenue.get(request.venue)) == null ? void 0 : _c.sizeStepRaw) != null ? _d : null,
9714
+ minSizeRaw: (_f = (_e = sizeRulesByVenue.get(request.venue)) == null ? void 0 : _e.minSizeRaw) != null ? _f : null,
9682
9715
  isLoading: query.isLoading,
9683
9716
  isFetching: query.isFetching,
9684
9717
  error: queryError instanceof Error ? queryError : queryError ? new Error(String(queryError)) : null,
@@ -9687,6 +9720,8 @@ var useLimitOrderVenueQuotes = (options) => {
9687
9720
  });
9688
9721
  return {
9689
9722
  quotes,
9723
+ // A failed metadata read is not pending: callers fall back to 1-raw sizing.
9724
+ isMetadataPending: Boolean(marketId) && tickMetadataQuery.isPending === true,
9690
9725
  isLoading: quotes.some((quote) => quote.isLoading),
9691
9726
  isFetching: quotes.some((quote) => quote.isFetching),
9692
9727
  error: (_b = (_a = quotes.find((quote) => quote.error)) == null ? void 0 : _a.error) != null ? _b : null,
@@ -11138,8 +11173,9 @@ function useSettlementDetailsData(options) {
11138
11173
  retry: false
11139
11174
  });
11140
11175
  const marketQuery = (0, import_react_query50.useQuery)({
11141
- queryKey: ["settlement-details", "market", client.appId, market.id],
11176
+ queryKey: ["settlement-details", "market", client.appId, market == null ? void 0 : market.id],
11142
11177
  queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
11178
+ if (!market) throw new Error("Selected market details unavailable");
11143
11179
  const response = yield client.getVenueMarkets(
11144
11180
  { venue: market.venue, externalIdentifier: [market.externalIdentifier], limit: 1 },
11145
11181
  { signal }
@@ -11148,7 +11184,7 @@ function useSettlementDetailsData(options) {
11148
11184
  if (!selected) throw new Error("Selected market details unavailable");
11149
11185
  return { selected, markets: response.data };
11150
11186
  }),
11151
- enabled: enabled && needsMarket,
11187
+ enabled: enabled && needsMarket && market != null,
11152
11188
  staleTime: 5 * 6e4,
11153
11189
  gcTime: 10 * 6e4,
11154
11190
  retry: false
@@ -11387,6 +11423,7 @@ function useHostedVenueTransfers(accountId, environment) {
11387
11423
  resolveAggUiLabels,
11388
11424
  resolveDefaultTradingMarket,
11389
11425
  resolveEventTradingState,
11426
+ resolveLimitOrderSizeRulesByVenue,
11390
11427
  resolveMarketTradingState,
11391
11428
  resolveMarketWinningOutcome,
11392
11429
  resolveOrderEligibility,
package/dist/index.mjs CHANGED
@@ -3406,6 +3406,7 @@ var getIsDocumentVisible2 = () => {
3406
3406
  if (typeof document === "undefined") return true;
3407
3407
  return document.visibilityState !== "hidden";
3408
3408
  };
3409
+ var MAX_ORDERBOOK_METADATA_MARKET_IDS = 20;
3409
3410
  var getUniqueVenueRequests = (requests) => {
3410
3411
  const requestsByVenue = /* @__PURE__ */ new Map();
3411
3412
  for (const request of requests) {
@@ -3435,6 +3436,21 @@ var resolveLimitOrderTickSizesByVenue = (response) => {
3435
3436
  }
3436
3437
  return tickSizes;
3437
3438
  };
3439
+ var resolveLimitOrderSizeRulesByVenue = (response) => {
3440
+ var _a;
3441
+ const rulesByVenue = /* @__PURE__ */ new Map();
3442
+ const setRules = (venue, entry) => {
3443
+ if (rulesByVenue.has(venue)) return;
3444
+ if (!entry.sizeStepRaw && !entry.minSizeRaw) return;
3445
+ rulesByVenue.set(venue, __spreadValues(__spreadValues({}, entry.sizeStepRaw ? { sizeStepRaw: entry.sizeStepRaw } : {}), entry.minSizeRaw ? { minSizeRaw: entry.minSizeRaw } : {}));
3446
+ };
3447
+ for (const item of (_a = response == null ? void 0 : response.data) != null ? _a : []) {
3448
+ for (const [venue, entry] of Object.entries(item.venueOrderbooks)) setRules(venue, entry);
3449
+ for (const market of item.matchedMarkets) setRules(market.venue, market);
3450
+ if (item.requestedMarket) setRules(item.requestedMarket.venue, item.requestedMarket);
3451
+ }
3452
+ return rulesByVenue;
3453
+ };
3438
3454
  var useLimitOrderVenueQuotes = (options) => {
3439
3455
  var _a, _b;
3440
3456
  const client = useAggClient();
@@ -3456,9 +3472,22 @@ var useLimitOrderVenueQuotes = (options) => {
3456
3472
  const hasRequiredAccount = tradeSide === "buy" || Boolean(accountId);
3457
3473
  const queryEnabled = enabled && hasValidInput && hasRequiredAccount;
3458
3474
  const serializedChainBalances = chainBalances ? JSON.stringify(chainBalances) : null;
3475
+ const metadataMarketIds = marketId ? [
3476
+ .../* @__PURE__ */ new Set([
3477
+ marketId,
3478
+ ...uniqueRequests.flatMap(
3479
+ (request) => request.venueMarketId ? [request.venueMarketId] : []
3480
+ )
3481
+ ])
3482
+ ].slice(0, MAX_ORDERBOOK_METADATA_MARKET_IDS) : [];
3459
3483
  const tickMetadataQuery = useQuery11({
3460
- queryKey: ["orderbooks", marketId != null ? marketId : "__disabled__", "limit-order-ticks"],
3461
- queryFn: ({ signal }) => client.getOrderbooks({ venueMarketIds: [marketId] }, { signal }),
3484
+ queryKey: [
3485
+ "orderbooks",
3486
+ marketId != null ? marketId : "__disabled__",
3487
+ "limit-order-ticks",
3488
+ metadataMarketIds
3489
+ ],
3490
+ queryFn: ({ signal }) => client.getOrderbooks({ venueMarketIds: metadataMarketIds }, { signal }),
3462
3491
  enabled: enabled && Boolean(marketId),
3463
3492
  staleTime: 6e4,
3464
3493
  gcTime: 5 * 6e4,
@@ -3520,14 +3549,17 @@ var useLimitOrderVenueQuotes = (options) => {
3520
3549
  }))
3521
3550
  });
3522
3551
  const tickSizesByVenue = resolveLimitOrderTickSizesByVenue(tickMetadataQuery.data);
3552
+ const sizeRulesByVenue = resolveLimitOrderSizeRulesByVenue(tickMetadataQuery.data);
3523
3553
  const quotes = queries.map((query, index) => {
3524
- var _a2, _b2;
3554
+ var _a2, _b2, _c, _d, _e, _f;
3525
3555
  const queryError = query.error;
3526
3556
  const request = uniqueRequests[index];
3527
3557
  return {
3528
3558
  request,
3529
3559
  data: (_a2 = query.data) != null ? _a2 : null,
3530
3560
  tickSize: (_b2 = tickSizesByVenue.get(request.venue)) != null ? _b2 : null,
3561
+ sizeStepRaw: (_d = (_c = sizeRulesByVenue.get(request.venue)) == null ? void 0 : _c.sizeStepRaw) != null ? _d : null,
3562
+ minSizeRaw: (_f = (_e = sizeRulesByVenue.get(request.venue)) == null ? void 0 : _e.minSizeRaw) != null ? _f : null,
3531
3563
  isLoading: query.isLoading,
3532
3564
  isFetching: query.isFetching,
3533
3565
  error: queryError instanceof Error ? queryError : queryError ? new Error(String(queryError)) : null,
@@ -3536,6 +3568,8 @@ var useLimitOrderVenueQuotes = (options) => {
3536
3568
  });
3537
3569
  return {
3538
3570
  quotes,
3571
+ // A failed metadata read is not pending: callers fall back to 1-raw sizing.
3572
+ isMetadataPending: Boolean(marketId) && tickMetadataQuery.isPending === true,
3539
3573
  isLoading: quotes.some((quote) => quote.isLoading),
3540
3574
  isFetching: quotes.some((quote) => quote.isFetching),
3541
3575
  error: (_b = (_a = quotes.find((quote) => quote.error)) == null ? void 0 : _a.error) != null ? _b : null,
@@ -4992,8 +5026,9 @@ function useSettlementDetailsData(options) {
4992
5026
  retry: false
4993
5027
  });
4994
5028
  const marketQuery = useQuery16({
4995
- queryKey: ["settlement-details", "market", client.appId, market.id],
5029
+ queryKey: ["settlement-details", "market", client.appId, market == null ? void 0 : market.id],
4996
5030
  queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
5031
+ if (!market) throw new Error("Selected market details unavailable");
4997
5032
  const response = yield client.getVenueMarkets(
4998
5033
  { venue: market.venue, externalIdentifier: [market.externalIdentifier], limit: 1 },
4999
5034
  { signal }
@@ -5002,7 +5037,7 @@ function useSettlementDetailsData(options) {
5002
5037
  if (!selected) throw new Error("Selected market details unavailable");
5003
5038
  return { selected, markets: response.data };
5004
5039
  }),
5005
- enabled: enabled && needsMarket,
5040
+ enabled: enabled && needsMarket && market != null,
5006
5041
  staleTime: 5 * 6e4,
5007
5042
  gcTime: 10 * 6e4,
5008
5043
  retry: false
@@ -5240,6 +5275,7 @@ export {
5240
5275
  resolveAggUiLabels,
5241
5276
  resolveDefaultMarket as resolveDefaultTradingMarket,
5242
5277
  resolveEventTradingState,
5278
+ resolveLimitOrderSizeRulesByVenue,
5243
5279
  resolveMarketTradingState,
5244
5280
  resolveMarketWinningOutcome,
5245
5281
  resolveOrderEligibility,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agg-build/hooks",
3
- "version": "4.24.0",
3
+ "version": "4.26.1",
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",
@@ -83,7 +83,7 @@
83
83
  "react": "^18.0.0 || ^19.0.0",
84
84
  "viem": "^2.0.0",
85
85
  "wagmi": "^3.0.0 || ^2.0.0",
86
- "@agg-build/sdk": "^4.24.0"
86
+ "@agg-build/sdk": "^4.26.0"
87
87
  },
88
88
  "peerDependenciesMeta": {
89
89
  "@solana/wallet-adapter-react": {