@metamask-previews/perps-controller 12.2.0-preview-7cfd8be → 12.2.0-preview-364dd6413

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/PerpsController-method-action-types.cjs.map +1 -1
  3. package/dist/PerpsController-method-action-types.d.cts +58 -3
  4. package/dist/PerpsController-method-action-types.d.cts.map +1 -1
  5. package/dist/PerpsController-method-action-types.d.mts +58 -3
  6. package/dist/PerpsController-method-action-types.d.mts.map +1 -1
  7. package/dist/PerpsController-method-action-types.mjs.map +1 -1
  8. package/dist/PerpsController.cjs +108 -7
  9. package/dist/PerpsController.cjs.map +1 -1
  10. package/dist/PerpsController.d.cts +49 -5
  11. package/dist/PerpsController.d.cts.map +1 -1
  12. package/dist/PerpsController.d.mts +49 -5
  13. package/dist/PerpsController.d.mts.map +1 -1
  14. package/dist/PerpsController.mjs +108 -9
  15. package/dist/PerpsController.mjs.map +1 -1
  16. package/dist/constants/chartConfig.cjs +13 -1
  17. package/dist/constants/chartConfig.cjs.map +1 -1
  18. package/dist/constants/chartConfig.d.cts +12 -0
  19. package/dist/constants/chartConfig.d.cts.map +1 -1
  20. package/dist/constants/chartConfig.d.mts +12 -0
  21. package/dist/constants/chartConfig.d.mts.map +1 -1
  22. package/dist/constants/chartConfig.mjs +12 -0
  23. package/dist/constants/chartConfig.mjs.map +1 -1
  24. package/dist/constants/perpsConfig.cjs +14 -1
  25. package/dist/constants/perpsConfig.cjs.map +1 -1
  26. package/dist/constants/perpsConfig.d.cts +24 -0
  27. package/dist/constants/perpsConfig.d.cts.map +1 -1
  28. package/dist/constants/perpsConfig.d.mts +24 -0
  29. package/dist/constants/perpsConfig.d.mts.map +1 -1
  30. package/dist/constants/perpsConfig.mjs +13 -0
  31. package/dist/constants/perpsConfig.mjs.map +1 -1
  32. package/dist/index.cjs +12 -5
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +5 -5
  35. package/dist/index.d.cts.map +1 -1
  36. package/dist/index.d.mts +5 -5
  37. package/dist/index.d.mts.map +1 -1
  38. package/dist/index.mjs +3 -3
  39. package/dist/index.mjs.map +1 -1
  40. package/dist/selectors.cjs +69 -15
  41. package/dist/selectors.cjs.map +1 -1
  42. package/dist/selectors.d.cts +52 -117
  43. package/dist/selectors.d.cts.map +1 -1
  44. package/dist/selectors.d.mts +52 -117
  45. package/dist/selectors.d.mts.map +1 -1
  46. package/dist/selectors.mjs +65 -15
  47. package/dist/selectors.mjs.map +1 -1
  48. package/dist/services/HyperLiquidClientService.cjs +37 -4
  49. package/dist/services/HyperLiquidClientService.cjs.map +1 -1
  50. package/dist/services/HyperLiquidClientService.d.cts.map +1 -1
  51. package/dist/services/HyperLiquidClientService.d.mts.map +1 -1
  52. package/dist/services/HyperLiquidClientService.mjs +37 -4
  53. package/dist/services/HyperLiquidClientService.mjs.map +1 -1
  54. package/dist/types/index.cjs.map +1 -1
  55. package/dist/types/index.d.cts +1 -0
  56. package/dist/types/index.d.cts.map +1 -1
  57. package/dist/types/index.d.mts +1 -0
  58. package/dist/types/index.d.mts.map +1 -1
  59. package/dist/types/index.mjs.map +1 -1
  60. package/package.json +1 -1
package/dist/index.d.mts CHANGED
@@ -26,9 +26,9 @@
26
26
  * });
27
27
  * ```
28
28
  */
29
- export { PerpsController, getDefaultPerpsControllerState, InitializationState, PerpsMode, DEFAULT_PERPS_MODE, DEFAULT_PRO_LAYOUT_PREFERENCES, } from "./PerpsController.mjs";
30
- export type { PerpsControllerState, PerpsControllerOptions, PerpsControllerMessenger, PerpsControllerGetStateAction, PerpsControllerActions, PerpsControllerEvents, ProLayoutPreferences, ProOrdersSideFilter, ProOrdersSortDirection, ProOrdersSortField, ProPositionsSideFilter, ProPositionsSortDirection, ProPositionsSortField, } from "./PerpsController.mjs";
31
- export type { PerpsControllerApproveSubscriptionBuilderFeeAction, PerpsControllerCalculateFeesAction, PerpsControllerCalculateLiquidationPriceAction, PerpsControllerCalculateMaintenanceMarginAction, PerpsControllerCancelOrderAction, PerpsControllerCancelOrdersAction, PerpsControllerClearDepositResultAction, PerpsControllerClearPendingTradeConfigurationAction, PerpsControllerClearPendingTransactionRequestsAction, PerpsControllerClearWithdrawResultAction, PerpsControllerClosePositionAction, PerpsControllerClosePositionsAction, PerpsControllerClearAttributionContextAction, PerpsControllerCompleteWithdrawalFromHistoryAction, PerpsControllerDepositWithConfirmationAction, PerpsControllerDepositWithOrderAction, PerpsControllerDisconnectAction, PerpsControllerEditOrderAction, PerpsControllerFetchHistoricalCandlesAction, PerpsControllerFlipPositionAction, PerpsControllerGetAccountStateAction, PerpsControllerGetActiveProviderAction, PerpsControllerGetActiveProviderOrNullAction, PerpsControllerGetAttributionContextAction, PerpsControllerGetAvailableDexsAction, PerpsControllerGetBlockExplorerUrlAction, PerpsControllerGetCachedMarketDataForActiveProviderAction, PerpsControllerGetCachedUserDataForActiveProviderAction, PerpsControllerGetUserDataSnapshotAction, PerpsControllerGetCurrentNetworkAction, PerpsControllerGetFundingAction, PerpsControllerGetHistoricalPortfolioAction, PerpsControllerGetMarketDataWithPricesAction, PerpsControllerGetMarketFilterPreferencesAction, PerpsControllerGetMarketCategoriesAction, PerpsControllerGetMarketsAction, PerpsControllerGetMaxLeverageAction, PerpsControllerGetOpenOrdersAction, PerpsControllerGetOrderBookGroupingAction, PerpsControllerGetOrderFillsAction, PerpsControllerGetOrdersAction, PerpsControllerGetPendingTradeConfigurationAction, PerpsControllerGetPositionsAction, PerpsControllerGetTradeConfigurationAction, PerpsControllerGetRecentlyViewedMarketsAction, PerpsControllerGetWatchlistMarketsAction, PerpsControllerGetWebSocketConnectionStateAction, PerpsControllerGetWithdrawalProgressAction, PerpsControllerGetWithdrawalRoutesAction, PerpsControllerInitAction, PerpsControllerInvalidateSubscriptionBenefitsAction, PerpsControllerIsCurrentlyReinitializingAction, PerpsControllerIsFirstTimeUserOnCurrentNetworkAction, PerpsControllerIsWatchlistMarketAction, PerpsControllerMarkFirstOrderCompletedAction, PerpsControllerMarkTutorialCompletedAction, PerpsControllerPlaceOrderAction, PerpsControllerReconnectAction, PerpsControllerRecordMarketViewedAction, PerpsControllerRefreshEligibilityAction, PerpsControllerResetFirstTimeUserStateAction, PerpsControllerResetSelectedPaymentTokenAction, PerpsControllerSaveMarketFilterPreferencesAction, PerpsControllerGetProLayoutPreferencesAction, PerpsControllerSetProLayoutPreferencesAction, PerpsControllerSetPerpsModeAction, PerpsControllerSaveOrderBookGroupingAction, PerpsControllerSavePendingTradeConfigurationAction, PerpsControllerSaveTradeConfigurationAction, PerpsControllerSetAttributionContextAction, PerpsControllerSetLiveDataConfigAction, PerpsControllerSetSelectedPaymentTokenAction, PerpsControllerStartEligibilityMonitoringAction, PerpsControllerStartMarketDataPreloadAction, PerpsControllerStopEligibilityMonitoringAction, PerpsControllerStopMarketDataPreloadAction, PerpsControllerSubscribeToAccountAction, PerpsControllerSubscribeToCandlesAction, PerpsControllerSubscribeToConnectionStateAction, PerpsControllerSubscribeToOICapsAction, PerpsControllerSubscribeToOrderBookAction, PerpsControllerSubscribeToOrderFillsAction, PerpsControllerSubscribeToOrdersAction, PerpsControllerSubscribeToPositionsAction, PerpsControllerSubscribeToPricesAction, PerpsControllerSwitchProviderAction, PerpsControllerToggleTestnetAction, PerpsControllerToggleWatchlistMarketAction, PerpsControllerUpdateMarginAction, PerpsControllerUpdatePositionTPSLAction, PerpsControllerUpdateWithdrawalProgressAction, PerpsControllerUpdateWithdrawalStatusAction, PerpsControllerValidateClosePositionAction, PerpsControllerValidateOrderAction, PerpsControllerValidateWithdrawalAction, PerpsControllerWithdrawAction, } from "./PerpsController-method-action-types.mjs";
29
+ export { PerpsController, getDefaultPerpsControllerState, InitializationState, PerpsMode, DEFAULT_ORDER_BOOK_PREFERENCES, DEFAULT_PERPS_MODE, DEFAULT_PRO_LAYOUT_PREFERENCES, DEFAULT_SELECTED_ORDER_TYPE, } from "./PerpsController.mjs";
30
+ export type { OrderBookListCurrency, OrderBookListMetric, OrderBookPreferences, PerpsControllerState, PerpsControllerOptions, PerpsControllerMessenger, PerpsControllerGetStateAction, PerpsControllerActions, PerpsControllerEvents, ProLayoutPreferences, ProOrdersSideFilter, ProOrdersSortDirection, ProOrdersSortField, ProPositionsSideFilter, ProPositionsSortDirection, ProPositionsSortField, } from "./PerpsController.mjs";
31
+ export type { PerpsControllerApproveSubscriptionBuilderFeeAction, PerpsControllerCalculateFeesAction, PerpsControllerCalculateLiquidationPriceAction, PerpsControllerCalculateMaintenanceMarginAction, PerpsControllerCancelOrderAction, PerpsControllerCancelOrdersAction, PerpsControllerClearDepositResultAction, PerpsControllerClearPendingTradeConfigurationAction, PerpsControllerClearPendingTransactionRequestsAction, PerpsControllerClearWithdrawResultAction, PerpsControllerClosePositionAction, PerpsControllerClosePositionsAction, PerpsControllerClearAttributionContextAction, PerpsControllerCompleteWithdrawalFromHistoryAction, PerpsControllerDepositWithConfirmationAction, PerpsControllerDepositWithOrderAction, PerpsControllerDisconnectAction, PerpsControllerEditOrderAction, PerpsControllerFetchHistoricalCandlesAction, PerpsControllerFlipPositionAction, PerpsControllerGetAccountStateAction, PerpsControllerGetActiveProviderAction, PerpsControllerGetActiveProviderOrNullAction, PerpsControllerGetAttributionContextAction, PerpsControllerGetAvailableDexsAction, PerpsControllerGetBlockExplorerUrlAction, PerpsControllerGetCachedMarketDataForActiveProviderAction, PerpsControllerGetCachedUserDataForActiveProviderAction, PerpsControllerGetUserDataSnapshotAction, PerpsControllerGetCurrentNetworkAction, PerpsControllerGetFundingAction, PerpsControllerGetHistoricalPortfolioAction, PerpsControllerGetMarketDataWithPricesAction, PerpsControllerGetMarketFilterPreferencesAction, PerpsControllerGetMarketCategoriesAction, PerpsControllerGetMarketsAction, PerpsControllerGetMaxLeverageAction, PerpsControllerGetOpenOrdersAction, PerpsControllerGetOrderBookGroupingAction, PerpsControllerGetOrderBookPreferencesAction, PerpsControllerGetOrderFillsAction, PerpsControllerGetOrdersAction, PerpsControllerGetPendingTradeConfigurationAction, PerpsControllerGetPositionsAction, PerpsControllerGetSelectedOrderTypeAction, PerpsControllerGetTradeConfigurationAction, PerpsControllerGetRecentlyViewedMarketsAction, PerpsControllerGetWatchlistMarketsAction, PerpsControllerGetVisibleCandleCountAction, PerpsControllerGetWebSocketConnectionStateAction, PerpsControllerGetWithdrawalProgressAction, PerpsControllerGetWithdrawalRoutesAction, PerpsControllerInitAction, PerpsControllerInvalidateSubscriptionBenefitsAction, PerpsControllerIsCurrentlyReinitializingAction, PerpsControllerIsFirstTimeUserOnCurrentNetworkAction, PerpsControllerIsWatchlistMarketAction, PerpsControllerMarkFirstOrderCompletedAction, PerpsControllerMarkTutorialCompletedAction, PerpsControllerPlaceOrderAction, PerpsControllerReconnectAction, PerpsControllerRecordMarketViewedAction, PerpsControllerRefreshEligibilityAction, PerpsControllerResetFirstTimeUserStateAction, PerpsControllerResetSelectedPaymentTokenAction, PerpsControllerSaveMarketFilterPreferencesAction, PerpsControllerGetProLayoutPreferencesAction, PerpsControllerSetProLayoutPreferencesAction, PerpsControllerSetPerpsModeAction, PerpsControllerSetOrderBookPreferencesAction, PerpsControllerSetSelectedOrderTypeAction, PerpsControllerSaveOrderBookGroupingAction, PerpsControllerSavePendingTradeConfigurationAction, PerpsControllerSaveTradeConfigurationAction, PerpsControllerSetAttributionContextAction, PerpsControllerSetLiveDataConfigAction, PerpsControllerSetSelectedPaymentTokenAction, PerpsControllerSetVisibleCandleCountAction, PerpsControllerStartEligibilityMonitoringAction, PerpsControllerStartMarketDataPreloadAction, PerpsControllerStopEligibilityMonitoringAction, PerpsControllerStopMarketDataPreloadAction, PerpsControllerSubscribeToAccountAction, PerpsControllerSubscribeToCandlesAction, PerpsControllerSubscribeToConnectionStateAction, PerpsControllerSubscribeToOICapsAction, PerpsControllerSubscribeToOrderBookAction, PerpsControllerSubscribeToOrderFillsAction, PerpsControllerSubscribeToOrdersAction, PerpsControllerSubscribeToPositionsAction, PerpsControllerSubscribeToPricesAction, PerpsControllerSwitchProviderAction, PerpsControllerToggleTestnetAction, PerpsControllerToggleWatchlistMarketAction, PerpsControllerUpdateMarginAction, PerpsControllerUpdatePositionTPSLAction, PerpsControllerUpdateWithdrawalProgressAction, PerpsControllerUpdateWithdrawalStatusAction, PerpsControllerValidateClosePositionAction, PerpsControllerValidateOrderAction, PerpsControllerValidateWithdrawalAction, PerpsControllerWithdrawAction, } from "./PerpsController-method-action-types.mjs";
32
32
  export { HyperLiquidProvider } from "./providers/HyperLiquidProvider.mjs";
33
33
  export { WebSocketConnectionState, PerpsAnalyticsEvent, MARKET_CATEGORIES, MarketCategory, } from "./types/index.mjs";
34
34
  export type { RawLedgerUpdate, UserHistoryItem, GetUserHistoryParams, TradeConfiguration, OrderType, TriggerOrderType, StrategyOrderType, OrdinaryOrderType, OrderExecution, TriggerDirection, TpslLinkage, PositionTriggerOrder, MarketType, MarketTypeFilter, InputMethod, TradeAction, TrackingData, TPSLTrackingData, OrderParams, OrderResult, Position, AccountState, ClosePositionParams, ClosePositionsParams, ClosePositionsResult, UpdateMarginParams, MarginResult, FlipPositionParams, InitializeResult, ReadyToTradeResult, DisconnectResult, MarketInfo, PerpsMarketData, ToggleTestnetResult, AssetRoute, SwitchProviderResult, CancelOrderParams, CancelOrderResult, BatchCancelOrdersParams, CancelOrdersParams, CancelOrdersResult, EditOrderParams, DepositParams, DepositWithConfirmationParams, DepositResult, DepositStatus, DepositFlowType, DepositStepInfo, WithdrawParams, WithdrawResult, TransferBetweenDexsParams, TransferBetweenDexsResult, GetHistoricalPortfolioParams, HistoricalPortfolioResult, LiveDataConfig, PerpsControllerConfig, PriceUpdate, OrderFill, CheckEligibilityParams, GetPositionsParams, GetAccountStateParams, GetUserDataSnapshotParams, PerpsUserDataSnapshot, GetOrderFillsParams, GetOrFetchFillsParams, GetOrdersParams, GetFundingParams, GetSupportedPathsParams, GetAvailableDexsParams, GetMarketsParams, GetMarketDataWithPricesParams, SortField, SortDirection, SubscribePricesParams, SubscribePositionsParams, SubscribeOrderFillsParams, SubscribeOrdersParams, SubscribeAccountParams, SubscribeOICapsParams, SubscribeCandlesParams, OrderBookLevel, OrderBookData, SubscribeOrderBookParams, LiquidationPriceParams, MaintenanceMarginParams, FeeCalculationParams, FeeCalculationResult, PerpsSubscriptionBenefits, PerpsSubscriptionUsage, PerpsSubscriptionFeeWaiverStatus, PerpsFeeSource, PerpsFeeResolution, UpdatePositionTPSLParams, Order, Funding, PerpsProvider, PerpsProviderType, PerpsActiveProviderMode, AggregationMode, RoutingStrategy, AggregatedProviderConfig, ProviderError, AggregatedAccountState, PerpsLogger, PerpsTraceName, PerpsTraceValue, PerpsAnalyticsProperties, PerpsAttributionContext, PerpsMetrics, PerpsDebugLogger, PerpsStreamManager, PerpsPerformance, PerpsTracer, PerpsTypedMessageParams, PerpsTransactionParams, PerpsAddTransactionOptions, PerpsInternalAccount, PerpsRemoteFeatureFlagState, PerpsPlatformDependencies, PerpsTerminalMarketService, PerpsGlobalSnapshotRequest, PerpsGlobalSnapshotResult, TerminalAssetMetadata, PerpsCacheType, InvalidateCacheParams, PerpsCacheInvalidator, MarketDataFormatters, PaymentToken, PerpsSelectedPaymentToken, VersionGatedFeatureFlag, } from "./types/index.mjs";
@@ -39,7 +39,7 @@ export { isTransactionRecord, isLastTransactionResult } from "./types/index.mjs"
39
39
  export type { AssetPosition, SpotBalance, PerpsUniverse, PerpsAssetCtx, PredictedFunding, FrontendOrder, SDKOrderParams, ClearinghouseStateResponse, SpotClearinghouseStateResponse, MetaResponse, FrontendOpenOrdersResponse, AllMidsResponse, MetaAndAssetCtxsResponse, PredictedFundingsResponse, SpotMetaResponse, } from "./types/index.mjs";
40
40
  export type { HyperLiquidEndpoints, AssetNetworkConfig, HyperLiquidAssetConfigs, BridgeContractConfig, HyperLiquidBridgeContracts, TransportReconnectConfig, TransportKeepAliveConfig, HyperLiquidTransportConfig, TradingAmountConfig, TradingDefaultsConfig, FeeRatesConfig, HyperLiquidNetwork, } from "./types/index.mjs";
41
41
  export type { PerpsToken } from "./types/index.mjs";
42
- export { CandlePeriod, TimeDuration, ChartInterval, MAX_CANDLE_COUNT, DURATION_CANDLE_PERIODS, CANDLE_PERIODS, DEFAULT_CANDLE_PERIOD, getCandlePeriodsForDuration, getDefaultCandlePeriodForDuration, calculateCandleCount, } from "./constants/index.mjs";
42
+ export { CandlePeriod, TimeDuration, ChartInterval, MAX_CANDLE_COUNT, VISIBLE_CANDLE_COUNT_CONFIG, DURATION_CANDLE_PERIODS, CANDLE_PERIODS, DEFAULT_CANDLE_PERIOD, getCandlePeriodsForDuration, getDefaultCandlePeriodForDuration, calculateCandleCount, } from "./constants/index.mjs";
43
43
  export { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from "./constants/index.mjs";
44
44
  export { DETAILED_ORDER_TYPES, isTPSLOrder } from "./constants/index.mjs";
45
45
  export { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from "./constants/index.mjs";
@@ -83,7 +83,7 @@ export type { FiatRangeConfig } from "./utils/index.mjs";
83
83
  export { PRICE_THRESHOLD, formatWithSignificantDigits, PRICE_RANGES_MINIMAL_VIEW, PRICE_RANGES_UNIVERSAL, formatPerpsFiat, formatPositionSize, formatPnl, formatPercentage, formatFundingRate, } from "./utils/index.mjs";
84
84
  export { PERPS_ERROR_CODES } from "./perpsErrorCodes.mjs";
85
85
  export type { PerpsErrorCode } from "./perpsErrorCodes.mjs";
86
- export { selectIsFirstTimeUser, selectHasPlacedFirstOrder, selectWatchlistMarkets, selectIsWatchlistMarket, selectRecentlyViewedMarkets, selectTradeConfiguration, selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping, selectProLayoutPreferences, selectPerpsMode, } from "./selectors.mjs";
86
+ export { selectIsFirstTimeUser, selectHasPlacedFirstOrder, selectWatchlistMarkets, selectIsWatchlistMarket, selectRecentlyViewedMarkets, selectTradeConfiguration, selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping, selectOrderBookPreferences, selectProLayoutPreferences, selectSelectedOrderType, selectVisibleCandleCount, selectPerpsMode, } from "./selectors.mjs";
87
87
  export { TradingReadinessCache } from "./services/TradingReadinessCache.mjs";
88
88
  export type { ServiceContext } from "./services/ServiceContext.mjs";
89
89
  export { AggregatedOrderBookConnection, processAggregatedOrderBook, } from "./services/AggregatedOrderBookConnection.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -27,7 +27,7 @@
27
27
  * ```
28
28
  */
29
29
  // Core controller and types
30
- export { PerpsController, getDefaultPerpsControllerState, InitializationState, PerpsMode, DEFAULT_PERPS_MODE, DEFAULT_PRO_LAYOUT_PREFERENCES } from "./PerpsController.mjs";
30
+ export { PerpsController, getDefaultPerpsControllerState, InitializationState, PerpsMode, DEFAULT_ORDER_BOOK_PREFERENCES, DEFAULT_PERPS_MODE, DEFAULT_PRO_LAYOUT_PREFERENCES, DEFAULT_SELECTED_ORDER_TYPE } from "./PerpsController.mjs";
31
31
  // Provider interfaces and implementations
32
32
  export { HyperLiquidProvider } from "./providers/HyperLiquidProvider.mjs";
33
33
  // Type definitions (explicit named exports)
@@ -35,7 +35,7 @@ export { WebSocketConnectionState, PerpsAnalyticsEvent, MARKET_CATEGORIES, Marke
35
35
  export { PerpsTraceNames, PerpsTraceOperations, isVersionGatedFeatureFlag } from "./types/index.mjs";
36
36
  export { isTransactionRecord, isLastTransactionResult } from "./types/index.mjs";
37
37
  // Constants (explicit named exports)
38
- export { CandlePeriod, TimeDuration, ChartInterval, MAX_CANDLE_COUNT, DURATION_CANDLE_PERIODS, CANDLE_PERIODS, DEFAULT_CANDLE_PERIOD, getCandlePeriodsForDuration, getDefaultCandlePeriodForDuration, calculateCandleCount } from "./constants/index.mjs";
38
+ export { CandlePeriod, TimeDuration, ChartInterval, MAX_CANDLE_COUNT, VISIBLE_CANDLE_COUNT_CONFIG, DURATION_CANDLE_PERIODS, CANDLE_PERIODS, DEFAULT_CANDLE_PERIOD, getCandlePeriodsForDuration, getDefaultCandlePeriodForDuration, calculateCandleCount } from "./constants/index.mjs";
39
39
  export { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from "./constants/index.mjs";
40
40
  export { DETAILED_ORDER_TYPES, isTPSLOrder } from "./constants/index.mjs";
41
41
  export { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from "./constants/index.mjs";
@@ -69,7 +69,7 @@ export { PRICE_THRESHOLD, formatWithSignificantDigits, PRICE_RANGES_MINIMAL_VIEW
69
69
  // Error codes (explicit named exports)
70
70
  export { PERPS_ERROR_CODES } from "./perpsErrorCodes.mjs";
71
71
  // Selectors (explicit named exports)
72
- export { selectIsFirstTimeUser, selectHasPlacedFirstOrder, selectWatchlistMarkets, selectIsWatchlistMarket, selectRecentlyViewedMarkets, selectTradeConfiguration, selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping, selectProLayoutPreferences, selectPerpsMode } from "./selectors.mjs";
72
+ export { selectIsFirstTimeUser, selectHasPlacedFirstOrder, selectWatchlistMarkets, selectIsWatchlistMarket, selectRecentlyViewedMarkets, selectTradeConfiguration, selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping, selectOrderBookPreferences, selectProLayoutPreferences, selectSelectedOrderType, selectVisibleCandleCount, selectPerpsMode } from "./selectors.mjs";
73
73
  // Services (only externally consumed items)
74
74
  export { TradingReadinessCache } from "./services/TradingReadinessCache.mjs";
75
75
  export { AggregatedOrderBookConnection, processAggregatedOrderBook } from "./services/AggregatedOrderBookConnection.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PerpsController - Protocol-agnostic perpetuals trading controller\n *\n * This module provides a unified interface for perpetual futures trading\n * across multiple protocols with high-performance real-time data handling.\n *\n * Key Features:\n * - Protocol abstraction (HyperLiquid first, extensible to GMX, dYdX, etc.)\n * - Dual data flow: Redux for persistence, direct callbacks for live data\n * - MetaMask native integration with BaseController pattern\n * - Mobile-optimized with throttling and performance considerations\n *\n * Usage:\n * ```typescript\n * import { usePerpsController } from './controllers.js';\n *\n * const { placeOrder, getPositions } = usePerpsController();\n * // Live prices hooks removed with Live Market Prices component\n *\n * // Place a market order\n * await placeOrder({\n * coin: 'ETH',\n * is_buy: true,\n * sz: '0.1',\n * order_type: 'market'\n * });\n * ```\n */\n\n// Core controller and types\nexport {\n PerpsController,\n getDefaultPerpsControllerState,\n InitializationState,\n PerpsMode,\n DEFAULT_PERPS_MODE,\n DEFAULT_PRO_LAYOUT_PREFERENCES,\n} from './PerpsController.js';\nexport type {\n PerpsControllerState,\n PerpsControllerOptions,\n PerpsControllerMessenger,\n PerpsControllerGetStateAction,\n PerpsControllerActions,\n PerpsControllerEvents,\n ProLayoutPreferences,\n ProOrdersSideFilter,\n ProOrdersSortDirection,\n ProOrdersSortField,\n ProPositionsSideFilter,\n ProPositionsSortDirection,\n ProPositionsSortField,\n} from './PerpsController.js';\nexport type {\n PerpsControllerApproveSubscriptionBuilderFeeAction,\n PerpsControllerCalculateFeesAction,\n PerpsControllerCalculateLiquidationPriceAction,\n PerpsControllerCalculateMaintenanceMarginAction,\n PerpsControllerCancelOrderAction,\n PerpsControllerCancelOrdersAction,\n PerpsControllerClearDepositResultAction,\n PerpsControllerClearPendingTradeConfigurationAction,\n PerpsControllerClearPendingTransactionRequestsAction,\n PerpsControllerClearWithdrawResultAction,\n PerpsControllerClosePositionAction,\n PerpsControllerClosePositionsAction,\n PerpsControllerClearAttributionContextAction,\n PerpsControllerCompleteWithdrawalFromHistoryAction,\n PerpsControllerDepositWithConfirmationAction,\n PerpsControllerDepositWithOrderAction,\n PerpsControllerDisconnectAction,\n PerpsControllerEditOrderAction,\n PerpsControllerFetchHistoricalCandlesAction,\n PerpsControllerFlipPositionAction,\n PerpsControllerGetAccountStateAction,\n PerpsControllerGetActiveProviderAction,\n PerpsControllerGetActiveProviderOrNullAction,\n PerpsControllerGetAttributionContextAction,\n PerpsControllerGetAvailableDexsAction,\n PerpsControllerGetBlockExplorerUrlAction,\n PerpsControllerGetCachedMarketDataForActiveProviderAction,\n PerpsControllerGetCachedUserDataForActiveProviderAction,\n PerpsControllerGetUserDataSnapshotAction,\n PerpsControllerGetCurrentNetworkAction,\n PerpsControllerGetFundingAction,\n PerpsControllerGetHistoricalPortfolioAction,\n PerpsControllerGetMarketDataWithPricesAction,\n PerpsControllerGetMarketFilterPreferencesAction,\n PerpsControllerGetMarketCategoriesAction,\n PerpsControllerGetMarketsAction,\n PerpsControllerGetMaxLeverageAction,\n PerpsControllerGetOpenOrdersAction,\n PerpsControllerGetOrderBookGroupingAction,\n PerpsControllerGetOrderFillsAction,\n PerpsControllerGetOrdersAction,\n PerpsControllerGetPendingTradeConfigurationAction,\n PerpsControllerGetPositionsAction,\n PerpsControllerGetTradeConfigurationAction,\n PerpsControllerGetRecentlyViewedMarketsAction,\n PerpsControllerGetWatchlistMarketsAction,\n PerpsControllerGetWebSocketConnectionStateAction,\n PerpsControllerGetWithdrawalProgressAction,\n PerpsControllerGetWithdrawalRoutesAction,\n PerpsControllerInitAction,\n PerpsControllerInvalidateSubscriptionBenefitsAction,\n PerpsControllerIsCurrentlyReinitializingAction,\n PerpsControllerIsFirstTimeUserOnCurrentNetworkAction,\n PerpsControllerIsWatchlistMarketAction,\n PerpsControllerMarkFirstOrderCompletedAction,\n PerpsControllerMarkTutorialCompletedAction,\n PerpsControllerPlaceOrderAction,\n PerpsControllerReconnectAction,\n PerpsControllerRecordMarketViewedAction,\n PerpsControllerRefreshEligibilityAction,\n PerpsControllerResetFirstTimeUserStateAction,\n PerpsControllerResetSelectedPaymentTokenAction,\n PerpsControllerSaveMarketFilterPreferencesAction,\n PerpsControllerGetProLayoutPreferencesAction,\n PerpsControllerSetProLayoutPreferencesAction,\n PerpsControllerSetPerpsModeAction,\n PerpsControllerSaveOrderBookGroupingAction,\n PerpsControllerSavePendingTradeConfigurationAction,\n PerpsControllerSaveTradeConfigurationAction,\n PerpsControllerSetAttributionContextAction,\n PerpsControllerSetLiveDataConfigAction,\n PerpsControllerSetSelectedPaymentTokenAction,\n PerpsControllerStartEligibilityMonitoringAction,\n PerpsControllerStartMarketDataPreloadAction,\n PerpsControllerStopEligibilityMonitoringAction,\n PerpsControllerStopMarketDataPreloadAction,\n PerpsControllerSubscribeToAccountAction,\n PerpsControllerSubscribeToCandlesAction,\n PerpsControllerSubscribeToConnectionStateAction,\n PerpsControllerSubscribeToOICapsAction,\n PerpsControllerSubscribeToOrderBookAction,\n PerpsControllerSubscribeToOrderFillsAction,\n PerpsControllerSubscribeToOrdersAction,\n PerpsControllerSubscribeToPositionsAction,\n PerpsControllerSubscribeToPricesAction,\n PerpsControllerSwitchProviderAction,\n PerpsControllerToggleTestnetAction,\n PerpsControllerToggleWatchlistMarketAction,\n PerpsControllerUpdateMarginAction,\n PerpsControllerUpdatePositionTPSLAction,\n PerpsControllerUpdateWithdrawalProgressAction,\n PerpsControllerUpdateWithdrawalStatusAction,\n PerpsControllerValidateClosePositionAction,\n PerpsControllerValidateOrderAction,\n PerpsControllerValidateWithdrawalAction,\n PerpsControllerWithdrawAction,\n} from './PerpsController-method-action-types.js';\n\n// Provider interfaces and implementations\nexport { HyperLiquidProvider } from './providers/HyperLiquidProvider.js';\n\n// Type definitions (explicit named exports)\nexport {\n WebSocketConnectionState,\n PerpsAnalyticsEvent,\n MARKET_CATEGORIES,\n MarketCategory,\n} from './types/index.js';\nexport type {\n RawLedgerUpdate,\n UserHistoryItem,\n GetUserHistoryParams,\n TradeConfiguration,\n OrderType,\n TriggerOrderType,\n StrategyOrderType,\n OrdinaryOrderType,\n OrderExecution,\n TriggerDirection,\n TpslLinkage,\n PositionTriggerOrder,\n MarketType,\n MarketTypeFilter,\n InputMethod,\n TradeAction,\n TrackingData,\n TPSLTrackingData,\n OrderParams,\n OrderResult,\n Position,\n AccountState,\n ClosePositionParams,\n ClosePositionsParams,\n ClosePositionsResult,\n UpdateMarginParams,\n MarginResult,\n FlipPositionParams,\n InitializeResult,\n ReadyToTradeResult,\n DisconnectResult,\n MarketInfo,\n PerpsMarketData,\n ToggleTestnetResult,\n AssetRoute,\n SwitchProviderResult,\n CancelOrderParams,\n CancelOrderResult,\n BatchCancelOrdersParams,\n CancelOrdersParams,\n CancelOrdersResult,\n EditOrderParams,\n DepositParams,\n DepositWithConfirmationParams,\n DepositResult,\n DepositStatus,\n DepositFlowType,\n DepositStepInfo,\n WithdrawParams,\n WithdrawResult,\n TransferBetweenDexsParams,\n TransferBetweenDexsResult,\n GetHistoricalPortfolioParams,\n HistoricalPortfolioResult,\n LiveDataConfig,\n PerpsControllerConfig,\n PriceUpdate,\n OrderFill,\n CheckEligibilityParams,\n GetPositionsParams,\n GetAccountStateParams,\n GetUserDataSnapshotParams,\n PerpsUserDataSnapshot,\n GetOrderFillsParams,\n GetOrFetchFillsParams,\n GetOrdersParams,\n GetFundingParams,\n GetSupportedPathsParams,\n GetAvailableDexsParams,\n GetMarketsParams,\n GetMarketDataWithPricesParams,\n SortField,\n SortDirection,\n SubscribePricesParams,\n SubscribePositionsParams,\n SubscribeOrderFillsParams,\n SubscribeOrdersParams,\n SubscribeAccountParams,\n SubscribeOICapsParams,\n SubscribeCandlesParams,\n OrderBookLevel,\n OrderBookData,\n SubscribeOrderBookParams,\n LiquidationPriceParams,\n MaintenanceMarginParams,\n FeeCalculationParams,\n FeeCalculationResult,\n PerpsSubscriptionBenefits,\n PerpsSubscriptionUsage,\n PerpsSubscriptionFeeWaiverStatus,\n PerpsFeeSource,\n PerpsFeeResolution,\n UpdatePositionTPSLParams,\n Order,\n Funding,\n PerpsProvider,\n PerpsProviderType,\n PerpsActiveProviderMode,\n AggregationMode,\n RoutingStrategy,\n AggregatedProviderConfig,\n ProviderError,\n AggregatedAccountState,\n PerpsLogger,\n PerpsTraceName,\n PerpsTraceValue,\n PerpsAnalyticsProperties,\n PerpsAttributionContext,\n PerpsMetrics,\n PerpsDebugLogger,\n PerpsStreamManager,\n PerpsPerformance,\n PerpsTracer,\n PerpsTypedMessageParams,\n PerpsTransactionParams,\n PerpsAddTransactionOptions,\n PerpsInternalAccount,\n PerpsRemoteFeatureFlagState,\n PerpsPlatformDependencies,\n PerpsTerminalMarketService,\n PerpsGlobalSnapshotRequest,\n PerpsGlobalSnapshotResult,\n TerminalAssetMetadata,\n PerpsCacheType,\n InvalidateCacheParams,\n PerpsCacheInvalidator,\n MarketDataFormatters,\n PaymentToken,\n PerpsSelectedPaymentToken,\n VersionGatedFeatureFlag,\n} from './types/index.js';\nexport {\n PerpsTraceNames,\n PerpsTraceOperations,\n isVersionGatedFeatureFlag,\n} from './types/index.js';\n\n// Types from sub-modules (re-exported via types/index.ts)\nexport type {\n TestResultStatus,\n TestResult,\n SDKTestType,\n HyperliquidAsset,\n CandleStick,\n CandleData,\n OrderFormState,\n OrderDirection,\n ReconnectOptions,\n ExtendedAssetMeta,\n ExtendedPerpDex,\n} from './types/index.js';\nexport type {\n BaseTransactionResult,\n LastTransactionResult,\n TransactionStatus,\n TransactionRecord,\n} from './types/index.js';\nexport { isTransactionRecord, isLastTransactionResult } from './types/index.js';\nexport type {\n AssetPosition,\n SpotBalance,\n PerpsUniverse,\n PerpsAssetCtx,\n PredictedFunding,\n FrontendOrder,\n SDKOrderParams,\n ClearinghouseStateResponse,\n SpotClearinghouseStateResponse,\n MetaResponse,\n FrontendOpenOrdersResponse,\n AllMidsResponse,\n MetaAndAssetCtxsResponse,\n PredictedFundingsResponse,\n SpotMetaResponse,\n} from './types/index.js';\nexport type {\n HyperLiquidEndpoints,\n AssetNetworkConfig,\n HyperLiquidAssetConfigs,\n BridgeContractConfig,\n HyperLiquidBridgeContracts,\n TransportReconnectConfig,\n TransportKeepAliveConfig,\n HyperLiquidTransportConfig,\n TradingAmountConfig,\n TradingDefaultsConfig,\n FeeRatesConfig,\n HyperLiquidNetwork,\n} from './types/index.js';\nexport type { PerpsToken } from './types/index.js';\n\n// Constants (explicit named exports)\nexport {\n CandlePeriod,\n TimeDuration,\n ChartInterval,\n MAX_CANDLE_COUNT,\n DURATION_CANDLE_PERIODS,\n CANDLE_PERIODS,\n DEFAULT_CANDLE_PERIOD,\n getCandlePeriodsForDuration,\n getDefaultCandlePeriodForDuration,\n calculateCandleCount,\n} from './constants/index.js';\nexport { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from './constants/index.js';\nexport { DETAILED_ORDER_TYPES, isTPSLOrder } from './constants/index.js';\nexport { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from './constants/index.js';\nexport {\n ARBITRUM_MAINNET_CHAIN_ID_HEX,\n ARBITRUM_MAINNET_CHAIN_ID,\n ARBITRUM_TESTNET_CHAIN_ID,\n ARBITRUM_MAINNET_CAIP_CHAIN_ID,\n ARBITRUM_TESTNET_CAIP_CHAIN_ID,\n HYPERLIQUID_MAINNET_CHAIN_ID,\n HYPERLIQUID_TESTNET_CHAIN_ID,\n HYPERLIQUID_MAINNET_CAIP_CHAIN_ID,\n HYPERLIQUID_TESTNET_CAIP_CHAIN_ID,\n HYPERLIQUID_NETWORK_NAME,\n USDC_SYMBOL,\n USDC_NAME,\n USDC_DECIMALS,\n TOKEN_DECIMALS,\n ZERO_ADDRESS,\n ZERO_BALANCE,\n ARBITRUM_SEPOLIA_CHAIN_ID,\n USDC_ETHEREUM_MAINNET_ADDRESS,\n USDC_ARBITRUM_MAINNET_ADDRESS,\n USDC_ARBITRUM_TESTNET_ADDRESS,\n USDC_TOKEN_ICON_URL,\n HYPERLIQUID_ENDPOINTS,\n HYPERLIQUID_ASSET_ICONS_BASE_URL,\n METAMASK_PERPS_ICONS_BASE_URL,\n HYPERLIQUID_ASSET_CONFIGS,\n HYPERLIQUID_BRIDGE_CONTRACTS,\n HYPERLIQUID_TRANSPORT_CONFIG,\n TRADING_DEFAULTS,\n FEE_RATES,\n HIP3_FEE_CONFIG,\n BUILDER_FEE_CONFIG,\n REFERRAL_CONFIG,\n DEPOSIT_CONFIG,\n HYPERLIQUID_WITHDRAWAL_MINUTES,\n getWebSocketEndpoint,\n getChainId,\n getCaipChainId,\n getBridgeInfo,\n getSupportedAssets,\n CAIP_ASSET_NAMESPACES,\n HYPERLIQUID_CONFIG,\n HIP3_ASSET_ID_CONFIG,\n BASIS_POINTS_DIVISOR,\n SPOT_ASSET_ID_OFFSET,\n HIP3_ASSET_MARKET_TYPES,\n TESTNET_HIP3_CONFIG,\n MAINNET_HIP3_CONFIG,\n HIP3_MARGIN_CONFIG,\n INITIAL_AMOUNT_UI_PROGRESS,\n WITHDRAWAL_PROGRESS_STAGES,\n PROGRESS_BAR_COMPLETION_DELAY_MS,\n} from './constants/index.js';\nexport type { SupportedAsset } from './constants/index.js';\nexport { PerpsMeasurementName } from './constants/index.js';\nexport {\n MYX_MAINNET_CHAIN_ID,\n MYX_TESTNET_CHAIN_ID,\n MYX_MAINNET_CAIP_CHAIN_ID,\n MYX_TESTNET_CAIP_CHAIN_ID,\n getMYXChainId,\n MYX_ENDPOINTS,\n getMYXHttpEndpoint,\n MYX_PRICE_DECIMALS,\n MYX_SIZE_DECIMALS,\n MYX_COLLATERAL_DECIMALS,\n USDT_BNB_TESTNET,\n USDT_BNB_MAINNET,\n MYX_ASSET_CONFIGS,\n fromMYXPrice,\n toMYXPrice,\n fromMYXSize,\n toMYXSize,\n fromMYXCollateral,\n MYX_PRICE_POLLING_INTERVAL_MS,\n MYX_HTTP_TIMEOUT_MS,\n MYX_MAX_RETRIES,\n MYX_MAX_LEVERAGE,\n MYX_FEE_RATE,\n MYX_PROTOCOL_FEE_RATE,\n MYX_DEFAULT_SLIPPAGE_BPS,\n MYX_MINIMUM_ORDER_SIZE_USD,\n MYX_EXECUTION_FEE_TOKEN,\n} from './constants/index.js';\nexport {\n PERPS_CONSTANTS,\n WITHDRAWAL_CONSTANTS,\n VALIDATION_THRESHOLDS,\n ORDER_SLIPPAGE_CONFIG,\n CHASE_ORDER_CONFIG,\n MAX_SLIPPAGE_BOUNDS,\n PERFORMANCE_CONFIG,\n TP_SL_CONFIG,\n HYPERLIQUID_ORDER_LIMITS,\n HYPERLIQUID_TWAP_LIMITS,\n CLOSE_POSITION_CONFIG,\n MARGIN_ADJUSTMENT_CONFIG,\n DATA_LAKE_API_CONFIG,\n DECIMAL_PRECISION_CONFIG,\n MARKET_SORTING_CONFIG,\n PROVIDER_CONFIG,\n FUNDING_RATE_CONFIG,\n} from './constants/index.js';\nexport type { SortOptionId } from './constants/index.js';\n\n// Utilities (explicit named exports)\nexport {\n findEvmAccount,\n getEvmAccountFromAccountGroup,\n getSelectedEvmAccount,\n calculateWeightedReturnOnEquity,\n aggregateAccountStates,\n} from './utils/index.js';\nexport type { ReturnOnEquityInput } from './utils/index.js';\nexport { ensureError, isAbortError } from './utils/index.js';\nexport type {\n OrderBookCacheEntry,\n ProcessL2BookDataParams,\n ProcessBboDataParams,\n} from './utils/index.js';\nexport { processL2BookData, processBboData } from './utils/index.js';\nexport type { ValidationDebugLogger } from './utils/index.js';\nexport {\n createErrorResult,\n validateWithdrawalParams,\n validateDepositParams,\n validateAssetSupport,\n validateBalance,\n applyPathFilters,\n getSupportedPaths,\n getMaxOrderValue,\n validateOrderParams,\n validateCoinExists,\n} from './utils/index.js';\nexport {\n TRIGGER_ORDER_TYPES,\n STRATEGY_ORDER_TYPES,\n SCALE_ORDER_COUNT,\n isTriggerOrderType,\n isStrategyOrderType,\n isLimitExecutionOrderType,\n getTriggerExecution,\n getTriggerDirection,\n buildTriggerOrderType,\n buildPositionTriggerOrderFromOrder,\n computeScalePriceLadder,\n computeChaseQuotePrice,\n getPriceTick,\n splitScaleSizes,\n} from './utils/index.js';\nexport {\n adaptTriggerOrderTypeFromSDK,\n adaptPositionTriggerOrderFromSDK,\n adaptTpslLinkageToGrouping,\n} from './utils/index.js';\nexport {\n generatePerpsId,\n generateDepositId,\n generateWithdrawalId,\n generateOrderId,\n generateTransactionId,\n} from './utils/index.js';\nexport {\n calculateOpenInterestUSD,\n isMarketTradable,\n transformMarketData,\n formatChange,\n} from './utils/index.js';\nexport type { HyperLiquidMarketData } from './utils/index.js';\nexport {\n getPerpsConnectionAttemptContext,\n withPerpsConnectionAttemptContext,\n} from './utils/perpsConnectionAttemptContext.js';\nexport type { PerpsConnectionAttemptContext } from './utils/perpsConnectionAttemptContext.js';\nexport {\n MAX_MARKET_PATTERN_LENGTH,\n escapeRegex,\n validateMarketPattern,\n compileMarketPattern,\n matchesMarketPattern,\n shouldIncludeMarket,\n getPerpsDisplaySymbol,\n getPerpsDexFromSymbol,\n calculateFundingCountdown,\n calculate24hHighLow,\n filterMarketsByQuery,\n matchesCategory,\n getMarketTypeFilter,\n applyMarketFilters,\n isHip3Market,\n rankMarketsByQuery,\n getMarketMatchRank,\n} from './utils/index.js';\nexport { MarketMatchRank } from './utils/index.js';\nexport type {\n MarketPatternMatcher,\n CompiledMarketPattern,\n} from './utils/index.js';\nexport type {\n OrderCalculationsDebugLogger,\n CalculateFinalPositionSizeParams,\n CalculateFinalPositionSizeResult,\n CalculateOrderPriceAndSizeParams,\n CalculateOrderPriceAndSizeResult,\n BuildOrdersArrayParams,\n BuildOrdersArrayResult,\n} from './utils/index.js';\nexport {\n calculatePositionSize,\n calculateMarginRequired,\n getMaxAllowedAmount,\n calculateFinalPositionSize,\n calculateOrderPriceAndSize,\n buildOrdersArray,\n} from './utils/index.js';\nexport {\n formatAccountToCaipAccountId,\n isCaipAccountId,\n handleRewardsError,\n} from './utils/index.js';\nexport {\n countSignificantFigures,\n hasExceededSignificantFigures,\n roundToSignificantFigures,\n} from './utils/index.js';\nexport type { SortMarketsParams } from './utils/index.js';\nexport { parseVolume, sortMarkets } from './utils/index.js';\nexport type { StandaloneInfoClientOptions } from './utils/index.js';\nexport {\n createStandaloneInfoClient,\n queryStandaloneClearinghouseStates,\n queryStandaloneOpenOrders,\n} from './utils/index.js';\nexport { stripQuotes, parseCommaSeparatedString } from './utils/index.js';\nexport { generateERC20TransferData } from './utils/index.js';\nexport { wait } from './utils/index.js';\nexport {\n adaptOrderToSDK,\n adaptPositionFromSDK,\n adaptOrderFromSDK,\n adaptMarketFromSDK,\n adaptAccountStateFromSDK,\n buildAssetMapping,\n formatHyperLiquidPrice,\n formatHyperLiquidSize,\n calculateHip3AssetId,\n parseAssetName,\n adaptHyperLiquidLedgerUpdateToUserHistoryItem,\n} from './utils/index.js';\nexport { getEnvironment } from './utils/index.js';\nexport type { FiatRangeConfig } from './utils/index.js';\nexport {\n PRICE_THRESHOLD,\n formatWithSignificantDigits,\n PRICE_RANGES_MINIMAL_VIEW,\n PRICE_RANGES_UNIVERSAL,\n formatPerpsFiat,\n formatPositionSize,\n formatPnl,\n formatPercentage,\n formatFundingRate,\n} from './utils/index.js';\n\n// Error codes (explicit named exports)\nexport { PERPS_ERROR_CODES } from './perpsErrorCodes.js';\nexport type { PerpsErrorCode } from './perpsErrorCodes.js';\n\n// Selectors (explicit named exports)\nexport {\n selectIsFirstTimeUser,\n selectHasPlacedFirstOrder,\n selectWatchlistMarkets,\n selectIsWatchlistMarket,\n selectRecentlyViewedMarkets,\n selectTradeConfiguration,\n selectPendingTradeConfiguration,\n selectMarketFilterPreferences,\n selectOrderBookGrouping,\n selectProLayoutPreferences,\n selectPerpsMode,\n} from './selectors.js';\n\n// Services (only externally consumed items)\nexport { TradingReadinessCache } from './services/TradingReadinessCache.js';\nexport type { ServiceContext } from './services/ServiceContext.js';\nexport {\n AggregatedOrderBookConnection,\n processAggregatedOrderBook,\n} from './services/AggregatedOrderBookConnection.js';\nexport type {\n OrderBookConnectionStatus,\n SubscribeAggregatedOrderBookParams,\n AggregatedOrderBookConnectionOptions,\n} from './services/AggregatedOrderBookConnection.js';\n\n// Removed with Live Market Prices component:\n// - usePerpsPrices\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PerpsController - Protocol-agnostic perpetuals trading controller\n *\n * This module provides a unified interface for perpetual futures trading\n * across multiple protocols with high-performance real-time data handling.\n *\n * Key Features:\n * - Protocol abstraction (HyperLiquid first, extensible to GMX, dYdX, etc.)\n * - Dual data flow: Redux for persistence, direct callbacks for live data\n * - MetaMask native integration with BaseController pattern\n * - Mobile-optimized with throttling and performance considerations\n *\n * Usage:\n * ```typescript\n * import { usePerpsController } from './controllers.js';\n *\n * const { placeOrder, getPositions } = usePerpsController();\n * // Live prices hooks removed with Live Market Prices component\n *\n * // Place a market order\n * await placeOrder({\n * coin: 'ETH',\n * is_buy: true,\n * sz: '0.1',\n * order_type: 'market'\n * });\n * ```\n */\n\n// Core controller and types\nexport {\n PerpsController,\n getDefaultPerpsControllerState,\n InitializationState,\n PerpsMode,\n DEFAULT_ORDER_BOOK_PREFERENCES,\n DEFAULT_PERPS_MODE,\n DEFAULT_PRO_LAYOUT_PREFERENCES,\n DEFAULT_SELECTED_ORDER_TYPE,\n} from './PerpsController.js';\nexport type {\n OrderBookListCurrency,\n OrderBookListMetric,\n OrderBookPreferences,\n PerpsControllerState,\n PerpsControllerOptions,\n PerpsControllerMessenger,\n PerpsControllerGetStateAction,\n PerpsControllerActions,\n PerpsControllerEvents,\n ProLayoutPreferences,\n ProOrdersSideFilter,\n ProOrdersSortDirection,\n ProOrdersSortField,\n ProPositionsSideFilter,\n ProPositionsSortDirection,\n ProPositionsSortField,\n} from './PerpsController.js';\nexport type {\n PerpsControllerApproveSubscriptionBuilderFeeAction,\n PerpsControllerCalculateFeesAction,\n PerpsControllerCalculateLiquidationPriceAction,\n PerpsControllerCalculateMaintenanceMarginAction,\n PerpsControllerCancelOrderAction,\n PerpsControllerCancelOrdersAction,\n PerpsControllerClearDepositResultAction,\n PerpsControllerClearPendingTradeConfigurationAction,\n PerpsControllerClearPendingTransactionRequestsAction,\n PerpsControllerClearWithdrawResultAction,\n PerpsControllerClosePositionAction,\n PerpsControllerClosePositionsAction,\n PerpsControllerClearAttributionContextAction,\n PerpsControllerCompleteWithdrawalFromHistoryAction,\n PerpsControllerDepositWithConfirmationAction,\n PerpsControllerDepositWithOrderAction,\n PerpsControllerDisconnectAction,\n PerpsControllerEditOrderAction,\n PerpsControllerFetchHistoricalCandlesAction,\n PerpsControllerFlipPositionAction,\n PerpsControllerGetAccountStateAction,\n PerpsControllerGetActiveProviderAction,\n PerpsControllerGetActiveProviderOrNullAction,\n PerpsControllerGetAttributionContextAction,\n PerpsControllerGetAvailableDexsAction,\n PerpsControllerGetBlockExplorerUrlAction,\n PerpsControllerGetCachedMarketDataForActiveProviderAction,\n PerpsControllerGetCachedUserDataForActiveProviderAction,\n PerpsControllerGetUserDataSnapshotAction,\n PerpsControllerGetCurrentNetworkAction,\n PerpsControllerGetFundingAction,\n PerpsControllerGetHistoricalPortfolioAction,\n PerpsControllerGetMarketDataWithPricesAction,\n PerpsControllerGetMarketFilterPreferencesAction,\n PerpsControllerGetMarketCategoriesAction,\n PerpsControllerGetMarketsAction,\n PerpsControllerGetMaxLeverageAction,\n PerpsControllerGetOpenOrdersAction,\n PerpsControllerGetOrderBookGroupingAction,\n PerpsControllerGetOrderBookPreferencesAction,\n PerpsControllerGetOrderFillsAction,\n PerpsControllerGetOrdersAction,\n PerpsControllerGetPendingTradeConfigurationAction,\n PerpsControllerGetPositionsAction,\n PerpsControllerGetSelectedOrderTypeAction,\n PerpsControllerGetTradeConfigurationAction,\n PerpsControllerGetRecentlyViewedMarketsAction,\n PerpsControllerGetWatchlistMarketsAction,\n PerpsControllerGetVisibleCandleCountAction,\n PerpsControllerGetWebSocketConnectionStateAction,\n PerpsControllerGetWithdrawalProgressAction,\n PerpsControllerGetWithdrawalRoutesAction,\n PerpsControllerInitAction,\n PerpsControllerInvalidateSubscriptionBenefitsAction,\n PerpsControllerIsCurrentlyReinitializingAction,\n PerpsControllerIsFirstTimeUserOnCurrentNetworkAction,\n PerpsControllerIsWatchlistMarketAction,\n PerpsControllerMarkFirstOrderCompletedAction,\n PerpsControllerMarkTutorialCompletedAction,\n PerpsControllerPlaceOrderAction,\n PerpsControllerReconnectAction,\n PerpsControllerRecordMarketViewedAction,\n PerpsControllerRefreshEligibilityAction,\n PerpsControllerResetFirstTimeUserStateAction,\n PerpsControllerResetSelectedPaymentTokenAction,\n PerpsControllerSaveMarketFilterPreferencesAction,\n PerpsControllerGetProLayoutPreferencesAction,\n PerpsControllerSetProLayoutPreferencesAction,\n PerpsControllerSetPerpsModeAction,\n PerpsControllerSetOrderBookPreferencesAction,\n PerpsControllerSetSelectedOrderTypeAction,\n PerpsControllerSaveOrderBookGroupingAction,\n PerpsControllerSavePendingTradeConfigurationAction,\n PerpsControllerSaveTradeConfigurationAction,\n PerpsControllerSetAttributionContextAction,\n PerpsControllerSetLiveDataConfigAction,\n PerpsControllerSetSelectedPaymentTokenAction,\n PerpsControllerSetVisibleCandleCountAction,\n PerpsControllerStartEligibilityMonitoringAction,\n PerpsControllerStartMarketDataPreloadAction,\n PerpsControllerStopEligibilityMonitoringAction,\n PerpsControllerStopMarketDataPreloadAction,\n PerpsControllerSubscribeToAccountAction,\n PerpsControllerSubscribeToCandlesAction,\n PerpsControllerSubscribeToConnectionStateAction,\n PerpsControllerSubscribeToOICapsAction,\n PerpsControllerSubscribeToOrderBookAction,\n PerpsControllerSubscribeToOrderFillsAction,\n PerpsControllerSubscribeToOrdersAction,\n PerpsControllerSubscribeToPositionsAction,\n PerpsControllerSubscribeToPricesAction,\n PerpsControllerSwitchProviderAction,\n PerpsControllerToggleTestnetAction,\n PerpsControllerToggleWatchlistMarketAction,\n PerpsControllerUpdateMarginAction,\n PerpsControllerUpdatePositionTPSLAction,\n PerpsControllerUpdateWithdrawalProgressAction,\n PerpsControllerUpdateWithdrawalStatusAction,\n PerpsControllerValidateClosePositionAction,\n PerpsControllerValidateOrderAction,\n PerpsControllerValidateWithdrawalAction,\n PerpsControllerWithdrawAction,\n} from './PerpsController-method-action-types.js';\n\n// Provider interfaces and implementations\nexport { HyperLiquidProvider } from './providers/HyperLiquidProvider.js';\n\n// Type definitions (explicit named exports)\nexport {\n WebSocketConnectionState,\n PerpsAnalyticsEvent,\n MARKET_CATEGORIES,\n MarketCategory,\n} from './types/index.js';\nexport type {\n RawLedgerUpdate,\n UserHistoryItem,\n GetUserHistoryParams,\n TradeConfiguration,\n OrderType,\n TriggerOrderType,\n StrategyOrderType,\n OrdinaryOrderType,\n OrderExecution,\n TriggerDirection,\n TpslLinkage,\n PositionTriggerOrder,\n MarketType,\n MarketTypeFilter,\n InputMethod,\n TradeAction,\n TrackingData,\n TPSLTrackingData,\n OrderParams,\n OrderResult,\n Position,\n AccountState,\n ClosePositionParams,\n ClosePositionsParams,\n ClosePositionsResult,\n UpdateMarginParams,\n MarginResult,\n FlipPositionParams,\n InitializeResult,\n ReadyToTradeResult,\n DisconnectResult,\n MarketInfo,\n PerpsMarketData,\n ToggleTestnetResult,\n AssetRoute,\n SwitchProviderResult,\n CancelOrderParams,\n CancelOrderResult,\n BatchCancelOrdersParams,\n CancelOrdersParams,\n CancelOrdersResult,\n EditOrderParams,\n DepositParams,\n DepositWithConfirmationParams,\n DepositResult,\n DepositStatus,\n DepositFlowType,\n DepositStepInfo,\n WithdrawParams,\n WithdrawResult,\n TransferBetweenDexsParams,\n TransferBetweenDexsResult,\n GetHistoricalPortfolioParams,\n HistoricalPortfolioResult,\n LiveDataConfig,\n PerpsControllerConfig,\n PriceUpdate,\n OrderFill,\n CheckEligibilityParams,\n GetPositionsParams,\n GetAccountStateParams,\n GetUserDataSnapshotParams,\n PerpsUserDataSnapshot,\n GetOrderFillsParams,\n GetOrFetchFillsParams,\n GetOrdersParams,\n GetFundingParams,\n GetSupportedPathsParams,\n GetAvailableDexsParams,\n GetMarketsParams,\n GetMarketDataWithPricesParams,\n SortField,\n SortDirection,\n SubscribePricesParams,\n SubscribePositionsParams,\n SubscribeOrderFillsParams,\n SubscribeOrdersParams,\n SubscribeAccountParams,\n SubscribeOICapsParams,\n SubscribeCandlesParams,\n OrderBookLevel,\n OrderBookData,\n SubscribeOrderBookParams,\n LiquidationPriceParams,\n MaintenanceMarginParams,\n FeeCalculationParams,\n FeeCalculationResult,\n PerpsSubscriptionBenefits,\n PerpsSubscriptionUsage,\n PerpsSubscriptionFeeWaiverStatus,\n PerpsFeeSource,\n PerpsFeeResolution,\n UpdatePositionTPSLParams,\n Order,\n Funding,\n PerpsProvider,\n PerpsProviderType,\n PerpsActiveProviderMode,\n AggregationMode,\n RoutingStrategy,\n AggregatedProviderConfig,\n ProviderError,\n AggregatedAccountState,\n PerpsLogger,\n PerpsTraceName,\n PerpsTraceValue,\n PerpsAnalyticsProperties,\n PerpsAttributionContext,\n PerpsMetrics,\n PerpsDebugLogger,\n PerpsStreamManager,\n PerpsPerformance,\n PerpsTracer,\n PerpsTypedMessageParams,\n PerpsTransactionParams,\n PerpsAddTransactionOptions,\n PerpsInternalAccount,\n PerpsRemoteFeatureFlagState,\n PerpsPlatformDependencies,\n PerpsTerminalMarketService,\n PerpsGlobalSnapshotRequest,\n PerpsGlobalSnapshotResult,\n TerminalAssetMetadata,\n PerpsCacheType,\n InvalidateCacheParams,\n PerpsCacheInvalidator,\n MarketDataFormatters,\n PaymentToken,\n PerpsSelectedPaymentToken,\n VersionGatedFeatureFlag,\n} from './types/index.js';\nexport {\n PerpsTraceNames,\n PerpsTraceOperations,\n isVersionGatedFeatureFlag,\n} from './types/index.js';\n\n// Types from sub-modules (re-exported via types/index.ts)\nexport type {\n TestResultStatus,\n TestResult,\n SDKTestType,\n HyperliquidAsset,\n CandleStick,\n CandleData,\n OrderFormState,\n OrderDirection,\n ReconnectOptions,\n ExtendedAssetMeta,\n ExtendedPerpDex,\n} from './types/index.js';\nexport type {\n BaseTransactionResult,\n LastTransactionResult,\n TransactionStatus,\n TransactionRecord,\n} from './types/index.js';\nexport { isTransactionRecord, isLastTransactionResult } from './types/index.js';\nexport type {\n AssetPosition,\n SpotBalance,\n PerpsUniverse,\n PerpsAssetCtx,\n PredictedFunding,\n FrontendOrder,\n SDKOrderParams,\n ClearinghouseStateResponse,\n SpotClearinghouseStateResponse,\n MetaResponse,\n FrontendOpenOrdersResponse,\n AllMidsResponse,\n MetaAndAssetCtxsResponse,\n PredictedFundingsResponse,\n SpotMetaResponse,\n} from './types/index.js';\nexport type {\n HyperLiquidEndpoints,\n AssetNetworkConfig,\n HyperLiquidAssetConfigs,\n BridgeContractConfig,\n HyperLiquidBridgeContracts,\n TransportReconnectConfig,\n TransportKeepAliveConfig,\n HyperLiquidTransportConfig,\n TradingAmountConfig,\n TradingDefaultsConfig,\n FeeRatesConfig,\n HyperLiquidNetwork,\n} from './types/index.js';\nexport type { PerpsToken } from './types/index.js';\n\n// Constants (explicit named exports)\nexport {\n CandlePeriod,\n TimeDuration,\n ChartInterval,\n MAX_CANDLE_COUNT,\n VISIBLE_CANDLE_COUNT_CONFIG,\n DURATION_CANDLE_PERIODS,\n CANDLE_PERIODS,\n DEFAULT_CANDLE_PERIOD,\n getCandlePeriodsForDuration,\n getDefaultCandlePeriodForDuration,\n calculateCandleCount,\n} from './constants/index.js';\nexport { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from './constants/index.js';\nexport { DETAILED_ORDER_TYPES, isTPSLOrder } from './constants/index.js';\nexport { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from './constants/index.js';\nexport {\n ARBITRUM_MAINNET_CHAIN_ID_HEX,\n ARBITRUM_MAINNET_CHAIN_ID,\n ARBITRUM_TESTNET_CHAIN_ID,\n ARBITRUM_MAINNET_CAIP_CHAIN_ID,\n ARBITRUM_TESTNET_CAIP_CHAIN_ID,\n HYPERLIQUID_MAINNET_CHAIN_ID,\n HYPERLIQUID_TESTNET_CHAIN_ID,\n HYPERLIQUID_MAINNET_CAIP_CHAIN_ID,\n HYPERLIQUID_TESTNET_CAIP_CHAIN_ID,\n HYPERLIQUID_NETWORK_NAME,\n USDC_SYMBOL,\n USDC_NAME,\n USDC_DECIMALS,\n TOKEN_DECIMALS,\n ZERO_ADDRESS,\n ZERO_BALANCE,\n ARBITRUM_SEPOLIA_CHAIN_ID,\n USDC_ETHEREUM_MAINNET_ADDRESS,\n USDC_ARBITRUM_MAINNET_ADDRESS,\n USDC_ARBITRUM_TESTNET_ADDRESS,\n USDC_TOKEN_ICON_URL,\n HYPERLIQUID_ENDPOINTS,\n HYPERLIQUID_ASSET_ICONS_BASE_URL,\n METAMASK_PERPS_ICONS_BASE_URL,\n HYPERLIQUID_ASSET_CONFIGS,\n HYPERLIQUID_BRIDGE_CONTRACTS,\n HYPERLIQUID_TRANSPORT_CONFIG,\n TRADING_DEFAULTS,\n FEE_RATES,\n HIP3_FEE_CONFIG,\n BUILDER_FEE_CONFIG,\n REFERRAL_CONFIG,\n DEPOSIT_CONFIG,\n HYPERLIQUID_WITHDRAWAL_MINUTES,\n getWebSocketEndpoint,\n getChainId,\n getCaipChainId,\n getBridgeInfo,\n getSupportedAssets,\n CAIP_ASSET_NAMESPACES,\n HYPERLIQUID_CONFIG,\n HIP3_ASSET_ID_CONFIG,\n BASIS_POINTS_DIVISOR,\n SPOT_ASSET_ID_OFFSET,\n HIP3_ASSET_MARKET_TYPES,\n TESTNET_HIP3_CONFIG,\n MAINNET_HIP3_CONFIG,\n HIP3_MARGIN_CONFIG,\n INITIAL_AMOUNT_UI_PROGRESS,\n WITHDRAWAL_PROGRESS_STAGES,\n PROGRESS_BAR_COMPLETION_DELAY_MS,\n} from './constants/index.js';\nexport type { SupportedAsset } from './constants/index.js';\nexport { PerpsMeasurementName } from './constants/index.js';\nexport {\n MYX_MAINNET_CHAIN_ID,\n MYX_TESTNET_CHAIN_ID,\n MYX_MAINNET_CAIP_CHAIN_ID,\n MYX_TESTNET_CAIP_CHAIN_ID,\n getMYXChainId,\n MYX_ENDPOINTS,\n getMYXHttpEndpoint,\n MYX_PRICE_DECIMALS,\n MYX_SIZE_DECIMALS,\n MYX_COLLATERAL_DECIMALS,\n USDT_BNB_TESTNET,\n USDT_BNB_MAINNET,\n MYX_ASSET_CONFIGS,\n fromMYXPrice,\n toMYXPrice,\n fromMYXSize,\n toMYXSize,\n fromMYXCollateral,\n MYX_PRICE_POLLING_INTERVAL_MS,\n MYX_HTTP_TIMEOUT_MS,\n MYX_MAX_RETRIES,\n MYX_MAX_LEVERAGE,\n MYX_FEE_RATE,\n MYX_PROTOCOL_FEE_RATE,\n MYX_DEFAULT_SLIPPAGE_BPS,\n MYX_MINIMUM_ORDER_SIZE_USD,\n MYX_EXECUTION_FEE_TOKEN,\n} from './constants/index.js';\nexport {\n PERPS_CONSTANTS,\n WITHDRAWAL_CONSTANTS,\n VALIDATION_THRESHOLDS,\n ORDER_SLIPPAGE_CONFIG,\n CHASE_ORDER_CONFIG,\n MAX_SLIPPAGE_BOUNDS,\n PERFORMANCE_CONFIG,\n TP_SL_CONFIG,\n HYPERLIQUID_ORDER_LIMITS,\n HYPERLIQUID_TWAP_LIMITS,\n CLOSE_POSITION_CONFIG,\n MARGIN_ADJUSTMENT_CONFIG,\n DATA_LAKE_API_CONFIG,\n DECIMAL_PRECISION_CONFIG,\n MARKET_SORTING_CONFIG,\n PROVIDER_CONFIG,\n FUNDING_RATE_CONFIG,\n} from './constants/index.js';\nexport type { SortOptionId } from './constants/index.js';\n\n// Utilities (explicit named exports)\nexport {\n findEvmAccount,\n getEvmAccountFromAccountGroup,\n getSelectedEvmAccount,\n calculateWeightedReturnOnEquity,\n aggregateAccountStates,\n} from './utils/index.js';\nexport type { ReturnOnEquityInput } from './utils/index.js';\nexport { ensureError, isAbortError } from './utils/index.js';\nexport type {\n OrderBookCacheEntry,\n ProcessL2BookDataParams,\n ProcessBboDataParams,\n} from './utils/index.js';\nexport { processL2BookData, processBboData } from './utils/index.js';\nexport type { ValidationDebugLogger } from './utils/index.js';\nexport {\n createErrorResult,\n validateWithdrawalParams,\n validateDepositParams,\n validateAssetSupport,\n validateBalance,\n applyPathFilters,\n getSupportedPaths,\n getMaxOrderValue,\n validateOrderParams,\n validateCoinExists,\n} from './utils/index.js';\nexport {\n TRIGGER_ORDER_TYPES,\n STRATEGY_ORDER_TYPES,\n SCALE_ORDER_COUNT,\n isTriggerOrderType,\n isStrategyOrderType,\n isLimitExecutionOrderType,\n getTriggerExecution,\n getTriggerDirection,\n buildTriggerOrderType,\n buildPositionTriggerOrderFromOrder,\n computeScalePriceLadder,\n computeChaseQuotePrice,\n getPriceTick,\n splitScaleSizes,\n} from './utils/index.js';\nexport {\n adaptTriggerOrderTypeFromSDK,\n adaptPositionTriggerOrderFromSDK,\n adaptTpslLinkageToGrouping,\n} from './utils/index.js';\nexport {\n generatePerpsId,\n generateDepositId,\n generateWithdrawalId,\n generateOrderId,\n generateTransactionId,\n} from './utils/index.js';\nexport {\n calculateOpenInterestUSD,\n isMarketTradable,\n transformMarketData,\n formatChange,\n} from './utils/index.js';\nexport type { HyperLiquidMarketData } from './utils/index.js';\nexport {\n getPerpsConnectionAttemptContext,\n withPerpsConnectionAttemptContext,\n} from './utils/perpsConnectionAttemptContext.js';\nexport type { PerpsConnectionAttemptContext } from './utils/perpsConnectionAttemptContext.js';\nexport {\n MAX_MARKET_PATTERN_LENGTH,\n escapeRegex,\n validateMarketPattern,\n compileMarketPattern,\n matchesMarketPattern,\n shouldIncludeMarket,\n getPerpsDisplaySymbol,\n getPerpsDexFromSymbol,\n calculateFundingCountdown,\n calculate24hHighLow,\n filterMarketsByQuery,\n matchesCategory,\n getMarketTypeFilter,\n applyMarketFilters,\n isHip3Market,\n rankMarketsByQuery,\n getMarketMatchRank,\n} from './utils/index.js';\nexport { MarketMatchRank } from './utils/index.js';\nexport type {\n MarketPatternMatcher,\n CompiledMarketPattern,\n} from './utils/index.js';\nexport type {\n OrderCalculationsDebugLogger,\n CalculateFinalPositionSizeParams,\n CalculateFinalPositionSizeResult,\n CalculateOrderPriceAndSizeParams,\n CalculateOrderPriceAndSizeResult,\n BuildOrdersArrayParams,\n BuildOrdersArrayResult,\n} from './utils/index.js';\nexport {\n calculatePositionSize,\n calculateMarginRequired,\n getMaxAllowedAmount,\n calculateFinalPositionSize,\n calculateOrderPriceAndSize,\n buildOrdersArray,\n} from './utils/index.js';\nexport {\n formatAccountToCaipAccountId,\n isCaipAccountId,\n handleRewardsError,\n} from './utils/index.js';\nexport {\n countSignificantFigures,\n hasExceededSignificantFigures,\n roundToSignificantFigures,\n} from './utils/index.js';\nexport type { SortMarketsParams } from './utils/index.js';\nexport { parseVolume, sortMarkets } from './utils/index.js';\nexport type { StandaloneInfoClientOptions } from './utils/index.js';\nexport {\n createStandaloneInfoClient,\n queryStandaloneClearinghouseStates,\n queryStandaloneOpenOrders,\n} from './utils/index.js';\nexport { stripQuotes, parseCommaSeparatedString } from './utils/index.js';\nexport { generateERC20TransferData } from './utils/index.js';\nexport { wait } from './utils/index.js';\nexport {\n adaptOrderToSDK,\n adaptPositionFromSDK,\n adaptOrderFromSDK,\n adaptMarketFromSDK,\n adaptAccountStateFromSDK,\n buildAssetMapping,\n formatHyperLiquidPrice,\n formatHyperLiquidSize,\n calculateHip3AssetId,\n parseAssetName,\n adaptHyperLiquidLedgerUpdateToUserHistoryItem,\n} from './utils/index.js';\nexport { getEnvironment } from './utils/index.js';\nexport type { FiatRangeConfig } from './utils/index.js';\nexport {\n PRICE_THRESHOLD,\n formatWithSignificantDigits,\n PRICE_RANGES_MINIMAL_VIEW,\n PRICE_RANGES_UNIVERSAL,\n formatPerpsFiat,\n formatPositionSize,\n formatPnl,\n formatPercentage,\n formatFundingRate,\n} from './utils/index.js';\n\n// Error codes (explicit named exports)\nexport { PERPS_ERROR_CODES } from './perpsErrorCodes.js';\nexport type { PerpsErrorCode } from './perpsErrorCodes.js';\n\n// Selectors (explicit named exports)\nexport {\n selectIsFirstTimeUser,\n selectHasPlacedFirstOrder,\n selectWatchlistMarkets,\n selectIsWatchlistMarket,\n selectRecentlyViewedMarkets,\n selectTradeConfiguration,\n selectPendingTradeConfiguration,\n selectMarketFilterPreferences,\n selectOrderBookGrouping,\n selectOrderBookPreferences,\n selectProLayoutPreferences,\n selectSelectedOrderType,\n selectVisibleCandleCount,\n selectPerpsMode,\n} from './selectors.js';\n\n// Services (only externally consumed items)\nexport { TradingReadinessCache } from './services/TradingReadinessCache.js';\nexport type { ServiceContext } from './services/ServiceContext.js';\nexport {\n AggregatedOrderBookConnection,\n processAggregatedOrderBook,\n} from './services/AggregatedOrderBookConnection.js';\nexport type {\n OrderBookConnectionStatus,\n SubscribeAggregatedOrderBookParams,\n AggregatedOrderBookConnectionOptions,\n} from './services/AggregatedOrderBookConnection.js';\n\n// Removed with Live Market Prices component:\n// - usePerpsPrices\n"]}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectOrderBookGrouping = exports.selectPerpsMode = exports.selectProLayoutPreferences = exports.selectMarketFilterPreferences = exports.selectPendingTradeConfiguration = exports.selectTradeConfiguration = exports.selectRecentlyViewedMarkets = exports.selectIsWatchlistMarket = exports.selectWatchlistMarkets = exports.selectHasPlacedFirstOrder = exports.selectIsFirstTimeUser = void 0;
3
+ exports.selectOrderBookGrouping = exports.selectPerpsMode = exports.selectVisibleCandleCount = exports.selectSelectedOrderType = exports.selectOrderBookPreferences = exports.selectProLayoutPreferences = exports.selectMarketFilterPreferences = exports.selectPendingTradeConfiguration = exports.selectTradeConfiguration = exports.selectRecentlyViewedMarkets = exports.selectIsWatchlistMarket = exports.selectWatchlistMarkets = exports.selectHasPlacedFirstOrder = exports.selectIsFirstTimeUser = void 0;
4
4
  const reselect_1 = require("reselect");
5
+ const chartConfig_js_1 = require("./constants/chartConfig.cjs");
5
6
  const perpsConfig_js_1 = require("./constants/perpsConfig.cjs");
6
7
  /**
7
8
  * Select whether the user is a first-time perps user
@@ -97,16 +98,20 @@ exports.selectTradeConfiguration = (0, reselect_1.createSelector)([
97
98
  return { leverage: config.leverage };
98
99
  });
99
100
  /**
100
- * Select pending trade configuration for a specific market on the current network.
101
- * Returns undefined if config doesn't exist or has expired (more than 5 minutes old).
101
+ * Memoized extractor for the raw pending trade configuration of a market.
102
102
  *
103
- * Usage: selectPendingTradeConfiguration(state, coin)
103
+ * Keyed on `isTestnet`, `tradeConfigurations`, and `coin` so it yields a stable
104
+ * object reference (both the stripped `config` and its `timestamp`) while those
105
+ * inputs are unchanged. The TTL is deliberately NOT evaluated here: because the
106
+ * result is memoized, evaluating expiry inside this selector would freeze the
107
+ * `Date.now()` check between input changes. Expiry is applied per-call by
108
+ * `selectPendingTradeConfiguration` instead.
104
109
  *
105
110
  * @param state - The perps controller state.
106
111
  * @param coin - The market coin symbol.
107
- * @returns The pending trade configuration, or undefined if expired or not found.
112
+ * @returns The stripped config and its save timestamp, or undefined.
108
113
  */
109
- exports.selectPendingTradeConfiguration = (0, reselect_1.createSelector)([
114
+ const selectRawPendingTradeConfiguration = (0, reselect_1.createSelector)([
110
115
  (state) => state?.isTestnet,
111
116
  (state, _coin) => state?.tradeConfigurations,
112
117
  (_state, coin) => coin,
@@ -116,18 +121,38 @@ exports.selectPendingTradeConfiguration = (0, reselect_1.createSelector)([
116
121
  if (!config) {
117
122
  return undefined;
118
123
  }
119
- // Check if config has expired (5 minutes = 300,000 milliseconds)
120
- const now = Date.now();
121
- const FIVE_MINUTES_MS = 5 * 60 * 1000;
122
- const age = now - config.timestamp;
123
- if (age > FIVE_MINUTES_MS) {
124
+ const { timestamp, ...configWithoutTimestamp } = config;
125
+ return { timestamp, config: configWithoutTimestamp };
126
+ });
127
+ /**
128
+ * Select pending trade configuration for a specific market on the current network.
129
+ * Returns undefined if config doesn't exist or has expired.
130
+ *
131
+ * The underlying data extraction is memoized for stable object references, but
132
+ * the TTL is checked on every call (using `Date.now()`) so expiry stays accurate
133
+ * even when the memoized inputs have not changed. This mirrors
134
+ * `PerpsController.getPendingTradeConfiguration`, which also evaluates time on
135
+ * every call.
136
+ *
137
+ * Usage: selectPendingTradeConfiguration(state, coin)
138
+ *
139
+ * @param state - The perps controller state.
140
+ * @param coin - The market coin symbol.
141
+ * @returns The pending trade configuration, or undefined if expired or not found.
142
+ */
143
+ const selectPendingTradeConfiguration = (state, coin) => {
144
+ const raw = selectRawPendingTradeConfiguration(state, coin);
145
+ if (!raw) {
146
+ return undefined;
147
+ }
148
+ const age = Date.now() - raw.timestamp;
149
+ if (age > perpsConfig_js_1.PERPS_CONSTANTS.PendingTradeConfigurationTtlMs) {
124
150
  // Config expired, return undefined
125
151
  return undefined;
126
152
  }
127
- // Return config without timestamp
128
- const { timestamp, ...configWithoutTimestamp } = config;
129
- return configWithoutTimestamp;
130
- });
153
+ return raw.config;
154
+ };
155
+ exports.selectPendingTradeConfiguration = selectPendingTradeConfiguration;
131
156
  /**
132
157
  * Select market filter preferences (network-independent)
133
158
  *
@@ -180,6 +205,35 @@ const selectProLayoutPreferences = (state) => ({
180
205
  ...state?.proLayoutPreferences,
181
206
  });
182
207
  exports.selectProLayoutPreferences = selectProLayoutPreferences;
208
+ /**
209
+ * Select market-agnostic Pro order-book display preferences.
210
+ *
211
+ * @param state - PerpsController state
212
+ * @returns The order-book display preferences
213
+ */
214
+ const selectOrderBookPreferences = (state) => ({
215
+ ...perpsConfig_js_1.DEFAULT_ORDER_BOOK_PREFERENCES,
216
+ ...state?.orderBookPreferences,
217
+ });
218
+ exports.selectOrderBookPreferences = selectOrderBookPreferences;
219
+ /**
220
+ * Select the market-agnostic order type.
221
+ *
222
+ * @param state - PerpsController state
223
+ * @returns The selected order type
224
+ */
225
+ const selectSelectedOrderType = (state) => state?.selectedOrderType ?? perpsConfig_js_1.DEFAULT_SELECTED_ORDER_TYPE;
226
+ exports.selectSelectedOrderType = selectSelectedOrderType;
227
+ /**
228
+ * Select the visible candle count shared by Lite and Pro.
229
+ *
230
+ * @param state - PerpsController state
231
+ * @returns The visible candle count
232
+ */
233
+ const selectVisibleCandleCount = (state) => Number.isFinite(state?.visibleCandleCount)
234
+ ? state.visibleCandleCount
235
+ : chartConfig_js_1.VISIBLE_CANDLE_COUNT_CONFIG.Default;
236
+ exports.selectVisibleCandleCount = selectVisibleCandleCount;
183
237
  /**
184
238
  * Select the current Perps interface mode (lite/pro).
185
239
  *
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { createSelector } from 'reselect';\n\nimport {\n MARKET_SORTING_CONFIG,\n PERPS_CONSTANTS,\n SortOptionId,\n DEFAULT_PRO_LAYOUT_PREFERENCES,\n DEFAULT_PERPS_MODE,\n} from './constants/perpsConfig.js';\nimport type {\n PerpsMode,\n ProLayoutPreferences,\n} from './constants/perpsConfig.js';\nimport type { PerpsControllerState } from './PerpsController.js';\nimport type {\n OrderType,\n PerpsSelectedPaymentToken,\n SortDirection,\n} from './types/index.js';\n\n/**\n * Select whether the user is a first-time perps user\n *\n * @param state - PerpsController state\n * @returns true if user is first-time, false otherwise\n */\nexport const selectIsFirstTimeUser = (\n state: PerpsControllerState | undefined,\n): boolean => {\n if (state?.isTestnet) {\n return state?.isFirstTimeUser?.testnet ?? true;\n }\n return state?.isFirstTimeUser?.mainnet ?? true;\n};\n\n/**\n * Select whether user has ever placed their first successful order\n *\n * @param state - PerpsController state\n * @returns boolean indicating if first order was placed\n */\nexport const selectHasPlacedFirstOrder = (\n state: PerpsControllerState,\n): boolean => {\n if (state?.isTestnet) {\n return state?.hasPlacedFirstOrder?.testnet ?? false;\n }\n return state?.hasPlacedFirstOrder?.mainnet ?? false;\n};\n\n/**\n * Select watchlist markets for the current network\n *\n * @param state - PerpsController state\n * @returns Array of watchlist market symbols for current network\n */\nexport const selectWatchlistMarkets = (\n state: PerpsControllerState,\n): string[] => {\n if (state?.isTestnet) {\n return state?.watchlistMarkets?.testnet ?? [];\n }\n return state?.watchlistMarkets?.mainnet ?? [];\n};\n\n/**\n * Check if a specific market is in the watchlist on the current network\n *\n * @param state - PerpsController state\n * @param symbol - Market symbol to check (e.g., 'BTC', 'ETH')\n * @returns boolean indicating if market is in watchlist\n */\nexport const selectIsWatchlistMarket = (\n state: PerpsControllerState,\n symbol: string,\n): boolean => {\n const watchlist = selectWatchlistMarkets(state);\n return watchlist.includes(symbol);\n};\n\n/**\n * Select recently viewed markets for the current network.\n *\n * Returns up to PERPS_CONSTANTS.RecentlyViewedMarketsLimit symbols, ordered\n * newest-first, filtered to entries within PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs\n * (24 hours). Returns an empty array when no qualifying entries exist.\n *\n * @param state - PerpsController state\n * @returns Ordered array of recently viewed market symbols\n */\nexport const selectRecentlyViewedMarkets = (\n state: PerpsControllerState,\n): string[] => {\n const network = state?.isTestnet ? 'testnet' : 'mainnet';\n const entries = state?.recentlyViewedMarkets?.[network] ?? [];\n const cutoff = Date.now() - PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs;\n\n return entries\n .filter((entry) => entry.viewedAt > cutoff)\n .map((entry) => entry.symbol)\n .slice(0, PERPS_CONSTANTS.RecentlyViewedMarketsLimit);\n};\n\n/**\n * Select trade configuration for a specific market on the current network.\n * Uses memoization to return stable object references and prevent unnecessary re-renders.\n *\n * Usage: selectTradeConfiguration(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The trade configuration for the specified market, or undefined.\n */\n\nexport const selectTradeConfiguration = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (isTestnet, configs, coin): { leverage?: number } | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n const config = configs?.[network]?.[coin];\n\n if (!config?.leverage) {\n return undefined;\n }\n\n return { leverage: config.leverage };\n },\n);\n\n/**\n * Select pending trade configuration for a specific market on the current network.\n * Returns undefined if config doesn't exist or has expired (more than 5 minutes old).\n *\n * Usage: selectPendingTradeConfiguration(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The pending trade configuration, or undefined if expired or not found.\n */\n\nexport const selectPendingTradeConfiguration = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (\n isTestnet,\n configs,\n coin,\n ):\n | {\n amount?: string;\n leverage?: number;\n takeProfitPrice?: string;\n stopLossPrice?: string;\n limitPrice?: string;\n orderType?: OrderType;\n selectedPaymentToken?: PerpsSelectedPaymentToken | null;\n }\n | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n const config = configs?.[network]?.[coin]?.pendingConfig;\n\n if (!config) {\n return undefined;\n }\n\n // Check if config has expired (5 minutes = 300,000 milliseconds)\n const now = Date.now();\n const FIVE_MINUTES_MS = 5 * 60 * 1000;\n const age = now - config.timestamp;\n\n if (age > FIVE_MINUTES_MS) {\n // Config expired, return undefined\n return undefined;\n }\n\n // Return config without timestamp\n const { timestamp, ...configWithoutTimestamp } = config;\n return configWithoutTimestamp;\n },\n);\n\n/**\n * Select market filter preferences (network-independent)\n *\n * @param state - PerpsController state\n * @returns Sort/filter preferences object with optionId and direction\n */\nexport const selectMarketFilterPreferences = (\n state: PerpsControllerState,\n): { optionId: SortOptionId; direction: SortDirection } => {\n const pref = state?.marketFilterPreferences;\n\n // Handle legacy string format (backward compatibility)\n if (typeof pref === 'string') {\n // Map legacy compound IDs to new format\n // Old format: 'priceChange-desc' or 'priceChange-asc'\n // New format: { optionId: 'priceChange', direction: 'desc'/'asc' }\n if (pref === 'priceChange-desc') {\n return {\n optionId: 'priceChange',\n direction: 'desc',\n };\n }\n if (pref === 'priceChange-asc') {\n return {\n optionId: 'priceChange',\n direction: 'asc',\n };\n }\n\n // Handle other simple legacy strings (e.g., 'volume', 'openInterest', etc.)\n return {\n optionId: pref as SortOptionId,\n direction: MARKET_SORTING_CONFIG.DefaultDirection,\n };\n }\n\n // Return new object format or default\n return (\n pref ?? {\n optionId: MARKET_SORTING_CONFIG.DefaultSortOptionId,\n direction: MARKET_SORTING_CONFIG.DefaultDirection,\n }\n );\n};\n\n/**\n * Select pro-mode layout preferences (network-independent).\n *\n * Merges over defaults so callers always receive a fully-populated object,\n * even when the state slice (or a nested field) is missing.\n *\n * @param state - PerpsController state\n * @returns The pro-mode layout preferences object\n */\nexport const selectProLayoutPreferences = (\n state: PerpsControllerState,\n): ProLayoutPreferences => ({\n ...DEFAULT_PRO_LAYOUT_PREFERENCES,\n ...state?.proLayoutPreferences,\n});\n\n/**\n * Select the current Perps interface mode (lite/pro).\n *\n * Falls back to the default mode when the state slice is missing.\n *\n * @param state - PerpsController state\n * @returns The current Perps mode\n */\nexport const selectPerpsMode = (state: PerpsControllerState): PerpsMode =>\n state?.mode ?? DEFAULT_PERPS_MODE;\n\n/**\n * Select order book grouping for a specific market on the current network.\n *\n * Usage: selectOrderBookGrouping(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The order book grouping value, or undefined.\n */\n\nexport const selectOrderBookGrouping = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (isTestnet, configs, coin): number | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n return configs?.[network]?.[coin]?.orderBookGrouping;\n },\n);\n"]}
1
+ {"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { createSelector } from 'reselect';\n\nimport { VISIBLE_CANDLE_COUNT_CONFIG } from './constants/chartConfig.js';\nimport {\n MARKET_SORTING_CONFIG,\n PERPS_CONSTANTS,\n SortOptionId,\n DEFAULT_ORDER_BOOK_PREFERENCES,\n DEFAULT_PRO_LAYOUT_PREFERENCES,\n DEFAULT_PERPS_MODE,\n DEFAULT_SELECTED_ORDER_TYPE,\n} from './constants/perpsConfig.js';\nimport type {\n OrderBookPreferences,\n PerpsMode,\n ProLayoutPreferences,\n} from './constants/perpsConfig.js';\nimport type { PerpsControllerState } from './PerpsController.js';\nimport type {\n OrderType,\n PerpsSelectedPaymentToken,\n SortDirection,\n} from './types/index.js';\n\n/**\n * Select whether the user is a first-time perps user\n *\n * @param state - PerpsController state\n * @returns true if user is first-time, false otherwise\n */\nexport const selectIsFirstTimeUser = (\n state: PerpsControllerState | undefined,\n): boolean => {\n if (state?.isTestnet) {\n return state?.isFirstTimeUser?.testnet ?? true;\n }\n return state?.isFirstTimeUser?.mainnet ?? true;\n};\n\n/**\n * Select whether user has ever placed their first successful order\n *\n * @param state - PerpsController state\n * @returns boolean indicating if first order was placed\n */\nexport const selectHasPlacedFirstOrder = (\n state: PerpsControllerState,\n): boolean => {\n if (state?.isTestnet) {\n return state?.hasPlacedFirstOrder?.testnet ?? false;\n }\n return state?.hasPlacedFirstOrder?.mainnet ?? false;\n};\n\n/**\n * Select watchlist markets for the current network\n *\n * @param state - PerpsController state\n * @returns Array of watchlist market symbols for current network\n */\nexport const selectWatchlistMarkets = (\n state: PerpsControllerState,\n): string[] => {\n if (state?.isTestnet) {\n return state?.watchlistMarkets?.testnet ?? [];\n }\n return state?.watchlistMarkets?.mainnet ?? [];\n};\n\n/**\n * Check if a specific market is in the watchlist on the current network\n *\n * @param state - PerpsController state\n * @param symbol - Market symbol to check (e.g., 'BTC', 'ETH')\n * @returns boolean indicating if market is in watchlist\n */\nexport const selectIsWatchlistMarket = (\n state: PerpsControllerState,\n symbol: string,\n): boolean => {\n const watchlist = selectWatchlistMarkets(state);\n return watchlist.includes(symbol);\n};\n\n/**\n * Select recently viewed markets for the current network.\n *\n * Returns up to PERPS_CONSTANTS.RecentlyViewedMarketsLimit symbols, ordered\n * newest-first, filtered to entries within PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs\n * (24 hours). Returns an empty array when no qualifying entries exist.\n *\n * @param state - PerpsController state\n * @returns Ordered array of recently viewed market symbols\n */\nexport const selectRecentlyViewedMarkets = (\n state: PerpsControllerState,\n): string[] => {\n const network = state?.isTestnet ? 'testnet' : 'mainnet';\n const entries = state?.recentlyViewedMarkets?.[network] ?? [];\n const cutoff = Date.now() - PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs;\n\n return entries\n .filter((entry) => entry.viewedAt > cutoff)\n .map((entry) => entry.symbol)\n .slice(0, PERPS_CONSTANTS.RecentlyViewedMarketsLimit);\n};\n\n/**\n * Select trade configuration for a specific market on the current network.\n * Uses memoization to return stable object references and prevent unnecessary re-renders.\n *\n * Usage: selectTradeConfiguration(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The trade configuration for the specified market, or undefined.\n */\n\nexport const selectTradeConfiguration = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (isTestnet, configs, coin): { leverage?: number } | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n const config = configs?.[network]?.[coin];\n\n if (!config?.leverage) {\n return undefined;\n }\n\n return { leverage: config.leverage };\n },\n);\n\n/**\n * Pending trade configuration as returned to consumers (timestamp stripped).\n */\ntype PendingTradeConfiguration = {\n amount?: string;\n leverage?: number;\n takeProfitPrice?: string;\n stopLossPrice?: string;\n limitPrice?: string;\n orderType?: OrderType;\n reduceOnly?: boolean;\n selectedPaymentToken?: PerpsSelectedPaymentToken | null;\n};\n\n/**\n * Memoized extractor for the raw pending trade configuration of a market.\n *\n * Keyed on `isTestnet`, `tradeConfigurations`, and `coin` so it yields a stable\n * object reference (both the stripped `config` and its `timestamp`) while those\n * inputs are unchanged. The TTL is deliberately NOT evaluated here: because the\n * result is memoized, evaluating expiry inside this selector would freeze the\n * `Date.now()` check between input changes. Expiry is applied per-call by\n * `selectPendingTradeConfiguration` instead.\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The stripped config and its save timestamp, or undefined.\n */\n\nconst selectRawPendingTradeConfiguration = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (\n isTestnet,\n configs,\n coin,\n ): { timestamp: number; config: PendingTradeConfiguration } | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n const config = configs?.[network]?.[coin]?.pendingConfig;\n\n if (!config) {\n return undefined;\n }\n\n const { timestamp, ...configWithoutTimestamp } = config;\n return { timestamp, config: configWithoutTimestamp };\n },\n);\n\n/**\n * Select pending trade configuration for a specific market on the current network.\n * Returns undefined if config doesn't exist or has expired.\n *\n * The underlying data extraction is memoized for stable object references, but\n * the TTL is checked on every call (using `Date.now()`) so expiry stays accurate\n * even when the memoized inputs have not changed. This mirrors\n * `PerpsController.getPendingTradeConfiguration`, which also evaluates time on\n * every call.\n *\n * Usage: selectPendingTradeConfiguration(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The pending trade configuration, or undefined if expired or not found.\n */\nexport const selectPendingTradeConfiguration = (\n state: PerpsControllerState,\n coin: string,\n): PendingTradeConfiguration | undefined => {\n const raw = selectRawPendingTradeConfiguration(state, coin);\n\n if (!raw) {\n return undefined;\n }\n\n const age = Date.now() - raw.timestamp;\n\n if (age > PERPS_CONSTANTS.PendingTradeConfigurationTtlMs) {\n // Config expired, return undefined\n return undefined;\n }\n\n return raw.config;\n};\n\n/**\n * Select market filter preferences (network-independent)\n *\n * @param state - PerpsController state\n * @returns Sort/filter preferences object with optionId and direction\n */\nexport const selectMarketFilterPreferences = (\n state: PerpsControllerState,\n): { optionId: SortOptionId; direction: SortDirection } => {\n const pref = state?.marketFilterPreferences;\n\n // Handle legacy string format (backward compatibility)\n if (typeof pref === 'string') {\n // Map legacy compound IDs to new format\n // Old format: 'priceChange-desc' or 'priceChange-asc'\n // New format: { optionId: 'priceChange', direction: 'desc'/'asc' }\n if (pref === 'priceChange-desc') {\n return {\n optionId: 'priceChange',\n direction: 'desc',\n };\n }\n if (pref === 'priceChange-asc') {\n return {\n optionId: 'priceChange',\n direction: 'asc',\n };\n }\n\n // Handle other simple legacy strings (e.g., 'volume', 'openInterest', etc.)\n return {\n optionId: pref as SortOptionId,\n direction: MARKET_SORTING_CONFIG.DefaultDirection,\n };\n }\n\n // Return new object format or default\n return (\n pref ?? {\n optionId: MARKET_SORTING_CONFIG.DefaultSortOptionId,\n direction: MARKET_SORTING_CONFIG.DefaultDirection,\n }\n );\n};\n\n/**\n * Select pro-mode layout preferences (network-independent).\n *\n * Merges over defaults so callers always receive a fully-populated object,\n * even when the state slice (or a nested field) is missing.\n *\n * @param state - PerpsController state\n * @returns The pro-mode layout preferences object\n */\nexport const selectProLayoutPreferences = (\n state: PerpsControllerState,\n): ProLayoutPreferences => ({\n ...DEFAULT_PRO_LAYOUT_PREFERENCES,\n ...state?.proLayoutPreferences,\n});\n\n/**\n * Select market-agnostic Pro order-book display preferences.\n *\n * @param state - PerpsController state\n * @returns The order-book display preferences\n */\nexport const selectOrderBookPreferences = (\n state: PerpsControllerState,\n): OrderBookPreferences => ({\n ...DEFAULT_ORDER_BOOK_PREFERENCES,\n ...state?.orderBookPreferences,\n});\n\n/**\n * Select the market-agnostic order type.\n *\n * @param state - PerpsController state\n * @returns The selected order type\n */\nexport const selectSelectedOrderType = (\n state: PerpsControllerState,\n): OrderType => state?.selectedOrderType ?? DEFAULT_SELECTED_ORDER_TYPE;\n\n/**\n * Select the visible candle count shared by Lite and Pro.\n *\n * @param state - PerpsController state\n * @returns The visible candle count\n */\nexport const selectVisibleCandleCount = (state: PerpsControllerState): number =>\n Number.isFinite(state?.visibleCandleCount)\n ? state.visibleCandleCount\n : VISIBLE_CANDLE_COUNT_CONFIG.Default;\n\n/**\n * Select the current Perps interface mode (lite/pro).\n *\n * Falls back to the default mode when the state slice is missing.\n *\n * @param state - PerpsController state\n * @returns The current Perps mode\n */\nexport const selectPerpsMode = (state: PerpsControllerState): PerpsMode =>\n state?.mode ?? DEFAULT_PERPS_MODE;\n\n/**\n * Select order book grouping for a specific market on the current network.\n *\n * Usage: selectOrderBookGrouping(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The order book grouping value, or undefined.\n */\n\nexport const selectOrderBookGrouping = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (isTestnet, configs, coin): number | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n return configs?.[network]?.[coin]?.orderBookGrouping;\n },\n);\n"]}