@metamask-previews/perps-controller 9.0.0-preview-56b2c8bdd → 9.0.0-preview-c1aa224d7
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/CHANGELOG.md +7 -0
- package/dist/PerpsController-method-action-types.cjs.map +1 -1
- package/dist/PerpsController-method-action-types.d.cts +28 -1
- package/dist/PerpsController-method-action-types.d.cts.map +1 -1
- package/dist/PerpsController-method-action-types.d.mts +28 -1
- package/dist/PerpsController-method-action-types.d.mts.map +1 -1
- package/dist/PerpsController-method-action-types.mjs.map +1 -1
- package/dist/PerpsController.cjs +50 -0
- package/dist/PerpsController.cjs.map +1 -1
- package/dist/PerpsController.d.cts +31 -0
- package/dist/PerpsController.d.cts.map +1 -1
- package/dist/PerpsController.d.mts +31 -0
- package/dist/PerpsController.d.mts.map +1 -1
- package/dist/PerpsController.mjs +50 -0
- package/dist/PerpsController.mjs.map +1 -1
- package/dist/constants/perpsConfig.cjs +3 -0
- package/dist/constants/perpsConfig.cjs.map +1 -1
- package/dist/constants/perpsConfig.d.cts +2 -0
- package/dist/constants/perpsConfig.d.cts.map +1 -1
- package/dist/constants/perpsConfig.d.mts +2 -0
- package/dist/constants/perpsConfig.d.mts.map +1 -1
- package/dist/constants/perpsConfig.mjs +3 -0
- package/dist/constants/perpsConfig.mjs.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/selectors.cjs +21 -1
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +11 -0
- package/dist/selectors.d.cts.map +1 -1
- package/dist/selectors.d.mts +11 -0
- package/dist/selectors.d.mts.map +1 -1
- package/dist/selectors.mjs +20 -1
- package/dist/selectors.mjs.map +1 -1
- package/dist/services/MarketDataService.cjs +1 -0
- package/dist/services/MarketDataService.cjs.map +1 -1
- package/dist/services/MarketDataService.d.cts.map +1 -1
- package/dist/services/MarketDataService.d.mts.map +1 -1
- package/dist/services/MarketDataService.mjs +1 -0
- package/dist/services/MarketDataService.mjs.map +1 -1
- package/dist/services/TerminalMarketService.cjs +9 -0
- package/dist/services/TerminalMarketService.cjs.map +1 -1
- package/dist/services/TerminalMarketService.d.cts.map +1 -1
- package/dist/services/TerminalMarketService.d.mts.map +1 -1
- package/dist/services/TerminalMarketService.mjs +10 -1
- package/dist/services/TerminalMarketService.mjs.map +1 -1
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +11 -0
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.mts +11 -0
- package/dist/types/index.d.mts.map +1 -1
- package/dist/types/index.mjs.map +1 -1
- package/dist/utils/hyperLiquidAdapter.cjs +2 -2
- package/dist/utils/hyperLiquidAdapter.cjs.map +1 -1
- package/dist/utils/hyperLiquidAdapter.mjs +2 -2
- package/dist/utils/hyperLiquidAdapter.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
*/
|
|
29
29
|
export { PerpsController, getDefaultPerpsControllerState, InitializationState, } from "./PerpsController.mjs";
|
|
30
30
|
export type { PerpsControllerState, PerpsControllerOptions, PerpsControllerMessenger, PerpsControllerGetStateAction, PerpsControllerActions, PerpsControllerEvents, } from "./PerpsController.mjs";
|
|
31
|
-
export type { PerpsControllerCalculateFeesAction, PerpsControllerCalculateLiquidationPriceAction, PerpsControllerCalculateMaintenanceMarginAction, PerpsControllerCancelOrderAction, PerpsControllerCancelOrdersAction, PerpsControllerClearDepositResultAction, PerpsControllerClearPendingTradeConfigurationAction, PerpsControllerClearPendingTransactionRequestsAction, PerpsControllerClearWithdrawResultAction, PerpsControllerClosePositionAction, PerpsControllerClosePositionsAction, PerpsControllerCompleteWithdrawalFromHistoryAction, PerpsControllerDepositWithConfirmationAction, PerpsControllerDepositWithOrderAction, PerpsControllerDisconnectAction, PerpsControllerEditOrderAction, PerpsControllerFetchHistoricalCandlesAction, PerpsControllerFlipPositionAction, PerpsControllerGetAccountStateAction, PerpsControllerGetActiveProviderAction, PerpsControllerGetActiveProviderOrNullAction, PerpsControllerGetAvailableDexsAction, PerpsControllerGetBlockExplorerUrlAction, PerpsControllerGetCachedMarketDataForActiveProviderAction, PerpsControllerGetCachedUserDataForActiveProviderAction, PerpsControllerGetCurrentNetworkAction, PerpsControllerGetFundingAction, PerpsControllerGetHistoricalPortfolioAction, PerpsControllerGetMarketDataWithPricesAction, PerpsControllerGetMarketFilterPreferencesAction, PerpsControllerGetMarketCategoriesAction, PerpsControllerGetMarketsAction, PerpsControllerGetMaxLeverageAction, PerpsControllerGetOpenOrdersAction, PerpsControllerGetOrderBookGroupingAction, PerpsControllerGetOrderFillsAction, PerpsControllerGetOrdersAction, PerpsControllerGetPendingTradeConfigurationAction, PerpsControllerGetPositionsAction, PerpsControllerGetTradeConfigurationAction, PerpsControllerGetWatchlistMarketsAction, PerpsControllerGetWebSocketConnectionStateAction, PerpsControllerGetWithdrawalProgressAction, PerpsControllerGetWithdrawalRoutesAction, PerpsControllerInitAction, PerpsControllerIsCurrentlyReinitializingAction, PerpsControllerIsFirstTimeUserOnCurrentNetworkAction, PerpsControllerIsWatchlistMarketAction, PerpsControllerMarkFirstOrderCompletedAction, PerpsControllerMarkTutorialCompletedAction, PerpsControllerPlaceOrderAction, PerpsControllerReconnectAction, PerpsControllerRefreshEligibilityAction, PerpsControllerResetFirstTimeUserStateAction, PerpsControllerResetSelectedPaymentTokenAction, PerpsControllerSaveMarketFilterPreferencesAction, PerpsControllerSaveOrderBookGroupingAction, PerpsControllerSavePendingTradeConfigurationAction, PerpsControllerSaveTradeConfigurationAction, 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";
|
|
31
|
+
export type { PerpsControllerCalculateFeesAction, PerpsControllerCalculateLiquidationPriceAction, PerpsControllerCalculateMaintenanceMarginAction, PerpsControllerCancelOrderAction, PerpsControllerCancelOrdersAction, PerpsControllerClearDepositResultAction, PerpsControllerClearPendingTradeConfigurationAction, PerpsControllerClearPendingTransactionRequestsAction, PerpsControllerClearWithdrawResultAction, PerpsControllerClosePositionAction, PerpsControllerClosePositionsAction, PerpsControllerCompleteWithdrawalFromHistoryAction, PerpsControllerDepositWithConfirmationAction, PerpsControllerDepositWithOrderAction, PerpsControllerDisconnectAction, PerpsControllerEditOrderAction, PerpsControllerFetchHistoricalCandlesAction, PerpsControllerFlipPositionAction, PerpsControllerGetAccountStateAction, PerpsControllerGetActiveProviderAction, PerpsControllerGetActiveProviderOrNullAction, PerpsControllerGetAvailableDexsAction, PerpsControllerGetBlockExplorerUrlAction, PerpsControllerGetCachedMarketDataForActiveProviderAction, PerpsControllerGetCachedUserDataForActiveProviderAction, PerpsControllerGetCurrentNetworkAction, PerpsControllerGetFundingAction, PerpsControllerGetHistoricalPortfolioAction, PerpsControllerGetMarketDataWithPricesAction, PerpsControllerGetMarketFilterPreferencesAction, PerpsControllerGetMarketCategoriesAction, PerpsControllerGetMarketsAction, PerpsControllerGetMaxLeverageAction, PerpsControllerGetOpenOrdersAction, PerpsControllerGetOrderBookGroupingAction, PerpsControllerGetOrderFillsAction, PerpsControllerGetOrdersAction, PerpsControllerGetPendingTradeConfigurationAction, PerpsControllerGetPositionsAction, PerpsControllerGetTradeConfigurationAction, PerpsControllerGetRecentlyViewedMarketsAction, PerpsControllerGetWatchlistMarketsAction, PerpsControllerGetWebSocketConnectionStateAction, PerpsControllerGetWithdrawalProgressAction, PerpsControllerGetWithdrawalRoutesAction, PerpsControllerInitAction, PerpsControllerIsCurrentlyReinitializingAction, PerpsControllerIsFirstTimeUserOnCurrentNetworkAction, PerpsControllerIsWatchlistMarketAction, PerpsControllerMarkFirstOrderCompletedAction, PerpsControllerMarkTutorialCompletedAction, PerpsControllerPlaceOrderAction, PerpsControllerReconnectAction, PerpsControllerRecordMarketViewedAction, PerpsControllerRefreshEligibilityAction, PerpsControllerResetFirstTimeUserStateAction, PerpsControllerResetSelectedPaymentTokenAction, PerpsControllerSaveMarketFilterPreferencesAction, PerpsControllerSaveOrderBookGroupingAction, PerpsControllerSavePendingTradeConfigurationAction, PerpsControllerSaveTradeConfigurationAction, 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";
|
|
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, 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, GetOrderFillsParams, GetOrFetchFillsParams, GetOrdersParams, GetFundingParams, GetSupportedPathsParams, GetAvailableDexsParams, GetMarketsParams, GetMarketDataWithPricesParams, SortField, SortDirection, SubscribePricesParams, SubscribePositionsParams, SubscribeOrderFillsParams, SubscribeOrdersParams, SubscribeAccountParams, SubscribeOICapsParams, SubscribeCandlesParams, OrderBookLevel, OrderBookData, SubscribeOrderBookParams, LiquidationPriceParams, MaintenanceMarginParams, FeeCalculationParams, FeeCalculationResult, UpdatePositionTPSLParams, Order, Funding, PerpsProvider, PerpsProviderType, PerpsActiveProviderMode, AggregationMode, RoutingStrategy, AggregatedProviderConfig, ProviderError, AggregatedAccountState, PerpsLogger, PerpsTraceName, PerpsTraceValue, PerpsAnalyticsProperties, PerpsMetrics, PerpsDebugLogger, PerpsStreamManager, PerpsPerformance, PerpsTracer, PerpsTypedMessageParams, PerpsTransactionParams, PerpsAddTransactionOptions, PerpsInternalAccount, PerpsRemoteFeatureFlagState, PerpsPlatformDependencies, PerpsTerminalMarketService, TerminalAssetMetadata, PerpsCacheType, InvalidateCacheParams, PerpsCacheInvalidator, MarketDataFormatters, PaymentToken, PerpsSelectedPaymentToken, VersionGatedFeatureFlag, } from "./types/index.mjs";
|
|
@@ -81,7 +81,7 @@ export type { FiatRangeConfig } from "./utils/index.mjs";
|
|
|
81
81
|
export { PRICE_THRESHOLD, formatWithSignificantDigits, PRICE_RANGES_MINIMAL_VIEW, PRICE_RANGES_UNIVERSAL, formatPerpsFiat, formatPositionSize, formatPnl, formatPercentage, formatFundingRate, } from "./utils/index.mjs";
|
|
82
82
|
export { PERPS_ERROR_CODES } from "./perpsErrorCodes.mjs";
|
|
83
83
|
export type { PerpsErrorCode } from "./perpsErrorCodes.mjs";
|
|
84
|
-
export { selectIsFirstTimeUser, selectHasPlacedFirstOrder, selectWatchlistMarkets, selectIsWatchlistMarket, selectTradeConfiguration, selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping, } from "./selectors.mjs";
|
|
84
|
+
export { selectIsFirstTimeUser, selectHasPlacedFirstOrder, selectWatchlistMarkets, selectIsWatchlistMarket, selectRecentlyViewedMarkets, selectTradeConfiguration, selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping, } from "./selectors.mjs";
|
|
85
85
|
export { TradingReadinessCache } from "./services/TradingReadinessCache.mjs";
|
|
86
86
|
export type { ServiceContext } from "./services/ServiceContext.mjs";
|
|
87
87
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,eAAe,EACf,8BAA8B,EAC9B,mBAAmB,GACpB,8BAA0B;AAC3B,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,GACtB,8BAA0B;AAC3B,YAAY,EACV,kCAAkC,EAClC,8CAA8C,EAC9C,+CAA+C,EAC/C,gCAAgC,EAChC,iCAAiC,EACjC,uCAAuC,EACvC,mDAAmD,EACnD,oDAAoD,EACpD,wCAAwC,EACxC,kCAAkC,EAClC,mCAAmC,EACnC,kDAAkD,EAClD,4CAA4C,EAC5C,qCAAqC,EACrC,+BAA+B,EAC/B,8BAA8B,EAC9B,2CAA2C,EAC3C,iCAAiC,EACjC,oCAAoC,EACpC,sCAAsC,EACtC,4CAA4C,EAC5C,qCAAqC,EACrC,wCAAwC,EACxC,yDAAyD,EACzD,uDAAuD,EACvD,sCAAsC,EACtC,+BAA+B,EAC/B,2CAA2C,EAC3C,4CAA4C,EAC5C,+CAA+C,EAC/C,wCAAwC,EACxC,+BAA+B,EAC/B,mCAAmC,EACnC,kCAAkC,EAClC,yCAAyC,EACzC,kCAAkC,EAClC,8BAA8B,EAC9B,iDAAiD,EACjD,iCAAiC,EACjC,0CAA0C,EAC1C,6CAA6C,EAC7C,wCAAwC,EACxC,gDAAgD,EAChD,0CAA0C,EAC1C,wCAAwC,EACxC,yBAAyB,EACzB,8CAA8C,EAC9C,oDAAoD,EACpD,sCAAsC,EACtC,4CAA4C,EAC5C,0CAA0C,EAC1C,+BAA+B,EAC/B,8BAA8B,EAC9B,uCAAuC,EACvC,uCAAuC,EACvC,4CAA4C,EAC5C,8CAA8C,EAC9C,gDAAgD,EAChD,0CAA0C,EAC1C,kDAAkD,EAClD,2CAA2C,EAC3C,sCAAsC,EACtC,4CAA4C,EAC5C,+CAA+C,EAC/C,2CAA2C,EAC3C,8CAA8C,EAC9C,0CAA0C,EAC1C,uCAAuC,EACvC,uCAAuC,EACvC,+CAA+C,EAC/C,sCAAsC,EACtC,yCAAyC,EACzC,0CAA0C,EAC1C,sCAAsC,EACtC,yCAAyC,EACzC,sCAAsC,EACtC,mCAAmC,EACnC,kCAAkC,EAClC,0CAA0C,EAC1C,iCAAiC,EACjC,uCAAuC,EACvC,6CAA6C,EAC7C,2CAA2C,EAC3C,0CAA0C,EAC1C,kCAAkC,EAClC,uCAAuC,EACvC,6BAA6B,GAC9B,kDAA8C;AAG/C,OAAO,EAAE,mBAAmB,EAAE,4CAAwC;AAGtE,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,0BAAgB;AACjB,YAAY,EACV,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,6BAA6B,EAC7B,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,6BAA6B,EAC7B,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,EACL,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,GACxB,0BAAgB;AACjB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,yBAAyB,GAC1B,0BAAgB;AAGjB,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,0BAAgB;AACjB,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,GAClB,0BAAgB;AACjB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,0BAAgB;AACvE,YAAY,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,0BAA0B,EAC1B,8BAA8B,EAC9B,YAAY,EACZ,0BAA0B,EAC1B,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,GACjB,0BAAgB;AACjB,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GACnB,0BAAgB;AACjB,YAAY,EAAE,UAAU,EAAE,0BAAgB;AAG1C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,2BAA2B,EAC3B,iCAAiC,EACjC,oBAAoB,GACrB,8BAAoB;AACrB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,8BAAoB;AACtE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,8BAAoB;AAChE,OAAO,EAAE,oCAAoC,EAAE,8BAAoB;AACnE,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,iCAAiC,EACjC,iCAAiC,EACjC,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,mBAAmB,EACnB,qBAAqB,EACrB,gCAAgC,EAChC,6BAA6B,EAC7B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,8BAA8B,EAC9B,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,GACjC,8BAAoB;AACrB,YAAY,EAAE,cAAc,EAAE,8BAAoB;AAClD,OAAO,EAAE,oBAAoB,EAAE,8BAAoB;AACnD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,6BAA6B,EAC7B,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,GACxB,8BAAoB;AACrB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,GACpB,8BAAoB;AACrB,YAAY,EAAE,YAAY,EAAE,8BAAoB;AAGhD,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,GACvB,0BAAgB;AACjB,YAAY,EAAE,mBAAmB,EAAE,0BAAgB;AACnD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,0BAAgB;AACpD,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,GACrB,0BAAgB;AACjB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,0BAAgB;AAC5D,YAAY,EAAE,qBAAqB,EAAE,0BAAgB;AACrD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,0BAAgB;AACjB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,GACtB,0BAAgB;AACjB,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,GACb,0BAAgB;AACjB,YAAY,EAAE,qBAAqB,EAAE,0BAAgB;AACrD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,kDAA8C;AAC/C,YAAY,EAAE,6BAA6B,EAAE,kDAA8C;AAC3F,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,0BAAgB;AACjB,OAAO,EAAE,eAAe,EAAE,0BAAgB;AAC1C,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,0BAAgB;AAC3E,YAAY,EACV,4BAA4B,EAC5B,gCAAgC,EAChC,gCAAgC,EAChC,gCAAgC,EAChC,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,GACvB,0BAAgB;AACjB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,GACjB,0BAAgB;AACjB,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,kBAAkB,GACnB,0BAAgB;AACjB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,GAC1B,0BAAgB;AACjB,YAAY,EAAE,iBAAiB,EAAE,0BAAgB;AACjD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,0BAAgB;AACnD,YAAY,EAAE,2BAA2B,EAAE,0BAAgB;AAC3D,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,yBAAyB,GAC1B,0BAAgB;AACjB,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,0BAAgB;AACjE,OAAO,EAAE,yBAAyB,EAAE,0BAAgB;AACpD,OAAO,EAAE,IAAI,EAAE,0BAAgB;AAC/B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,6CAA6C,GAC9C,0BAAgB;AACjB,OAAO,EAAE,cAAc,EAAE,0BAAgB;AACzC,YAAY,EAAE,eAAe,EAAE,0BAAgB;AAC/C,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,0BAAgB;AAGjB,OAAO,EAAE,iBAAiB,EAAE,8BAA0B;AACtD,YAAY,EAAE,cAAc,EAAE,8BAA0B;AAGxD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,+BAA+B,EAC/B,6BAA6B,EAC7B,uBAAuB,GACxB,wBAAoB;AAGrB,OAAO,EAAE,qBAAqB,EAAE,6CAAyC;AACzE,YAAY,EAAE,cAAc,EAAE,sCAAkC"}
|
package/dist/index.mjs
CHANGED
|
@@ -67,7 +67,7 @@ export { PRICE_THRESHOLD, formatWithSignificantDigits, PRICE_RANGES_MINIMAL_VIEW
|
|
|
67
67
|
// Error codes (explicit named exports)
|
|
68
68
|
export { PERPS_ERROR_CODES } from "./perpsErrorCodes.mjs";
|
|
69
69
|
// Selectors (explicit named exports)
|
|
70
|
-
export { selectIsFirstTimeUser, selectHasPlacedFirstOrder, selectWatchlistMarkets, selectIsWatchlistMarket, selectTradeConfiguration, selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping } from "./selectors.mjs";
|
|
70
|
+
export { selectIsFirstTimeUser, selectHasPlacedFirstOrder, selectWatchlistMarkets, selectIsWatchlistMarket, selectRecentlyViewedMarkets, selectTradeConfiguration, selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping } from "./selectors.mjs";
|
|
71
71
|
// Services (only externally consumed items)
|
|
72
72
|
export { TradingReadinessCache } from "./services/TradingReadinessCache.mjs";
|
|
73
73
|
// Removed with Live Market Prices component:
|
package/dist/index.mjs.map
CHANGED
|
@@ -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';\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} from './PerpsController';\nexport type {\n PerpsControllerState,\n PerpsControllerOptions,\n PerpsControllerMessenger,\n PerpsControllerGetStateAction,\n PerpsControllerActions,\n PerpsControllerEvents,\n} from './PerpsController';\nexport type {\n PerpsControllerCalculateFeesAction,\n PerpsControllerCalculateLiquidationPriceAction,\n PerpsControllerCalculateMaintenanceMarginAction,\n PerpsControllerCancelOrderAction,\n PerpsControllerCancelOrdersAction,\n PerpsControllerClearDepositResultAction,\n PerpsControllerClearPendingTradeConfigurationAction,\n PerpsControllerClearPendingTransactionRequestsAction,\n PerpsControllerClearWithdrawResultAction,\n PerpsControllerClosePositionAction,\n PerpsControllerClosePositionsAction,\n PerpsControllerCompleteWithdrawalFromHistoryAction,\n PerpsControllerDepositWithConfirmationAction,\n PerpsControllerDepositWithOrderAction,\n PerpsControllerDisconnectAction,\n PerpsControllerEditOrderAction,\n PerpsControllerFetchHistoricalCandlesAction,\n PerpsControllerFlipPositionAction,\n PerpsControllerGetAccountStateAction,\n PerpsControllerGetActiveProviderAction,\n PerpsControllerGetActiveProviderOrNullAction,\n PerpsControllerGetAvailableDexsAction,\n PerpsControllerGetBlockExplorerUrlAction,\n PerpsControllerGetCachedMarketDataForActiveProviderAction,\n PerpsControllerGetCachedUserDataForActiveProviderAction,\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 PerpsControllerGetWatchlistMarketsAction,\n PerpsControllerGetWebSocketConnectionStateAction,\n PerpsControllerGetWithdrawalProgressAction,\n PerpsControllerGetWithdrawalRoutesAction,\n PerpsControllerInitAction,\n PerpsControllerIsCurrentlyReinitializingAction,\n PerpsControllerIsFirstTimeUserOnCurrentNetworkAction,\n PerpsControllerIsWatchlistMarketAction,\n PerpsControllerMarkFirstOrderCompletedAction,\n PerpsControllerMarkTutorialCompletedAction,\n PerpsControllerPlaceOrderAction,\n PerpsControllerReconnectAction,\n PerpsControllerRefreshEligibilityAction,\n PerpsControllerResetFirstTimeUserStateAction,\n PerpsControllerResetSelectedPaymentTokenAction,\n PerpsControllerSaveMarketFilterPreferencesAction,\n PerpsControllerSaveOrderBookGroupingAction,\n PerpsControllerSavePendingTradeConfigurationAction,\n PerpsControllerSaveTradeConfigurationAction,\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';\n\n// Provider interfaces and implementations\nexport { HyperLiquidProvider } from './providers/HyperLiquidProvider';\n\n// Type definitions (explicit named exports)\nexport {\n WebSocketConnectionState,\n PerpsAnalyticsEvent,\n MARKET_CATEGORIES,\n MarketCategory,\n} from './types';\nexport type {\n RawLedgerUpdate,\n UserHistoryItem,\n GetUserHistoryParams,\n TradeConfiguration,\n OrderType,\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 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 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 PerpsMetrics,\n PerpsDebugLogger,\n PerpsStreamManager,\n PerpsPerformance,\n PerpsTracer,\n PerpsTypedMessageParams,\n PerpsTransactionParams,\n PerpsAddTransactionOptions,\n PerpsInternalAccount,\n PerpsRemoteFeatureFlagState,\n PerpsPlatformDependencies,\n PerpsTerminalMarketService,\n TerminalAssetMetadata,\n PerpsCacheType,\n InvalidateCacheParams,\n PerpsCacheInvalidator,\n MarketDataFormatters,\n PaymentToken,\n PerpsSelectedPaymentToken,\n VersionGatedFeatureFlag,\n} from './types';\nexport {\n PerpsTraceNames,\n PerpsTraceOperations,\n isVersionGatedFeatureFlag,\n} from './types';\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';\nexport type {\n BaseTransactionResult,\n LastTransactionResult,\n TransactionStatus,\n TransactionRecord,\n} from './types';\nexport { isTransactionRecord, isLastTransactionResult } from './types';\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';\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';\nexport type { PerpsToken } from './types';\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';\nexport { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from './constants';\nexport { DETAILED_ORDER_TYPES, isTPSLOrder } from './constants';\nexport { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from './constants';\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 USDH_CONFIG,\n INITIAL_AMOUNT_UI_PROGRESS,\n WITHDRAWAL_PROGRESS_STAGES,\n PROGRESS_BAR_COMPLETION_DELAY_MS,\n} from './constants';\nexport type { SupportedAsset } from './constants';\nexport { PerpsMeasurementName } from './constants';\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';\nexport {\n PERPS_CONSTANTS,\n WITHDRAWAL_CONSTANTS,\n VALIDATION_THRESHOLDS,\n ORDER_SLIPPAGE_CONFIG,\n MAX_SLIPPAGE_BOUNDS,\n PERFORMANCE_CONFIG,\n TP_SL_CONFIG,\n HYPERLIQUID_ORDER_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';\nexport type { SortOptionId } from './constants';\n\n// Utilities (explicit named exports)\nexport {\n findEvmAccount,\n getEvmAccountFromAccountGroup,\n getSelectedEvmAccount,\n calculateWeightedReturnOnEquity,\n aggregateAccountStates,\n} from './utils';\nexport type { ReturnOnEquityInput } from './utils';\nexport { ensureError, isAbortError } from './utils';\nexport type {\n OrderBookCacheEntry,\n ProcessL2BookDataParams,\n ProcessBboDataParams,\n} from './utils';\nexport { processL2BookData, processBboData } from './utils';\nexport type { ValidationDebugLogger } from './utils';\nexport {\n createErrorResult,\n validateWithdrawalParams,\n validateDepositParams,\n validateAssetSupport,\n validateBalance,\n applyPathFilters,\n getSupportedPaths,\n getMaxOrderValue,\n validateOrderParams,\n validateCoinExists,\n} from './utils';\nexport {\n generatePerpsId,\n generateDepositId,\n generateWithdrawalId,\n generateOrderId,\n generateTransactionId,\n} from './utils';\nexport {\n calculateOpenInterestUSD,\n isMarketTradable,\n transformMarketData,\n formatChange,\n} from './utils';\nexport type { HyperLiquidMarketData } from './utils';\nexport {\n getPerpsConnectionAttemptContext,\n withPerpsConnectionAttemptContext,\n} from './utils/perpsConnectionAttemptContext';\nexport type { PerpsConnectionAttemptContext } from './utils/perpsConnectionAttemptContext';\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';\nexport { MarketMatchRank } from './utils';\nexport type { MarketPatternMatcher, CompiledMarketPattern } from './utils';\nexport type {\n OrderCalculationsDebugLogger,\n CalculateFinalPositionSizeParams,\n CalculateFinalPositionSizeResult,\n CalculateOrderPriceAndSizeParams,\n CalculateOrderPriceAndSizeResult,\n BuildOrdersArrayParams,\n BuildOrdersArrayResult,\n} from './utils';\nexport {\n calculatePositionSize,\n calculateMarginRequired,\n getMaxAllowedAmount,\n calculateFinalPositionSize,\n calculateOrderPriceAndSize,\n buildOrdersArray,\n} from './utils';\nexport {\n formatAccountToCaipAccountId,\n isCaipAccountId,\n handleRewardsError,\n} from './utils';\nexport {\n countSignificantFigures,\n hasExceededSignificantFigures,\n roundToSignificantFigures,\n} from './utils';\nexport type { SortMarketsParams } from './utils';\nexport { parseVolume, sortMarkets } from './utils';\nexport type { StandaloneInfoClientOptions } from './utils';\nexport {\n createStandaloneInfoClient,\n queryStandaloneClearinghouseStates,\n queryStandaloneOpenOrders,\n} from './utils';\nexport { stripQuotes, parseCommaSeparatedString } from './utils';\nexport { generateERC20TransferData } from './utils';\nexport { wait } from './utils';\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';\nexport { getEnvironment } from './utils';\nexport type { FiatRangeConfig } from './utils';\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';\n\n// Error codes (explicit named exports)\nexport { PERPS_ERROR_CODES } from './perpsErrorCodes';\nexport type { PerpsErrorCode } from './perpsErrorCodes';\n\n// Selectors (explicit named exports)\nexport {\n selectIsFirstTimeUser,\n selectHasPlacedFirstOrder,\n selectWatchlistMarkets,\n selectIsWatchlistMarket,\n selectTradeConfiguration,\n selectPendingTradeConfiguration,\n selectMarketFilterPreferences,\n selectOrderBookGrouping,\n} from './selectors';\n\n// Services (only externally consumed items)\nexport { TradingReadinessCache } from './services/TradingReadinessCache';\nexport type { ServiceContext } from './services/ServiceContext';\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';\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} from './PerpsController';\nexport type {\n PerpsControllerState,\n PerpsControllerOptions,\n PerpsControllerMessenger,\n PerpsControllerGetStateAction,\n PerpsControllerActions,\n PerpsControllerEvents,\n} from './PerpsController';\nexport type {\n PerpsControllerCalculateFeesAction,\n PerpsControllerCalculateLiquidationPriceAction,\n PerpsControllerCalculateMaintenanceMarginAction,\n PerpsControllerCancelOrderAction,\n PerpsControllerCancelOrdersAction,\n PerpsControllerClearDepositResultAction,\n PerpsControllerClearPendingTradeConfigurationAction,\n PerpsControllerClearPendingTransactionRequestsAction,\n PerpsControllerClearWithdrawResultAction,\n PerpsControllerClosePositionAction,\n PerpsControllerClosePositionsAction,\n PerpsControllerCompleteWithdrawalFromHistoryAction,\n PerpsControllerDepositWithConfirmationAction,\n PerpsControllerDepositWithOrderAction,\n PerpsControllerDisconnectAction,\n PerpsControllerEditOrderAction,\n PerpsControllerFetchHistoricalCandlesAction,\n PerpsControllerFlipPositionAction,\n PerpsControllerGetAccountStateAction,\n PerpsControllerGetActiveProviderAction,\n PerpsControllerGetActiveProviderOrNullAction,\n PerpsControllerGetAvailableDexsAction,\n PerpsControllerGetBlockExplorerUrlAction,\n PerpsControllerGetCachedMarketDataForActiveProviderAction,\n PerpsControllerGetCachedUserDataForActiveProviderAction,\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 PerpsControllerIsCurrentlyReinitializingAction,\n PerpsControllerIsFirstTimeUserOnCurrentNetworkAction,\n PerpsControllerIsWatchlistMarketAction,\n PerpsControllerMarkFirstOrderCompletedAction,\n PerpsControllerMarkTutorialCompletedAction,\n PerpsControllerPlaceOrderAction,\n PerpsControllerReconnectAction,\n PerpsControllerRecordMarketViewedAction,\n PerpsControllerRefreshEligibilityAction,\n PerpsControllerResetFirstTimeUserStateAction,\n PerpsControllerResetSelectedPaymentTokenAction,\n PerpsControllerSaveMarketFilterPreferencesAction,\n PerpsControllerSaveOrderBookGroupingAction,\n PerpsControllerSavePendingTradeConfigurationAction,\n PerpsControllerSaveTradeConfigurationAction,\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';\n\n// Provider interfaces and implementations\nexport { HyperLiquidProvider } from './providers/HyperLiquidProvider';\n\n// Type definitions (explicit named exports)\nexport {\n WebSocketConnectionState,\n PerpsAnalyticsEvent,\n MARKET_CATEGORIES,\n MarketCategory,\n} from './types';\nexport type {\n RawLedgerUpdate,\n UserHistoryItem,\n GetUserHistoryParams,\n TradeConfiguration,\n OrderType,\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 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 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 PerpsMetrics,\n PerpsDebugLogger,\n PerpsStreamManager,\n PerpsPerformance,\n PerpsTracer,\n PerpsTypedMessageParams,\n PerpsTransactionParams,\n PerpsAddTransactionOptions,\n PerpsInternalAccount,\n PerpsRemoteFeatureFlagState,\n PerpsPlatformDependencies,\n PerpsTerminalMarketService,\n TerminalAssetMetadata,\n PerpsCacheType,\n InvalidateCacheParams,\n PerpsCacheInvalidator,\n MarketDataFormatters,\n PaymentToken,\n PerpsSelectedPaymentToken,\n VersionGatedFeatureFlag,\n} from './types';\nexport {\n PerpsTraceNames,\n PerpsTraceOperations,\n isVersionGatedFeatureFlag,\n} from './types';\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';\nexport type {\n BaseTransactionResult,\n LastTransactionResult,\n TransactionStatus,\n TransactionRecord,\n} from './types';\nexport { isTransactionRecord, isLastTransactionResult } from './types';\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';\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';\nexport type { PerpsToken } from './types';\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';\nexport { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from './constants';\nexport { DETAILED_ORDER_TYPES, isTPSLOrder } from './constants';\nexport { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from './constants';\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 USDH_CONFIG,\n INITIAL_AMOUNT_UI_PROGRESS,\n WITHDRAWAL_PROGRESS_STAGES,\n PROGRESS_BAR_COMPLETION_DELAY_MS,\n} from './constants';\nexport type { SupportedAsset } from './constants';\nexport { PerpsMeasurementName } from './constants';\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';\nexport {\n PERPS_CONSTANTS,\n WITHDRAWAL_CONSTANTS,\n VALIDATION_THRESHOLDS,\n ORDER_SLIPPAGE_CONFIG,\n MAX_SLIPPAGE_BOUNDS,\n PERFORMANCE_CONFIG,\n TP_SL_CONFIG,\n HYPERLIQUID_ORDER_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';\nexport type { SortOptionId } from './constants';\n\n// Utilities (explicit named exports)\nexport {\n findEvmAccount,\n getEvmAccountFromAccountGroup,\n getSelectedEvmAccount,\n calculateWeightedReturnOnEquity,\n aggregateAccountStates,\n} from './utils';\nexport type { ReturnOnEquityInput } from './utils';\nexport { ensureError, isAbortError } from './utils';\nexport type {\n OrderBookCacheEntry,\n ProcessL2BookDataParams,\n ProcessBboDataParams,\n} from './utils';\nexport { processL2BookData, processBboData } from './utils';\nexport type { ValidationDebugLogger } from './utils';\nexport {\n createErrorResult,\n validateWithdrawalParams,\n validateDepositParams,\n validateAssetSupport,\n validateBalance,\n applyPathFilters,\n getSupportedPaths,\n getMaxOrderValue,\n validateOrderParams,\n validateCoinExists,\n} from './utils';\nexport {\n generatePerpsId,\n generateDepositId,\n generateWithdrawalId,\n generateOrderId,\n generateTransactionId,\n} from './utils';\nexport {\n calculateOpenInterestUSD,\n isMarketTradable,\n transformMarketData,\n formatChange,\n} from './utils';\nexport type { HyperLiquidMarketData } from './utils';\nexport {\n getPerpsConnectionAttemptContext,\n withPerpsConnectionAttemptContext,\n} from './utils/perpsConnectionAttemptContext';\nexport type { PerpsConnectionAttemptContext } from './utils/perpsConnectionAttemptContext';\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';\nexport { MarketMatchRank } from './utils';\nexport type { MarketPatternMatcher, CompiledMarketPattern } from './utils';\nexport type {\n OrderCalculationsDebugLogger,\n CalculateFinalPositionSizeParams,\n CalculateFinalPositionSizeResult,\n CalculateOrderPriceAndSizeParams,\n CalculateOrderPriceAndSizeResult,\n BuildOrdersArrayParams,\n BuildOrdersArrayResult,\n} from './utils';\nexport {\n calculatePositionSize,\n calculateMarginRequired,\n getMaxAllowedAmount,\n calculateFinalPositionSize,\n calculateOrderPriceAndSize,\n buildOrdersArray,\n} from './utils';\nexport {\n formatAccountToCaipAccountId,\n isCaipAccountId,\n handleRewardsError,\n} from './utils';\nexport {\n countSignificantFigures,\n hasExceededSignificantFigures,\n roundToSignificantFigures,\n} from './utils';\nexport type { SortMarketsParams } from './utils';\nexport { parseVolume, sortMarkets } from './utils';\nexport type { StandaloneInfoClientOptions } from './utils';\nexport {\n createStandaloneInfoClient,\n queryStandaloneClearinghouseStates,\n queryStandaloneOpenOrders,\n} from './utils';\nexport { stripQuotes, parseCommaSeparatedString } from './utils';\nexport { generateERC20TransferData } from './utils';\nexport { wait } from './utils';\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';\nexport { getEnvironment } from './utils';\nexport type { FiatRangeConfig } from './utils';\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';\n\n// Error codes (explicit named exports)\nexport { PERPS_ERROR_CODES } from './perpsErrorCodes';\nexport type { PerpsErrorCode } from './perpsErrorCodes';\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} from './selectors';\n\n// Services (only externally consumed items)\nexport { TradingReadinessCache } from './services/TradingReadinessCache';\nexport type { ServiceContext } from './services/ServiceContext';\n\n// Removed with Live Market Prices component:\n// - usePerpsPrices\n"]}
|
package/dist/selectors.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.selectOrderBookGrouping = exports.selectMarketFilterPreferences = exports.selectPendingTradeConfiguration = exports.selectTradeConfiguration = exports.selectIsWatchlistMarket = exports.selectWatchlistMarkets = exports.selectHasPlacedFirstOrder = exports.selectIsFirstTimeUser = void 0;
|
|
3
|
+
exports.selectOrderBookGrouping = 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
5
|
const perpsConfig_1 = require("./constants/perpsConfig.cjs");
|
|
6
6
|
/**
|
|
@@ -54,6 +54,26 @@ const selectIsWatchlistMarket = (state, symbol) => {
|
|
|
54
54
|
return watchlist.includes(symbol);
|
|
55
55
|
};
|
|
56
56
|
exports.selectIsWatchlistMarket = selectIsWatchlistMarket;
|
|
57
|
+
/**
|
|
58
|
+
* Select recently viewed markets for the current network.
|
|
59
|
+
*
|
|
60
|
+
* Returns up to PERPS_CONSTANTS.RecentlyViewedMarketsLimit symbols, ordered
|
|
61
|
+
* newest-first, filtered to entries within PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs
|
|
62
|
+
* (24 hours). Returns an empty array when no qualifying entries exist.
|
|
63
|
+
*
|
|
64
|
+
* @param state - PerpsController state
|
|
65
|
+
* @returns Ordered array of recently viewed market symbols
|
|
66
|
+
*/
|
|
67
|
+
const selectRecentlyViewedMarkets = (state) => {
|
|
68
|
+
const network = state?.isTestnet ? 'testnet' : 'mainnet';
|
|
69
|
+
const entries = state?.recentlyViewedMarkets?.[network] ?? [];
|
|
70
|
+
const cutoff = Date.now() - perpsConfig_1.PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs;
|
|
71
|
+
return entries
|
|
72
|
+
.filter((entry) => entry.viewedAt > cutoff)
|
|
73
|
+
.map((entry) => entry.symbol)
|
|
74
|
+
.slice(0, perpsConfig_1.PERPS_CONSTANTS.RecentlyViewedMarketsLimit);
|
|
75
|
+
};
|
|
76
|
+
exports.selectRecentlyViewedMarkets = selectRecentlyViewedMarkets;
|
|
57
77
|
/**
|
|
58
78
|
* Select trade configuration for a specific market on the current network.
|
|
59
79
|
* Uses memoization to return stable object references and prevent unnecessary re-renders.
|
package/dist/selectors.cjs.map
CHANGED
|
@@ -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 { MARKET_SORTING_CONFIG, SortOptionId } from './constants/perpsConfig';\nimport type { PerpsControllerState } from './PerpsController';\nimport type { PerpsSelectedPaymentToken, SortDirection } from './types';\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 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?: 'market' | 'limit';\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 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 {\n MARKET_SORTING_CONFIG,\n PERPS_CONSTANTS,\n SortOptionId,\n} from './constants/perpsConfig';\nimport type { PerpsControllerState } from './PerpsController';\nimport type { PerpsSelectedPaymentToken, SortDirection } from './types';\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?: 'market' | 'limit';\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 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"]}
|
package/dist/selectors.d.cts
CHANGED
|
@@ -30,6 +30,17 @@ export declare const selectWatchlistMarkets: (state: PerpsControllerState) => st
|
|
|
30
30
|
* @returns boolean indicating if market is in watchlist
|
|
31
31
|
*/
|
|
32
32
|
export declare const selectIsWatchlistMarket: (state: PerpsControllerState, symbol: string) => boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Select recently viewed markets for the current network.
|
|
35
|
+
*
|
|
36
|
+
* Returns up to PERPS_CONSTANTS.RecentlyViewedMarketsLimit symbols, ordered
|
|
37
|
+
* newest-first, filtered to entries within PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs
|
|
38
|
+
* (24 hours). Returns an empty array when no qualifying entries exist.
|
|
39
|
+
*
|
|
40
|
+
* @param state - PerpsController state
|
|
41
|
+
* @returns Ordered array of recently viewed market symbols
|
|
42
|
+
*/
|
|
43
|
+
export declare const selectRecentlyViewedMarkets: (state: PerpsControllerState) => string[];
|
|
33
44
|
/**
|
|
34
45
|
* Select trade configuration for a specific market on the current network.
|
|
35
46
|
* Uses memoization to return stable object references and prevent unnecessary re-renders.
|
package/dist/selectors.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,YAAY,EACb,oCAAgC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA0B;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,0BAAgB;AAExE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,UACzB,oBAAoB,GAAG,SAAS,KACtC,OAKF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,UAC7B,oBAAoB,KAC1B,OAKF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,UAC1B,oBAAoB,KAC1B,MAAM,EAKR,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,UAC3B,oBAAoB,UACnB,MAAM,KACb,OAGF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,UAC/B,oBAAoB,KAC1B,MAAM,EASR,CAAC;AAEF;;;;;;;;;GASG;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAEzB,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAYvD,CAAC;AAEF;;;;;;;;;GASG;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAEhC,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAsCvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,UACjC,oBAAoB,KAC1B;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAmCpD,CAAC;AAEF;;;;;;;;GAQG;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAExB,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAMvD,CAAC"}
|
package/dist/selectors.d.mts
CHANGED
|
@@ -30,6 +30,17 @@ export declare const selectWatchlistMarkets: (state: PerpsControllerState) => st
|
|
|
30
30
|
* @returns boolean indicating if market is in watchlist
|
|
31
31
|
*/
|
|
32
32
|
export declare const selectIsWatchlistMarket: (state: PerpsControllerState, symbol: string) => boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Select recently viewed markets for the current network.
|
|
35
|
+
*
|
|
36
|
+
* Returns up to PERPS_CONSTANTS.RecentlyViewedMarketsLimit symbols, ordered
|
|
37
|
+
* newest-first, filtered to entries within PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs
|
|
38
|
+
* (24 hours). Returns an empty array when no qualifying entries exist.
|
|
39
|
+
*
|
|
40
|
+
* @param state - PerpsController state
|
|
41
|
+
* @returns Ordered array of recently viewed market symbols
|
|
42
|
+
*/
|
|
43
|
+
export declare const selectRecentlyViewedMarkets: (state: PerpsControllerState) => string[];
|
|
33
44
|
/**
|
|
34
45
|
* Select trade configuration for a specific market on the current network.
|
|
35
46
|
* Uses memoization to return stable object references and prevent unnecessary re-renders.
|
package/dist/selectors.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,YAAY,EACb,oCAAgC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA0B;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,0BAAgB;AAExE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,UACzB,oBAAoB,GAAG,SAAS,KACtC,OAKF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,UAC7B,oBAAoB,KAC1B,OAKF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,UAC1B,oBAAoB,KAC1B,MAAM,EAKR,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,UAC3B,oBAAoB,UACnB,MAAM,KACb,OAGF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,UAC/B,oBAAoB,KAC1B,MAAM,EASR,CAAC;AAEF;;;;;;;;;GASG;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAEzB,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAYvD,CAAC;AAEF;;;;;;;;;GASG;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAEhC,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAsCvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,UACjC,oBAAoB,KAC1B;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAmCpD,CAAC;AAEF;;;;;;;;GAQG;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAExB,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAMvD,CAAC"}
|
package/dist/selectors.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createSelector } from "reselect";
|
|
2
|
-
import { MARKET_SORTING_CONFIG } from "./constants/perpsConfig.mjs";
|
|
2
|
+
import { MARKET_SORTING_CONFIG, PERPS_CONSTANTS } from "./constants/perpsConfig.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Select whether the user is a first-time perps user
|
|
5
5
|
*
|
|
@@ -47,6 +47,25 @@ export const selectIsWatchlistMarket = (state, symbol) => {
|
|
|
47
47
|
const watchlist = selectWatchlistMarkets(state);
|
|
48
48
|
return watchlist.includes(symbol);
|
|
49
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* Select recently viewed markets for the current network.
|
|
52
|
+
*
|
|
53
|
+
* Returns up to PERPS_CONSTANTS.RecentlyViewedMarketsLimit symbols, ordered
|
|
54
|
+
* newest-first, filtered to entries within PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs
|
|
55
|
+
* (24 hours). Returns an empty array when no qualifying entries exist.
|
|
56
|
+
*
|
|
57
|
+
* @param state - PerpsController state
|
|
58
|
+
* @returns Ordered array of recently viewed market symbols
|
|
59
|
+
*/
|
|
60
|
+
export const selectRecentlyViewedMarkets = (state) => {
|
|
61
|
+
const network = state?.isTestnet ? 'testnet' : 'mainnet';
|
|
62
|
+
const entries = state?.recentlyViewedMarkets?.[network] ?? [];
|
|
63
|
+
const cutoff = Date.now() - PERPS_CONSTANTS.RecentlyViewedMarketsTtlMs;
|
|
64
|
+
return entries
|
|
65
|
+
.filter((entry) => entry.viewedAt > cutoff)
|
|
66
|
+
.map((entry) => entry.symbol)
|
|
67
|
+
.slice(0, PERPS_CONSTANTS.RecentlyViewedMarketsLimit);
|
|
68
|
+
};
|
|
50
69
|
/**
|
|
51
70
|
* Select trade configuration for a specific market on the current network.
|
|
52
71
|
* Uses memoization to return stable object references and prevent unnecessary re-renders.
|
package/dist/selectors.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { createSelector } from 'reselect';\n\nimport { MARKET_SORTING_CONFIG, SortOptionId } from './constants/perpsConfig';\nimport type { PerpsControllerState } from './PerpsController';\nimport type { PerpsSelectedPaymentToken, SortDirection } from './types';\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 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?: 'market' | 'limit';\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 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.mjs","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} from './constants/perpsConfig';\nimport type { PerpsControllerState } from './PerpsController';\nimport type { PerpsSelectedPaymentToken, SortDirection } from './types';\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?: 'market' | 'limit';\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 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"]}
|
|
@@ -1084,6 +1084,7 @@ _MarketDataService_deps = new WeakMap(), _MarketDataService_instances = new Weak
|
|
|
1084
1084
|
...(meta.keywords !== undefined && { keywords: meta.keywords }),
|
|
1085
1085
|
...(meta.tags !== undefined && { tags: meta.tags }),
|
|
1086
1086
|
...(meta.categories !== undefined && { categories: meta.categories }),
|
|
1087
|
+
...(meta.listedAt !== undefined && { listedAt: meta.listedAt }),
|
|
1087
1088
|
};
|
|
1088
1089
|
});
|
|
1089
1090
|
};
|