@metamask-previews/perps-controller 0.0.0-preview-e4aa1532 → 0.0.0-preview-6dfa4aeba
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 +1 -11
- package/dist/PerpsController.cjs +66 -2224
- package/dist/PerpsController.cjs.map +1 -1
- package/dist/PerpsController.d.cts +79 -933
- package/dist/PerpsController.d.cts.map +1 -1
- package/dist/PerpsController.d.mts +79 -933
- package/dist/PerpsController.d.mts.map +1 -1
- package/dist/PerpsController.mjs +64 -2221
- package/dist/PerpsController.mjs.map +1 -1
- package/dist/index.cjs +1 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -6
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -6
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -19
- package/dist/__mocks__/hyperliquidMock.cjs +0 -68
- package/dist/__mocks__/hyperliquidMock.cjs.map +0 -1
- package/dist/__mocks__/hyperliquidMock.d.cts +0 -15
- package/dist/__mocks__/hyperliquidMock.d.cts.map +0 -1
- package/dist/__mocks__/hyperliquidMock.d.mts +0 -15
- package/dist/__mocks__/hyperliquidMock.d.mts.map +0 -1
- package/dist/__mocks__/hyperliquidMock.mjs +0 -65
- package/dist/__mocks__/hyperliquidMock.mjs.map +0 -1
- package/dist/__mocks__/providerMocks.cjs +0 -144
- package/dist/__mocks__/providerMocks.cjs.map +0 -1
- package/dist/__mocks__/providerMocks.d.cts +0 -44
- package/dist/__mocks__/providerMocks.d.cts.map +0 -1
- package/dist/__mocks__/providerMocks.d.mts +0 -44
- package/dist/__mocks__/providerMocks.d.mts.map +0 -1
- package/dist/__mocks__/providerMocks.mjs +0 -136
- package/dist/__mocks__/providerMocks.mjs.map +0 -1
- package/dist/__mocks__/serviceMocks.cjs +0 -187
- package/dist/__mocks__/serviceMocks.cjs.map +0 -1
- package/dist/__mocks__/serviceMocks.d.cts +0 -58
- package/dist/__mocks__/serviceMocks.d.cts.map +0 -1
- package/dist/__mocks__/serviceMocks.d.mts +0 -58
- package/dist/__mocks__/serviceMocks.d.mts.map +0 -1
- package/dist/__mocks__/serviceMocks.mjs +0 -180
- package/dist/__mocks__/serviceMocks.mjs.map +0 -1
- package/dist/aggregation/SubscriptionMultiplexer.cjs +0 -459
- package/dist/aggregation/SubscriptionMultiplexer.cjs.map +0 -1
- package/dist/aggregation/SubscriptionMultiplexer.d.cts +0 -222
- package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +0 -1
- package/dist/aggregation/SubscriptionMultiplexer.d.mts +0 -222
- package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +0 -1
- package/dist/aggregation/SubscriptionMultiplexer.mjs +0 -455
- package/dist/aggregation/SubscriptionMultiplexer.mjs.map +0 -1
- package/dist/aggregation/index.cjs +0 -9
- package/dist/aggregation/index.cjs.map +0 -1
- package/dist/aggregation/index.d.cts +0 -6
- package/dist/aggregation/index.d.cts.map +0 -1
- package/dist/aggregation/index.d.mts +0 -6
- package/dist/aggregation/index.d.mts.map +0 -1
- package/dist/aggregation/index.mjs +0 -5
- package/dist/aggregation/index.mjs.map +0 -1
- package/dist/constants/eventNames.cjs +0 -117
- package/dist/constants/eventNames.cjs.map +0 -1
- package/dist/constants/eventNames.d.cts +0 -106
- package/dist/constants/eventNames.d.cts.map +0 -1
- package/dist/constants/eventNames.d.mts +0 -106
- package/dist/constants/eventNames.d.mts.map +0 -1
- package/dist/constants/eventNames.mjs +0 -114
- package/dist/constants/eventNames.mjs.map +0 -1
- package/dist/constants/hyperLiquidConfig.cjs +0 -366
- package/dist/constants/hyperLiquidConfig.cjs.map +0 -1
- package/dist/constants/hyperLiquidConfig.d.cts +0 -276
- package/dist/constants/hyperLiquidConfig.d.cts.map +0 -1
- package/dist/constants/hyperLiquidConfig.d.mts +0 -276
- package/dist/constants/hyperLiquidConfig.d.mts.map +0 -1
- package/dist/constants/hyperLiquidConfig.mjs +0 -357
- package/dist/constants/hyperLiquidConfig.mjs.map +0 -1
- package/dist/constants/index.cjs +0 -23
- package/dist/constants/index.cjs.map +0 -1
- package/dist/constants/index.d.cts +0 -7
- package/dist/constants/index.d.cts.map +0 -1
- package/dist/constants/index.d.mts +0 -7
- package/dist/constants/index.d.mts.map +0 -1
- package/dist/constants/index.mjs +0 -7
- package/dist/constants/index.mjs.map +0 -1
- package/dist/constants/orderTypes.cjs +0 -31
- package/dist/constants/orderTypes.cjs.map +0 -1
- package/dist/constants/orderTypes.d.cts +0 -19
- package/dist/constants/orderTypes.d.cts.map +0 -1
- package/dist/constants/orderTypes.d.mts +0 -19
- package/dist/constants/orderTypes.d.mts.map +0 -1
- package/dist/constants/orderTypes.mjs +0 -27
- package/dist/constants/orderTypes.mjs.map +0 -1
- package/dist/constants/performanceMetrics.cjs +0 -61
- package/dist/constants/performanceMetrics.cjs.map +0 -1
- package/dist/constants/performanceMetrics.d.cts +0 -44
- package/dist/constants/performanceMetrics.d.cts.map +0 -1
- package/dist/constants/performanceMetrics.d.mts +0 -44
- package/dist/constants/performanceMetrics.d.mts.map +0 -1
- package/dist/constants/performanceMetrics.mjs +0 -58
- package/dist/constants/performanceMetrics.mjs.map +0 -1
- package/dist/constants/perpsConfig.cjs +0 -461
- package/dist/constants/perpsConfig.cjs.map +0 -1
- package/dist/constants/perpsConfig.d.cts +0 -343
- package/dist/constants/perpsConfig.d.cts.map +0 -1
- package/dist/constants/perpsConfig.d.mts +0 -343
- package/dist/constants/perpsConfig.d.mts.map +0 -1
- package/dist/constants/perpsConfig.mjs +0 -458
- package/dist/constants/perpsConfig.mjs.map +0 -1
- package/dist/constants/perpsErrorCodes.cjs +0 -79
- package/dist/constants/perpsErrorCodes.cjs.map +0 -1
- package/dist/constants/perpsErrorCodes.d.cts +0 -64
- package/dist/constants/perpsErrorCodes.d.cts.map +0 -1
- package/dist/constants/perpsErrorCodes.d.mts +0 -64
- package/dist/constants/perpsErrorCodes.d.mts.map +0 -1
- package/dist/constants/perpsErrorCodes.mjs +0 -76
- package/dist/constants/perpsErrorCodes.mjs.map +0 -1
- package/dist/platform-services/HyperLiquidClientService.cjs +0 -857
- package/dist/platform-services/HyperLiquidClientService.cjs.map +0 -1
- package/dist/platform-services/HyperLiquidClientService.d.cts +0 -263
- package/dist/platform-services/HyperLiquidClientService.d.cts.map +0 -1
- package/dist/platform-services/HyperLiquidClientService.d.mts +0 -263
- package/dist/platform-services/HyperLiquidClientService.d.mts.map +0 -1
- package/dist/platform-services/HyperLiquidClientService.mjs +0 -853
- package/dist/platform-services/HyperLiquidClientService.mjs.map +0 -1
- package/dist/platform-services/HyperLiquidSubscriptionService.cjs +0 -2170
- package/dist/platform-services/HyperLiquidSubscriptionService.cjs.map +0 -1
- package/dist/platform-services/HyperLiquidSubscriptionService.d.cts +0 -424
- package/dist/platform-services/HyperLiquidSubscriptionService.d.cts.map +0 -1
- package/dist/platform-services/HyperLiquidSubscriptionService.d.mts +0 -424
- package/dist/platform-services/HyperLiquidSubscriptionService.d.mts.map +0 -1
- package/dist/platform-services/HyperLiquidSubscriptionService.mjs +0 -2166
- package/dist/platform-services/HyperLiquidSubscriptionService.mjs.map +0 -1
- package/dist/platform-services/HyperLiquidWalletService.cjs +0 -140
- package/dist/platform-services/HyperLiquidWalletService.cjs.map +0 -1
- package/dist/platform-services/HyperLiquidWalletService.d.cts +0 -78
- package/dist/platform-services/HyperLiquidWalletService.d.cts.map +0 -1
- package/dist/platform-services/HyperLiquidWalletService.d.mts +0 -78
- package/dist/platform-services/HyperLiquidWalletService.d.mts.map +0 -1
- package/dist/platform-services/HyperLiquidWalletService.mjs +0 -136
- package/dist/platform-services/HyperLiquidWalletService.mjs.map +0 -1
- package/dist/providers/AggregatedPerpsProvider.cjs +0 -777
- package/dist/providers/AggregatedPerpsProvider.cjs.map +0 -1
- package/dist/providers/AggregatedPerpsProvider.d.cts +0 -466
- package/dist/providers/AggregatedPerpsProvider.d.cts.map +0 -1
- package/dist/providers/AggregatedPerpsProvider.d.mts +0 -466
- package/dist/providers/AggregatedPerpsProvider.d.mts.map +0 -1
- package/dist/providers/AggregatedPerpsProvider.mjs +0 -773
- package/dist/providers/AggregatedPerpsProvider.mjs.map +0 -1
- package/dist/providers/HyperLiquidProvider.cjs +0 -5172
- package/dist/providers/HyperLiquidProvider.cjs.map +0 -1
- package/dist/providers/HyperLiquidProvider.d.cts +0 -881
- package/dist/providers/HyperLiquidProvider.d.cts.map +0 -1
- package/dist/providers/HyperLiquidProvider.d.mts +0 -881
- package/dist/providers/HyperLiquidProvider.d.mts.map +0 -1
- package/dist/providers/HyperLiquidProvider.mjs +0 -5168
- package/dist/providers/HyperLiquidProvider.mjs.map +0 -1
- package/dist/providers/index.cjs +0 -11
- package/dist/providers/index.cjs.map +0 -1
- package/dist/providers/index.d.cts +0 -6
- package/dist/providers/index.d.cts.map +0 -1
- package/dist/providers/index.d.mts +0 -6
- package/dist/providers/index.d.mts.map +0 -1
- package/dist/providers/index.mjs +0 -6
- package/dist/providers/index.mjs.map +0 -1
- package/dist/routing/ProviderRouter.cjs +0 -148
- package/dist/routing/ProviderRouter.cjs.map +0 -1
- package/dist/routing/ProviderRouter.d.cts +0 -124
- package/dist/routing/ProviderRouter.d.cts.map +0 -1
- package/dist/routing/ProviderRouter.d.mts +0 -124
- package/dist/routing/ProviderRouter.d.mts.map +0 -1
- package/dist/routing/ProviderRouter.mjs +0 -144
- package/dist/routing/ProviderRouter.mjs.map +0 -1
- package/dist/routing/index.cjs +0 -9
- package/dist/routing/index.cjs.map +0 -1
- package/dist/routing/index.d.cts +0 -6
- package/dist/routing/index.d.cts.map +0 -1
- package/dist/routing/index.d.mts +0 -6
- package/dist/routing/index.d.mts.map +0 -1
- package/dist/routing/index.mjs +0 -5
- package/dist/routing/index.mjs.map +0 -1
- package/dist/selectors.cjs +0 -161
- package/dist/selectors.cjs.map +0 -1
- package/dist/selectors.d.cts +0 -345
- package/dist/selectors.d.cts.map +0 -1
- package/dist/selectors.d.mts +0 -345
- package/dist/selectors.d.mts.map +0 -1
- package/dist/selectors.mjs +0 -153
- package/dist/selectors.mjs.map +0 -1
- package/dist/services/AccountService.cjs +0 -313
- package/dist/services/AccountService.cjs.map +0 -1
- package/dist/services/AccountService.d.cts +0 -53
- package/dist/services/AccountService.d.cts.map +0 -1
- package/dist/services/AccountService.d.mts +0 -53
- package/dist/services/AccountService.d.mts.map +0 -1
- package/dist/services/AccountService.mjs +0 -309
- package/dist/services/AccountService.mjs.map +0 -1
- package/dist/services/DataLakeService.cjs +0 -219
- package/dist/services/DataLakeService.cjs.map +0 -1
- package/dist/services/DataLakeService.d.cts +0 -49
- package/dist/services/DataLakeService.d.cts.map +0 -1
- package/dist/services/DataLakeService.d.mts +0 -49
- package/dist/services/DataLakeService.d.mts.map +0 -1
- package/dist/services/DataLakeService.mjs +0 -215
- package/dist/services/DataLakeService.mjs.map +0 -1
- package/dist/services/DepositService.cjs +0 -96
- package/dist/services/DepositService.cjs.map +0 -1
- package/dist/services/DepositService.d.cts +0 -37
- package/dist/services/DepositService.d.cts.map +0 -1
- package/dist/services/DepositService.d.mts +0 -37
- package/dist/services/DepositService.d.mts.map +0 -1
- package/dist/services/DepositService.mjs +0 -92
- package/dist/services/DepositService.mjs.map +0 -1
- package/dist/services/EligibilityService.cjs +0 -156
- package/dist/services/EligibilityService.cjs.map +0 -1
- package/dist/services/EligibilityService.d.cts +0 -48
- package/dist/services/EligibilityService.d.cts.map +0 -1
- package/dist/services/EligibilityService.d.mts +0 -48
- package/dist/services/EligibilityService.d.mts.map +0 -1
- package/dist/services/EligibilityService.mjs +0 -152
- package/dist/services/EligibilityService.mjs.map +0 -1
- package/dist/services/FeatureFlagConfigurationService.cjs +0 -258
- package/dist/services/FeatureFlagConfigurationService.cjs.map +0 -1
- package/dist/services/FeatureFlagConfigurationService.d.cts +0 -100
- package/dist/services/FeatureFlagConfigurationService.d.cts.map +0 -1
- package/dist/services/FeatureFlagConfigurationService.d.mts +0 -100
- package/dist/services/FeatureFlagConfigurationService.d.mts.map +0 -1
- package/dist/services/FeatureFlagConfigurationService.mjs +0 -254
- package/dist/services/FeatureFlagConfigurationService.mjs.map +0 -1
- package/dist/services/MarketDataService.cjs +0 -875
- package/dist/services/MarketDataService.cjs.map +0 -1
- package/dist/services/MarketDataService.d.cts +0 -289
- package/dist/services/MarketDataService.d.cts.map +0 -1
- package/dist/services/MarketDataService.d.mts +0 -289
- package/dist/services/MarketDataService.d.mts.map +0 -1
- package/dist/services/MarketDataService.mjs +0 -871
- package/dist/services/MarketDataService.mjs.map +0 -1
- package/dist/services/RewardsIntegrationService.cjs +0 -94
- package/dist/services/RewardsIntegrationService.cjs.map +0 -1
- package/dist/services/RewardsIntegrationService.d.cts +0 -30
- package/dist/services/RewardsIntegrationService.d.cts.map +0 -1
- package/dist/services/RewardsIntegrationService.d.mts +0 -30
- package/dist/services/RewardsIntegrationService.d.mts.map +0 -1
- package/dist/services/RewardsIntegrationService.mjs +0 -90
- package/dist/services/RewardsIntegrationService.mjs.map +0 -1
- package/dist/services/ServiceContext.cjs +0 -3
- package/dist/services/ServiceContext.cjs.map +0 -1
- package/dist/services/ServiceContext.d.cts +0 -110
- package/dist/services/ServiceContext.d.cts.map +0 -1
- package/dist/services/ServiceContext.d.mts +0 -110
- package/dist/services/ServiceContext.d.mts.map +0 -1
- package/dist/services/ServiceContext.mjs +0 -2
- package/dist/services/ServiceContext.mjs.map +0 -1
- package/dist/services/TradingService.cjs +0 -1481
- package/dist/services/TradingService.cjs.map +0 -1
- package/dist/services/TradingService.d.cts +0 -308
- package/dist/services/TradingService.d.cts.map +0 -1
- package/dist/services/TradingService.d.mts +0 -308
- package/dist/services/TradingService.d.mts.map +0 -1
- package/dist/services/TradingService.mjs +0 -1477
- package/dist/services/TradingService.mjs.map +0 -1
- package/dist/services/index.cjs +0 -26
- package/dist/services/index.cjs.map +0 -1
- package/dist/services/index.d.cts +0 -11
- package/dist/services/index.d.cts.map +0 -1
- package/dist/services/index.d.mts +0 -11
- package/dist/services/index.d.mts.map +0 -1
- package/dist/services/index.mjs +0 -10
- package/dist/services/index.mjs.map +0 -1
- package/dist/services/utils.cjs +0 -16
- package/dist/services/utils.cjs.map +0 -1
- package/dist/services/utils.d.cts +0 -8
- package/dist/services/utils.d.cts.map +0 -1
- package/dist/services/utils.d.mts +0 -8
- package/dist/services/utils.d.mts.map +0 -1
- package/dist/services/utils.mjs +0 -12
- package/dist/services/utils.mjs.map +0 -1
- package/dist/types/chart.cjs +0 -42
- package/dist/types/chart.cjs.map +0 -1
- package/dist/types/chart.d.cts +0 -62
- package/dist/types/chart.d.cts.map +0 -1
- package/dist/types/chart.d.mts +0 -62
- package/dist/types/chart.d.mts.map +0 -1
- package/dist/types/chart.mjs +0 -39
- package/dist/types/chart.mjs.map +0 -1
- package/dist/types/hyperliquid-types.cjs +0 -3
- package/dist/types/hyperliquid-types.cjs.map +0 -1
- package/dist/types/hyperliquid-types.d.cts +0 -52
- package/dist/types/hyperliquid-types.d.cts.map +0 -1
- package/dist/types/hyperliquid-types.d.mts +0 -52
- package/dist/types/hyperliquid-types.d.mts.map +0 -1
- package/dist/types/hyperliquid-types.mjs +0 -2
- package/dist/types/hyperliquid-types.mjs.map +0 -1
- package/dist/types/index.cjs +0 -96
- package/dist/types/index.cjs.map +0 -1
- package/dist/types/index.d.cts +0 -1153
- package/dist/types/index.d.cts.map +0 -1
- package/dist/types/index.d.mts +0 -1153
- package/dist/types/index.d.mts.map +0 -1
- package/dist/types/index.mjs +0 -79
- package/dist/types/index.mjs.map +0 -1
- package/dist/types/transactionTypes.cjs +0 -28
- package/dist/types/transactionTypes.cjs.map +0 -1
- package/dist/types/transactionTypes.d.cts +0 -64
- package/dist/types/transactionTypes.d.cts.map +0 -1
- package/dist/types/transactionTypes.d.mts +0 -64
- package/dist/types/transactionTypes.d.mts.map +0 -1
- package/dist/types/transactionTypes.mjs +0 -23
- package/dist/types/transactionTypes.mjs.map +0 -1
- package/dist/utils/accountUtils.cjs +0 -65
- package/dist/utils/accountUtils.cjs.map +0 -1
- package/dist/utils/accountUtils.d.cts +0 -26
- package/dist/utils/accountUtils.d.cts.map +0 -1
- package/dist/utils/accountUtils.d.mts +0 -26
- package/dist/utils/accountUtils.d.mts.map +0 -1
- package/dist/utils/accountUtils.mjs +0 -61
- package/dist/utils/accountUtils.mjs.map +0 -1
- package/dist/utils/amountConversion.cjs +0 -61
- package/dist/utils/amountConversion.cjs.map +0 -1
- package/dist/utils/amountConversion.d.cts +0 -16
- package/dist/utils/amountConversion.d.cts.map +0 -1
- package/dist/utils/amountConversion.d.mts +0 -16
- package/dist/utils/amountConversion.d.mts.map +0 -1
- package/dist/utils/amountConversion.mjs +0 -54
- package/dist/utils/amountConversion.mjs.map +0 -1
- package/dist/utils/chartUtils.cjs +0 -98
- package/dist/utils/chartUtils.cjs.map +0 -1
- package/dist/utils/chartUtils.d.cts +0 -14
- package/dist/utils/chartUtils.d.cts.map +0 -1
- package/dist/utils/chartUtils.d.mts +0 -14
- package/dist/utils/chartUtils.d.mts.map +0 -1
- package/dist/utils/chartUtils.mjs +0 -94
- package/dist/utils/chartUtils.mjs.map +0 -1
- package/dist/utils/errorUtils.cjs +0 -22
- package/dist/utils/errorUtils.cjs.map +0 -1
- package/dist/utils/errorUtils.d.cts +0 -13
- package/dist/utils/errorUtils.d.cts.map +0 -1
- package/dist/utils/errorUtils.d.mts +0 -13
- package/dist/utils/errorUtils.d.mts.map +0 -1
- package/dist/utils/errorUtils.mjs +0 -18
- package/dist/utils/errorUtils.mjs.map +0 -1
- package/dist/utils/formatUtils.cjs +0 -987
- package/dist/utils/formatUtils.cjs.map +0 -1
- package/dist/utils/formatUtils.d.cts +0 -387
- package/dist/utils/formatUtils.d.cts.map +0 -1
- package/dist/utils/formatUtils.d.mts +0 -387
- package/dist/utils/formatUtils.d.mts.map +0 -1
- package/dist/utils/formatUtils.mjs +0 -966
- package/dist/utils/formatUtils.mjs.map +0 -1
- package/dist/utils/hyperLiquidAdapter.cjs +0 -454
- package/dist/utils/hyperLiquidAdapter.cjs.map +0 -1
- package/dist/utils/hyperLiquidAdapter.d.cts +0 -158
- package/dist/utils/hyperLiquidAdapter.d.cts.map +0 -1
- package/dist/utils/hyperLiquidAdapter.d.mts +0 -158
- package/dist/utils/hyperLiquidAdapter.d.mts.map +0 -1
- package/dist/utils/hyperLiquidAdapter.mjs +0 -439
- package/dist/utils/hyperLiquidAdapter.mjs.map +0 -1
- package/dist/utils/hyperLiquidOrderBookProcessor.cjs +0 -89
- package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +0 -1
- package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +0 -58
- package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +0 -1
- package/dist/utils/hyperLiquidOrderBookProcessor.d.mts +0 -58
- package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +0 -1
- package/dist/utils/hyperLiquidOrderBookProcessor.mjs +0 -84
- package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +0 -1
- package/dist/utils/hyperLiquidValidation.cjs +0 -426
- package/dist/utils/hyperLiquidValidation.cjs.map +0 -1
- package/dist/utils/hyperLiquidValidation.d.cts +0 -143
- package/dist/utils/hyperLiquidValidation.d.cts.map +0 -1
- package/dist/utils/hyperLiquidValidation.d.mts +0 -143
- package/dist/utils/hyperLiquidValidation.d.mts.map +0 -1
- package/dist/utils/hyperLiquidValidation.mjs +0 -413
- package/dist/utils/hyperLiquidValidation.mjs.map +0 -1
- package/dist/utils/idUtils.cjs +0 -50
- package/dist/utils/idUtils.cjs.map +0 -1
- package/dist/utils/idUtils.d.cts +0 -38
- package/dist/utils/idUtils.d.cts.map +0 -1
- package/dist/utils/idUtils.d.mts +0 -38
- package/dist/utils/idUtils.d.mts.map +0 -1
- package/dist/utils/idUtils.mjs +0 -42
- package/dist/utils/idUtils.mjs.map +0 -1
- package/dist/utils/marginUtils.cjs +0 -137
- package/dist/utils/marginUtils.cjs.map +0 -1
- package/dist/utils/marginUtils.d.cts +0 -64
- package/dist/utils/marginUtils.d.cts.map +0 -1
- package/dist/utils/marginUtils.d.mts +0 -64
- package/dist/utils/marginUtils.d.mts.map +0 -1
- package/dist/utils/marginUtils.mjs +0 -131
- package/dist/utils/marginUtils.mjs.map +0 -1
- package/dist/utils/marketDataTransform.cjs +0 -227
- package/dist/utils/marketDataTransform.cjs.map +0 -1
- package/dist/utils/marketDataTransform.d.cts +0 -45
- package/dist/utils/marketDataTransform.d.cts.map +0 -1
- package/dist/utils/marketDataTransform.d.mts +0 -45
- package/dist/utils/marketDataTransform.d.mts.map +0 -1
- package/dist/utils/marketDataTransform.mjs +0 -220
- package/dist/utils/marketDataTransform.mjs.map +0 -1
- package/dist/utils/marketUtils.cjs +0 -420
- package/dist/utils/marketUtils.cjs.map +0 -1
- package/dist/utils/marketUtils.d.cts +0 -227
- package/dist/utils/marketUtils.d.cts.map +0 -1
- package/dist/utils/marketUtils.d.mts +0 -227
- package/dist/utils/marketUtils.d.mts.map +0 -1
- package/dist/utils/marketUtils.mjs +0 -404
- package/dist/utils/marketUtils.mjs.map +0 -1
- package/dist/utils/orderBookGrouping.cjs +0 -151
- package/dist/utils/orderBookGrouping.cjs.map +0 -1
- package/dist/utils/orderBookGrouping.d.cts +0 -76
- package/dist/utils/orderBookGrouping.d.cts.map +0 -1
- package/dist/utils/orderBookGrouping.d.mts +0 -76
- package/dist/utils/orderBookGrouping.d.mts.map +0 -1
- package/dist/utils/orderBookGrouping.mjs +0 -143
- package/dist/utils/orderBookGrouping.mjs.map +0 -1
- package/dist/utils/orderCalculations.cjs +0 -283
- package/dist/utils/orderCalculations.cjs.map +0 -1
- package/dist/utils/orderCalculations.d.cts +0 -107
- package/dist/utils/orderCalculations.d.cts.map +0 -1
- package/dist/utils/orderCalculations.d.mts +0 -107
- package/dist/utils/orderCalculations.d.mts.map +0 -1
- package/dist/utils/orderCalculations.mjs +0 -274
- package/dist/utils/orderCalculations.mjs.map +0 -1
- package/dist/utils/orderUtils.cjs +0 -159
- package/dist/utils/orderUtils.cjs.map +0 -1
- package/dist/utils/orderUtils.d.cts +0 -66
- package/dist/utils/orderUtils.d.cts.map +0 -1
- package/dist/utils/orderUtils.d.mts +0 -66
- package/dist/utils/orderUtils.d.mts.map +0 -1
- package/dist/utils/orderUtils.mjs +0 -151
- package/dist/utils/orderUtils.mjs.map +0 -1
- package/dist/utils/pnlCalculations.cjs +0 -107
- package/dist/utils/pnlCalculations.cjs.map +0 -1
- package/dist/utils/pnlCalculations.d.cts +0 -79
- package/dist/utils/pnlCalculations.d.cts.map +0 -1
- package/dist/utils/pnlCalculations.d.mts +0 -79
- package/dist/utils/pnlCalculations.d.mts.map +0 -1
- package/dist/utils/pnlCalculations.mjs +0 -97
- package/dist/utils/pnlCalculations.mjs.map +0 -1
- package/dist/utils/positionCalculations.cjs +0 -176
- package/dist/utils/positionCalculations.cjs.map +0 -1
- package/dist/utils/positionCalculations.d.cts +0 -85
- package/dist/utils/positionCalculations.d.cts.map +0 -1
- package/dist/utils/positionCalculations.d.mts +0 -85
- package/dist/utils/positionCalculations.d.mts.map +0 -1
- package/dist/utils/positionCalculations.mjs +0 -165
- package/dist/utils/positionCalculations.mjs.map +0 -1
- package/dist/utils/sortMarkets.cjs +0 -88
- package/dist/utils/sortMarkets.cjs.map +0 -1
- package/dist/utils/sortMarkets.d.cts +0 -21
- package/dist/utils/sortMarkets.d.cts.map +0 -1
- package/dist/utils/sortMarkets.d.mts +0 -21
- package/dist/utils/sortMarkets.d.mts.map +0 -1
- package/dist/utils/sortMarkets.mjs +0 -84
- package/dist/utils/sortMarkets.mjs.map +0 -1
- package/dist/utils/standaloneInfoClient.cjs +0 -34
- package/dist/utils/standaloneInfoClient.cjs.map +0 -1
- package/dist/utils/standaloneInfoClient.d.cts +0 -31
- package/dist/utils/standaloneInfoClient.d.cts.map +0 -1
- package/dist/utils/standaloneInfoClient.d.mts +0 -31
- package/dist/utils/standaloneInfoClient.d.mts.map +0 -1
- package/dist/utils/standaloneInfoClient.mjs +0 -30
- package/dist/utils/standaloneInfoClient.mjs.map +0 -1
- package/dist/utils/stringParseUtils.cjs +0 -49
- package/dist/utils/stringParseUtils.cjs.map +0 -1
- package/dist/utils/stringParseUtils.d.cts +0 -35
- package/dist/utils/stringParseUtils.d.cts.map +0 -1
- package/dist/utils/stringParseUtils.d.mts +0 -35
- package/dist/utils/stringParseUtils.d.mts.map +0 -1
- package/dist/utils/stringParseUtils.mjs +0 -44
- package/dist/utils/stringParseUtils.mjs.map +0 -1
- package/dist/utils/time.cjs +0 -37
- package/dist/utils/time.cjs.map +0 -1
- package/dist/utils/time.d.cts +0 -17
- package/dist/utils/time.d.cts.map +0 -1
- package/dist/utils/time.d.mts +0 -17
- package/dist/utils/time.d.mts.map +0 -1
- package/dist/utils/time.mjs +0 -33
- package/dist/utils/time.mjs.map +0 -1
- package/dist/utils/tpslValidation.cjs +0 -505
- package/dist/utils/tpslValidation.cjs.map +0 -1
- package/dist/utils/tpslValidation.d.cts +0 -182
- package/dist/utils/tpslValidation.d.cts.map +0 -1
- package/dist/utils/tpslValidation.d.mts +0 -182
- package/dist/utils/tpslValidation.d.mts.map +0 -1
- package/dist/utils/tpslValidation.mjs +0 -482
- package/dist/utils/tpslValidation.mjs.map +0 -1
- package/dist/utils/transactionUtils.cjs +0 -36
- package/dist/utils/transactionUtils.cjs.map +0 -1
- package/dist/utils/transactionUtils.d.cts +0 -17
- package/dist/utils/transactionUtils.d.cts.map +0 -1
- package/dist/utils/transactionUtils.d.mts +0 -17
- package/dist/utils/transactionUtils.d.mts.map +0 -1
- package/dist/utils/transactionUtils.mjs +0 -32
- package/dist/utils/transactionUtils.mjs.map +0 -1
- package/dist/utils/wait.cjs +0 -12
- package/dist/utils/wait.cjs.map +0 -1
- package/dist/utils/wait.d.cts +0 -8
- package/dist/utils/wait.d.cts.map +0 -1
- package/dist/utils/wait.d.mts +0 -8
- package/dist/utils/wait.d.mts.map +0 -1
- package/dist/utils/wait.mjs +0 -8
- package/dist/utils/wait.mjs.map +0 -1
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SubscriptionMultiplexer - Manages WebSocket subscriptions across multiple providers
|
|
3
|
-
*
|
|
4
|
-
* Responsibilities:
|
|
5
|
-
* - Manage subscriptions to multiple providers simultaneously
|
|
6
|
-
* - Tag all updates with providerId so UI can differentiate sources
|
|
7
|
-
* - Support aggregation modes: 'merge' (all prices) or 'best_price' (best price per symbol)
|
|
8
|
-
* - Cache latest updates per provider per symbol for aggregation
|
|
9
|
-
*/
|
|
10
|
-
import type { PerpsProviderType, PerpsProvider, PerpsLogger, PriceUpdate, Position, OrderFill, Order, AccountState } from "../types/index.cjs";
|
|
11
|
-
/**
|
|
12
|
-
* Options for constructing SubscriptionMultiplexer.
|
|
13
|
-
*/
|
|
14
|
-
export type SubscriptionMultiplexerOptions = {
|
|
15
|
-
/** Optional logger for error reporting (e.g., Sentry) */
|
|
16
|
-
logger?: PerpsLogger;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Aggregation mode for price subscriptions.
|
|
20
|
-
*/
|
|
21
|
-
export type PriceAggregationMode = 'merge' | 'best_price';
|
|
22
|
-
/**
|
|
23
|
-
* Parameters for multiplexed price subscriptions.
|
|
24
|
-
*/
|
|
25
|
-
export type MultiplexedPricesParams = {
|
|
26
|
-
/** Symbols to subscribe to */
|
|
27
|
-
symbols: string[];
|
|
28
|
-
/** Provider instances to subscribe through */
|
|
29
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
30
|
-
/** Callback to receive aggregated price updates */
|
|
31
|
-
callback: (prices: PriceUpdate[]) => void;
|
|
32
|
-
/** Aggregation mode: 'merge' returns all prices, 'best_price' returns best per symbol */
|
|
33
|
-
aggregationMode?: PriceAggregationMode;
|
|
34
|
-
/** Optional throttle in milliseconds */
|
|
35
|
-
throttleMs?: number;
|
|
36
|
-
/** Include order book data */
|
|
37
|
-
includeOrderBook?: boolean;
|
|
38
|
-
/** Include market data (funding, OI, volume) */
|
|
39
|
-
includeMarketData?: boolean;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Parameters for multiplexed position subscriptions.
|
|
43
|
-
*/
|
|
44
|
-
export type MultiplexedPositionsParams = {
|
|
45
|
-
/** Provider instances to subscribe through */
|
|
46
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
47
|
-
/** Callback to receive aggregated position updates */
|
|
48
|
-
callback: (positions: Position[]) => void;
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Parameters for multiplexed order fill subscriptions.
|
|
52
|
-
*/
|
|
53
|
-
export type MultiplexedOrderFillsParams = {
|
|
54
|
-
/** Provider instances to subscribe through */
|
|
55
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
56
|
-
/** Callback to receive aggregated order fill updates */
|
|
57
|
-
callback: (fills: OrderFill[], isSnapshot?: boolean) => void;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Parameters for multiplexed order subscriptions.
|
|
61
|
-
*/
|
|
62
|
-
export type MultiplexedOrdersParams = {
|
|
63
|
-
/** Provider instances to subscribe through */
|
|
64
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
65
|
-
/** Callback to receive aggregated order updates */
|
|
66
|
-
callback: (orders: Order[]) => void;
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* Parameters for multiplexed account subscriptions.
|
|
70
|
-
*/
|
|
71
|
-
export type MultiplexedAccountParams = {
|
|
72
|
-
/** Provider instances to subscribe through */
|
|
73
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
74
|
-
/** Callback to receive account updates (one per provider) */
|
|
75
|
-
callback: (accounts: AccountState[]) => void;
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* SubscriptionMultiplexer manages real-time data subscriptions across
|
|
79
|
-
* multiple perps providers.
|
|
80
|
-
*
|
|
81
|
-
* Key features:
|
|
82
|
-
* - Subscribes to all providers simultaneously
|
|
83
|
-
* - Tags all updates with source providerId
|
|
84
|
-
* - Caches latest values for aggregation
|
|
85
|
-
* - Supports different aggregation modes for prices
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* const mux = new SubscriptionMultiplexer();
|
|
90
|
-
*
|
|
91
|
-
* const unsubscribe = mux.subscribeToPrices({
|
|
92
|
-
* symbols: ['BTC', 'ETH'],
|
|
93
|
-
* providers: [
|
|
94
|
-
* ['hyperliquid', hlProvider],
|
|
95
|
-
* ['myx', myxProvider],
|
|
96
|
-
* ],
|
|
97
|
-
* callback: (prices) => {
|
|
98
|
-
* // prices have providerId injected
|
|
99
|
-
* prices.forEach(p => console.log(`${p.providerId}: ${p.symbol} = ${p.price}`));
|
|
100
|
-
* },
|
|
101
|
-
* aggregationMode: 'merge',
|
|
102
|
-
* });
|
|
103
|
-
*
|
|
104
|
-
* // Later: clean up
|
|
105
|
-
* unsubscribe();
|
|
106
|
-
* ```
|
|
107
|
-
*/
|
|
108
|
-
export declare class SubscriptionMultiplexer {
|
|
109
|
-
/**
|
|
110
|
-
* Optional logger for error reporting
|
|
111
|
-
*/
|
|
112
|
-
private readonly logger?;
|
|
113
|
-
/**
|
|
114
|
-
* Cache of latest prices per symbol per provider
|
|
115
|
-
* Map<symbol, Map<providerId, PriceUpdate>>
|
|
116
|
-
*/
|
|
117
|
-
private readonly priceCache;
|
|
118
|
-
/**
|
|
119
|
-
* Cache of latest positions per provider
|
|
120
|
-
* Map<providerId, Position[]>
|
|
121
|
-
*/
|
|
122
|
-
private readonly positionCache;
|
|
123
|
-
/**
|
|
124
|
-
* Cache of latest orders per provider
|
|
125
|
-
* Map<providerId, Order[]>
|
|
126
|
-
*/
|
|
127
|
-
private readonly orderCache;
|
|
128
|
-
/**
|
|
129
|
-
* Cache of latest account state per provider
|
|
130
|
-
* Map<providerId, AccountState>
|
|
131
|
-
*/
|
|
132
|
-
private readonly accountCache;
|
|
133
|
-
/**
|
|
134
|
-
* Create a new SubscriptionMultiplexer.
|
|
135
|
-
*
|
|
136
|
-
* @param options - Optional configuration including logger for error reporting
|
|
137
|
-
*/
|
|
138
|
-
constructor(options?: SubscriptionMultiplexerOptions);
|
|
139
|
-
/**
|
|
140
|
-
* Subscribe to price updates from multiple providers.
|
|
141
|
-
*
|
|
142
|
-
* @param params - Subscription parameters
|
|
143
|
-
* @returns Unsubscribe function
|
|
144
|
-
*/
|
|
145
|
-
subscribeToPrices(params: MultiplexedPricesParams): () => void;
|
|
146
|
-
/**
|
|
147
|
-
* Subscribe to position updates from multiple providers.
|
|
148
|
-
*
|
|
149
|
-
* @param params - Subscription parameters
|
|
150
|
-
* @returns Unsubscribe function
|
|
151
|
-
*/
|
|
152
|
-
subscribeToPositions(params: MultiplexedPositionsParams): () => void;
|
|
153
|
-
/**
|
|
154
|
-
* Subscribe to order fill updates from multiple providers.
|
|
155
|
-
*
|
|
156
|
-
* @param params - Subscription parameters
|
|
157
|
-
* @returns Unsubscribe function
|
|
158
|
-
*/
|
|
159
|
-
subscribeToOrderFills(params: MultiplexedOrderFillsParams): () => void;
|
|
160
|
-
/**
|
|
161
|
-
* Subscribe to order updates from multiple providers.
|
|
162
|
-
*
|
|
163
|
-
* @param params - Subscription parameters
|
|
164
|
-
* @returns Unsubscribe function
|
|
165
|
-
*/
|
|
166
|
-
subscribeToOrders(params: MultiplexedOrdersParams): () => void;
|
|
167
|
-
/**
|
|
168
|
-
* Subscribe to account updates from multiple providers.
|
|
169
|
-
*
|
|
170
|
-
* @param params - Subscription parameters
|
|
171
|
-
* @returns Unsubscribe function
|
|
172
|
-
*/
|
|
173
|
-
subscribeToAccount(params: MultiplexedAccountParams): () => void;
|
|
174
|
-
/**
|
|
175
|
-
* Aggregate cached prices based on mode.
|
|
176
|
-
*
|
|
177
|
-
* @param symbols - Symbols to include in result
|
|
178
|
-
* @param mode - Aggregation mode
|
|
179
|
-
* @returns Aggregated price updates
|
|
180
|
-
*/
|
|
181
|
-
private aggregatePrices;
|
|
182
|
-
/**
|
|
183
|
-
* Find the best price from multiple provider prices.
|
|
184
|
-
* "Best" is defined as the price with the smallest spread.
|
|
185
|
-
*
|
|
186
|
-
* @param providerPrices - Map of provider prices for a symbol
|
|
187
|
-
* @returns Best price update or undefined
|
|
188
|
-
*/
|
|
189
|
-
private findBestPrice;
|
|
190
|
-
/**
|
|
191
|
-
* Aggregate positions from all providers.
|
|
192
|
-
*
|
|
193
|
-
* @returns All cached positions
|
|
194
|
-
*/
|
|
195
|
-
private aggregatePositions;
|
|
196
|
-
/**
|
|
197
|
-
* Aggregate orders from all providers.
|
|
198
|
-
*
|
|
199
|
-
* @returns All cached orders
|
|
200
|
-
*/
|
|
201
|
-
private aggregateOrders;
|
|
202
|
-
/**
|
|
203
|
-
* Clear all cached data.
|
|
204
|
-
*/
|
|
205
|
-
clearCache(): void;
|
|
206
|
-
/**
|
|
207
|
-
* Get cached price for a symbol from a specific provider.
|
|
208
|
-
*
|
|
209
|
-
* @param symbol - Market symbol
|
|
210
|
-
* @param providerId - Provider ID
|
|
211
|
-
* @returns Cached price update or undefined
|
|
212
|
-
*/
|
|
213
|
-
getCachedPrice(symbol: string, providerId: PerpsProviderType): PriceUpdate | undefined;
|
|
214
|
-
/**
|
|
215
|
-
* Get all cached prices for a symbol.
|
|
216
|
-
*
|
|
217
|
-
* @param symbol - Market symbol
|
|
218
|
-
* @returns Map of provider ID to price update
|
|
219
|
-
*/
|
|
220
|
-
getAllCachedPricesForSymbol(symbol: string): Map<PerpsProviderType, PriceUpdate> | undefined;
|
|
221
|
-
}
|
|
222
|
-
//# sourceMappingURL=SubscriptionMultiplexer.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionMultiplexer.d.cts","sourceRoot":"","sources":["../../src/aggregation/SubscriptionMultiplexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SubscriptionMultiplexer - Manages WebSocket subscriptions across multiple providers
|
|
3
|
-
*
|
|
4
|
-
* Responsibilities:
|
|
5
|
-
* - Manage subscriptions to multiple providers simultaneously
|
|
6
|
-
* - Tag all updates with providerId so UI can differentiate sources
|
|
7
|
-
* - Support aggregation modes: 'merge' (all prices) or 'best_price' (best price per symbol)
|
|
8
|
-
* - Cache latest updates per provider per symbol for aggregation
|
|
9
|
-
*/
|
|
10
|
-
import type { PerpsProviderType, PerpsProvider, PerpsLogger, PriceUpdate, Position, OrderFill, Order, AccountState } from "../types/index.mjs";
|
|
11
|
-
/**
|
|
12
|
-
* Options for constructing SubscriptionMultiplexer.
|
|
13
|
-
*/
|
|
14
|
-
export type SubscriptionMultiplexerOptions = {
|
|
15
|
-
/** Optional logger for error reporting (e.g., Sentry) */
|
|
16
|
-
logger?: PerpsLogger;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Aggregation mode for price subscriptions.
|
|
20
|
-
*/
|
|
21
|
-
export type PriceAggregationMode = 'merge' | 'best_price';
|
|
22
|
-
/**
|
|
23
|
-
* Parameters for multiplexed price subscriptions.
|
|
24
|
-
*/
|
|
25
|
-
export type MultiplexedPricesParams = {
|
|
26
|
-
/** Symbols to subscribe to */
|
|
27
|
-
symbols: string[];
|
|
28
|
-
/** Provider instances to subscribe through */
|
|
29
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
30
|
-
/** Callback to receive aggregated price updates */
|
|
31
|
-
callback: (prices: PriceUpdate[]) => void;
|
|
32
|
-
/** Aggregation mode: 'merge' returns all prices, 'best_price' returns best per symbol */
|
|
33
|
-
aggregationMode?: PriceAggregationMode;
|
|
34
|
-
/** Optional throttle in milliseconds */
|
|
35
|
-
throttleMs?: number;
|
|
36
|
-
/** Include order book data */
|
|
37
|
-
includeOrderBook?: boolean;
|
|
38
|
-
/** Include market data (funding, OI, volume) */
|
|
39
|
-
includeMarketData?: boolean;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Parameters for multiplexed position subscriptions.
|
|
43
|
-
*/
|
|
44
|
-
export type MultiplexedPositionsParams = {
|
|
45
|
-
/** Provider instances to subscribe through */
|
|
46
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
47
|
-
/** Callback to receive aggregated position updates */
|
|
48
|
-
callback: (positions: Position[]) => void;
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Parameters for multiplexed order fill subscriptions.
|
|
52
|
-
*/
|
|
53
|
-
export type MultiplexedOrderFillsParams = {
|
|
54
|
-
/** Provider instances to subscribe through */
|
|
55
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
56
|
-
/** Callback to receive aggregated order fill updates */
|
|
57
|
-
callback: (fills: OrderFill[], isSnapshot?: boolean) => void;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Parameters for multiplexed order subscriptions.
|
|
61
|
-
*/
|
|
62
|
-
export type MultiplexedOrdersParams = {
|
|
63
|
-
/** Provider instances to subscribe through */
|
|
64
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
65
|
-
/** Callback to receive aggregated order updates */
|
|
66
|
-
callback: (orders: Order[]) => void;
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* Parameters for multiplexed account subscriptions.
|
|
70
|
-
*/
|
|
71
|
-
export type MultiplexedAccountParams = {
|
|
72
|
-
/** Provider instances to subscribe through */
|
|
73
|
-
providers: [PerpsProviderType, PerpsProvider][];
|
|
74
|
-
/** Callback to receive account updates (one per provider) */
|
|
75
|
-
callback: (accounts: AccountState[]) => void;
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* SubscriptionMultiplexer manages real-time data subscriptions across
|
|
79
|
-
* multiple perps providers.
|
|
80
|
-
*
|
|
81
|
-
* Key features:
|
|
82
|
-
* - Subscribes to all providers simultaneously
|
|
83
|
-
* - Tags all updates with source providerId
|
|
84
|
-
* - Caches latest values for aggregation
|
|
85
|
-
* - Supports different aggregation modes for prices
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* const mux = new SubscriptionMultiplexer();
|
|
90
|
-
*
|
|
91
|
-
* const unsubscribe = mux.subscribeToPrices({
|
|
92
|
-
* symbols: ['BTC', 'ETH'],
|
|
93
|
-
* providers: [
|
|
94
|
-
* ['hyperliquid', hlProvider],
|
|
95
|
-
* ['myx', myxProvider],
|
|
96
|
-
* ],
|
|
97
|
-
* callback: (prices) => {
|
|
98
|
-
* // prices have providerId injected
|
|
99
|
-
* prices.forEach(p => console.log(`${p.providerId}: ${p.symbol} = ${p.price}`));
|
|
100
|
-
* },
|
|
101
|
-
* aggregationMode: 'merge',
|
|
102
|
-
* });
|
|
103
|
-
*
|
|
104
|
-
* // Later: clean up
|
|
105
|
-
* unsubscribe();
|
|
106
|
-
* ```
|
|
107
|
-
*/
|
|
108
|
-
export declare class SubscriptionMultiplexer {
|
|
109
|
-
/**
|
|
110
|
-
* Optional logger for error reporting
|
|
111
|
-
*/
|
|
112
|
-
private readonly logger?;
|
|
113
|
-
/**
|
|
114
|
-
* Cache of latest prices per symbol per provider
|
|
115
|
-
* Map<symbol, Map<providerId, PriceUpdate>>
|
|
116
|
-
*/
|
|
117
|
-
private readonly priceCache;
|
|
118
|
-
/**
|
|
119
|
-
* Cache of latest positions per provider
|
|
120
|
-
* Map<providerId, Position[]>
|
|
121
|
-
*/
|
|
122
|
-
private readonly positionCache;
|
|
123
|
-
/**
|
|
124
|
-
* Cache of latest orders per provider
|
|
125
|
-
* Map<providerId, Order[]>
|
|
126
|
-
*/
|
|
127
|
-
private readonly orderCache;
|
|
128
|
-
/**
|
|
129
|
-
* Cache of latest account state per provider
|
|
130
|
-
* Map<providerId, AccountState>
|
|
131
|
-
*/
|
|
132
|
-
private readonly accountCache;
|
|
133
|
-
/**
|
|
134
|
-
* Create a new SubscriptionMultiplexer.
|
|
135
|
-
*
|
|
136
|
-
* @param options - Optional configuration including logger for error reporting
|
|
137
|
-
*/
|
|
138
|
-
constructor(options?: SubscriptionMultiplexerOptions);
|
|
139
|
-
/**
|
|
140
|
-
* Subscribe to price updates from multiple providers.
|
|
141
|
-
*
|
|
142
|
-
* @param params - Subscription parameters
|
|
143
|
-
* @returns Unsubscribe function
|
|
144
|
-
*/
|
|
145
|
-
subscribeToPrices(params: MultiplexedPricesParams): () => void;
|
|
146
|
-
/**
|
|
147
|
-
* Subscribe to position updates from multiple providers.
|
|
148
|
-
*
|
|
149
|
-
* @param params - Subscription parameters
|
|
150
|
-
* @returns Unsubscribe function
|
|
151
|
-
*/
|
|
152
|
-
subscribeToPositions(params: MultiplexedPositionsParams): () => void;
|
|
153
|
-
/**
|
|
154
|
-
* Subscribe to order fill updates from multiple providers.
|
|
155
|
-
*
|
|
156
|
-
* @param params - Subscription parameters
|
|
157
|
-
* @returns Unsubscribe function
|
|
158
|
-
*/
|
|
159
|
-
subscribeToOrderFills(params: MultiplexedOrderFillsParams): () => void;
|
|
160
|
-
/**
|
|
161
|
-
* Subscribe to order updates from multiple providers.
|
|
162
|
-
*
|
|
163
|
-
* @param params - Subscription parameters
|
|
164
|
-
* @returns Unsubscribe function
|
|
165
|
-
*/
|
|
166
|
-
subscribeToOrders(params: MultiplexedOrdersParams): () => void;
|
|
167
|
-
/**
|
|
168
|
-
* Subscribe to account updates from multiple providers.
|
|
169
|
-
*
|
|
170
|
-
* @param params - Subscription parameters
|
|
171
|
-
* @returns Unsubscribe function
|
|
172
|
-
*/
|
|
173
|
-
subscribeToAccount(params: MultiplexedAccountParams): () => void;
|
|
174
|
-
/**
|
|
175
|
-
* Aggregate cached prices based on mode.
|
|
176
|
-
*
|
|
177
|
-
* @param symbols - Symbols to include in result
|
|
178
|
-
* @param mode - Aggregation mode
|
|
179
|
-
* @returns Aggregated price updates
|
|
180
|
-
*/
|
|
181
|
-
private aggregatePrices;
|
|
182
|
-
/**
|
|
183
|
-
* Find the best price from multiple provider prices.
|
|
184
|
-
* "Best" is defined as the price with the smallest spread.
|
|
185
|
-
*
|
|
186
|
-
* @param providerPrices - Map of provider prices for a symbol
|
|
187
|
-
* @returns Best price update or undefined
|
|
188
|
-
*/
|
|
189
|
-
private findBestPrice;
|
|
190
|
-
/**
|
|
191
|
-
* Aggregate positions from all providers.
|
|
192
|
-
*
|
|
193
|
-
* @returns All cached positions
|
|
194
|
-
*/
|
|
195
|
-
private aggregatePositions;
|
|
196
|
-
/**
|
|
197
|
-
* Aggregate orders from all providers.
|
|
198
|
-
*
|
|
199
|
-
* @returns All cached orders
|
|
200
|
-
*/
|
|
201
|
-
private aggregateOrders;
|
|
202
|
-
/**
|
|
203
|
-
* Clear all cached data.
|
|
204
|
-
*/
|
|
205
|
-
clearCache(): void;
|
|
206
|
-
/**
|
|
207
|
-
* Get cached price for a symbol from a specific provider.
|
|
208
|
-
*
|
|
209
|
-
* @param symbol - Market symbol
|
|
210
|
-
* @param providerId - Provider ID
|
|
211
|
-
* @returns Cached price update or undefined
|
|
212
|
-
*/
|
|
213
|
-
getCachedPrice(symbol: string, providerId: PerpsProviderType): PriceUpdate | undefined;
|
|
214
|
-
/**
|
|
215
|
-
* Get all cached prices for a symbol.
|
|
216
|
-
*
|
|
217
|
-
* @param symbol - Market symbol
|
|
218
|
-
* @returns Map of provider ID to price update
|
|
219
|
-
*/
|
|
220
|
-
getAllCachedPricesForSymbol(symbol: string): Map<PerpsProviderType, PriceUpdate> | undefined;
|
|
221
|
-
}
|
|
222
|
-
//# sourceMappingURL=SubscriptionMultiplexer.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionMultiplexer.d.mts","sourceRoot":"","sources":["../../src/aggregation/SubscriptionMultiplexer.ts"],"names":[],"mappings":"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"}
|