@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
package/dist/providers/index.cjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HyperLiquidProvider = exports.AggregatedPerpsProvider = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Provider module exports
|
|
6
|
-
*/
|
|
7
|
-
var AggregatedPerpsProvider_1 = require("./AggregatedPerpsProvider.cjs");
|
|
8
|
-
Object.defineProperty(exports, "AggregatedPerpsProvider", { enumerable: true, get: function () { return AggregatedPerpsProvider_1.AggregatedPerpsProvider; } });
|
|
9
|
-
var HyperLiquidProvider_1 = require("./HyperLiquidProvider.cjs");
|
|
10
|
-
Object.defineProperty(exports, "HyperLiquidProvider", { enumerable: true, get: function () { return HyperLiquidProvider_1.HyperLiquidProvider; } });
|
|
11
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,iEAA4D;AAAnD,0HAAA,mBAAmB,OAAA","sourcesContent":["/**\n * Provider module exports\n */\nexport { AggregatedPerpsProvider } from './AggregatedPerpsProvider';\nexport { HyperLiquidProvider } from './HyperLiquidProvider';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,sCAAkC;AACpE,OAAO,EAAE,mBAAmB,EAAE,kCAA8B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,sCAAkC;AACpE,OAAO,EAAE,mBAAmB,EAAE,kCAA8B"}
|
package/dist/providers/index.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,sCAAkC;AACpE,OAAO,EAAE,mBAAmB,EAAE,kCAA8B","sourcesContent":["/**\n * Provider module exports\n */\nexport { AggregatedPerpsProvider } from './AggregatedPerpsProvider';\nexport { HyperLiquidProvider } from './HyperLiquidProvider';\n"]}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* eslint-disable no-restricted-syntax */
|
|
3
|
-
// TODO: Fix ESLint errors in this file - tracked for Phase 6 cleanup
|
|
4
|
-
/**
|
|
5
|
-
* ProviderRouter - Simple routing logic for multi-provider order routing
|
|
6
|
-
*
|
|
7
|
-
* Phase 1 implementation: Uses simple routing strategy where:
|
|
8
|
-
* - Explicit providerId always wins
|
|
9
|
-
* - Falls back to default provider otherwise
|
|
10
|
-
*
|
|
11
|
-
* Advanced routing strategies (best_price, user_preference per market, lowest_fee)
|
|
12
|
-
* are deferred to Phase 3.
|
|
13
|
-
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ProviderRouter = void 0;
|
|
16
|
-
/**
|
|
17
|
-
* ProviderRouter handles routing decisions for write operations
|
|
18
|
-
* in multi-provider scenarios.
|
|
19
|
-
*
|
|
20
|
-
* Phase 1 routing logic is simple:
|
|
21
|
-
* 1. If explicit providerId is passed, use it
|
|
22
|
-
* 2. Otherwise, use the default provider
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* const router = new ProviderRouter({ defaultProvider: 'hyperliquid' });
|
|
27
|
-
*
|
|
28
|
-
* // With explicit provider
|
|
29
|
-
* router.selectProvider({ providerId: 'myx' }); // Returns 'myx'
|
|
30
|
-
*
|
|
31
|
-
* // Without explicit provider
|
|
32
|
-
* router.selectProvider({ symbol: 'BTC' }); // Returns 'hyperliquid' (default)
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
class ProviderRouter {
|
|
36
|
-
/**
|
|
37
|
-
* Create a new ProviderRouter instance.
|
|
38
|
-
*
|
|
39
|
-
* @param options - Router configuration options
|
|
40
|
-
* @param options.defaultProvider - Default provider for operations without explicit providerId
|
|
41
|
-
* @param options.strategy - Routing strategy (Phase 1: only 'default_provider' supported)
|
|
42
|
-
*/
|
|
43
|
-
constructor(options) {
|
|
44
|
-
/** Current routing strategy (Phase 1: only 'default_provider' supported) */
|
|
45
|
-
this.strategy = 'default_provider';
|
|
46
|
-
/** Map of provider ID to the markets it supports */
|
|
47
|
-
this.providerMarkets = new Map();
|
|
48
|
-
this.defaultProvider = options.defaultProvider;
|
|
49
|
-
if (options.strategy) {
|
|
50
|
-
this.strategy = options.strategy;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Select the provider to use for an operation.
|
|
55
|
-
*
|
|
56
|
-
* Phase 1 logic:
|
|
57
|
-
* - Explicit providerId > defaultProvider
|
|
58
|
-
*
|
|
59
|
-
* @param params - Selection parameters
|
|
60
|
-
* @returns The provider ID to use
|
|
61
|
-
*/
|
|
62
|
-
selectProvider(params) {
|
|
63
|
-
// Phase 1: explicit providerId always wins
|
|
64
|
-
if (params.providerId) {
|
|
65
|
-
return params.providerId;
|
|
66
|
-
}
|
|
67
|
-
// Fall back to default provider
|
|
68
|
-
return this.defaultProvider;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get all providers that support a specific market.
|
|
72
|
-
*
|
|
73
|
-
* @param symbol - Market symbol (e.g., 'BTC', 'ETH')
|
|
74
|
-
* @returns Array of provider IDs that support this market
|
|
75
|
-
*/
|
|
76
|
-
getProvidersForMarket(symbol) {
|
|
77
|
-
const providers = [];
|
|
78
|
-
this.providerMarkets.forEach((markets, providerId) => {
|
|
79
|
-
if (markets.has(symbol)) {
|
|
80
|
-
providers.push(providerId);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
return providers;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Update the markets supported by a provider.
|
|
87
|
-
* Called during provider initialization or market refresh.
|
|
88
|
-
*
|
|
89
|
-
* @param providerId - Provider to update
|
|
90
|
-
* @param markets - Array of market symbols the provider supports
|
|
91
|
-
*/
|
|
92
|
-
updateProviderMarkets(providerId, markets) {
|
|
93
|
-
this.providerMarkets.set(providerId, new Set(markets));
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Clear markets for a provider (e.g., on disconnect).
|
|
97
|
-
*
|
|
98
|
-
* @param providerId - Provider to clear
|
|
99
|
-
*/
|
|
100
|
-
clearProviderMarkets(providerId) {
|
|
101
|
-
this.providerMarkets.delete(providerId);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Set the default provider for routing.
|
|
105
|
-
*
|
|
106
|
-
* @param providerId - New default provider
|
|
107
|
-
*/
|
|
108
|
-
setDefaultProvider(providerId) {
|
|
109
|
-
this.defaultProvider = providerId;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Get the current default provider.
|
|
113
|
-
*
|
|
114
|
-
* @returns Current default provider ID
|
|
115
|
-
*/
|
|
116
|
-
getDefaultProvider() {
|
|
117
|
-
return this.defaultProvider;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Get the current routing strategy.
|
|
121
|
-
*
|
|
122
|
-
* @returns Current routing strategy
|
|
123
|
-
*/
|
|
124
|
-
getStrategy() {
|
|
125
|
-
return this.strategy;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Check if a provider supports a specific market.
|
|
129
|
-
*
|
|
130
|
-
* @param providerId - Provider to check
|
|
131
|
-
* @param symbol - Market symbol
|
|
132
|
-
* @returns true if provider supports the market
|
|
133
|
-
*/
|
|
134
|
-
providerSupportsMarket(providerId, symbol) {
|
|
135
|
-
const markets = this.providerMarkets.get(providerId);
|
|
136
|
-
return markets?.has(symbol) ?? false;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Get all registered provider IDs.
|
|
140
|
-
*
|
|
141
|
-
* @returns Array of all provider IDs with registered markets
|
|
142
|
-
*/
|
|
143
|
-
getRegisteredProviders() {
|
|
144
|
-
return Array.from(this.providerMarkets.keys());
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
exports.ProviderRouter = ProviderRouter;
|
|
148
|
-
//# sourceMappingURL=ProviderRouter.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRouter.cjs","sourceRoot":"","sources":["../../src/routing/ProviderRouter.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,qEAAqE;AACrE;;;;;;;;;GASG;;;AAcH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,cAAc;IAWzB;;;;;;OAMG;IACH,YAAY,OAKX;QAnBD,4EAA4E;QAC3D,aAAQ,GAAoB,kBAAkB,CAAC;QAEhE,oDAAoD;QACnC,oBAAe,GAC9B,IAAI,GAAG,EAAE,CAAC;QAeV,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,MAA0B;QACvC,2CAA2C;QAC3C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B,CAAC;QAED,gCAAgC;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,MAAc;QAClC,MAAM,SAAS,GAAwB,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YACnD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CACnB,UAA6B,EAC7B,OAAiB;QAEjB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,UAA6B;QAChD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,UAA6B;QAC9C,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,sBAAsB,CACpB,UAA6B,EAC7B,MAAc;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,OAAO,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,sBAAsB;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AA1ID,wCA0IC","sourcesContent":["/* eslint-disable no-restricted-syntax */\n// TODO: Fix ESLint errors in this file - tracked for Phase 6 cleanup\n/**\n * ProviderRouter - Simple routing logic for multi-provider order routing\n *\n * Phase 1 implementation: Uses simple routing strategy where:\n * - Explicit providerId always wins\n * - Falls back to default provider otherwise\n *\n * Advanced routing strategies (best_price, user_preference per market, lowest_fee)\n * are deferred to Phase 3.\n */\n\nimport type { PerpsProviderType, RoutingStrategy } from '../types';\n\n/**\n * Parameters for selecting a provider for an operation.\n */\nexport type RouterSelectParams = {\n /** Asset identifier (e.g., 'BTC', 'ETH', 'xyz:TSLA') */\n symbol?: string;\n /** Explicit provider override - if provided, always used */\n providerId?: PerpsProviderType;\n};\n\n/**\n * ProviderRouter handles routing decisions for write operations\n * in multi-provider scenarios.\n *\n * Phase 1 routing logic is simple:\n * 1. If explicit providerId is passed, use it\n * 2. Otherwise, use the default provider\n *\n * @example\n * ```typescript\n * const router = new ProviderRouter({ defaultProvider: 'hyperliquid' });\n *\n * // With explicit provider\n * router.selectProvider({ providerId: 'myx' }); // Returns 'myx'\n *\n * // Without explicit provider\n * router.selectProvider({ symbol: 'BTC' }); // Returns 'hyperliquid' (default)\n * ```\n */\nexport class ProviderRouter {\n /** Default provider to use when no explicit providerId is specified */\n private defaultProvider: PerpsProviderType;\n\n /** Current routing strategy (Phase 1: only 'default_provider' supported) */\n private readonly strategy: RoutingStrategy = 'default_provider';\n\n /** Map of provider ID to the markets it supports */\n private readonly providerMarkets: Map<PerpsProviderType, Set<string>> =\n new Map();\n\n /**\n * Create a new ProviderRouter instance.\n *\n * @param options - Router configuration options\n * @param options.defaultProvider - Default provider for operations without explicit providerId\n * @param options.strategy - Routing strategy (Phase 1: only 'default_provider' supported)\n */\n constructor(options: {\n /** Default provider for operations without explicit providerId */\n defaultProvider: PerpsProviderType;\n /** Routing strategy (Phase 1: only 'default_provider' supported) */\n strategy?: RoutingStrategy;\n }) {\n this.defaultProvider = options.defaultProvider;\n if (options.strategy) {\n this.strategy = options.strategy;\n }\n }\n\n /**\n * Select the provider to use for an operation.\n *\n * Phase 1 logic:\n * - Explicit providerId > defaultProvider\n *\n * @param params - Selection parameters\n * @returns The provider ID to use\n */\n selectProvider(params: RouterSelectParams): PerpsProviderType {\n // Phase 1: explicit providerId always wins\n if (params.providerId) {\n return params.providerId;\n }\n\n // Fall back to default provider\n return this.defaultProvider;\n }\n\n /**\n * Get all providers that support a specific market.\n *\n * @param symbol - Market symbol (e.g., 'BTC', 'ETH')\n * @returns Array of provider IDs that support this market\n */\n getProvidersForMarket(symbol: string): PerpsProviderType[] {\n const providers: PerpsProviderType[] = [];\n this.providerMarkets.forEach((markets, providerId) => {\n if (markets.has(symbol)) {\n providers.push(providerId);\n }\n });\n return providers;\n }\n\n /**\n * Update the markets supported by a provider.\n * Called during provider initialization or market refresh.\n *\n * @param providerId - Provider to update\n * @param markets - Array of market symbols the provider supports\n */\n updateProviderMarkets(\n providerId: PerpsProviderType,\n markets: string[],\n ): void {\n this.providerMarkets.set(providerId, new Set(markets));\n }\n\n /**\n * Clear markets for a provider (e.g., on disconnect).\n *\n * @param providerId - Provider to clear\n */\n clearProviderMarkets(providerId: PerpsProviderType): void {\n this.providerMarkets.delete(providerId);\n }\n\n /**\n * Set the default provider for routing.\n *\n * @param providerId - New default provider\n */\n setDefaultProvider(providerId: PerpsProviderType): void {\n this.defaultProvider = providerId;\n }\n\n /**\n * Get the current default provider.\n *\n * @returns Current default provider ID\n */\n getDefaultProvider(): PerpsProviderType {\n return this.defaultProvider;\n }\n\n /**\n * Get the current routing strategy.\n *\n * @returns Current routing strategy\n */\n getStrategy(): RoutingStrategy {\n return this.strategy;\n }\n\n /**\n * Check if a provider supports a specific market.\n *\n * @param providerId - Provider to check\n * @param symbol - Market symbol\n * @returns true if provider supports the market\n */\n providerSupportsMarket(\n providerId: PerpsProviderType,\n symbol: string,\n ): boolean {\n const markets = this.providerMarkets.get(providerId);\n return markets?.has(symbol) ?? false;\n }\n\n /**\n * Get all registered provider IDs.\n *\n * @returns Array of all provider IDs with registered markets\n */\n getRegisteredProviders(): PerpsProviderType[] {\n return Array.from(this.providerMarkets.keys());\n }\n}\n"]}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ProviderRouter - Simple routing logic for multi-provider order routing
|
|
3
|
-
*
|
|
4
|
-
* Phase 1 implementation: Uses simple routing strategy where:
|
|
5
|
-
* - Explicit providerId always wins
|
|
6
|
-
* - Falls back to default provider otherwise
|
|
7
|
-
*
|
|
8
|
-
* Advanced routing strategies (best_price, user_preference per market, lowest_fee)
|
|
9
|
-
* are deferred to Phase 3.
|
|
10
|
-
*/
|
|
11
|
-
import type { PerpsProviderType, RoutingStrategy } from "../types/index.cjs";
|
|
12
|
-
/**
|
|
13
|
-
* Parameters for selecting a provider for an operation.
|
|
14
|
-
*/
|
|
15
|
-
export type RouterSelectParams = {
|
|
16
|
-
/** Asset identifier (e.g., 'BTC', 'ETH', 'xyz:TSLA') */
|
|
17
|
-
symbol?: string;
|
|
18
|
-
/** Explicit provider override - if provided, always used */
|
|
19
|
-
providerId?: PerpsProviderType;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* ProviderRouter handles routing decisions for write operations
|
|
23
|
-
* in multi-provider scenarios.
|
|
24
|
-
*
|
|
25
|
-
* Phase 1 routing logic is simple:
|
|
26
|
-
* 1. If explicit providerId is passed, use it
|
|
27
|
-
* 2. Otherwise, use the default provider
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const router = new ProviderRouter({ defaultProvider: 'hyperliquid' });
|
|
32
|
-
*
|
|
33
|
-
* // With explicit provider
|
|
34
|
-
* router.selectProvider({ providerId: 'myx' }); // Returns 'myx'
|
|
35
|
-
*
|
|
36
|
-
* // Without explicit provider
|
|
37
|
-
* router.selectProvider({ symbol: 'BTC' }); // Returns 'hyperliquid' (default)
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export declare class ProviderRouter {
|
|
41
|
-
/** Default provider to use when no explicit providerId is specified */
|
|
42
|
-
private defaultProvider;
|
|
43
|
-
/** Current routing strategy (Phase 1: only 'default_provider' supported) */
|
|
44
|
-
private readonly strategy;
|
|
45
|
-
/** Map of provider ID to the markets it supports */
|
|
46
|
-
private readonly providerMarkets;
|
|
47
|
-
/**
|
|
48
|
-
* Create a new ProviderRouter instance.
|
|
49
|
-
*
|
|
50
|
-
* @param options - Router configuration options
|
|
51
|
-
* @param options.defaultProvider - Default provider for operations without explicit providerId
|
|
52
|
-
* @param options.strategy - Routing strategy (Phase 1: only 'default_provider' supported)
|
|
53
|
-
*/
|
|
54
|
-
constructor(options: {
|
|
55
|
-
/** Default provider for operations without explicit providerId */
|
|
56
|
-
defaultProvider: PerpsProviderType;
|
|
57
|
-
/** Routing strategy (Phase 1: only 'default_provider' supported) */
|
|
58
|
-
strategy?: RoutingStrategy;
|
|
59
|
-
});
|
|
60
|
-
/**
|
|
61
|
-
* Select the provider to use for an operation.
|
|
62
|
-
*
|
|
63
|
-
* Phase 1 logic:
|
|
64
|
-
* - Explicit providerId > defaultProvider
|
|
65
|
-
*
|
|
66
|
-
* @param params - Selection parameters
|
|
67
|
-
* @returns The provider ID to use
|
|
68
|
-
*/
|
|
69
|
-
selectProvider(params: RouterSelectParams): PerpsProviderType;
|
|
70
|
-
/**
|
|
71
|
-
* Get all providers that support a specific market.
|
|
72
|
-
*
|
|
73
|
-
* @param symbol - Market symbol (e.g., 'BTC', 'ETH')
|
|
74
|
-
* @returns Array of provider IDs that support this market
|
|
75
|
-
*/
|
|
76
|
-
getProvidersForMarket(symbol: string): PerpsProviderType[];
|
|
77
|
-
/**
|
|
78
|
-
* Update the markets supported by a provider.
|
|
79
|
-
* Called during provider initialization or market refresh.
|
|
80
|
-
*
|
|
81
|
-
* @param providerId - Provider to update
|
|
82
|
-
* @param markets - Array of market symbols the provider supports
|
|
83
|
-
*/
|
|
84
|
-
updateProviderMarkets(providerId: PerpsProviderType, markets: string[]): void;
|
|
85
|
-
/**
|
|
86
|
-
* Clear markets for a provider (e.g., on disconnect).
|
|
87
|
-
*
|
|
88
|
-
* @param providerId - Provider to clear
|
|
89
|
-
*/
|
|
90
|
-
clearProviderMarkets(providerId: PerpsProviderType): void;
|
|
91
|
-
/**
|
|
92
|
-
* Set the default provider for routing.
|
|
93
|
-
*
|
|
94
|
-
* @param providerId - New default provider
|
|
95
|
-
*/
|
|
96
|
-
setDefaultProvider(providerId: PerpsProviderType): void;
|
|
97
|
-
/**
|
|
98
|
-
* Get the current default provider.
|
|
99
|
-
*
|
|
100
|
-
* @returns Current default provider ID
|
|
101
|
-
*/
|
|
102
|
-
getDefaultProvider(): PerpsProviderType;
|
|
103
|
-
/**
|
|
104
|
-
* Get the current routing strategy.
|
|
105
|
-
*
|
|
106
|
-
* @returns Current routing strategy
|
|
107
|
-
*/
|
|
108
|
-
getStrategy(): RoutingStrategy;
|
|
109
|
-
/**
|
|
110
|
-
* Check if a provider supports a specific market.
|
|
111
|
-
*
|
|
112
|
-
* @param providerId - Provider to check
|
|
113
|
-
* @param symbol - Market symbol
|
|
114
|
-
* @returns true if provider supports the market
|
|
115
|
-
*/
|
|
116
|
-
providerSupportsMarket(providerId: PerpsProviderType, symbol: string): boolean;
|
|
117
|
-
/**
|
|
118
|
-
* Get all registered provider IDs.
|
|
119
|
-
*
|
|
120
|
-
* @returns Array of all provider IDs with registered markets
|
|
121
|
-
*/
|
|
122
|
-
getRegisteredProviders(): PerpsProviderType[];
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=ProviderRouter.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRouter.d.cts","sourceRoot":"","sources":["../../src/routing/ProviderRouter.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,2BAAiB;AAEnE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IACzB,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAoB;IAE3C,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAEhE,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CACpB;IAEZ;;;;;;OAMG;gBACS,OAAO,EAAE;QACnB,kEAAkE;QAClE,eAAe,EAAE,iBAAiB,CAAC;QACnC,oEAAoE;QACpE,QAAQ,CAAC,EAAE,eAAe,CAAC;KAC5B;IAOD;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,iBAAiB;IAU7D;;;;;OAKG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAU1D;;;;;;OAMG;IACH,qBAAqB,CACnB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,MAAM,EAAE,GAChB,IAAI;IAIP;;;;OAIG;IACH,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIzD;;;;OAIG;IACH,kBAAkB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIvD;;;;OAIG;IACH,kBAAkB,IAAI,iBAAiB;IAIvC;;;;OAIG;IACH,WAAW,IAAI,eAAe;IAI9B;;;;;;OAMG;IACH,sBAAsB,CACpB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,GACb,OAAO;IAKV;;;;OAIG;IACH,sBAAsB,IAAI,iBAAiB,EAAE;CAG9C"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ProviderRouter - Simple routing logic for multi-provider order routing
|
|
3
|
-
*
|
|
4
|
-
* Phase 1 implementation: Uses simple routing strategy where:
|
|
5
|
-
* - Explicit providerId always wins
|
|
6
|
-
* - Falls back to default provider otherwise
|
|
7
|
-
*
|
|
8
|
-
* Advanced routing strategies (best_price, user_preference per market, lowest_fee)
|
|
9
|
-
* are deferred to Phase 3.
|
|
10
|
-
*/
|
|
11
|
-
import type { PerpsProviderType, RoutingStrategy } from "../types/index.mjs";
|
|
12
|
-
/**
|
|
13
|
-
* Parameters for selecting a provider for an operation.
|
|
14
|
-
*/
|
|
15
|
-
export type RouterSelectParams = {
|
|
16
|
-
/** Asset identifier (e.g., 'BTC', 'ETH', 'xyz:TSLA') */
|
|
17
|
-
symbol?: string;
|
|
18
|
-
/** Explicit provider override - if provided, always used */
|
|
19
|
-
providerId?: PerpsProviderType;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* ProviderRouter handles routing decisions for write operations
|
|
23
|
-
* in multi-provider scenarios.
|
|
24
|
-
*
|
|
25
|
-
* Phase 1 routing logic is simple:
|
|
26
|
-
* 1. If explicit providerId is passed, use it
|
|
27
|
-
* 2. Otherwise, use the default provider
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const router = new ProviderRouter({ defaultProvider: 'hyperliquid' });
|
|
32
|
-
*
|
|
33
|
-
* // With explicit provider
|
|
34
|
-
* router.selectProvider({ providerId: 'myx' }); // Returns 'myx'
|
|
35
|
-
*
|
|
36
|
-
* // Without explicit provider
|
|
37
|
-
* router.selectProvider({ symbol: 'BTC' }); // Returns 'hyperliquid' (default)
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export declare class ProviderRouter {
|
|
41
|
-
/** Default provider to use when no explicit providerId is specified */
|
|
42
|
-
private defaultProvider;
|
|
43
|
-
/** Current routing strategy (Phase 1: only 'default_provider' supported) */
|
|
44
|
-
private readonly strategy;
|
|
45
|
-
/** Map of provider ID to the markets it supports */
|
|
46
|
-
private readonly providerMarkets;
|
|
47
|
-
/**
|
|
48
|
-
* Create a new ProviderRouter instance.
|
|
49
|
-
*
|
|
50
|
-
* @param options - Router configuration options
|
|
51
|
-
* @param options.defaultProvider - Default provider for operations without explicit providerId
|
|
52
|
-
* @param options.strategy - Routing strategy (Phase 1: only 'default_provider' supported)
|
|
53
|
-
*/
|
|
54
|
-
constructor(options: {
|
|
55
|
-
/** Default provider for operations without explicit providerId */
|
|
56
|
-
defaultProvider: PerpsProviderType;
|
|
57
|
-
/** Routing strategy (Phase 1: only 'default_provider' supported) */
|
|
58
|
-
strategy?: RoutingStrategy;
|
|
59
|
-
});
|
|
60
|
-
/**
|
|
61
|
-
* Select the provider to use for an operation.
|
|
62
|
-
*
|
|
63
|
-
* Phase 1 logic:
|
|
64
|
-
* - Explicit providerId > defaultProvider
|
|
65
|
-
*
|
|
66
|
-
* @param params - Selection parameters
|
|
67
|
-
* @returns The provider ID to use
|
|
68
|
-
*/
|
|
69
|
-
selectProvider(params: RouterSelectParams): PerpsProviderType;
|
|
70
|
-
/**
|
|
71
|
-
* Get all providers that support a specific market.
|
|
72
|
-
*
|
|
73
|
-
* @param symbol - Market symbol (e.g., 'BTC', 'ETH')
|
|
74
|
-
* @returns Array of provider IDs that support this market
|
|
75
|
-
*/
|
|
76
|
-
getProvidersForMarket(symbol: string): PerpsProviderType[];
|
|
77
|
-
/**
|
|
78
|
-
* Update the markets supported by a provider.
|
|
79
|
-
* Called during provider initialization or market refresh.
|
|
80
|
-
*
|
|
81
|
-
* @param providerId - Provider to update
|
|
82
|
-
* @param markets - Array of market symbols the provider supports
|
|
83
|
-
*/
|
|
84
|
-
updateProviderMarkets(providerId: PerpsProviderType, markets: string[]): void;
|
|
85
|
-
/**
|
|
86
|
-
* Clear markets for a provider (e.g., on disconnect).
|
|
87
|
-
*
|
|
88
|
-
* @param providerId - Provider to clear
|
|
89
|
-
*/
|
|
90
|
-
clearProviderMarkets(providerId: PerpsProviderType): void;
|
|
91
|
-
/**
|
|
92
|
-
* Set the default provider for routing.
|
|
93
|
-
*
|
|
94
|
-
* @param providerId - New default provider
|
|
95
|
-
*/
|
|
96
|
-
setDefaultProvider(providerId: PerpsProviderType): void;
|
|
97
|
-
/**
|
|
98
|
-
* Get the current default provider.
|
|
99
|
-
*
|
|
100
|
-
* @returns Current default provider ID
|
|
101
|
-
*/
|
|
102
|
-
getDefaultProvider(): PerpsProviderType;
|
|
103
|
-
/**
|
|
104
|
-
* Get the current routing strategy.
|
|
105
|
-
*
|
|
106
|
-
* @returns Current routing strategy
|
|
107
|
-
*/
|
|
108
|
-
getStrategy(): RoutingStrategy;
|
|
109
|
-
/**
|
|
110
|
-
* Check if a provider supports a specific market.
|
|
111
|
-
*
|
|
112
|
-
* @param providerId - Provider to check
|
|
113
|
-
* @param symbol - Market symbol
|
|
114
|
-
* @returns true if provider supports the market
|
|
115
|
-
*/
|
|
116
|
-
providerSupportsMarket(providerId: PerpsProviderType, symbol: string): boolean;
|
|
117
|
-
/**
|
|
118
|
-
* Get all registered provider IDs.
|
|
119
|
-
*
|
|
120
|
-
* @returns Array of all provider IDs with registered markets
|
|
121
|
-
*/
|
|
122
|
-
getRegisteredProviders(): PerpsProviderType[];
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=ProviderRouter.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRouter.d.mts","sourceRoot":"","sources":["../../src/routing/ProviderRouter.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,2BAAiB;AAEnE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IACzB,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAoB;IAE3C,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAEhE,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CACpB;IAEZ;;;;;;OAMG;gBACS,OAAO,EAAE;QACnB,kEAAkE;QAClE,eAAe,EAAE,iBAAiB,CAAC;QACnC,oEAAoE;QACpE,QAAQ,CAAC,EAAE,eAAe,CAAC;KAC5B;IAOD;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,iBAAiB;IAU7D;;;;;OAKG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAU1D;;;;;;OAMG;IACH,qBAAqB,CACnB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,MAAM,EAAE,GAChB,IAAI;IAIP;;;;OAIG;IACH,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIzD;;;;OAIG;IACH,kBAAkB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIvD;;;;OAIG;IACH,kBAAkB,IAAI,iBAAiB;IAIvC;;;;OAIG;IACH,WAAW,IAAI,eAAe;IAI9B;;;;;;OAMG;IACH,sBAAsB,CACpB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,GACb,OAAO;IAKV;;;;OAIG;IACH,sBAAsB,IAAI,iBAAiB,EAAE;CAG9C"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-restricted-syntax */
|
|
2
|
-
// TODO: Fix ESLint errors in this file - tracked for Phase 6 cleanup
|
|
3
|
-
/**
|
|
4
|
-
* ProviderRouter - Simple routing logic for multi-provider order routing
|
|
5
|
-
*
|
|
6
|
-
* Phase 1 implementation: Uses simple routing strategy where:
|
|
7
|
-
* - Explicit providerId always wins
|
|
8
|
-
* - Falls back to default provider otherwise
|
|
9
|
-
*
|
|
10
|
-
* Advanced routing strategies (best_price, user_preference per market, lowest_fee)
|
|
11
|
-
* are deferred to Phase 3.
|
|
12
|
-
*/
|
|
13
|
-
/**
|
|
14
|
-
* ProviderRouter handles routing decisions for write operations
|
|
15
|
-
* in multi-provider scenarios.
|
|
16
|
-
*
|
|
17
|
-
* Phase 1 routing logic is simple:
|
|
18
|
-
* 1. If explicit providerId is passed, use it
|
|
19
|
-
* 2. Otherwise, use the default provider
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const router = new ProviderRouter({ defaultProvider: 'hyperliquid' });
|
|
24
|
-
*
|
|
25
|
-
* // With explicit provider
|
|
26
|
-
* router.selectProvider({ providerId: 'myx' }); // Returns 'myx'
|
|
27
|
-
*
|
|
28
|
-
* // Without explicit provider
|
|
29
|
-
* router.selectProvider({ symbol: 'BTC' }); // Returns 'hyperliquid' (default)
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export class ProviderRouter {
|
|
33
|
-
/**
|
|
34
|
-
* Create a new ProviderRouter instance.
|
|
35
|
-
*
|
|
36
|
-
* @param options - Router configuration options
|
|
37
|
-
* @param options.defaultProvider - Default provider for operations without explicit providerId
|
|
38
|
-
* @param options.strategy - Routing strategy (Phase 1: only 'default_provider' supported)
|
|
39
|
-
*/
|
|
40
|
-
constructor(options) {
|
|
41
|
-
/** Current routing strategy (Phase 1: only 'default_provider' supported) */
|
|
42
|
-
this.strategy = 'default_provider';
|
|
43
|
-
/** Map of provider ID to the markets it supports */
|
|
44
|
-
this.providerMarkets = new Map();
|
|
45
|
-
this.defaultProvider = options.defaultProvider;
|
|
46
|
-
if (options.strategy) {
|
|
47
|
-
this.strategy = options.strategy;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Select the provider to use for an operation.
|
|
52
|
-
*
|
|
53
|
-
* Phase 1 logic:
|
|
54
|
-
* - Explicit providerId > defaultProvider
|
|
55
|
-
*
|
|
56
|
-
* @param params - Selection parameters
|
|
57
|
-
* @returns The provider ID to use
|
|
58
|
-
*/
|
|
59
|
-
selectProvider(params) {
|
|
60
|
-
// Phase 1: explicit providerId always wins
|
|
61
|
-
if (params.providerId) {
|
|
62
|
-
return params.providerId;
|
|
63
|
-
}
|
|
64
|
-
// Fall back to default provider
|
|
65
|
-
return this.defaultProvider;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Get all providers that support a specific market.
|
|
69
|
-
*
|
|
70
|
-
* @param symbol - Market symbol (e.g., 'BTC', 'ETH')
|
|
71
|
-
* @returns Array of provider IDs that support this market
|
|
72
|
-
*/
|
|
73
|
-
getProvidersForMarket(symbol) {
|
|
74
|
-
const providers = [];
|
|
75
|
-
this.providerMarkets.forEach((markets, providerId) => {
|
|
76
|
-
if (markets.has(symbol)) {
|
|
77
|
-
providers.push(providerId);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
return providers;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Update the markets supported by a provider.
|
|
84
|
-
* Called during provider initialization or market refresh.
|
|
85
|
-
*
|
|
86
|
-
* @param providerId - Provider to update
|
|
87
|
-
* @param markets - Array of market symbols the provider supports
|
|
88
|
-
*/
|
|
89
|
-
updateProviderMarkets(providerId, markets) {
|
|
90
|
-
this.providerMarkets.set(providerId, new Set(markets));
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Clear markets for a provider (e.g., on disconnect).
|
|
94
|
-
*
|
|
95
|
-
* @param providerId - Provider to clear
|
|
96
|
-
*/
|
|
97
|
-
clearProviderMarkets(providerId) {
|
|
98
|
-
this.providerMarkets.delete(providerId);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Set the default provider for routing.
|
|
102
|
-
*
|
|
103
|
-
* @param providerId - New default provider
|
|
104
|
-
*/
|
|
105
|
-
setDefaultProvider(providerId) {
|
|
106
|
-
this.defaultProvider = providerId;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Get the current default provider.
|
|
110
|
-
*
|
|
111
|
-
* @returns Current default provider ID
|
|
112
|
-
*/
|
|
113
|
-
getDefaultProvider() {
|
|
114
|
-
return this.defaultProvider;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Get the current routing strategy.
|
|
118
|
-
*
|
|
119
|
-
* @returns Current routing strategy
|
|
120
|
-
*/
|
|
121
|
-
getStrategy() {
|
|
122
|
-
return this.strategy;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Check if a provider supports a specific market.
|
|
126
|
-
*
|
|
127
|
-
* @param providerId - Provider to check
|
|
128
|
-
* @param symbol - Market symbol
|
|
129
|
-
* @returns true if provider supports the market
|
|
130
|
-
*/
|
|
131
|
-
providerSupportsMarket(providerId, symbol) {
|
|
132
|
-
const markets = this.providerMarkets.get(providerId);
|
|
133
|
-
return markets?.has(symbol) ?? false;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Get all registered provider IDs.
|
|
137
|
-
*
|
|
138
|
-
* @returns Array of all provider IDs with registered markets
|
|
139
|
-
*/
|
|
140
|
-
getRegisteredProviders() {
|
|
141
|
-
return Array.from(this.providerMarkets.keys());
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=ProviderRouter.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRouter.mjs","sourceRoot":"","sources":["../../src/routing/ProviderRouter.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,qEAAqE;AACrE;;;;;;;;;GASG;AAcH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,cAAc;IAWzB;;;;;;OAMG;IACH,YAAY,OAKX;QAnBD,4EAA4E;QAC3D,aAAQ,GAAoB,kBAAkB,CAAC;QAEhE,oDAAoD;QACnC,oBAAe,GAC9B,IAAI,GAAG,EAAE,CAAC;QAeV,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,MAA0B;QACvC,2CAA2C;QAC3C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B,CAAC;QAED,gCAAgC;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,MAAc;QAClC,MAAM,SAAS,GAAwB,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YACnD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CACnB,UAA6B,EAC7B,OAAiB;QAEjB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,UAA6B;QAChD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,UAA6B;QAC9C,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,sBAAsB,CACpB,UAA6B,EAC7B,MAAc;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,OAAO,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,sBAAsB;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;CACF","sourcesContent":["/* eslint-disable no-restricted-syntax */\n// TODO: Fix ESLint errors in this file - tracked for Phase 6 cleanup\n/**\n * ProviderRouter - Simple routing logic for multi-provider order routing\n *\n * Phase 1 implementation: Uses simple routing strategy where:\n * - Explicit providerId always wins\n * - Falls back to default provider otherwise\n *\n * Advanced routing strategies (best_price, user_preference per market, lowest_fee)\n * are deferred to Phase 3.\n */\n\nimport type { PerpsProviderType, RoutingStrategy } from '../types';\n\n/**\n * Parameters for selecting a provider for an operation.\n */\nexport type RouterSelectParams = {\n /** Asset identifier (e.g., 'BTC', 'ETH', 'xyz:TSLA') */\n symbol?: string;\n /** Explicit provider override - if provided, always used */\n providerId?: PerpsProviderType;\n};\n\n/**\n * ProviderRouter handles routing decisions for write operations\n * in multi-provider scenarios.\n *\n * Phase 1 routing logic is simple:\n * 1. If explicit providerId is passed, use it\n * 2. Otherwise, use the default provider\n *\n * @example\n * ```typescript\n * const router = new ProviderRouter({ defaultProvider: 'hyperliquid' });\n *\n * // With explicit provider\n * router.selectProvider({ providerId: 'myx' }); // Returns 'myx'\n *\n * // Without explicit provider\n * router.selectProvider({ symbol: 'BTC' }); // Returns 'hyperliquid' (default)\n * ```\n */\nexport class ProviderRouter {\n /** Default provider to use when no explicit providerId is specified */\n private defaultProvider: PerpsProviderType;\n\n /** Current routing strategy (Phase 1: only 'default_provider' supported) */\n private readonly strategy: RoutingStrategy = 'default_provider';\n\n /** Map of provider ID to the markets it supports */\n private readonly providerMarkets: Map<PerpsProviderType, Set<string>> =\n new Map();\n\n /**\n * Create a new ProviderRouter instance.\n *\n * @param options - Router configuration options\n * @param options.defaultProvider - Default provider for operations without explicit providerId\n * @param options.strategy - Routing strategy (Phase 1: only 'default_provider' supported)\n */\n constructor(options: {\n /** Default provider for operations without explicit providerId */\n defaultProvider: PerpsProviderType;\n /** Routing strategy (Phase 1: only 'default_provider' supported) */\n strategy?: RoutingStrategy;\n }) {\n this.defaultProvider = options.defaultProvider;\n if (options.strategy) {\n this.strategy = options.strategy;\n }\n }\n\n /**\n * Select the provider to use for an operation.\n *\n * Phase 1 logic:\n * - Explicit providerId > defaultProvider\n *\n * @param params - Selection parameters\n * @returns The provider ID to use\n */\n selectProvider(params: RouterSelectParams): PerpsProviderType {\n // Phase 1: explicit providerId always wins\n if (params.providerId) {\n return params.providerId;\n }\n\n // Fall back to default provider\n return this.defaultProvider;\n }\n\n /**\n * Get all providers that support a specific market.\n *\n * @param symbol - Market symbol (e.g., 'BTC', 'ETH')\n * @returns Array of provider IDs that support this market\n */\n getProvidersForMarket(symbol: string): PerpsProviderType[] {\n const providers: PerpsProviderType[] = [];\n this.providerMarkets.forEach((markets, providerId) => {\n if (markets.has(symbol)) {\n providers.push(providerId);\n }\n });\n return providers;\n }\n\n /**\n * Update the markets supported by a provider.\n * Called during provider initialization or market refresh.\n *\n * @param providerId - Provider to update\n * @param markets - Array of market symbols the provider supports\n */\n updateProviderMarkets(\n providerId: PerpsProviderType,\n markets: string[],\n ): void {\n this.providerMarkets.set(providerId, new Set(markets));\n }\n\n /**\n * Clear markets for a provider (e.g., on disconnect).\n *\n * @param providerId - Provider to clear\n */\n clearProviderMarkets(providerId: PerpsProviderType): void {\n this.providerMarkets.delete(providerId);\n }\n\n /**\n * Set the default provider for routing.\n *\n * @param providerId - New default provider\n */\n setDefaultProvider(providerId: PerpsProviderType): void {\n this.defaultProvider = providerId;\n }\n\n /**\n * Get the current default provider.\n *\n * @returns Current default provider ID\n */\n getDefaultProvider(): PerpsProviderType {\n return this.defaultProvider;\n }\n\n /**\n * Get the current routing strategy.\n *\n * @returns Current routing strategy\n */\n getStrategy(): RoutingStrategy {\n return this.strategy;\n }\n\n /**\n * Check if a provider supports a specific market.\n *\n * @param providerId - Provider to check\n * @param symbol - Market symbol\n * @returns true if provider supports the market\n */\n providerSupportsMarket(\n providerId: PerpsProviderType,\n symbol: string,\n ): boolean {\n const markets = this.providerMarkets.get(providerId);\n return markets?.has(symbol) ?? false;\n }\n\n /**\n * Get all registered provider IDs.\n *\n * @returns Array of all provider IDs with registered markets\n */\n getRegisteredProviders(): PerpsProviderType[] {\n return Array.from(this.providerMarkets.keys());\n }\n}\n"]}
|
package/dist/routing/index.cjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProviderRouter = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Provider routing module exports
|
|
6
|
-
*/
|
|
7
|
-
var ProviderRouter_1 = require("./ProviderRouter.cjs");
|
|
8
|
-
Object.defineProperty(exports, "ProviderRouter", { enumerable: true, get: function () { return ProviderRouter_1.ProviderRouter; } });
|
|
9
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,uDAAkD;AAAzC,gHAAA,cAAc,OAAA","sourcesContent":["/**\n * Provider routing module exports\n */\nexport { ProviderRouter } from './ProviderRouter';\nexport type { RouterSelectParams } from './ProviderRouter';\n"]}
|
package/dist/routing/index.d.cts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,6BAAyB;AAClD,YAAY,EAAE,kBAAkB,EAAE,6BAAyB"}
|