@metamask-previews/perps-controller 10.0.0-preview-a42e8d0d2 → 10.0.0-preview-5a03e1b92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/constants/eventNames.cjs +6 -0
  3. package/dist/constants/eventNames.cjs.map +1 -1
  4. package/dist/constants/eventNames.d.cts +4 -0
  5. package/dist/constants/eventNames.d.cts.map +1 -1
  6. package/dist/constants/eventNames.d.mts +4 -0
  7. package/dist/constants/eventNames.d.mts.map +1 -1
  8. package/dist/constants/eventNames.mjs +6 -0
  9. package/dist/constants/eventNames.mjs.map +1 -1
  10. package/dist/index.cjs +86 -74
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +3 -1
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.mts +3 -1
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +2 -0
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/perpsErrorCodes.cjs +16 -0
  19. package/dist/perpsErrorCodes.cjs.map +1 -1
  20. package/dist/perpsErrorCodes.d.cts +12 -0
  21. package/dist/perpsErrorCodes.d.cts.map +1 -1
  22. package/dist/perpsErrorCodes.d.mts +12 -0
  23. package/dist/perpsErrorCodes.d.mts.map +1 -1
  24. package/dist/perpsErrorCodes.mjs +16 -0
  25. package/dist/perpsErrorCodes.mjs.map +1 -1
  26. package/dist/providers/HyperLiquidProvider.cjs +674 -77
  27. package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
  28. package/dist/providers/HyperLiquidProvider.d.cts +13 -0
  29. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
  30. package/dist/providers/HyperLiquidProvider.d.mts +13 -0
  31. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
  32. package/dist/providers/HyperLiquidProvider.mjs +676 -79
  33. package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
  34. package/dist/selectors.cjs.map +1 -1
  35. package/dist/selectors.d.cts +17 -17
  36. package/dist/selectors.d.cts.map +1 -1
  37. package/dist/selectors.d.mts +17 -17
  38. package/dist/selectors.d.mts.map +1 -1
  39. package/dist/selectors.mjs.map +1 -1
  40. package/dist/services/HyperLiquidSubscriptionService.cjs +121 -11
  41. package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
  42. package/dist/services/HyperLiquidSubscriptionService.d.cts +21 -0
  43. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
  44. package/dist/services/HyperLiquidSubscriptionService.d.mts +21 -0
  45. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
  46. package/dist/services/HyperLiquidSubscriptionService.mjs +121 -11
  47. package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
  48. package/dist/services/TradingService.cjs +6 -2
  49. package/dist/services/TradingService.cjs.map +1 -1
  50. package/dist/services/TradingService.d.cts.map +1 -1
  51. package/dist/services/TradingService.d.mts.map +1 -1
  52. package/dist/services/TradingService.mjs +6 -2
  53. package/dist/services/TradingService.mjs.map +1 -1
  54. package/dist/types/index.cjs.map +1 -1
  55. package/dist/types/index.d.cts +69 -4
  56. package/dist/types/index.d.cts.map +1 -1
  57. package/dist/types/index.d.mts +69 -4
  58. package/dist/types/index.d.mts.map +1 -1
  59. package/dist/types/index.mjs.map +1 -1
  60. package/dist/types/perps-types.cjs.map +1 -1
  61. package/dist/types/perps-types.d.cts +35 -1
  62. package/dist/types/perps-types.d.cts.map +1 -1
  63. package/dist/types/perps-types.d.mts +35 -1
  64. package/dist/types/perps-types.d.mts.map +1 -1
  65. package/dist/types/perps-types.mjs.map +1 -1
  66. package/dist/utils/hyperLiquidAdapter.cjs +168 -10
  67. package/dist/utils/hyperLiquidAdapter.cjs.map +1 -1
  68. package/dist/utils/hyperLiquidAdapter.d.cts +35 -1
  69. package/dist/utils/hyperLiquidAdapter.d.cts.map +1 -1
  70. package/dist/utils/hyperLiquidAdapter.d.mts +35 -1
  71. package/dist/utils/hyperLiquidAdapter.d.mts.map +1 -1
  72. package/dist/utils/hyperLiquidAdapter.mjs +166 -11
  73. package/dist/utils/hyperLiquidAdapter.mjs.map +1 -1
  74. package/dist/utils/hyperLiquidValidation.cjs +160 -5
  75. package/dist/utils/hyperLiquidValidation.cjs.map +1 -1
  76. package/dist/utils/hyperLiquidValidation.d.cts +23 -4
  77. package/dist/utils/hyperLiquidValidation.d.cts.map +1 -1
  78. package/dist/utils/hyperLiquidValidation.d.mts +23 -4
  79. package/dist/utils/hyperLiquidValidation.d.mts.map +1 -1
  80. package/dist/utils/hyperLiquidValidation.mjs +160 -5
  81. package/dist/utils/hyperLiquidValidation.mjs.map +1 -1
  82. package/dist/utils/index.cjs +5 -1
  83. package/dist/utils/index.cjs.map +1 -1
  84. package/dist/utils/index.d.cts +2 -1
  85. package/dist/utils/index.d.cts.map +1 -1
  86. package/dist/utils/index.d.mts +2 -1
  87. package/dist/utils/index.d.mts.map +1 -1
  88. package/dist/utils/index.mjs +2 -1
  89. package/dist/utils/index.mjs.map +1 -1
  90. package/dist/utils/orderCalculations.cjs +363 -37
  91. package/dist/utils/orderCalculations.cjs.map +1 -1
  92. package/dist/utils/orderCalculations.d.cts +87 -2
  93. package/dist/utils/orderCalculations.d.cts.map +1 -1
  94. package/dist/utils/orderCalculations.d.mts +87 -2
  95. package/dist/utils/orderCalculations.d.mts.map +1 -1
  96. package/dist/utils/orderCalculations.mjs +359 -36
  97. package/dist/utils/orderCalculations.mjs.map +1 -1
  98. package/dist/utils/orderTypes.cjs +222 -0
  99. package/dist/utils/orderTypes.cjs.map +1 -0
  100. package/dist/utils/orderTypes.d.cts +114 -0
  101. package/dist/utils/orderTypes.d.cts.map +1 -0
  102. package/dist/utils/orderTypes.d.mts +114 -0
  103. package/dist/utils/orderTypes.d.mts.map +1 -0
  104. package/dist/utils/orderTypes.mjs +210 -0
  105. package/dist/utils/orderTypes.mjs.map +1 -0
  106. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PerpsController - Protocol-agnostic perpetuals trading controller\n *\n * This module provides a unified interface for perpetual futures trading\n * across multiple protocols with high-performance real-time data handling.\n *\n * Key Features:\n * - Protocol abstraction (HyperLiquid first, extensible to GMX, dYdX, etc.)\n * - Dual data flow: Redux for persistence, direct callbacks for live data\n * - MetaMask native integration with BaseController pattern\n * - Mobile-optimized with throttling and performance considerations\n *\n * Usage:\n * ```typescript\n * import { usePerpsController } from './controllers.js';\n *\n * const { placeOrder, getPositions } = usePerpsController();\n * // Live prices hooks removed with Live Market Prices component\n *\n * // Place a market order\n * await placeOrder({\n * coin: 'ETH',\n * is_buy: true,\n * sz: '0.1',\n * order_type: 'market'\n * });\n * ```\n */\n\n// Core controller and types\nexport {\n PerpsController,\n getDefaultPerpsControllerState,\n InitializationState,\n PerpsMode,\n DEFAULT_PERPS_MODE,\n DEFAULT_PRO_LAYOUT_PREFERENCES,\n} from './PerpsController.js';\nexport type {\n PerpsControllerState,\n PerpsControllerOptions,\n PerpsControllerMessenger,\n PerpsControllerGetStateAction,\n PerpsControllerActions,\n PerpsControllerEvents,\n ProLayoutPreferences,\n} from './PerpsController.js';\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 PerpsControllerClearAttributionContextAction,\n PerpsControllerCompleteWithdrawalFromHistoryAction,\n PerpsControllerDepositWithConfirmationAction,\n PerpsControllerDepositWithOrderAction,\n PerpsControllerDisconnectAction,\n PerpsControllerEditOrderAction,\n PerpsControllerFetchHistoricalCandlesAction,\n PerpsControllerFlipPositionAction,\n PerpsControllerGetAccountStateAction,\n PerpsControllerGetActiveProviderAction,\n PerpsControllerGetActiveProviderOrNullAction,\n PerpsControllerGetAttributionContextAction,\n PerpsControllerGetAvailableDexsAction,\n PerpsControllerGetBlockExplorerUrlAction,\n PerpsControllerGetCachedMarketDataForActiveProviderAction,\n PerpsControllerGetCachedUserDataForActiveProviderAction,\n 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 PerpsControllerGetProLayoutPreferencesAction,\n PerpsControllerSetProLayoutPreferencesAction,\n PerpsControllerSetPerpsModeAction,\n PerpsControllerSaveOrderBookGroupingAction,\n PerpsControllerSavePendingTradeConfigurationAction,\n PerpsControllerSaveTradeConfigurationAction,\n PerpsControllerSetAttributionContextAction,\n PerpsControllerSetLiveDataConfigAction,\n PerpsControllerSetSelectedPaymentTokenAction,\n PerpsControllerStartEligibilityMonitoringAction,\n PerpsControllerStartMarketDataPreloadAction,\n PerpsControllerStopEligibilityMonitoringAction,\n PerpsControllerStopMarketDataPreloadAction,\n PerpsControllerSubscribeToAccountAction,\n PerpsControllerSubscribeToCandlesAction,\n PerpsControllerSubscribeToConnectionStateAction,\n PerpsControllerSubscribeToOICapsAction,\n PerpsControllerSubscribeToOrderBookAction,\n PerpsControllerSubscribeToOrderFillsAction,\n PerpsControllerSubscribeToOrdersAction,\n PerpsControllerSubscribeToPositionsAction,\n PerpsControllerSubscribeToPricesAction,\n PerpsControllerSwitchProviderAction,\n PerpsControllerToggleTestnetAction,\n PerpsControllerToggleWatchlistMarketAction,\n PerpsControllerUpdateMarginAction,\n PerpsControllerUpdatePositionTPSLAction,\n PerpsControllerUpdateWithdrawalProgressAction,\n PerpsControllerUpdateWithdrawalStatusAction,\n PerpsControllerValidateClosePositionAction,\n PerpsControllerValidateOrderAction,\n PerpsControllerValidateWithdrawalAction,\n PerpsControllerWithdrawAction,\n} from './PerpsController-method-action-types.js';\n\n// Provider interfaces and implementations\nexport { HyperLiquidProvider } from './providers/HyperLiquidProvider.js';\n\n// Type definitions (explicit named exports)\nexport {\n WebSocketConnectionState,\n PerpsAnalyticsEvent,\n MARKET_CATEGORIES,\n MarketCategory,\n} from './types/index.js';\nexport type {\n RawLedgerUpdate,\n UserHistoryItem,\n GetUserHistoryParams,\n TradeConfiguration,\n OrderType,\n 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 PerpsAttributionContext,\n PerpsMetrics,\n PerpsDebugLogger,\n PerpsStreamManager,\n PerpsPerformance,\n PerpsTracer,\n PerpsTypedMessageParams,\n PerpsTransactionParams,\n PerpsAddTransactionOptions,\n PerpsInternalAccount,\n PerpsRemoteFeatureFlagState,\n PerpsPlatformDependencies,\n PerpsTerminalMarketService,\n TerminalAssetMetadata,\n PerpsCacheType,\n InvalidateCacheParams,\n PerpsCacheInvalidator,\n MarketDataFormatters,\n PaymentToken,\n PerpsSelectedPaymentToken,\n VersionGatedFeatureFlag,\n} from './types/index.js';\nexport {\n PerpsTraceNames,\n PerpsTraceOperations,\n isVersionGatedFeatureFlag,\n} from './types/index.js';\n\n// Types from sub-modules (re-exported via types/index.ts)\nexport type {\n TestResultStatus,\n TestResult,\n SDKTestType,\n HyperliquidAsset,\n CandleStick,\n CandleData,\n OrderFormState,\n OrderDirection,\n ReconnectOptions,\n ExtendedAssetMeta,\n ExtendedPerpDex,\n} from './types/index.js';\nexport type {\n BaseTransactionResult,\n LastTransactionResult,\n TransactionStatus,\n TransactionRecord,\n} from './types/index.js';\nexport { isTransactionRecord, isLastTransactionResult } from './types/index.js';\nexport type {\n AssetPosition,\n SpotBalance,\n PerpsUniverse,\n PerpsAssetCtx,\n PredictedFunding,\n FrontendOrder,\n SDKOrderParams,\n ClearinghouseStateResponse,\n SpotClearinghouseStateResponse,\n MetaResponse,\n FrontendOpenOrdersResponse,\n AllMidsResponse,\n MetaAndAssetCtxsResponse,\n PredictedFundingsResponse,\n SpotMetaResponse,\n} from './types/index.js';\nexport type {\n HyperLiquidEndpoints,\n AssetNetworkConfig,\n HyperLiquidAssetConfigs,\n BridgeContractConfig,\n HyperLiquidBridgeContracts,\n TransportReconnectConfig,\n TransportKeepAliveConfig,\n HyperLiquidTransportConfig,\n TradingAmountConfig,\n TradingDefaultsConfig,\n FeeRatesConfig,\n HyperLiquidNetwork,\n} from './types/index.js';\nexport type { PerpsToken } from './types/index.js';\n\n// Constants (explicit named exports)\nexport {\n CandlePeriod,\n TimeDuration,\n ChartInterval,\n MAX_CANDLE_COUNT,\n DURATION_CANDLE_PERIODS,\n CANDLE_PERIODS,\n DEFAULT_CANDLE_PERIOD,\n getCandlePeriodsForDuration,\n getDefaultCandlePeriodForDuration,\n calculateCandleCount,\n} from './constants/index.js';\nexport { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from './constants/index.js';\nexport { DETAILED_ORDER_TYPES, isTPSLOrder } from './constants/index.js';\nexport { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from './constants/index.js';\nexport {\n ARBITRUM_MAINNET_CHAIN_ID_HEX,\n ARBITRUM_MAINNET_CHAIN_ID,\n ARBITRUM_TESTNET_CHAIN_ID,\n ARBITRUM_MAINNET_CAIP_CHAIN_ID,\n ARBITRUM_TESTNET_CAIP_CHAIN_ID,\n HYPERLIQUID_MAINNET_CHAIN_ID,\n HYPERLIQUID_TESTNET_CHAIN_ID,\n HYPERLIQUID_MAINNET_CAIP_CHAIN_ID,\n HYPERLIQUID_TESTNET_CAIP_CHAIN_ID,\n HYPERLIQUID_NETWORK_NAME,\n USDC_SYMBOL,\n USDC_NAME,\n USDC_DECIMALS,\n TOKEN_DECIMALS,\n ZERO_ADDRESS,\n ZERO_BALANCE,\n ARBITRUM_SEPOLIA_CHAIN_ID,\n USDC_ETHEREUM_MAINNET_ADDRESS,\n USDC_ARBITRUM_MAINNET_ADDRESS,\n USDC_ARBITRUM_TESTNET_ADDRESS,\n USDC_TOKEN_ICON_URL,\n HYPERLIQUID_ENDPOINTS,\n HYPERLIQUID_ASSET_ICONS_BASE_URL,\n METAMASK_PERPS_ICONS_BASE_URL,\n HYPERLIQUID_ASSET_CONFIGS,\n HYPERLIQUID_BRIDGE_CONTRACTS,\n HYPERLIQUID_TRANSPORT_CONFIG,\n TRADING_DEFAULTS,\n FEE_RATES,\n HIP3_FEE_CONFIG,\n BUILDER_FEE_CONFIG,\n REFERRAL_CONFIG,\n DEPOSIT_CONFIG,\n HYPERLIQUID_WITHDRAWAL_MINUTES,\n getWebSocketEndpoint,\n getChainId,\n getCaipChainId,\n getBridgeInfo,\n getSupportedAssets,\n CAIP_ASSET_NAMESPACES,\n HYPERLIQUID_CONFIG,\n HIP3_ASSET_ID_CONFIG,\n BASIS_POINTS_DIVISOR,\n SPOT_ASSET_ID_OFFSET,\n HIP3_ASSET_MARKET_TYPES,\n TESTNET_HIP3_CONFIG,\n MAINNET_HIP3_CONFIG,\n HIP3_MARGIN_CONFIG,\n INITIAL_AMOUNT_UI_PROGRESS,\n WITHDRAWAL_PROGRESS_STAGES,\n PROGRESS_BAR_COMPLETION_DELAY_MS,\n} from './constants/index.js';\nexport type { SupportedAsset } from './constants/index.js';\nexport { PerpsMeasurementName } from './constants/index.js';\nexport {\n MYX_MAINNET_CHAIN_ID,\n MYX_TESTNET_CHAIN_ID,\n MYX_MAINNET_CAIP_CHAIN_ID,\n MYX_TESTNET_CAIP_CHAIN_ID,\n getMYXChainId,\n MYX_ENDPOINTS,\n getMYXHttpEndpoint,\n MYX_PRICE_DECIMALS,\n MYX_SIZE_DECIMALS,\n MYX_COLLATERAL_DECIMALS,\n USDT_BNB_TESTNET,\n USDT_BNB_MAINNET,\n MYX_ASSET_CONFIGS,\n fromMYXPrice,\n toMYXPrice,\n fromMYXSize,\n toMYXSize,\n fromMYXCollateral,\n MYX_PRICE_POLLING_INTERVAL_MS,\n MYX_HTTP_TIMEOUT_MS,\n MYX_MAX_RETRIES,\n MYX_MAX_LEVERAGE,\n MYX_FEE_RATE,\n MYX_PROTOCOL_FEE_RATE,\n MYX_DEFAULT_SLIPPAGE_BPS,\n MYX_MINIMUM_ORDER_SIZE_USD,\n MYX_EXECUTION_FEE_TOKEN,\n} from './constants/index.js';\nexport {\n PERPS_CONSTANTS,\n WITHDRAWAL_CONSTANTS,\n VALIDATION_THRESHOLDS,\n ORDER_SLIPPAGE_CONFIG,\n 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/index.js';\nexport type { SortOptionId } from './constants/index.js';\n\n// Utilities (explicit named exports)\nexport {\n findEvmAccount,\n getEvmAccountFromAccountGroup,\n getSelectedEvmAccount,\n calculateWeightedReturnOnEquity,\n aggregateAccountStates,\n} from './utils/index.js';\nexport type { ReturnOnEquityInput } from './utils/index.js';\nexport { ensureError, isAbortError } from './utils/index.js';\nexport type {\n OrderBookCacheEntry,\n ProcessL2BookDataParams,\n ProcessBboDataParams,\n} from './utils/index.js';\nexport { processL2BookData, processBboData } from './utils/index.js';\nexport type { ValidationDebugLogger } from './utils/index.js';\nexport {\n createErrorResult,\n validateWithdrawalParams,\n validateDepositParams,\n validateAssetSupport,\n validateBalance,\n applyPathFilters,\n getSupportedPaths,\n getMaxOrderValue,\n validateOrderParams,\n validateCoinExists,\n} from './utils/index.js';\nexport {\n generatePerpsId,\n generateDepositId,\n generateWithdrawalId,\n generateOrderId,\n generateTransactionId,\n} from './utils/index.js';\nexport {\n calculateOpenInterestUSD,\n isMarketTradable,\n transformMarketData,\n formatChange,\n} from './utils/index.js';\nexport type { HyperLiquidMarketData } from './utils/index.js';\nexport {\n getPerpsConnectionAttemptContext,\n withPerpsConnectionAttemptContext,\n} from './utils/perpsConnectionAttemptContext.js';\nexport type { PerpsConnectionAttemptContext } from './utils/perpsConnectionAttemptContext.js';\nexport {\n MAX_MARKET_PATTERN_LENGTH,\n escapeRegex,\n validateMarketPattern,\n compileMarketPattern,\n matchesMarketPattern,\n shouldIncludeMarket,\n getPerpsDisplaySymbol,\n getPerpsDexFromSymbol,\n calculateFundingCountdown,\n calculate24hHighLow,\n filterMarketsByQuery,\n matchesCategory,\n getMarketTypeFilter,\n applyMarketFilters,\n isHip3Market,\n rankMarketsByQuery,\n getMarketMatchRank,\n} from './utils/index.js';\nexport { MarketMatchRank } from './utils/index.js';\nexport type {\n MarketPatternMatcher,\n CompiledMarketPattern,\n} from './utils/index.js';\nexport type {\n OrderCalculationsDebugLogger,\n CalculateFinalPositionSizeParams,\n CalculateFinalPositionSizeResult,\n CalculateOrderPriceAndSizeParams,\n CalculateOrderPriceAndSizeResult,\n BuildOrdersArrayParams,\n BuildOrdersArrayResult,\n} from './utils/index.js';\nexport {\n calculatePositionSize,\n calculateMarginRequired,\n getMaxAllowedAmount,\n calculateFinalPositionSize,\n calculateOrderPriceAndSize,\n buildOrdersArray,\n} from './utils/index.js';\nexport {\n formatAccountToCaipAccountId,\n isCaipAccountId,\n handleRewardsError,\n} from './utils/index.js';\nexport {\n countSignificantFigures,\n hasExceededSignificantFigures,\n roundToSignificantFigures,\n} from './utils/index.js';\nexport type { SortMarketsParams } from './utils/index.js';\nexport { parseVolume, sortMarkets } from './utils/index.js';\nexport type { StandaloneInfoClientOptions } from './utils/index.js';\nexport {\n createStandaloneInfoClient,\n queryStandaloneClearinghouseStates,\n queryStandaloneOpenOrders,\n} from './utils/index.js';\nexport { stripQuotes, parseCommaSeparatedString } from './utils/index.js';\nexport { generateERC20TransferData } from './utils/index.js';\nexport { wait } from './utils/index.js';\nexport {\n adaptOrderToSDK,\n adaptPositionFromSDK,\n adaptOrderFromSDK,\n adaptMarketFromSDK,\n adaptAccountStateFromSDK,\n buildAssetMapping,\n formatHyperLiquidPrice,\n formatHyperLiquidSize,\n calculateHip3AssetId,\n parseAssetName,\n adaptHyperLiquidLedgerUpdateToUserHistoryItem,\n} from './utils/index.js';\nexport { getEnvironment } from './utils/index.js';\nexport type { FiatRangeConfig } from './utils/index.js';\nexport {\n PRICE_THRESHOLD,\n formatWithSignificantDigits,\n PRICE_RANGES_MINIMAL_VIEW,\n PRICE_RANGES_UNIVERSAL,\n formatPerpsFiat,\n formatPositionSize,\n formatPnl,\n formatPercentage,\n formatFundingRate,\n} from './utils/index.js';\n\n// Error codes (explicit named exports)\nexport { PERPS_ERROR_CODES } from './perpsErrorCodes.js';\nexport type { PerpsErrorCode } from './perpsErrorCodes.js';\n\n// Selectors (explicit named exports)\nexport {\n selectIsFirstTimeUser,\n selectHasPlacedFirstOrder,\n selectWatchlistMarkets,\n selectIsWatchlistMarket,\n selectRecentlyViewedMarkets,\n selectTradeConfiguration,\n selectPendingTradeConfiguration,\n selectMarketFilterPreferences,\n selectOrderBookGrouping,\n selectProLayoutPreferences,\n selectPerpsMode,\n} from './selectors.js';\n\n// Services (only externally consumed items)\nexport { TradingReadinessCache } from './services/TradingReadinessCache.js';\nexport type { ServiceContext } from './services/ServiceContext.js';\nexport {\n AggregatedOrderBookConnection,\n processAggregatedOrderBook,\n} from './services/AggregatedOrderBookConnection.js';\nexport type {\n OrderBookConnectionStatus,\n SubscribeAggregatedOrderBookParams,\n AggregatedOrderBookConnectionOptions,\n} from './services/AggregatedOrderBookConnection.js';\n\n// Removed with Live Market Prices component:\n// - usePerpsPrices\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PerpsController - Protocol-agnostic perpetuals trading controller\n *\n * This module provides a unified interface for perpetual futures trading\n * across multiple protocols with high-performance real-time data handling.\n *\n * Key Features:\n * - Protocol abstraction (HyperLiquid first, extensible to GMX, dYdX, etc.)\n * - Dual data flow: Redux for persistence, direct callbacks for live data\n * - MetaMask native integration with BaseController pattern\n * - Mobile-optimized with throttling and performance considerations\n *\n * Usage:\n * ```typescript\n * import { usePerpsController } from './controllers.js';\n *\n * const { placeOrder, getPositions } = usePerpsController();\n * // Live prices hooks removed with Live Market Prices component\n *\n * // Place a market order\n * await placeOrder({\n * coin: 'ETH',\n * is_buy: true,\n * sz: '0.1',\n * order_type: 'market'\n * });\n * ```\n */\n\n// Core controller and types\nexport {\n PerpsController,\n getDefaultPerpsControllerState,\n InitializationState,\n PerpsMode,\n DEFAULT_PERPS_MODE,\n DEFAULT_PRO_LAYOUT_PREFERENCES,\n} from './PerpsController.js';\nexport type {\n PerpsControllerState,\n PerpsControllerOptions,\n PerpsControllerMessenger,\n PerpsControllerGetStateAction,\n PerpsControllerActions,\n PerpsControllerEvents,\n ProLayoutPreferences,\n} from './PerpsController.js';\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 PerpsControllerClearAttributionContextAction,\n PerpsControllerCompleteWithdrawalFromHistoryAction,\n PerpsControllerDepositWithConfirmationAction,\n PerpsControllerDepositWithOrderAction,\n PerpsControllerDisconnectAction,\n PerpsControllerEditOrderAction,\n PerpsControllerFetchHistoricalCandlesAction,\n PerpsControllerFlipPositionAction,\n PerpsControllerGetAccountStateAction,\n PerpsControllerGetActiveProviderAction,\n PerpsControllerGetActiveProviderOrNullAction,\n PerpsControllerGetAttributionContextAction,\n PerpsControllerGetAvailableDexsAction,\n PerpsControllerGetBlockExplorerUrlAction,\n PerpsControllerGetCachedMarketDataForActiveProviderAction,\n PerpsControllerGetCachedUserDataForActiveProviderAction,\n 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 PerpsControllerGetProLayoutPreferencesAction,\n PerpsControllerSetProLayoutPreferencesAction,\n PerpsControllerSetPerpsModeAction,\n PerpsControllerSaveOrderBookGroupingAction,\n PerpsControllerSavePendingTradeConfigurationAction,\n PerpsControllerSaveTradeConfigurationAction,\n PerpsControllerSetAttributionContextAction,\n PerpsControllerSetLiveDataConfigAction,\n PerpsControllerSetSelectedPaymentTokenAction,\n PerpsControllerStartEligibilityMonitoringAction,\n PerpsControllerStartMarketDataPreloadAction,\n PerpsControllerStopEligibilityMonitoringAction,\n PerpsControllerStopMarketDataPreloadAction,\n PerpsControllerSubscribeToAccountAction,\n PerpsControllerSubscribeToCandlesAction,\n PerpsControllerSubscribeToConnectionStateAction,\n PerpsControllerSubscribeToOICapsAction,\n PerpsControllerSubscribeToOrderBookAction,\n PerpsControllerSubscribeToOrderFillsAction,\n PerpsControllerSubscribeToOrdersAction,\n PerpsControllerSubscribeToPositionsAction,\n PerpsControllerSubscribeToPricesAction,\n PerpsControllerSwitchProviderAction,\n PerpsControllerToggleTestnetAction,\n PerpsControllerToggleWatchlistMarketAction,\n PerpsControllerUpdateMarginAction,\n PerpsControllerUpdatePositionTPSLAction,\n PerpsControllerUpdateWithdrawalProgressAction,\n PerpsControllerUpdateWithdrawalStatusAction,\n PerpsControllerValidateClosePositionAction,\n PerpsControllerValidateOrderAction,\n PerpsControllerValidateWithdrawalAction,\n PerpsControllerWithdrawAction,\n} from './PerpsController-method-action-types.js';\n\n// Provider interfaces and implementations\nexport { HyperLiquidProvider } from './providers/HyperLiquidProvider.js';\n\n// Type definitions (explicit named exports)\nexport {\n WebSocketConnectionState,\n PerpsAnalyticsEvent,\n MARKET_CATEGORIES,\n MarketCategory,\n} from './types/index.js';\nexport type {\n RawLedgerUpdate,\n UserHistoryItem,\n GetUserHistoryParams,\n TradeConfiguration,\n OrderType,\n TriggerOrderType,\n OrderExecution,\n TriggerDirection,\n TpslLinkage,\n PositionTriggerOrder,\n MarketType,\n MarketTypeFilter,\n InputMethod,\n TradeAction,\n TrackingData,\n TPSLTrackingData,\n OrderParams,\n OrderResult,\n Position,\n AccountState,\n ClosePositionParams,\n ClosePositionsParams,\n ClosePositionsResult,\n UpdateMarginParams,\n MarginResult,\n FlipPositionParams,\n InitializeResult,\n ReadyToTradeResult,\n DisconnectResult,\n MarketInfo,\n PerpsMarketData,\n ToggleTestnetResult,\n AssetRoute,\n SwitchProviderResult,\n CancelOrderParams,\n CancelOrderResult,\n BatchCancelOrdersParams,\n CancelOrdersParams,\n CancelOrdersResult,\n EditOrderParams,\n DepositParams,\n DepositWithConfirmationParams,\n DepositResult,\n DepositStatus,\n DepositFlowType,\n DepositStepInfo,\n WithdrawParams,\n WithdrawResult,\n TransferBetweenDexsParams,\n TransferBetweenDexsResult,\n GetHistoricalPortfolioParams,\n HistoricalPortfolioResult,\n LiveDataConfig,\n PerpsControllerConfig,\n PriceUpdate,\n OrderFill,\n CheckEligibilityParams,\n GetPositionsParams,\n GetAccountStateParams,\n 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 PerpsAttributionContext,\n PerpsMetrics,\n PerpsDebugLogger,\n PerpsStreamManager,\n PerpsPerformance,\n PerpsTracer,\n PerpsTypedMessageParams,\n PerpsTransactionParams,\n PerpsAddTransactionOptions,\n PerpsInternalAccount,\n PerpsRemoteFeatureFlagState,\n PerpsPlatformDependencies,\n PerpsTerminalMarketService,\n TerminalAssetMetadata,\n PerpsCacheType,\n InvalidateCacheParams,\n PerpsCacheInvalidator,\n MarketDataFormatters,\n PaymentToken,\n PerpsSelectedPaymentToken,\n VersionGatedFeatureFlag,\n} from './types/index.js';\nexport {\n PerpsTraceNames,\n PerpsTraceOperations,\n isVersionGatedFeatureFlag,\n} from './types/index.js';\n\n// Types from sub-modules (re-exported via types/index.ts)\nexport type {\n TestResultStatus,\n TestResult,\n SDKTestType,\n HyperliquidAsset,\n CandleStick,\n CandleData,\n OrderFormState,\n OrderDirection,\n ReconnectOptions,\n ExtendedAssetMeta,\n ExtendedPerpDex,\n} from './types/index.js';\nexport type {\n BaseTransactionResult,\n LastTransactionResult,\n TransactionStatus,\n TransactionRecord,\n} from './types/index.js';\nexport { isTransactionRecord, isLastTransactionResult } from './types/index.js';\nexport type {\n AssetPosition,\n SpotBalance,\n PerpsUniverse,\n PerpsAssetCtx,\n PredictedFunding,\n FrontendOrder,\n SDKOrderParams,\n ClearinghouseStateResponse,\n SpotClearinghouseStateResponse,\n MetaResponse,\n FrontendOpenOrdersResponse,\n AllMidsResponse,\n MetaAndAssetCtxsResponse,\n PredictedFundingsResponse,\n SpotMetaResponse,\n} from './types/index.js';\nexport type {\n HyperLiquidEndpoints,\n AssetNetworkConfig,\n HyperLiquidAssetConfigs,\n BridgeContractConfig,\n HyperLiquidBridgeContracts,\n TransportReconnectConfig,\n TransportKeepAliveConfig,\n HyperLiquidTransportConfig,\n TradingAmountConfig,\n TradingDefaultsConfig,\n FeeRatesConfig,\n HyperLiquidNetwork,\n} from './types/index.js';\nexport type { PerpsToken } from './types/index.js';\n\n// Constants (explicit named exports)\nexport {\n CandlePeriod,\n TimeDuration,\n ChartInterval,\n MAX_CANDLE_COUNT,\n DURATION_CANDLE_PERIODS,\n CANDLE_PERIODS,\n DEFAULT_CANDLE_PERIOD,\n getCandlePeriodsForDuration,\n getDefaultCandlePeriodForDuration,\n calculateCandleCount,\n} from './constants/index.js';\nexport { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from './constants/index.js';\nexport { DETAILED_ORDER_TYPES, isTPSLOrder } from './constants/index.js';\nexport { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from './constants/index.js';\nexport {\n ARBITRUM_MAINNET_CHAIN_ID_HEX,\n ARBITRUM_MAINNET_CHAIN_ID,\n ARBITRUM_TESTNET_CHAIN_ID,\n ARBITRUM_MAINNET_CAIP_CHAIN_ID,\n ARBITRUM_TESTNET_CAIP_CHAIN_ID,\n HYPERLIQUID_MAINNET_CHAIN_ID,\n HYPERLIQUID_TESTNET_CHAIN_ID,\n HYPERLIQUID_MAINNET_CAIP_CHAIN_ID,\n HYPERLIQUID_TESTNET_CAIP_CHAIN_ID,\n HYPERLIQUID_NETWORK_NAME,\n USDC_SYMBOL,\n USDC_NAME,\n USDC_DECIMALS,\n TOKEN_DECIMALS,\n ZERO_ADDRESS,\n ZERO_BALANCE,\n ARBITRUM_SEPOLIA_CHAIN_ID,\n USDC_ETHEREUM_MAINNET_ADDRESS,\n USDC_ARBITRUM_MAINNET_ADDRESS,\n USDC_ARBITRUM_TESTNET_ADDRESS,\n USDC_TOKEN_ICON_URL,\n HYPERLIQUID_ENDPOINTS,\n HYPERLIQUID_ASSET_ICONS_BASE_URL,\n METAMASK_PERPS_ICONS_BASE_URL,\n HYPERLIQUID_ASSET_CONFIGS,\n HYPERLIQUID_BRIDGE_CONTRACTS,\n HYPERLIQUID_TRANSPORT_CONFIG,\n TRADING_DEFAULTS,\n FEE_RATES,\n HIP3_FEE_CONFIG,\n BUILDER_FEE_CONFIG,\n REFERRAL_CONFIG,\n DEPOSIT_CONFIG,\n HYPERLIQUID_WITHDRAWAL_MINUTES,\n getWebSocketEndpoint,\n getChainId,\n getCaipChainId,\n getBridgeInfo,\n getSupportedAssets,\n CAIP_ASSET_NAMESPACES,\n HYPERLIQUID_CONFIG,\n HIP3_ASSET_ID_CONFIG,\n BASIS_POINTS_DIVISOR,\n SPOT_ASSET_ID_OFFSET,\n HIP3_ASSET_MARKET_TYPES,\n TESTNET_HIP3_CONFIG,\n MAINNET_HIP3_CONFIG,\n HIP3_MARGIN_CONFIG,\n INITIAL_AMOUNT_UI_PROGRESS,\n WITHDRAWAL_PROGRESS_STAGES,\n PROGRESS_BAR_COMPLETION_DELAY_MS,\n} from './constants/index.js';\nexport type { SupportedAsset } from './constants/index.js';\nexport { PerpsMeasurementName } from './constants/index.js';\nexport {\n MYX_MAINNET_CHAIN_ID,\n MYX_TESTNET_CHAIN_ID,\n MYX_MAINNET_CAIP_CHAIN_ID,\n MYX_TESTNET_CAIP_CHAIN_ID,\n getMYXChainId,\n MYX_ENDPOINTS,\n getMYXHttpEndpoint,\n MYX_PRICE_DECIMALS,\n MYX_SIZE_DECIMALS,\n MYX_COLLATERAL_DECIMALS,\n USDT_BNB_TESTNET,\n USDT_BNB_MAINNET,\n MYX_ASSET_CONFIGS,\n fromMYXPrice,\n toMYXPrice,\n fromMYXSize,\n toMYXSize,\n fromMYXCollateral,\n MYX_PRICE_POLLING_INTERVAL_MS,\n MYX_HTTP_TIMEOUT_MS,\n MYX_MAX_RETRIES,\n MYX_MAX_LEVERAGE,\n MYX_FEE_RATE,\n MYX_PROTOCOL_FEE_RATE,\n MYX_DEFAULT_SLIPPAGE_BPS,\n MYX_MINIMUM_ORDER_SIZE_USD,\n MYX_EXECUTION_FEE_TOKEN,\n} from './constants/index.js';\nexport {\n PERPS_CONSTANTS,\n WITHDRAWAL_CONSTANTS,\n VALIDATION_THRESHOLDS,\n ORDER_SLIPPAGE_CONFIG,\n 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/index.js';\nexport type { SortOptionId } from './constants/index.js';\n\n// Utilities (explicit named exports)\nexport {\n findEvmAccount,\n getEvmAccountFromAccountGroup,\n getSelectedEvmAccount,\n calculateWeightedReturnOnEquity,\n aggregateAccountStates,\n} from './utils/index.js';\nexport type { ReturnOnEquityInput } from './utils/index.js';\nexport { ensureError, isAbortError } from './utils/index.js';\nexport type {\n OrderBookCacheEntry,\n ProcessL2BookDataParams,\n ProcessBboDataParams,\n} from './utils/index.js';\nexport { processL2BookData, processBboData } from './utils/index.js';\nexport type { ValidationDebugLogger } from './utils/index.js';\nexport {\n createErrorResult,\n validateWithdrawalParams,\n validateDepositParams,\n validateAssetSupport,\n validateBalance,\n applyPathFilters,\n getSupportedPaths,\n getMaxOrderValue,\n validateOrderParams,\n validateCoinExists,\n} from './utils/index.js';\nexport {\n TRIGGER_ORDER_TYPES,\n isTriggerOrderType,\n isLimitExecutionOrderType,\n getTriggerExecution,\n getTriggerDirection,\n buildTriggerOrderType,\n buildPositionTriggerOrderFromOrder,\n} from './utils/index.js';\nexport {\n adaptTriggerOrderTypeFromSDK,\n adaptPositionTriggerOrderFromSDK,\n adaptTpslLinkageToGrouping,\n} from './utils/index.js';\nexport {\n generatePerpsId,\n generateDepositId,\n generateWithdrawalId,\n generateOrderId,\n generateTransactionId,\n} from './utils/index.js';\nexport {\n calculateOpenInterestUSD,\n isMarketTradable,\n transformMarketData,\n formatChange,\n} from './utils/index.js';\nexport type { HyperLiquidMarketData } from './utils/index.js';\nexport {\n getPerpsConnectionAttemptContext,\n withPerpsConnectionAttemptContext,\n} from './utils/perpsConnectionAttemptContext.js';\nexport type { PerpsConnectionAttemptContext } from './utils/perpsConnectionAttemptContext.js';\nexport {\n MAX_MARKET_PATTERN_LENGTH,\n escapeRegex,\n validateMarketPattern,\n compileMarketPattern,\n matchesMarketPattern,\n shouldIncludeMarket,\n getPerpsDisplaySymbol,\n getPerpsDexFromSymbol,\n calculateFundingCountdown,\n calculate24hHighLow,\n filterMarketsByQuery,\n matchesCategory,\n getMarketTypeFilter,\n applyMarketFilters,\n isHip3Market,\n rankMarketsByQuery,\n getMarketMatchRank,\n} from './utils/index.js';\nexport { MarketMatchRank } from './utils/index.js';\nexport type {\n MarketPatternMatcher,\n CompiledMarketPattern,\n} from './utils/index.js';\nexport type {\n OrderCalculationsDebugLogger,\n CalculateFinalPositionSizeParams,\n CalculateFinalPositionSizeResult,\n CalculateOrderPriceAndSizeParams,\n CalculateOrderPriceAndSizeResult,\n BuildOrdersArrayParams,\n BuildOrdersArrayResult,\n} from './utils/index.js';\nexport {\n calculatePositionSize,\n calculateMarginRequired,\n getMaxAllowedAmount,\n calculateFinalPositionSize,\n calculateOrderPriceAndSize,\n buildOrdersArray,\n} from './utils/index.js';\nexport {\n formatAccountToCaipAccountId,\n isCaipAccountId,\n handleRewardsError,\n} from './utils/index.js';\nexport {\n countSignificantFigures,\n hasExceededSignificantFigures,\n roundToSignificantFigures,\n} from './utils/index.js';\nexport type { SortMarketsParams } from './utils/index.js';\nexport { parseVolume, sortMarkets } from './utils/index.js';\nexport type { StandaloneInfoClientOptions } from './utils/index.js';\nexport {\n createStandaloneInfoClient,\n queryStandaloneClearinghouseStates,\n queryStandaloneOpenOrders,\n} from './utils/index.js';\nexport { stripQuotes, parseCommaSeparatedString } from './utils/index.js';\nexport { generateERC20TransferData } from './utils/index.js';\nexport { wait } from './utils/index.js';\nexport {\n adaptOrderToSDK,\n adaptPositionFromSDK,\n adaptOrderFromSDK,\n adaptMarketFromSDK,\n adaptAccountStateFromSDK,\n buildAssetMapping,\n formatHyperLiquidPrice,\n formatHyperLiquidSize,\n calculateHip3AssetId,\n parseAssetName,\n adaptHyperLiquidLedgerUpdateToUserHistoryItem,\n} from './utils/index.js';\nexport { getEnvironment } from './utils/index.js';\nexport type { FiatRangeConfig } from './utils/index.js';\nexport {\n PRICE_THRESHOLD,\n formatWithSignificantDigits,\n PRICE_RANGES_MINIMAL_VIEW,\n PRICE_RANGES_UNIVERSAL,\n formatPerpsFiat,\n formatPositionSize,\n formatPnl,\n formatPercentage,\n formatFundingRate,\n} from './utils/index.js';\n\n// Error codes (explicit named exports)\nexport { PERPS_ERROR_CODES } from './perpsErrorCodes.js';\nexport type { PerpsErrorCode } from './perpsErrorCodes.js';\n\n// Selectors (explicit named exports)\nexport {\n selectIsFirstTimeUser,\n selectHasPlacedFirstOrder,\n selectWatchlistMarkets,\n selectIsWatchlistMarket,\n selectRecentlyViewedMarkets,\n selectTradeConfiguration,\n selectPendingTradeConfiguration,\n selectMarketFilterPreferences,\n selectOrderBookGrouping,\n selectProLayoutPreferences,\n selectPerpsMode,\n} from './selectors.js';\n\n// Services (only externally consumed items)\nexport { TradingReadinessCache } from './services/TradingReadinessCache.js';\nexport type { ServiceContext } from './services/ServiceContext.js';\nexport {\n AggregatedOrderBookConnection,\n processAggregatedOrderBook,\n} from './services/AggregatedOrderBookConnection.js';\nexport type {\n OrderBookConnectionStatus,\n SubscribeAggregatedOrderBookParams,\n AggregatedOrderBookConnectionOptions,\n} from './services/AggregatedOrderBookConnection.js';\n\n// Removed with Live Market Prices component:\n// - usePerpsPrices\n"]}
@@ -46,6 +46,18 @@ exports.PERPS_ERROR_CODES = {
46
46
  ORDER_LEVERAGE_INVALID: 'ORDER_LEVERAGE_INVALID',
47
47
  ORDER_LEVERAGE_BELOW_POSITION: 'ORDER_LEVERAGE_BELOW_POSITION',
48
48
  ORDER_MAX_VALUE_EXCEEDED: 'ORDER_MAX_VALUE_EXCEEDED',
49
+ // Validation errors - trigger placement (stop / take profit) and partial TP/SL
50
+ ORDER_TRIGGER_PRICE_REQUIRED: 'ORDER_TRIGGER_PRICE_REQUIRED', // stop_*/take_profit_* placed without a trigger price
51
+ ORDER_TRIGGER_PRICE_POSITIVE: 'ORDER_TRIGGER_PRICE_POSITIVE',
52
+ ORDER_TRIGGER_PRICE_NOT_SUPPORTED: 'ORDER_TRIGGER_PRICE_NOT_SUPPORTED', // Trigger price supplied for a market/limit order
53
+ ORDER_TRIGGER_TPSL_UNSUPPORTED: 'ORDER_TRIGGER_TPSL_UNSUPPORTED', // Attached TP/SL on a trigger placement
54
+ ORDER_TPSL_SIZE_INVALID: 'ORDER_TPSL_SIZE_INVALID', // Partial TP/SL size non-positive, larger than the order, or missing its price
55
+ ORDER_EDIT_TRIGGER_UNSUPPORTED: 'ORDER_EDIT_TRIGGER_UNSUPPORTED', // editOrder cannot turn a resting order into a trigger placement
56
+ ORDER_TPSL_LINKAGE_CONFLICT: 'ORDER_TPSL_LINKAGE_CONFLICT', // tpslLinkage and the deprecated grouping disagree
57
+ ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED: 'ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED', // Position-linked TP/SL requested on an order placement; use updatePositionTPSL
58
+ ORDER_TPSL_LINKAGE_REQUIRED: 'ORDER_TPSL_LINKAGE_REQUIRED', // Attached TP/SL requested with no linkage to parent or position
59
+ ORDER_EDIT_ORDER_UNVERIFIABLE: 'ORDER_EDIT_ORDER_UNVERIFIABLE', // editOrder cannot confirm the resting order's placement type
60
+ ORDER_TIME_IN_FORCE_NOT_SUPPORTED: 'ORDER_TIME_IN_FORCE_NOT_SUPPORTED', // Time in force supplied for an order shape that cannot carry one
49
61
  // HyperLiquid client/service errors
50
62
  EXCHANGE_CLIENT_NOT_AVAILABLE: 'EXCHANGE_CLIENT_NOT_AVAILABLE',
51
63
  INFO_CLIENT_NOT_AVAILABLE: 'INFO_CLIENT_NOT_AVAILABLE',
@@ -54,6 +66,10 @@ exports.PERPS_ERROR_CODES = {
54
66
  NO_ACCOUNT_SELECTED: 'NO_ACCOUNT_SELECTED',
55
67
  KEYRING_LOCKED: 'KEYRING_LOCKED',
56
68
  INVALID_ADDRESS_FORMAT: 'INVALID_ADDRESS_FORMAT',
69
+ // Wallet has no account on the exchange yet (HyperLiquid creates accounts
70
+ // server-side on the first USDC credit). Actionable: the user must fund the
71
+ // account before any order can be placed.
72
+ EXCHANGE_ACCOUNT_NOT_FOUND: 'EXCHANGE_ACCOUNT_NOT_FOUND',
57
73
  // Transfer/swap errors
58
74
  TRANSFER_FAILED: 'TRANSFER_FAILED',
59
75
  SWAP_FAILED: 'SWAP_FAILED',
@@ -1 +1 @@
1
- {"version":3,"file":"perpsErrorCodes.cjs","sourceRoot":"","sources":["../src/perpsErrorCodes.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,iBAAiB,GAAG;IAC/B,sBAAsB,EAAE,wBAAwB;IAChD,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,mBAAmB,EAAE,qBAAqB;IAC1C,yBAAyB,EAAE,2BAA2B;IACtD,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,iCAAiC;IACjC,+BAA+B,EAAE,iCAAiC;IAClE,oCAAoC;IACpC,UAAU,EAAE,YAAY,EAAE,6DAA6D;IACvF,oBAAoB;IACpB,kBAAkB,EAAE,oBAAoB;IACxC,+BAA+B;IAC/B,0BAA0B,EAAE,4BAA4B;IACxD,wBAAwB,EAAE,0BAA0B;IACpD,wBAAwB,EAAE,0BAA0B;IACpD,4BAA4B,EAAE,8BAA8B;IAC5D,4BAA4B,EAAE,8BAA8B;IAC5D,6BAA6B,EAAE,+BAA+B;IAC9D,8BAA8B;IAC9B,yBAAyB,EAAE,2BAA2B;IACtD,uBAAuB,EAAE,yBAAyB;IAClD,uBAAuB,EAAE,yBAAyB;IAClD,sBAAsB,EAAE,wBAAwB;IAChD,4BAA4B;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,0BAA0B,EAAE,4BAA4B;IACxD,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,wBAAwB,EAAE,0BAA0B;IACpD,oCAAoC;IACpC,6BAA6B,EAAE,+BAA+B;IAC9D,yBAAyB,EAAE,2BAA2B;IACtD,iCAAiC,EAAE,mCAAmC;IACtE,wBAAwB;IACxB,mBAAmB,EAAE,qBAAqB;IAC1C,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;IAChD,uBAAuB;IACvB,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;IAC1B,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,2BAA2B;IAC3B,sBAAsB,EAAE,wBAAwB,EAAE,8CAA8C;IAChG,yBAAyB;IACzB,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,oBAAoB;IACxC,yBAAyB;IACzB,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,wBAAwB,EAAE,0BAA0B;IACpD,kBAAkB,EAAE,oBAAoB;IACxC,yBAAyB;IACzB,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,yBAAyB;IACzB,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,eAAe;CACtB,CAAC","sourcesContent":["/**\n * Error codes for PerpsController\n * These codes are returned to the UI layer for translation\n * Extracted to separate file to avoid circular dependencies with translatePerpsError\n */\nexport const PERPS_ERROR_CODES = {\n CLIENT_NOT_INITIALIZED: 'CLIENT_NOT_INITIALIZED',\n CLIENT_REINITIALIZING: 'CLIENT_REINITIALIZING',\n PROVIDER_NOT_AVAILABLE: 'PROVIDER_NOT_AVAILABLE',\n TOKEN_NOT_SUPPORTED: 'TOKEN_NOT_SUPPORTED',\n BRIDGE_CONTRACT_NOT_FOUND: 'BRIDGE_CONTRACT_NOT_FOUND',\n WITHDRAW_FAILED: 'WITHDRAW_FAILED',\n POSITIONS_FAILED: 'POSITIONS_FAILED',\n ACCOUNT_STATE_FAILED: 'ACCOUNT_STATE_FAILED',\n MARKETS_FAILED: 'MARKETS_FAILED',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n // Provider-agnostic order errors\n ORDER_LEVERAGE_REDUCTION_FAILED: 'ORDER_LEVERAGE_REDUCTION_FAILED',\n // HyperLiquid-specific order errors\n IOC_CANCEL: 'IOC_CANCEL', // Order could not immediately match (insufficient liquidity)\n // Connection errors\n CONNECTION_TIMEOUT: 'CONNECTION_TIMEOUT',\n // Validation errors - withdraw\n WITHDRAW_ASSET_ID_REQUIRED: 'WITHDRAW_ASSET_ID_REQUIRED',\n WITHDRAW_AMOUNT_REQUIRED: 'WITHDRAW_AMOUNT_REQUIRED',\n WITHDRAW_AMOUNT_POSITIVE: 'WITHDRAW_AMOUNT_POSITIVE',\n WITHDRAW_INVALID_DESTINATION: 'WITHDRAW_INVALID_DESTINATION',\n WITHDRAW_ASSET_NOT_SUPPORTED: 'WITHDRAW_ASSET_NOT_SUPPORTED',\n WITHDRAW_INSUFFICIENT_BALANCE: 'WITHDRAW_INSUFFICIENT_BALANCE',\n // Validation errors - deposit\n DEPOSIT_ASSET_ID_REQUIRED: 'DEPOSIT_ASSET_ID_REQUIRED',\n DEPOSIT_AMOUNT_REQUIRED: 'DEPOSIT_AMOUNT_REQUIRED',\n DEPOSIT_AMOUNT_POSITIVE: 'DEPOSIT_AMOUNT_POSITIVE',\n DEPOSIT_MINIMUM_AMOUNT: 'DEPOSIT_MINIMUM_AMOUNT',\n // Validation errors - order\n ORDER_COIN_REQUIRED: 'ORDER_COIN_REQUIRED',\n ORDER_LIMIT_PRICE_REQUIRED: 'ORDER_LIMIT_PRICE_REQUIRED',\n ORDER_PRICE_POSITIVE: 'ORDER_PRICE_POSITIVE',\n ORDER_UNKNOWN_COIN: 'ORDER_UNKNOWN_COIN',\n ORDER_SIZE_POSITIVE: 'ORDER_SIZE_POSITIVE',\n ORDER_PRICE_REQUIRED: 'ORDER_PRICE_REQUIRED',\n ORDER_SIZE_MIN: 'ORDER_SIZE_MIN',\n ORDER_LEVERAGE_INVALID: 'ORDER_LEVERAGE_INVALID',\n ORDER_LEVERAGE_BELOW_POSITION: 'ORDER_LEVERAGE_BELOW_POSITION',\n ORDER_MAX_VALUE_EXCEEDED: 'ORDER_MAX_VALUE_EXCEEDED',\n // HyperLiquid client/service errors\n EXCHANGE_CLIENT_NOT_AVAILABLE: 'EXCHANGE_CLIENT_NOT_AVAILABLE',\n INFO_CLIENT_NOT_AVAILABLE: 'INFO_CLIENT_NOT_AVAILABLE',\n SUBSCRIPTION_CLIENT_NOT_AVAILABLE: 'SUBSCRIPTION_CLIENT_NOT_AVAILABLE',\n // Wallet/account errors\n NO_ACCOUNT_SELECTED: 'NO_ACCOUNT_SELECTED',\n KEYRING_LOCKED: 'KEYRING_LOCKED',\n INVALID_ADDRESS_FORMAT: 'INVALID_ADDRESS_FORMAT',\n // Transfer/swap errors\n TRANSFER_FAILED: 'TRANSFER_FAILED',\n SWAP_FAILED: 'SWAP_FAILED',\n SPOT_PAIR_NOT_FOUND: 'SPOT_PAIR_NOT_FOUND',\n PRICE_UNAVAILABLE: 'PRICE_UNAVAILABLE',\n // Market/collateral errors\n UNSUPPORTED_COLLATERAL: 'UNSUPPORTED_COLLATERAL', // DEX collateral token is not USDC (TAT-3304)\n // Batch operation errors\n BATCH_CANCEL_FAILED: 'BATCH_CANCEL_FAILED',\n BATCH_CLOSE_FAILED: 'BATCH_CLOSE_FAILED',\n // Position/margin errors\n INSUFFICIENT_MARGIN: 'INSUFFICIENT_MARGIN',\n INSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',\n REDUCE_ONLY_VIOLATION: 'REDUCE_ONLY_VIOLATION',\n POSITION_WOULD_FLIP: 'POSITION_WOULD_FLIP',\n MARGIN_ADJUSTMENT_FAILED: 'MARGIN_ADJUSTMENT_FAILED',\n TPSL_UPDATE_FAILED: 'TPSL_UPDATE_FAILED',\n // Order execution errors\n ORDER_REJECTED: 'ORDER_REJECTED',\n SLIPPAGE_EXCEEDED: 'SLIPPAGE_EXCEEDED',\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n // Network/service errors\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n NETWORK_ERROR: 'NETWORK_ERROR',\n} as const;\n\nexport type PerpsErrorCode =\n (typeof PERPS_ERROR_CODES)[keyof typeof PERPS_ERROR_CODES];\n"]}
1
+ {"version":3,"file":"perpsErrorCodes.cjs","sourceRoot":"","sources":["../src/perpsErrorCodes.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Error codes for PerpsController\n * These codes are returned to the UI layer for translation\n * Extracted to separate file to avoid circular dependencies with translatePerpsError\n */\nexport const PERPS_ERROR_CODES = {\n CLIENT_NOT_INITIALIZED: 'CLIENT_NOT_INITIALIZED',\n CLIENT_REINITIALIZING: 'CLIENT_REINITIALIZING',\n PROVIDER_NOT_AVAILABLE: 'PROVIDER_NOT_AVAILABLE',\n TOKEN_NOT_SUPPORTED: 'TOKEN_NOT_SUPPORTED',\n BRIDGE_CONTRACT_NOT_FOUND: 'BRIDGE_CONTRACT_NOT_FOUND',\n WITHDRAW_FAILED: 'WITHDRAW_FAILED',\n POSITIONS_FAILED: 'POSITIONS_FAILED',\n ACCOUNT_STATE_FAILED: 'ACCOUNT_STATE_FAILED',\n MARKETS_FAILED: 'MARKETS_FAILED',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n // Provider-agnostic order errors\n ORDER_LEVERAGE_REDUCTION_FAILED: 'ORDER_LEVERAGE_REDUCTION_FAILED',\n // HyperLiquid-specific order errors\n IOC_CANCEL: 'IOC_CANCEL', // Order could not immediately match (insufficient liquidity)\n // Connection errors\n CONNECTION_TIMEOUT: 'CONNECTION_TIMEOUT',\n // Validation errors - withdraw\n WITHDRAW_ASSET_ID_REQUIRED: 'WITHDRAW_ASSET_ID_REQUIRED',\n WITHDRAW_AMOUNT_REQUIRED: 'WITHDRAW_AMOUNT_REQUIRED',\n WITHDRAW_AMOUNT_POSITIVE: 'WITHDRAW_AMOUNT_POSITIVE',\n WITHDRAW_INVALID_DESTINATION: 'WITHDRAW_INVALID_DESTINATION',\n WITHDRAW_ASSET_NOT_SUPPORTED: 'WITHDRAW_ASSET_NOT_SUPPORTED',\n WITHDRAW_INSUFFICIENT_BALANCE: 'WITHDRAW_INSUFFICIENT_BALANCE',\n // Validation errors - deposit\n DEPOSIT_ASSET_ID_REQUIRED: 'DEPOSIT_ASSET_ID_REQUIRED',\n DEPOSIT_AMOUNT_REQUIRED: 'DEPOSIT_AMOUNT_REQUIRED',\n DEPOSIT_AMOUNT_POSITIVE: 'DEPOSIT_AMOUNT_POSITIVE',\n DEPOSIT_MINIMUM_AMOUNT: 'DEPOSIT_MINIMUM_AMOUNT',\n // Validation errors - order\n ORDER_COIN_REQUIRED: 'ORDER_COIN_REQUIRED',\n ORDER_LIMIT_PRICE_REQUIRED: 'ORDER_LIMIT_PRICE_REQUIRED',\n ORDER_PRICE_POSITIVE: 'ORDER_PRICE_POSITIVE',\n ORDER_UNKNOWN_COIN: 'ORDER_UNKNOWN_COIN',\n ORDER_SIZE_POSITIVE: 'ORDER_SIZE_POSITIVE',\n ORDER_PRICE_REQUIRED: 'ORDER_PRICE_REQUIRED',\n ORDER_SIZE_MIN: 'ORDER_SIZE_MIN',\n ORDER_LEVERAGE_INVALID: 'ORDER_LEVERAGE_INVALID',\n ORDER_LEVERAGE_BELOW_POSITION: 'ORDER_LEVERAGE_BELOW_POSITION',\n ORDER_MAX_VALUE_EXCEEDED: 'ORDER_MAX_VALUE_EXCEEDED',\n // Validation errors - trigger placement (stop / take profit) and partial TP/SL\n ORDER_TRIGGER_PRICE_REQUIRED: 'ORDER_TRIGGER_PRICE_REQUIRED', // stop_*/take_profit_* placed without a trigger price\n ORDER_TRIGGER_PRICE_POSITIVE: 'ORDER_TRIGGER_PRICE_POSITIVE',\n ORDER_TRIGGER_PRICE_NOT_SUPPORTED: 'ORDER_TRIGGER_PRICE_NOT_SUPPORTED', // Trigger price supplied for a market/limit order\n ORDER_TRIGGER_TPSL_UNSUPPORTED: 'ORDER_TRIGGER_TPSL_UNSUPPORTED', // Attached TP/SL on a trigger placement\n ORDER_TPSL_SIZE_INVALID: 'ORDER_TPSL_SIZE_INVALID', // Partial TP/SL size non-positive, larger than the order, or missing its price\n ORDER_EDIT_TRIGGER_UNSUPPORTED: 'ORDER_EDIT_TRIGGER_UNSUPPORTED', // editOrder cannot turn a resting order into a trigger placement\n ORDER_TPSL_LINKAGE_CONFLICT: 'ORDER_TPSL_LINKAGE_CONFLICT', // tpslLinkage and the deprecated grouping disagree\n ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED:\n 'ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED', // Position-linked TP/SL requested on an order placement; use updatePositionTPSL\n ORDER_TPSL_LINKAGE_REQUIRED: 'ORDER_TPSL_LINKAGE_REQUIRED', // Attached TP/SL requested with no linkage to parent or position\n ORDER_EDIT_ORDER_UNVERIFIABLE: 'ORDER_EDIT_ORDER_UNVERIFIABLE', // editOrder cannot confirm the resting order's placement type\n ORDER_TIME_IN_FORCE_NOT_SUPPORTED: 'ORDER_TIME_IN_FORCE_NOT_SUPPORTED', // Time in force supplied for an order shape that cannot carry one\n // HyperLiquid client/service errors\n EXCHANGE_CLIENT_NOT_AVAILABLE: 'EXCHANGE_CLIENT_NOT_AVAILABLE',\n INFO_CLIENT_NOT_AVAILABLE: 'INFO_CLIENT_NOT_AVAILABLE',\n SUBSCRIPTION_CLIENT_NOT_AVAILABLE: 'SUBSCRIPTION_CLIENT_NOT_AVAILABLE',\n // Wallet/account errors\n NO_ACCOUNT_SELECTED: 'NO_ACCOUNT_SELECTED',\n KEYRING_LOCKED: 'KEYRING_LOCKED',\n INVALID_ADDRESS_FORMAT: 'INVALID_ADDRESS_FORMAT',\n // Wallet has no account on the exchange yet (HyperLiquid creates accounts\n // server-side on the first USDC credit). Actionable: the user must fund the\n // account before any order can be placed.\n EXCHANGE_ACCOUNT_NOT_FOUND: 'EXCHANGE_ACCOUNT_NOT_FOUND',\n // Transfer/swap errors\n TRANSFER_FAILED: 'TRANSFER_FAILED',\n SWAP_FAILED: 'SWAP_FAILED',\n SPOT_PAIR_NOT_FOUND: 'SPOT_PAIR_NOT_FOUND',\n PRICE_UNAVAILABLE: 'PRICE_UNAVAILABLE',\n // Market/collateral errors\n UNSUPPORTED_COLLATERAL: 'UNSUPPORTED_COLLATERAL', // DEX collateral token is not USDC (TAT-3304)\n // Batch operation errors\n BATCH_CANCEL_FAILED: 'BATCH_CANCEL_FAILED',\n BATCH_CLOSE_FAILED: 'BATCH_CLOSE_FAILED',\n // Position/margin errors\n INSUFFICIENT_MARGIN: 'INSUFFICIENT_MARGIN',\n INSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',\n REDUCE_ONLY_VIOLATION: 'REDUCE_ONLY_VIOLATION',\n POSITION_WOULD_FLIP: 'POSITION_WOULD_FLIP',\n MARGIN_ADJUSTMENT_FAILED: 'MARGIN_ADJUSTMENT_FAILED',\n TPSL_UPDATE_FAILED: 'TPSL_UPDATE_FAILED',\n // Order execution errors\n ORDER_REJECTED: 'ORDER_REJECTED',\n SLIPPAGE_EXCEEDED: 'SLIPPAGE_EXCEEDED',\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n // Network/service errors\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n NETWORK_ERROR: 'NETWORK_ERROR',\n} as const;\n\nexport type PerpsErrorCode =\n (typeof PERPS_ERROR_CODES)[keyof typeof PERPS_ERROR_CODES];\n"]}
@@ -37,12 +37,24 @@ export declare const PERPS_ERROR_CODES: {
37
37
  readonly ORDER_LEVERAGE_INVALID: "ORDER_LEVERAGE_INVALID";
38
38
  readonly ORDER_LEVERAGE_BELOW_POSITION: "ORDER_LEVERAGE_BELOW_POSITION";
39
39
  readonly ORDER_MAX_VALUE_EXCEEDED: "ORDER_MAX_VALUE_EXCEEDED";
40
+ readonly ORDER_TRIGGER_PRICE_REQUIRED: "ORDER_TRIGGER_PRICE_REQUIRED";
41
+ readonly ORDER_TRIGGER_PRICE_POSITIVE: "ORDER_TRIGGER_PRICE_POSITIVE";
42
+ readonly ORDER_TRIGGER_PRICE_NOT_SUPPORTED: "ORDER_TRIGGER_PRICE_NOT_SUPPORTED";
43
+ readonly ORDER_TRIGGER_TPSL_UNSUPPORTED: "ORDER_TRIGGER_TPSL_UNSUPPORTED";
44
+ readonly ORDER_TPSL_SIZE_INVALID: "ORDER_TPSL_SIZE_INVALID";
45
+ readonly ORDER_EDIT_TRIGGER_UNSUPPORTED: "ORDER_EDIT_TRIGGER_UNSUPPORTED";
46
+ readonly ORDER_TPSL_LINKAGE_CONFLICT: "ORDER_TPSL_LINKAGE_CONFLICT";
47
+ readonly ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED: "ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED";
48
+ readonly ORDER_TPSL_LINKAGE_REQUIRED: "ORDER_TPSL_LINKAGE_REQUIRED";
49
+ readonly ORDER_EDIT_ORDER_UNVERIFIABLE: "ORDER_EDIT_ORDER_UNVERIFIABLE";
50
+ readonly ORDER_TIME_IN_FORCE_NOT_SUPPORTED: "ORDER_TIME_IN_FORCE_NOT_SUPPORTED";
40
51
  readonly EXCHANGE_CLIENT_NOT_AVAILABLE: "EXCHANGE_CLIENT_NOT_AVAILABLE";
41
52
  readonly INFO_CLIENT_NOT_AVAILABLE: "INFO_CLIENT_NOT_AVAILABLE";
42
53
  readonly SUBSCRIPTION_CLIENT_NOT_AVAILABLE: "SUBSCRIPTION_CLIENT_NOT_AVAILABLE";
43
54
  readonly NO_ACCOUNT_SELECTED: "NO_ACCOUNT_SELECTED";
44
55
  readonly KEYRING_LOCKED: "KEYRING_LOCKED";
45
56
  readonly INVALID_ADDRESS_FORMAT: "INVALID_ADDRESS_FORMAT";
57
+ readonly EXCHANGE_ACCOUNT_NOT_FOUND: "EXCHANGE_ACCOUNT_NOT_FOUND";
46
58
  readonly TRANSFER_FAILED: "TRANSFER_FAILED";
47
59
  readonly SWAP_FAILED: "SWAP_FAILED";
48
60
  readonly SPOT_PAIR_NOT_FOUND: "SPOT_PAIR_NOT_FOUND";
@@ -1 +1 @@
1
- {"version":3,"file":"perpsErrorCodes.d.cts","sourceRoot":"","sources":["../src/perpsErrorCodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEpB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"perpsErrorCodes.d.cts","sourceRoot":"","sources":["../src/perpsErrorCodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFpB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
@@ -37,12 +37,24 @@ export declare const PERPS_ERROR_CODES: {
37
37
  readonly ORDER_LEVERAGE_INVALID: "ORDER_LEVERAGE_INVALID";
38
38
  readonly ORDER_LEVERAGE_BELOW_POSITION: "ORDER_LEVERAGE_BELOW_POSITION";
39
39
  readonly ORDER_MAX_VALUE_EXCEEDED: "ORDER_MAX_VALUE_EXCEEDED";
40
+ readonly ORDER_TRIGGER_PRICE_REQUIRED: "ORDER_TRIGGER_PRICE_REQUIRED";
41
+ readonly ORDER_TRIGGER_PRICE_POSITIVE: "ORDER_TRIGGER_PRICE_POSITIVE";
42
+ readonly ORDER_TRIGGER_PRICE_NOT_SUPPORTED: "ORDER_TRIGGER_PRICE_NOT_SUPPORTED";
43
+ readonly ORDER_TRIGGER_TPSL_UNSUPPORTED: "ORDER_TRIGGER_TPSL_UNSUPPORTED";
44
+ readonly ORDER_TPSL_SIZE_INVALID: "ORDER_TPSL_SIZE_INVALID";
45
+ readonly ORDER_EDIT_TRIGGER_UNSUPPORTED: "ORDER_EDIT_TRIGGER_UNSUPPORTED";
46
+ readonly ORDER_TPSL_LINKAGE_CONFLICT: "ORDER_TPSL_LINKAGE_CONFLICT";
47
+ readonly ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED: "ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED";
48
+ readonly ORDER_TPSL_LINKAGE_REQUIRED: "ORDER_TPSL_LINKAGE_REQUIRED";
49
+ readonly ORDER_EDIT_ORDER_UNVERIFIABLE: "ORDER_EDIT_ORDER_UNVERIFIABLE";
50
+ readonly ORDER_TIME_IN_FORCE_NOT_SUPPORTED: "ORDER_TIME_IN_FORCE_NOT_SUPPORTED";
40
51
  readonly EXCHANGE_CLIENT_NOT_AVAILABLE: "EXCHANGE_CLIENT_NOT_AVAILABLE";
41
52
  readonly INFO_CLIENT_NOT_AVAILABLE: "INFO_CLIENT_NOT_AVAILABLE";
42
53
  readonly SUBSCRIPTION_CLIENT_NOT_AVAILABLE: "SUBSCRIPTION_CLIENT_NOT_AVAILABLE";
43
54
  readonly NO_ACCOUNT_SELECTED: "NO_ACCOUNT_SELECTED";
44
55
  readonly KEYRING_LOCKED: "KEYRING_LOCKED";
45
56
  readonly INVALID_ADDRESS_FORMAT: "INVALID_ADDRESS_FORMAT";
57
+ readonly EXCHANGE_ACCOUNT_NOT_FOUND: "EXCHANGE_ACCOUNT_NOT_FOUND";
46
58
  readonly TRANSFER_FAILED: "TRANSFER_FAILED";
47
59
  readonly SWAP_FAILED: "SWAP_FAILED";
48
60
  readonly SPOT_PAIR_NOT_FOUND: "SPOT_PAIR_NOT_FOUND";
@@ -1 +1 @@
1
- {"version":3,"file":"perpsErrorCodes.d.mts","sourceRoot":"","sources":["../src/perpsErrorCodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEpB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"perpsErrorCodes.d.mts","sourceRoot":"","sources":["../src/perpsErrorCodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFpB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
@@ -43,6 +43,18 @@ export const PERPS_ERROR_CODES = {
43
43
  ORDER_LEVERAGE_INVALID: 'ORDER_LEVERAGE_INVALID',
44
44
  ORDER_LEVERAGE_BELOW_POSITION: 'ORDER_LEVERAGE_BELOW_POSITION',
45
45
  ORDER_MAX_VALUE_EXCEEDED: 'ORDER_MAX_VALUE_EXCEEDED',
46
+ // Validation errors - trigger placement (stop / take profit) and partial TP/SL
47
+ ORDER_TRIGGER_PRICE_REQUIRED: 'ORDER_TRIGGER_PRICE_REQUIRED', // stop_*/take_profit_* placed without a trigger price
48
+ ORDER_TRIGGER_PRICE_POSITIVE: 'ORDER_TRIGGER_PRICE_POSITIVE',
49
+ ORDER_TRIGGER_PRICE_NOT_SUPPORTED: 'ORDER_TRIGGER_PRICE_NOT_SUPPORTED', // Trigger price supplied for a market/limit order
50
+ ORDER_TRIGGER_TPSL_UNSUPPORTED: 'ORDER_TRIGGER_TPSL_UNSUPPORTED', // Attached TP/SL on a trigger placement
51
+ ORDER_TPSL_SIZE_INVALID: 'ORDER_TPSL_SIZE_INVALID', // Partial TP/SL size non-positive, larger than the order, or missing its price
52
+ ORDER_EDIT_TRIGGER_UNSUPPORTED: 'ORDER_EDIT_TRIGGER_UNSUPPORTED', // editOrder cannot turn a resting order into a trigger placement
53
+ ORDER_TPSL_LINKAGE_CONFLICT: 'ORDER_TPSL_LINKAGE_CONFLICT', // tpslLinkage and the deprecated grouping disagree
54
+ ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED: 'ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED', // Position-linked TP/SL requested on an order placement; use updatePositionTPSL
55
+ ORDER_TPSL_LINKAGE_REQUIRED: 'ORDER_TPSL_LINKAGE_REQUIRED', // Attached TP/SL requested with no linkage to parent or position
56
+ ORDER_EDIT_ORDER_UNVERIFIABLE: 'ORDER_EDIT_ORDER_UNVERIFIABLE', // editOrder cannot confirm the resting order's placement type
57
+ ORDER_TIME_IN_FORCE_NOT_SUPPORTED: 'ORDER_TIME_IN_FORCE_NOT_SUPPORTED', // Time in force supplied for an order shape that cannot carry one
46
58
  // HyperLiquid client/service errors
47
59
  EXCHANGE_CLIENT_NOT_AVAILABLE: 'EXCHANGE_CLIENT_NOT_AVAILABLE',
48
60
  INFO_CLIENT_NOT_AVAILABLE: 'INFO_CLIENT_NOT_AVAILABLE',
@@ -51,6 +63,10 @@ export const PERPS_ERROR_CODES = {
51
63
  NO_ACCOUNT_SELECTED: 'NO_ACCOUNT_SELECTED',
52
64
  KEYRING_LOCKED: 'KEYRING_LOCKED',
53
65
  INVALID_ADDRESS_FORMAT: 'INVALID_ADDRESS_FORMAT',
66
+ // Wallet has no account on the exchange yet (HyperLiquid creates accounts
67
+ // server-side on the first USDC credit). Actionable: the user must fund the
68
+ // account before any order can be placed.
69
+ EXCHANGE_ACCOUNT_NOT_FOUND: 'EXCHANGE_ACCOUNT_NOT_FOUND',
54
70
  // Transfer/swap errors
55
71
  TRANSFER_FAILED: 'TRANSFER_FAILED',
56
72
  SWAP_FAILED: 'SWAP_FAILED',
@@ -1 +1 @@
1
- {"version":3,"file":"perpsErrorCodes.mjs","sourceRoot":"","sources":["../src/perpsErrorCodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,sBAAsB,EAAE,wBAAwB;IAChD,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,mBAAmB,EAAE,qBAAqB;IAC1C,yBAAyB,EAAE,2BAA2B;IACtD,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,iCAAiC;IACjC,+BAA+B,EAAE,iCAAiC;IAClE,oCAAoC;IACpC,UAAU,EAAE,YAAY,EAAE,6DAA6D;IACvF,oBAAoB;IACpB,kBAAkB,EAAE,oBAAoB;IACxC,+BAA+B;IAC/B,0BAA0B,EAAE,4BAA4B;IACxD,wBAAwB,EAAE,0BAA0B;IACpD,wBAAwB,EAAE,0BAA0B;IACpD,4BAA4B,EAAE,8BAA8B;IAC5D,4BAA4B,EAAE,8BAA8B;IAC5D,6BAA6B,EAAE,+BAA+B;IAC9D,8BAA8B;IAC9B,yBAAyB,EAAE,2BAA2B;IACtD,uBAAuB,EAAE,yBAAyB;IAClD,uBAAuB,EAAE,yBAAyB;IAClD,sBAAsB,EAAE,wBAAwB;IAChD,4BAA4B;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,0BAA0B,EAAE,4BAA4B;IACxD,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,wBAAwB,EAAE,0BAA0B;IACpD,oCAAoC;IACpC,6BAA6B,EAAE,+BAA+B;IAC9D,yBAAyB,EAAE,2BAA2B;IACtD,iCAAiC,EAAE,mCAAmC;IACtE,wBAAwB;IACxB,mBAAmB,EAAE,qBAAqB;IAC1C,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;IAChD,uBAAuB;IACvB,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;IAC1B,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,2BAA2B;IAC3B,sBAAsB,EAAE,wBAAwB,EAAE,8CAA8C;IAChG,yBAAyB;IACzB,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,oBAAoB;IACxC,yBAAyB;IACzB,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,wBAAwB,EAAE,0BAA0B;IACpD,kBAAkB,EAAE,oBAAoB;IACxC,yBAAyB;IACzB,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,yBAAyB;IACzB,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,eAAe;CACtB,CAAC","sourcesContent":["/**\n * Error codes for PerpsController\n * These codes are returned to the UI layer for translation\n * Extracted to separate file to avoid circular dependencies with translatePerpsError\n */\nexport const PERPS_ERROR_CODES = {\n CLIENT_NOT_INITIALIZED: 'CLIENT_NOT_INITIALIZED',\n CLIENT_REINITIALIZING: 'CLIENT_REINITIALIZING',\n PROVIDER_NOT_AVAILABLE: 'PROVIDER_NOT_AVAILABLE',\n TOKEN_NOT_SUPPORTED: 'TOKEN_NOT_SUPPORTED',\n BRIDGE_CONTRACT_NOT_FOUND: 'BRIDGE_CONTRACT_NOT_FOUND',\n WITHDRAW_FAILED: 'WITHDRAW_FAILED',\n POSITIONS_FAILED: 'POSITIONS_FAILED',\n ACCOUNT_STATE_FAILED: 'ACCOUNT_STATE_FAILED',\n MARKETS_FAILED: 'MARKETS_FAILED',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n // Provider-agnostic order errors\n ORDER_LEVERAGE_REDUCTION_FAILED: 'ORDER_LEVERAGE_REDUCTION_FAILED',\n // HyperLiquid-specific order errors\n IOC_CANCEL: 'IOC_CANCEL', // Order could not immediately match (insufficient liquidity)\n // Connection errors\n CONNECTION_TIMEOUT: 'CONNECTION_TIMEOUT',\n // Validation errors - withdraw\n WITHDRAW_ASSET_ID_REQUIRED: 'WITHDRAW_ASSET_ID_REQUIRED',\n WITHDRAW_AMOUNT_REQUIRED: 'WITHDRAW_AMOUNT_REQUIRED',\n WITHDRAW_AMOUNT_POSITIVE: 'WITHDRAW_AMOUNT_POSITIVE',\n WITHDRAW_INVALID_DESTINATION: 'WITHDRAW_INVALID_DESTINATION',\n WITHDRAW_ASSET_NOT_SUPPORTED: 'WITHDRAW_ASSET_NOT_SUPPORTED',\n WITHDRAW_INSUFFICIENT_BALANCE: 'WITHDRAW_INSUFFICIENT_BALANCE',\n // Validation errors - deposit\n DEPOSIT_ASSET_ID_REQUIRED: 'DEPOSIT_ASSET_ID_REQUIRED',\n DEPOSIT_AMOUNT_REQUIRED: 'DEPOSIT_AMOUNT_REQUIRED',\n DEPOSIT_AMOUNT_POSITIVE: 'DEPOSIT_AMOUNT_POSITIVE',\n DEPOSIT_MINIMUM_AMOUNT: 'DEPOSIT_MINIMUM_AMOUNT',\n // Validation errors - order\n ORDER_COIN_REQUIRED: 'ORDER_COIN_REQUIRED',\n ORDER_LIMIT_PRICE_REQUIRED: 'ORDER_LIMIT_PRICE_REQUIRED',\n ORDER_PRICE_POSITIVE: 'ORDER_PRICE_POSITIVE',\n ORDER_UNKNOWN_COIN: 'ORDER_UNKNOWN_COIN',\n ORDER_SIZE_POSITIVE: 'ORDER_SIZE_POSITIVE',\n ORDER_PRICE_REQUIRED: 'ORDER_PRICE_REQUIRED',\n ORDER_SIZE_MIN: 'ORDER_SIZE_MIN',\n ORDER_LEVERAGE_INVALID: 'ORDER_LEVERAGE_INVALID',\n ORDER_LEVERAGE_BELOW_POSITION: 'ORDER_LEVERAGE_BELOW_POSITION',\n ORDER_MAX_VALUE_EXCEEDED: 'ORDER_MAX_VALUE_EXCEEDED',\n // HyperLiquid client/service errors\n EXCHANGE_CLIENT_NOT_AVAILABLE: 'EXCHANGE_CLIENT_NOT_AVAILABLE',\n INFO_CLIENT_NOT_AVAILABLE: 'INFO_CLIENT_NOT_AVAILABLE',\n SUBSCRIPTION_CLIENT_NOT_AVAILABLE: 'SUBSCRIPTION_CLIENT_NOT_AVAILABLE',\n // Wallet/account errors\n NO_ACCOUNT_SELECTED: 'NO_ACCOUNT_SELECTED',\n KEYRING_LOCKED: 'KEYRING_LOCKED',\n INVALID_ADDRESS_FORMAT: 'INVALID_ADDRESS_FORMAT',\n // Transfer/swap errors\n TRANSFER_FAILED: 'TRANSFER_FAILED',\n SWAP_FAILED: 'SWAP_FAILED',\n SPOT_PAIR_NOT_FOUND: 'SPOT_PAIR_NOT_FOUND',\n PRICE_UNAVAILABLE: 'PRICE_UNAVAILABLE',\n // Market/collateral errors\n UNSUPPORTED_COLLATERAL: 'UNSUPPORTED_COLLATERAL', // DEX collateral token is not USDC (TAT-3304)\n // Batch operation errors\n BATCH_CANCEL_FAILED: 'BATCH_CANCEL_FAILED',\n BATCH_CLOSE_FAILED: 'BATCH_CLOSE_FAILED',\n // Position/margin errors\n INSUFFICIENT_MARGIN: 'INSUFFICIENT_MARGIN',\n INSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',\n REDUCE_ONLY_VIOLATION: 'REDUCE_ONLY_VIOLATION',\n POSITION_WOULD_FLIP: 'POSITION_WOULD_FLIP',\n MARGIN_ADJUSTMENT_FAILED: 'MARGIN_ADJUSTMENT_FAILED',\n TPSL_UPDATE_FAILED: 'TPSL_UPDATE_FAILED',\n // Order execution errors\n ORDER_REJECTED: 'ORDER_REJECTED',\n SLIPPAGE_EXCEEDED: 'SLIPPAGE_EXCEEDED',\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n // Network/service errors\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n NETWORK_ERROR: 'NETWORK_ERROR',\n} as const;\n\nexport type PerpsErrorCode =\n (typeof PERPS_ERROR_CODES)[keyof typeof PERPS_ERROR_CODES];\n"]}
1
+ {"version":3,"file":"perpsErrorCodes.mjs","sourceRoot":"","sources":["../src/perpsErrorCodes.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Error codes for PerpsController\n * These codes are returned to the UI layer for translation\n * Extracted to separate file to avoid circular dependencies with translatePerpsError\n */\nexport const PERPS_ERROR_CODES = {\n CLIENT_NOT_INITIALIZED: 'CLIENT_NOT_INITIALIZED',\n CLIENT_REINITIALIZING: 'CLIENT_REINITIALIZING',\n PROVIDER_NOT_AVAILABLE: 'PROVIDER_NOT_AVAILABLE',\n TOKEN_NOT_SUPPORTED: 'TOKEN_NOT_SUPPORTED',\n BRIDGE_CONTRACT_NOT_FOUND: 'BRIDGE_CONTRACT_NOT_FOUND',\n WITHDRAW_FAILED: 'WITHDRAW_FAILED',\n POSITIONS_FAILED: 'POSITIONS_FAILED',\n ACCOUNT_STATE_FAILED: 'ACCOUNT_STATE_FAILED',\n MARKETS_FAILED: 'MARKETS_FAILED',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n // Provider-agnostic order errors\n ORDER_LEVERAGE_REDUCTION_FAILED: 'ORDER_LEVERAGE_REDUCTION_FAILED',\n // HyperLiquid-specific order errors\n IOC_CANCEL: 'IOC_CANCEL', // Order could not immediately match (insufficient liquidity)\n // Connection errors\n CONNECTION_TIMEOUT: 'CONNECTION_TIMEOUT',\n // Validation errors - withdraw\n WITHDRAW_ASSET_ID_REQUIRED: 'WITHDRAW_ASSET_ID_REQUIRED',\n WITHDRAW_AMOUNT_REQUIRED: 'WITHDRAW_AMOUNT_REQUIRED',\n WITHDRAW_AMOUNT_POSITIVE: 'WITHDRAW_AMOUNT_POSITIVE',\n WITHDRAW_INVALID_DESTINATION: 'WITHDRAW_INVALID_DESTINATION',\n WITHDRAW_ASSET_NOT_SUPPORTED: 'WITHDRAW_ASSET_NOT_SUPPORTED',\n WITHDRAW_INSUFFICIENT_BALANCE: 'WITHDRAW_INSUFFICIENT_BALANCE',\n // Validation errors - deposit\n DEPOSIT_ASSET_ID_REQUIRED: 'DEPOSIT_ASSET_ID_REQUIRED',\n DEPOSIT_AMOUNT_REQUIRED: 'DEPOSIT_AMOUNT_REQUIRED',\n DEPOSIT_AMOUNT_POSITIVE: 'DEPOSIT_AMOUNT_POSITIVE',\n DEPOSIT_MINIMUM_AMOUNT: 'DEPOSIT_MINIMUM_AMOUNT',\n // Validation errors - order\n ORDER_COIN_REQUIRED: 'ORDER_COIN_REQUIRED',\n ORDER_LIMIT_PRICE_REQUIRED: 'ORDER_LIMIT_PRICE_REQUIRED',\n ORDER_PRICE_POSITIVE: 'ORDER_PRICE_POSITIVE',\n ORDER_UNKNOWN_COIN: 'ORDER_UNKNOWN_COIN',\n ORDER_SIZE_POSITIVE: 'ORDER_SIZE_POSITIVE',\n ORDER_PRICE_REQUIRED: 'ORDER_PRICE_REQUIRED',\n ORDER_SIZE_MIN: 'ORDER_SIZE_MIN',\n ORDER_LEVERAGE_INVALID: 'ORDER_LEVERAGE_INVALID',\n ORDER_LEVERAGE_BELOW_POSITION: 'ORDER_LEVERAGE_BELOW_POSITION',\n ORDER_MAX_VALUE_EXCEEDED: 'ORDER_MAX_VALUE_EXCEEDED',\n // Validation errors - trigger placement (stop / take profit) and partial TP/SL\n ORDER_TRIGGER_PRICE_REQUIRED: 'ORDER_TRIGGER_PRICE_REQUIRED', // stop_*/take_profit_* placed without a trigger price\n ORDER_TRIGGER_PRICE_POSITIVE: 'ORDER_TRIGGER_PRICE_POSITIVE',\n ORDER_TRIGGER_PRICE_NOT_SUPPORTED: 'ORDER_TRIGGER_PRICE_NOT_SUPPORTED', // Trigger price supplied for a market/limit order\n ORDER_TRIGGER_TPSL_UNSUPPORTED: 'ORDER_TRIGGER_TPSL_UNSUPPORTED', // Attached TP/SL on a trigger placement\n ORDER_TPSL_SIZE_INVALID: 'ORDER_TPSL_SIZE_INVALID', // Partial TP/SL size non-positive, larger than the order, or missing its price\n ORDER_EDIT_TRIGGER_UNSUPPORTED: 'ORDER_EDIT_TRIGGER_UNSUPPORTED', // editOrder cannot turn a resting order into a trigger placement\n ORDER_TPSL_LINKAGE_CONFLICT: 'ORDER_TPSL_LINKAGE_CONFLICT', // tpslLinkage and the deprecated grouping disagree\n ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED:\n 'ORDER_TPSL_POSITION_LINKAGE_UNSUPPORTED', // Position-linked TP/SL requested on an order placement; use updatePositionTPSL\n ORDER_TPSL_LINKAGE_REQUIRED: 'ORDER_TPSL_LINKAGE_REQUIRED', // Attached TP/SL requested with no linkage to parent or position\n ORDER_EDIT_ORDER_UNVERIFIABLE: 'ORDER_EDIT_ORDER_UNVERIFIABLE', // editOrder cannot confirm the resting order's placement type\n ORDER_TIME_IN_FORCE_NOT_SUPPORTED: 'ORDER_TIME_IN_FORCE_NOT_SUPPORTED', // Time in force supplied for an order shape that cannot carry one\n // HyperLiquid client/service errors\n EXCHANGE_CLIENT_NOT_AVAILABLE: 'EXCHANGE_CLIENT_NOT_AVAILABLE',\n INFO_CLIENT_NOT_AVAILABLE: 'INFO_CLIENT_NOT_AVAILABLE',\n SUBSCRIPTION_CLIENT_NOT_AVAILABLE: 'SUBSCRIPTION_CLIENT_NOT_AVAILABLE',\n // Wallet/account errors\n NO_ACCOUNT_SELECTED: 'NO_ACCOUNT_SELECTED',\n KEYRING_LOCKED: 'KEYRING_LOCKED',\n INVALID_ADDRESS_FORMAT: 'INVALID_ADDRESS_FORMAT',\n // Wallet has no account on the exchange yet (HyperLiquid creates accounts\n // server-side on the first USDC credit). Actionable: the user must fund the\n // account before any order can be placed.\n EXCHANGE_ACCOUNT_NOT_FOUND: 'EXCHANGE_ACCOUNT_NOT_FOUND',\n // Transfer/swap errors\n TRANSFER_FAILED: 'TRANSFER_FAILED',\n SWAP_FAILED: 'SWAP_FAILED',\n SPOT_PAIR_NOT_FOUND: 'SPOT_PAIR_NOT_FOUND',\n PRICE_UNAVAILABLE: 'PRICE_UNAVAILABLE',\n // Market/collateral errors\n UNSUPPORTED_COLLATERAL: 'UNSUPPORTED_COLLATERAL', // DEX collateral token is not USDC (TAT-3304)\n // Batch operation errors\n BATCH_CANCEL_FAILED: 'BATCH_CANCEL_FAILED',\n BATCH_CLOSE_FAILED: 'BATCH_CLOSE_FAILED',\n // Position/margin errors\n INSUFFICIENT_MARGIN: 'INSUFFICIENT_MARGIN',\n INSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',\n REDUCE_ONLY_VIOLATION: 'REDUCE_ONLY_VIOLATION',\n POSITION_WOULD_FLIP: 'POSITION_WOULD_FLIP',\n MARGIN_ADJUSTMENT_FAILED: 'MARGIN_ADJUSTMENT_FAILED',\n TPSL_UPDATE_FAILED: 'TPSL_UPDATE_FAILED',\n // Order execution errors\n ORDER_REJECTED: 'ORDER_REJECTED',\n SLIPPAGE_EXCEEDED: 'SLIPPAGE_EXCEEDED',\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n // Network/service errors\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n NETWORK_ERROR: 'NETWORK_ERROR',\n} as const;\n\nexport type PerpsErrorCode =\n (typeof PERPS_ERROR_CODES)[keyof typeof PERPS_ERROR_CODES];\n"]}