@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarketDataService.mjs","sourceRoot":"","sources":["../../src/services/MarketDataService.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable id-denylist, no-restricted-syntax, @typescript-eslint/prefer-nullish-coalescing */\n// TODO: Fix ESLint errors in this file - tracked for Phase 5 cleanup\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { ServiceContext } from './ServiceContext';\nimport { PerpsMeasurementName } from '../constants/performanceMetrics';\nimport { PERPS_ERROR_CODES } from '../constants/perpsErrorCodes';\nimport type {\n PerpsTraceNames,\n PerpsTraceOperations,\n PerpsProvider,\n Position,\n GetPositionsParams,\n AccountState,\n GetAccountStateParams,\n HistoricalPortfolioResult,\n GetHistoricalPortfolioParams,\n OrderFill,\n GetOrderFillsParams,\n Funding,\n GetFundingParams,\n Order,\n GetOrdersParams,\n MarketInfo,\n GetMarketsParams,\n GetAvailableDexsParams,\n LiquidationPriceParams,\n MaintenanceMarginParams,\n FeeCalculationParams,\n FeeCalculationResult,\n OrderParams,\n ClosePositionParams,\n AssetRoute,\n PerpsPlatformDependencies,\n CandleData,\n CandlePeriod,\n} from '../types';\n\n// Import trace names and operations from types\nconst TraceNames: typeof PerpsTraceNames = {\n PlaceOrder: 'Perps Place Order',\n EditOrder: 'Perps Edit Order',\n CancelOrder: 'Perps Cancel Order',\n ClosePosition: 'Perps Close Position',\n UpdateTpsl: 'Perps Update TP/SL',\n UpdateMargin: 'Perps Update Margin',\n FlipPosition: 'Perps Flip Position',\n Withdraw: 'Perps Withdraw',\n Deposit: 'Perps Deposit',\n GetPositions: 'Perps Get Positions',\n GetAccountState: 'Perps Get Account State',\n GetMarkets: 'Perps Get Markets',\n OrderFillsFetch: 'Perps Order Fills Fetch',\n OrdersFetch: 'Perps Orders Fetch',\n FundingFetch: 'Perps Funding Fetch',\n GetHistoricalPortfolio: 'Perps Get Historical Portfolio',\n FetchHistoricalCandles: 'Perps Fetch Historical Candles',\n DataLakeReport: 'Perps Data Lake Report',\n WebsocketConnected: 'Perps WebSocket Connected',\n WebsocketDisconnected: 'Perps WebSocket Disconnected',\n WebsocketFirstPositions: 'Perps WebSocket First Positions',\n WebsocketFirstOrders: 'Perps WebSocket First Orders',\n WebsocketFirstAccount: 'Perps WebSocket First Account',\n RewardsApiCall: 'Perps Rewards API Call',\n ConnectionEstablishment: 'Perps Connection Establishment',\n AccountSwitchReconnection: 'Perps Account Switch Reconnection',\n} as const;\n\nconst TraceOperations: typeof PerpsTraceOperations = {\n Operation: 'perps.operation',\n OrderSubmission: 'perps.order_submission',\n PositionManagement: 'perps.position_management',\n MarketData: 'perps.market_data',\n} as const;\n\n/**\n * MarketDataService\n *\n * Handles all read-only data-fetching operations for the Perps controller.\n * This service is stateless and delegates to the provider.\n * The controller is responsible for tracing and state management.\n *\n * Instance-based service with constructor injection of platform dependencies.\n */\nexport class MarketDataService {\n private readonly deps: PerpsPlatformDependencies;\n\n /**\n * Create a new MarketDataService instance.\n *\n * @param deps - Platform dependencies for logging, metrics, etc.\n */\n constructor(deps: PerpsPlatformDependencies) {\n this.deps = deps;\n }\n\n /**\n * Get current positions.\n * Handles full orchestration: tracing, error logging, state management, and provider delegation.\n *\n * @param options - Options for getting positions\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for tracing and state management\n * @returns Array of positions\n */\n async getPositions(options: {\n provider: PerpsProvider;\n params?: GetPositionsParams;\n context: ServiceContext;\n }): Promise<Position[]> {\n const { provider, params, context } = options;\n const traceId = uuidv4();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.GetPositions,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n },\n });\n\n const positions = await provider.getPositions(params);\n\n // Update state on success (if stateManager is provided)\n if (context.stateManager) {\n context.stateManager.update((state) => {\n state.lastUpdateTimestamp = Date.now();\n state.lastError = null;\n });\n }\n\n traceData = { success: true };\n return positions;\n } catch (error) {\n const errorMessage =\n error instanceof Error\n ? error.message\n : PERPS_ERROR_CODES.POSITIONS_FAILED;\n\n // Update error state (if stateManager is provided)\n if (context.stateManager) {\n context.stateManager.update((state) => {\n state.lastError = errorMessage;\n state.lastUpdateTimestamp = Date.now();\n });\n }\n\n traceData = {\n success: false,\n error: errorMessage,\n };\n\n throw error;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.GetPositions,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Get order fills for a specific user or order.\n * Handles full orchestration: tracing, error logging, and provider delegation.\n *\n * @param options - Options for getting order fills\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for tracing\n * @returns Array of order fills\n */\n async getOrderFills(options: {\n provider: PerpsProvider;\n params?: GetOrderFillsParams;\n context: ServiceContext;\n }): Promise<OrderFill[]> {\n const { provider, params, context } = options;\n const traceId = uuidv4();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.OrderFillsFetch,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n },\n });\n\n const result = await provider.getOrderFills(params);\n\n traceData = { success: true };\n return result;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n tags: {\n feature: 'perps',\n provider: context.tracingContext.provider,\n network: context.tracingContext.isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: context.errorContext.controller,\n data: {\n method: context.errorContext.method,\n params,\n },\n },\n });\n\n traceData = {\n success: false,\n error: error.message,\n };\n throw err;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.OrderFillsFetch,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Get historical user orders (order lifecycle).\n * Handles full orchestration: tracing, error logging, and provider delegation.\n *\n * @param options - Options for getting orders\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for tracing\n * @returns Array of orders\n */\n async getOrders(options: {\n provider: PerpsProvider;\n params?: GetOrdersParams;\n context: ServiceContext;\n }): Promise<Order[]> {\n const { provider, params, context } = options;\n const traceId = uuidv4();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.OrdersFetch,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n },\n });\n\n const result = await provider.getOrders(params);\n\n traceData = { success: true };\n return result;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n tags: {\n feature: 'perps',\n provider: context.tracingContext.provider,\n network: context.tracingContext.isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: context.errorContext.controller,\n data: {\n method: context.errorContext.method,\n params,\n },\n },\n });\n\n traceData = {\n success: false,\n error: error.message,\n };\n throw err;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.OrdersFetch,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Get current open orders.\n * Handles full orchestration: tracing, error logging, performance measurement, and provider delegation.\n *\n * @param options - Options for getting open orders\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for tracing\n * @returns Array of open orders\n */\n async getOpenOrders(options: {\n provider: PerpsProvider;\n params?: GetOrdersParams;\n context: ServiceContext;\n }): Promise<Order[]> {\n const { provider, params, context } = options;\n const traceId = uuidv4();\n const startTime = this.deps.performance.now();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.OrdersFetch,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n },\n });\n\n const result = await provider.getOpenOrders(params);\n\n const completionDuration = this.deps.performance.now() - startTime;\n this.deps.tracer.setMeasurement(\n PerpsMeasurementName.PerpsGetOpenOrdersOperation,\n completionDuration,\n 'millisecond',\n );\n\n traceData = { success: true };\n return result;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n tags: {\n feature: 'perps',\n provider: context.tracingContext.provider,\n network: context.tracingContext.isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: context.errorContext.controller,\n data: {\n method: context.errorContext.method,\n params,\n },\n },\n });\n\n traceData = {\n success: false,\n error: error.message,\n };\n throw err;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.OrdersFetch,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Get funding rates.\n * Handles full orchestration: tracing, error logging, and provider delegation.\n *\n * @param options - Options for getting funding\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for tracing\n * @returns Array of funding entries\n */\n async getFunding(options: {\n provider: PerpsProvider;\n params?: GetFundingParams;\n context: ServiceContext;\n }): Promise<Funding[]> {\n const { provider, params, context } = options;\n const traceId = uuidv4();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.FundingFetch,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n },\n });\n\n const result = await provider.getFunding(params);\n\n traceData = { success: true };\n return result;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n tags: {\n feature: 'perps',\n provider: context.tracingContext.provider,\n network: context.tracingContext.isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: context.errorContext.controller,\n data: {\n method: context.errorContext.method,\n params,\n },\n },\n });\n\n traceData = {\n success: false,\n error: error.message,\n };\n throw err;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.FundingFetch,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Get account state.\n * Handles full orchestration: tracing, error logging, state management, and provider delegation.\n *\n * @param options - Options for getting account state\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for tracing and state management\n * @returns Account state\n */\n async getAccountState(options: {\n provider: PerpsProvider;\n params?: GetAccountStateParams;\n context: ServiceContext;\n }): Promise<AccountState> {\n const { provider, params, context } = options;\n const traceId = uuidv4();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.GetAccountState,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n source: params?.source || 'unknown',\n },\n });\n\n const accountState = await provider.getAccountState(params);\n\n // Safety check for accountState\n if (!accountState) {\n const error = new Error(\n 'Failed to get account state: received null/undefined response',\n );\n\n this.deps.logger.error(error, {\n tags: {\n feature: 'perps',\n provider: context.tracingContext.provider,\n network: context.tracingContext.isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: context.errorContext.controller,\n data: {\n method: context.errorContext.method,\n operation: 'nullAccountStateCheck',\n },\n },\n });\n\n throw error;\n }\n\n // Update state on success (if stateManager is provided)\n if (context.stateManager) {\n context.stateManager.update((state) => {\n state.accountState = accountState;\n state.lastUpdateTimestamp = Date.now();\n state.lastError = null;\n });\n }\n\n traceData = { success: true };\n return accountState;\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'Account state fetch failed';\n\n // Update error state (if stateManager is provided)\n if (context.stateManager) {\n context.stateManager.update((state) => {\n state.lastError = errorMessage;\n state.lastUpdateTimestamp = Date.now();\n });\n }\n\n traceData = {\n success: false,\n error: errorMessage,\n };\n\n throw error;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.GetAccountState,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Get historical portfolio data.\n * Handles full orchestration: tracing, error logging, state management, and provider delegation.\n *\n * @param options - Options for getting historical portfolio\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for tracing and state management\n * @returns Historical portfolio result\n */\n async getHistoricalPortfolio(options: {\n provider: PerpsProvider;\n params?: GetHistoricalPortfolioParams;\n context: ServiceContext;\n }): Promise<HistoricalPortfolioResult> {\n const { provider, params, context } = options;\n const traceId = uuidv4();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.GetHistoricalPortfolio,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n },\n });\n\n if (!provider.getHistoricalPortfolio) {\n throw new Error('Historical portfolio not supported by provider');\n }\n\n const result = await provider.getHistoricalPortfolio(params);\n\n traceData = { success: true };\n return result;\n } catch (err) {\n const errorMessage =\n err instanceof Error\n ? err.message\n : 'Failed to get historical portfolio';\n const error = err instanceof Error ? err : new Error(String(err));\n\n this.deps.logger.error(error, {\n tags: {\n feature: 'perps',\n provider: context.tracingContext.provider,\n network: context.tracingContext.isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: context.errorContext.controller,\n data: {\n method: context.errorContext.method,\n params,\n },\n },\n });\n\n // Update error state (if stateManager is provided)\n if (context.stateManager) {\n context.stateManager.update((state) => {\n state.lastError = errorMessage;\n state.lastUpdateTimestamp = Date.now();\n });\n }\n\n traceData = {\n success: false,\n error: errorMessage,\n };\n\n throw err;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.GetHistoricalPortfolio,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Get available markets.\n * Handles full orchestration: tracing, error logging, state management, and provider delegation.\n *\n * @param options - Options for getting markets\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for tracing and state management\n * @returns Array of market info\n */\n async getMarkets(options: {\n provider: PerpsProvider;\n params?: GetMarketsParams;\n context: ServiceContext;\n }): Promise<MarketInfo[]> {\n const { provider, params, context } = options;\n const traceId = uuidv4();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.GetMarkets,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n ...(params?.symbols && {\n symbolCount: String(params.symbols.length),\n }),\n ...(params?.dex !== undefined && { dex: params.dex }),\n },\n });\n\n const markets = await provider.getMarkets(params);\n\n // Clear any previous errors on successful call (if stateManager is provided)\n if (context.stateManager) {\n context.stateManager.update((state) => {\n state.lastError = null;\n state.lastUpdateTimestamp = Date.now();\n });\n }\n\n traceData = { success: true };\n return markets;\n } catch (err) {\n const errorMessage =\n err instanceof Error ? err.message : PERPS_ERROR_CODES.MARKETS_FAILED;\n const error = err instanceof Error ? err : new Error(String(err));\n\n this.deps.logger.error(error, {\n tags: {\n feature: 'perps',\n provider: context.tracingContext.provider,\n network: context.tracingContext.isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: context.errorContext.controller,\n data: {\n method: context.errorContext.method,\n params,\n },\n },\n });\n\n // Update error state (if stateManager is provided)\n if (context.stateManager) {\n context.stateManager.update((state) => {\n state.lastError = errorMessage;\n state.lastUpdateTimestamp = Date.now();\n });\n }\n\n traceData = {\n success: false,\n error: errorMessage,\n };\n\n throw err;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.GetMarkets,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Get available DEXs (HIP-3 support required).\n *\n * @param options - Options for getting available DEXs\n * @param options.provider - The perps provider\n * @param options.params - Optional parameters for the request\n * @param options.context - Service context for error logging\n * @returns Array of DEX names\n */\n async getAvailableDexs(options: {\n provider: PerpsProvider;\n params?: GetAvailableDexsParams;\n context: ServiceContext;\n }): Promise<string[]> {\n const { provider, params } = options;\n\n try {\n if (!provider.getAvailableDexs) {\n throw new Error('Provider does not support HIP-3 DEXs');\n }\n\n return await provider.getAvailableDexs(params);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'MarketDataService.getAvailableDexs',\n data: { params },\n },\n });\n throw err;\n }\n }\n\n /**\n * Fetch historical candle data for charting.\n * Handles full orchestration: tracing, error logging, state management, and provider delegation.\n *\n * @param options - Options for fetching historical candles\n * @param options.provider - The perps provider\n * @param options.symbol - The asset symbol\n * @param options.interval - The candle period\n * @param options.limit - Maximum number of candles to fetch\n * @param options.endTime - End time for the candle range\n * @param options.context - Service context for tracing and state management\n * @returns Candle data\n */\n async fetchHistoricalCandles(options: {\n provider: PerpsProvider;\n symbol: string;\n interval: CandlePeriod;\n limit?: number;\n endTime?: number;\n context: ServiceContext;\n }): Promise<CandleData> {\n const {\n provider,\n symbol,\n interval,\n limit = 100,\n endTime,\n context,\n } = options;\n const traceId = uuidv4();\n let traceData: { success: boolean; error?: string } | undefined;\n\n try {\n this.deps.tracer.trace({\n name: TraceNames.FetchHistoricalCandles,\n id: traceId,\n op: TraceOperations.Operation,\n tags: {\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n symbol,\n interval,\n },\n });\n\n // Check if provider supports historical candles via clientService\n const hyperLiquidProvider = provider as {\n clientService?: {\n fetchHistoricalCandles?: (\n sym: string,\n int: CandlePeriod,\n lim: number,\n end?: number,\n ) => Promise<CandleData>;\n };\n };\n if (!hyperLiquidProvider.clientService?.fetchHistoricalCandles) {\n throw new Error('Historical candles not supported by provider');\n }\n\n const result =\n await hyperLiquidProvider.clientService.fetchHistoricalCandles(\n symbol,\n interval,\n limit,\n endTime,\n );\n\n traceData = { success: true };\n return result;\n } catch (err) {\n const errorMessage =\n err instanceof Error\n ? err.message\n : 'Failed to fetch historical candles';\n const error = err instanceof Error ? err : new Error(String(err));\n\n this.deps.logger.error(error, {\n tags: {\n feature: 'perps',\n provider: context.tracingContext.provider,\n network: context.tracingContext.isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: context.errorContext.controller,\n data: {\n method: context.errorContext.method,\n symbol,\n interval,\n limit,\n endTime,\n },\n },\n });\n\n // Update error state (if stateManager is provided)\n if (context.stateManager) {\n context.stateManager.update((state) => {\n state.lastError = errorMessage;\n state.lastUpdateTimestamp = Date.now();\n });\n }\n\n traceData = {\n success: false,\n error: errorMessage,\n };\n\n throw err;\n } finally {\n this.deps.tracer.endTrace({\n name: TraceNames.FetchHistoricalCandles,\n id: traceId,\n data: traceData,\n });\n }\n }\n\n /**\n * Calculate liquidation price for a position.\n *\n * @param options - Options for calculating liquidation price\n * @param options.provider - The perps provider\n * @param options.params - Liquidation price parameters\n * @param options.context - Service context for error logging\n * @returns Liquidation price as string\n */\n async calculateLiquidationPrice(options: {\n provider: PerpsProvider;\n params: LiquidationPriceParams;\n context: ServiceContext;\n }): Promise<string> {\n const { provider, params } = options;\n\n try {\n return await provider.calculateLiquidationPrice(params);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'MarketDataService.calculateLiquidationPrice',\n data: { params },\n },\n });\n throw err;\n }\n }\n\n /**\n * Calculate maintenance margin for a position.\n *\n * @param options - Options for calculating maintenance margin\n * @param options.provider - The perps provider\n * @param options.params - Maintenance margin parameters\n * @param options.context - Service context for error logging\n * @returns Maintenance margin as number\n */\n async calculateMaintenanceMargin(options: {\n provider: PerpsProvider;\n params: MaintenanceMarginParams;\n context: ServiceContext;\n }): Promise<number> {\n const { provider, params } = options;\n\n try {\n return await provider.calculateMaintenanceMargin(params);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'MarketDataService.calculateMaintenanceMargin',\n data: { params },\n },\n });\n throw err;\n }\n }\n\n /**\n * Get maximum leverage for an asset.\n *\n * @param options - Options for getting max leverage\n * @param options.provider - The perps provider\n * @param options.asset - The asset symbol\n * @param options.context - Service context for error logging\n * @returns Maximum leverage as number\n */\n async getMaxLeverage(options: {\n provider: PerpsProvider;\n asset: string;\n context: ServiceContext;\n }): Promise<number> {\n const { provider, asset } = options;\n\n try {\n return await provider.getMaxLeverage(asset);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'MarketDataService.getMaxLeverage',\n data: { asset },\n },\n });\n throw err;\n }\n }\n\n /**\n * Calculate fees for an order.\n *\n * @param options - Options for calculating fees\n * @param options.provider - The perps provider\n * @param options.params - Fee calculation parameters\n * @param options.context - Service context for error logging\n * @returns Fee calculation result\n */\n async calculateFees(options: {\n provider: PerpsProvider;\n params: FeeCalculationParams;\n context: ServiceContext;\n }): Promise<FeeCalculationResult> {\n const { provider, params } = options;\n\n try {\n return await provider.calculateFees(params);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'MarketDataService.calculateFees',\n data: { params },\n },\n });\n throw err;\n }\n }\n\n /**\n * Validate an order before placement.\n *\n * @param options - Options for validating order\n * @param options.provider - The perps provider\n * @param options.params - Order parameters\n * @param options.context - Service context for error logging\n * @returns Validation result\n */\n async validateOrder(options: {\n provider: PerpsProvider;\n params: OrderParams;\n context: ServiceContext;\n }): Promise<{ isValid: boolean; error?: string }> {\n const { provider, params } = options;\n\n try {\n return await provider.validateOrder(params);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'MarketDataService.validateOrder',\n data: { params },\n },\n });\n throw err;\n }\n }\n\n /**\n * Validate a position close request.\n *\n * @param options - Options for validating close position\n * @param options.provider - The perps provider\n * @param options.params - Close position parameters\n * @param options.context - Service context for error logging\n * @returns Validation result\n */\n async validateClosePosition(options: {\n provider: PerpsProvider;\n params: ClosePositionParams;\n context: ServiceContext;\n }): Promise<{ isValid: boolean; error?: string }> {\n const { provider, params } = options;\n\n try {\n return await provider.validateClosePosition(params);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'MarketDataService.validateClosePosition',\n data: { params },\n },\n });\n throw err;\n }\n }\n\n /**\n * Get supported withdrawal routes (synchronous).\n * Note: This method doesn't log errors to avoid needing context for a synchronous getter.\n *\n * @param options - Options for getting withdrawal routes\n * @param options.provider - The perps provider\n * @returns Array of asset routes\n */\n getWithdrawalRoutes(options: { provider: PerpsProvider }): AssetRoute[] {\n const { provider } = options;\n\n try {\n return provider.getWithdrawalRoutes();\n } catch {\n // Silent fail - withdrawal routes are not critical\n return [];\n }\n }\n\n /**\n * Get block explorer URL (synchronous).\n *\n * @param options - Options for getting block explorer URL\n * @param options.provider - The perps provider\n * @param options.address - Optional address to include in URL\n * @returns Block explorer URL\n */\n getBlockExplorerUrl(options: {\n provider: PerpsProvider;\n address?: string;\n }): string {\n const { provider, address } = options;\n return provider.getBlockExplorerUrl(address);\n }\n}\n"]}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RewardsIntegrationService = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* RewardsIntegrationService
|
|
6
|
-
*
|
|
7
|
-
* Handles rewards-related operations and fee discount calculations.
|
|
8
|
-
* Stateless service that coordinates with RewardsController and NetworkController.
|
|
9
|
-
*
|
|
10
|
-
* Instance-based service with constructor injection of platform dependencies.
|
|
11
|
-
*/
|
|
12
|
-
class RewardsIntegrationService {
|
|
13
|
-
/**
|
|
14
|
-
* Create a new RewardsIntegrationService instance.
|
|
15
|
-
*
|
|
16
|
-
* @param deps - Platform dependencies for logging, metrics, etc.
|
|
17
|
-
*/
|
|
18
|
-
constructor(deps) {
|
|
19
|
-
this.deps = deps;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Calculate user fee discount from rewards.
|
|
23
|
-
* Returns discount in basis points (e.g., 6500 = 65% discount).
|
|
24
|
-
*
|
|
25
|
-
* @param options - Options for fee discount calculation
|
|
26
|
-
* @param options.controllers - Consolidated controller access interface
|
|
27
|
-
* @returns Discount in basis points or undefined if unavailable
|
|
28
|
-
*/
|
|
29
|
-
async calculateUserFeeDiscount(options) {
|
|
30
|
-
const { controllers } = options;
|
|
31
|
-
try {
|
|
32
|
-
const evmAccount = controllers.accounts.getSelectedEvmAccount();
|
|
33
|
-
if (!evmAccount) {
|
|
34
|
-
this.deps.debugLogger.log('RewardsIntegrationService: No EVM account found for fee discount');
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
// Get the chain ID using controllers.network
|
|
38
|
-
const selectedNetworkClientId = controllers.network.getSelectedNetworkClientId();
|
|
39
|
-
let chainId;
|
|
40
|
-
try {
|
|
41
|
-
chainId = controllers.network.getChainIdForNetwork(selectedNetworkClientId);
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
// Network client may not exist
|
|
45
|
-
chainId = undefined;
|
|
46
|
-
}
|
|
47
|
-
if (!chainId) {
|
|
48
|
-
this.deps.logger.error(new Error('Chain ID not found for fee discount calculation'), {
|
|
49
|
-
context: {
|
|
50
|
-
name: 'RewardsIntegrationService.calculateUserFeeDiscount',
|
|
51
|
-
data: {
|
|
52
|
-
selectedNetworkClientId,
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
const caipAccountId = controllers.accounts.formatAccountToCaipId(evmAccount.address, chainId);
|
|
59
|
-
if (!caipAccountId) {
|
|
60
|
-
this.deps.logger.error(new Error('Failed to format CAIP account ID for fee discount'), {
|
|
61
|
-
context: {
|
|
62
|
-
name: 'RewardsIntegrationService.calculateUserFeeDiscount',
|
|
63
|
-
data: {
|
|
64
|
-
address: evmAccount.address,
|
|
65
|
-
chainId,
|
|
66
|
-
selectedNetworkClientId,
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
const discountBips = await controllers.rewards.getFeeDiscount(caipAccountId);
|
|
73
|
-
this.deps.debugLogger.log('RewardsIntegrationService: Fee discount calculated', {
|
|
74
|
-
address: evmAccount.address,
|
|
75
|
-
caipAccountId,
|
|
76
|
-
discountBips,
|
|
77
|
-
discountPercentage: discountBips / 100,
|
|
78
|
-
});
|
|
79
|
-
return discountBips;
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
83
|
-
this.deps.logger.error(error, {
|
|
84
|
-
context: {
|
|
85
|
-
name: 'RewardsIntegrationService.calculateUserFeeDiscount',
|
|
86
|
-
data: {},
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
return undefined;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
exports.RewardsIntegrationService = RewardsIntegrationService;
|
|
94
|
-
//# sourceMappingURL=RewardsIntegrationService.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsIntegrationService.cjs","sourceRoot":"","sources":["../../src/services/RewardsIntegrationService.ts"],"names":[],"mappings":";;;AAOA;;;;;;;GAOG;AACH,MAAa,yBAAyB;IAGpC;;;;OAIG;IACH,YAAY,IAA+B;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,wBAAwB,CAAC,OAE9B;QACC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CACvB,kEAAkE,CACnE,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,6CAA6C;YAC7C,MAAM,uBAAuB,GAC3B,WAAW,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC;YACnD,IAAI,OAA2B,CAAC;YAEhC,IAAI,CAAC;gBACH,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAChD,uBAAuB,CACxB,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;gBAC/B,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB,IAAI,KAAK,CAAC,iDAAiD,CAAC,EAC5D;oBACE,OAAO,EAAE;wBACP,IAAI,EAAE,oDAAoD;wBAC1D,IAAI,EAAE;4BACJ,uBAAuB;yBACxB;qBACF;iBACF,CACF,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAC9D,UAAU,CAAC,OAAO,EAClB,OAAO,CACR,CAAC;YAEF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB,IAAI,KAAK,CAAC,mDAAmD,CAAC,EAC9D;oBACE,OAAO,EAAE;wBACP,IAAI,EAAE,oDAAoD;wBAC1D,IAAI,EAAE;4BACJ,OAAO,EAAE,UAAU,CAAC,OAAO;4BAC3B,OAAO;4BACP,uBAAuB;yBACxB;qBACF;iBACF,CACF,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,cAAc,CAC3D,aAAgD,CACjD,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CACvB,oDAAoD,EACpD;gBACE,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,aAAa;gBACb,YAAY;gBACZ,kBAAkB,EAAE,YAAY,GAAG,GAAG;aACvC,CACF,CAAC;YAEF,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC5B,OAAO,EAAE;oBACP,IAAI,EAAE,oDAAoD;oBAC1D,IAAI,EAAE,EAAE;iBACT;aACF,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAhHD,8DAgHC","sourcesContent":["/* eslint-disable no-restricted-syntax, id-denylist */\n// TODO: Fix ESLint errors in this file - tracked for Phase 5 cleanup\nimport type {\n PerpsPlatformDependencies,\n PerpsControllerAccess,\n} from '../types';\n\n/**\n * RewardsIntegrationService\n *\n * Handles rewards-related operations and fee discount calculations.\n * Stateless service that coordinates with RewardsController and NetworkController.\n *\n * Instance-based service with constructor injection of platform dependencies.\n */\nexport class RewardsIntegrationService {\n private readonly deps: PerpsPlatformDependencies;\n\n /**\n * Create a new RewardsIntegrationService instance.\n *\n * @param deps - Platform dependencies for logging, metrics, etc.\n */\n constructor(deps: PerpsPlatformDependencies) {\n this.deps = deps;\n }\n\n /**\n * Calculate user fee discount from rewards.\n * Returns discount in basis points (e.g., 6500 = 65% discount).\n *\n * @param options - Options for fee discount calculation\n * @param options.controllers - Consolidated controller access interface\n * @returns Discount in basis points or undefined if unavailable\n */\n async calculateUserFeeDiscount(options: {\n controllers: PerpsControllerAccess;\n }): Promise<number | undefined> {\n const { controllers } = options;\n\n try {\n const evmAccount = controllers.accounts.getSelectedEvmAccount();\n\n if (!evmAccount) {\n this.deps.debugLogger.log(\n 'RewardsIntegrationService: No EVM account found for fee discount',\n );\n return undefined;\n }\n\n // Get the chain ID using controllers.network\n const selectedNetworkClientId =\n controllers.network.getSelectedNetworkClientId();\n let chainId: string | undefined;\n\n try {\n chainId = controllers.network.getChainIdForNetwork(\n selectedNetworkClientId,\n );\n } catch {\n // Network client may not exist\n chainId = undefined;\n }\n\n if (!chainId) {\n this.deps.logger.error(\n new Error('Chain ID not found for fee discount calculation'),\n {\n context: {\n name: 'RewardsIntegrationService.calculateUserFeeDiscount',\n data: {\n selectedNetworkClientId,\n },\n },\n },\n );\n return undefined;\n }\n\n const caipAccountId = controllers.accounts.formatAccountToCaipId(\n evmAccount.address,\n chainId,\n );\n\n if (!caipAccountId) {\n this.deps.logger.error(\n new Error('Failed to format CAIP account ID for fee discount'),\n {\n context: {\n name: 'RewardsIntegrationService.calculateUserFeeDiscount',\n data: {\n address: evmAccount.address,\n chainId,\n selectedNetworkClientId,\n },\n },\n },\n );\n return undefined;\n }\n\n const discountBips = await controllers.rewards.getFeeDiscount(\n caipAccountId as `${string}:${string}:${string}`,\n );\n\n this.deps.debugLogger.log(\n 'RewardsIntegrationService: Fee discount calculated',\n {\n address: evmAccount.address,\n caipAccountId,\n discountBips,\n discountPercentage: discountBips / 100,\n },\n );\n\n return discountBips;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'RewardsIntegrationService.calculateUserFeeDiscount',\n data: {},\n },\n });\n return undefined;\n }\n }\n}\n"]}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { PerpsPlatformDependencies, PerpsControllerAccess } from "../types/index.cjs";
|
|
2
|
-
/**
|
|
3
|
-
* RewardsIntegrationService
|
|
4
|
-
*
|
|
5
|
-
* Handles rewards-related operations and fee discount calculations.
|
|
6
|
-
* Stateless service that coordinates with RewardsController and NetworkController.
|
|
7
|
-
*
|
|
8
|
-
* Instance-based service with constructor injection of platform dependencies.
|
|
9
|
-
*/
|
|
10
|
-
export declare class RewardsIntegrationService {
|
|
11
|
-
private readonly deps;
|
|
12
|
-
/**
|
|
13
|
-
* Create a new RewardsIntegrationService instance.
|
|
14
|
-
*
|
|
15
|
-
* @param deps - Platform dependencies for logging, metrics, etc.
|
|
16
|
-
*/
|
|
17
|
-
constructor(deps: PerpsPlatformDependencies);
|
|
18
|
-
/**
|
|
19
|
-
* Calculate user fee discount from rewards.
|
|
20
|
-
* Returns discount in basis points (e.g., 6500 = 65% discount).
|
|
21
|
-
*
|
|
22
|
-
* @param options - Options for fee discount calculation
|
|
23
|
-
* @param options.controllers - Consolidated controller access interface
|
|
24
|
-
* @returns Discount in basis points or undefined if unavailable
|
|
25
|
-
*/
|
|
26
|
-
calculateUserFeeDiscount(options: {
|
|
27
|
-
controllers: PerpsControllerAccess;
|
|
28
|
-
}): Promise<number | undefined>;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=RewardsIntegrationService.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsIntegrationService.d.cts","sourceRoot":"","sources":["../../src/services/RewardsIntegrationService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACtB,2BAAiB;AAElB;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IAEjD;;;;OAIG;gBACS,IAAI,EAAE,yBAAyB;IAI3C;;;;;;;OAOG;IACG,wBAAwB,CAAC,OAAO,EAAE;QACtC,WAAW,EAAE,qBAAqB,CAAC;KACpC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CA0FhC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { PerpsPlatformDependencies, PerpsControllerAccess } from "../types/index.mjs";
|
|
2
|
-
/**
|
|
3
|
-
* RewardsIntegrationService
|
|
4
|
-
*
|
|
5
|
-
* Handles rewards-related operations and fee discount calculations.
|
|
6
|
-
* Stateless service that coordinates with RewardsController and NetworkController.
|
|
7
|
-
*
|
|
8
|
-
* Instance-based service with constructor injection of platform dependencies.
|
|
9
|
-
*/
|
|
10
|
-
export declare class RewardsIntegrationService {
|
|
11
|
-
private readonly deps;
|
|
12
|
-
/**
|
|
13
|
-
* Create a new RewardsIntegrationService instance.
|
|
14
|
-
*
|
|
15
|
-
* @param deps - Platform dependencies for logging, metrics, etc.
|
|
16
|
-
*/
|
|
17
|
-
constructor(deps: PerpsPlatformDependencies);
|
|
18
|
-
/**
|
|
19
|
-
* Calculate user fee discount from rewards.
|
|
20
|
-
* Returns discount in basis points (e.g., 6500 = 65% discount).
|
|
21
|
-
*
|
|
22
|
-
* @param options - Options for fee discount calculation
|
|
23
|
-
* @param options.controllers - Consolidated controller access interface
|
|
24
|
-
* @returns Discount in basis points or undefined if unavailable
|
|
25
|
-
*/
|
|
26
|
-
calculateUserFeeDiscount(options: {
|
|
27
|
-
controllers: PerpsControllerAccess;
|
|
28
|
-
}): Promise<number | undefined>;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=RewardsIntegrationService.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsIntegrationService.d.mts","sourceRoot":"","sources":["../../src/services/RewardsIntegrationService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACtB,2BAAiB;AAElB;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IAEjD;;;;OAIG;gBACS,IAAI,EAAE,yBAAyB;IAI3C;;;;;;;OAOG;IACG,wBAAwB,CAAC,OAAO,EAAE;QACtC,WAAW,EAAE,qBAAqB,CAAC;KACpC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CA0FhC"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RewardsIntegrationService
|
|
3
|
-
*
|
|
4
|
-
* Handles rewards-related operations and fee discount calculations.
|
|
5
|
-
* Stateless service that coordinates with RewardsController and NetworkController.
|
|
6
|
-
*
|
|
7
|
-
* Instance-based service with constructor injection of platform dependencies.
|
|
8
|
-
*/
|
|
9
|
-
export class RewardsIntegrationService {
|
|
10
|
-
/**
|
|
11
|
-
* Create a new RewardsIntegrationService instance.
|
|
12
|
-
*
|
|
13
|
-
* @param deps - Platform dependencies for logging, metrics, etc.
|
|
14
|
-
*/
|
|
15
|
-
constructor(deps) {
|
|
16
|
-
this.deps = deps;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Calculate user fee discount from rewards.
|
|
20
|
-
* Returns discount in basis points (e.g., 6500 = 65% discount).
|
|
21
|
-
*
|
|
22
|
-
* @param options - Options for fee discount calculation
|
|
23
|
-
* @param options.controllers - Consolidated controller access interface
|
|
24
|
-
* @returns Discount in basis points or undefined if unavailable
|
|
25
|
-
*/
|
|
26
|
-
async calculateUserFeeDiscount(options) {
|
|
27
|
-
const { controllers } = options;
|
|
28
|
-
try {
|
|
29
|
-
const evmAccount = controllers.accounts.getSelectedEvmAccount();
|
|
30
|
-
if (!evmAccount) {
|
|
31
|
-
this.deps.debugLogger.log('RewardsIntegrationService: No EVM account found for fee discount');
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
// Get the chain ID using controllers.network
|
|
35
|
-
const selectedNetworkClientId = controllers.network.getSelectedNetworkClientId();
|
|
36
|
-
let chainId;
|
|
37
|
-
try {
|
|
38
|
-
chainId = controllers.network.getChainIdForNetwork(selectedNetworkClientId);
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
// Network client may not exist
|
|
42
|
-
chainId = undefined;
|
|
43
|
-
}
|
|
44
|
-
if (!chainId) {
|
|
45
|
-
this.deps.logger.error(new Error('Chain ID not found for fee discount calculation'), {
|
|
46
|
-
context: {
|
|
47
|
-
name: 'RewardsIntegrationService.calculateUserFeeDiscount',
|
|
48
|
-
data: {
|
|
49
|
-
selectedNetworkClientId,
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
return undefined;
|
|
54
|
-
}
|
|
55
|
-
const caipAccountId = controllers.accounts.formatAccountToCaipId(evmAccount.address, chainId);
|
|
56
|
-
if (!caipAccountId) {
|
|
57
|
-
this.deps.logger.error(new Error('Failed to format CAIP account ID for fee discount'), {
|
|
58
|
-
context: {
|
|
59
|
-
name: 'RewardsIntegrationService.calculateUserFeeDiscount',
|
|
60
|
-
data: {
|
|
61
|
-
address: evmAccount.address,
|
|
62
|
-
chainId,
|
|
63
|
-
selectedNetworkClientId,
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
});
|
|
67
|
-
return undefined;
|
|
68
|
-
}
|
|
69
|
-
const discountBips = await controllers.rewards.getFeeDiscount(caipAccountId);
|
|
70
|
-
this.deps.debugLogger.log('RewardsIntegrationService: Fee discount calculated', {
|
|
71
|
-
address: evmAccount.address,
|
|
72
|
-
caipAccountId,
|
|
73
|
-
discountBips,
|
|
74
|
-
discountPercentage: discountBips / 100,
|
|
75
|
-
});
|
|
76
|
-
return discountBips;
|
|
77
|
-
}
|
|
78
|
-
catch (err) {
|
|
79
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
80
|
-
this.deps.logger.error(error, {
|
|
81
|
-
context: {
|
|
82
|
-
name: 'RewardsIntegrationService.calculateUserFeeDiscount',
|
|
83
|
-
data: {},
|
|
84
|
-
},
|
|
85
|
-
});
|
|
86
|
-
return undefined;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=RewardsIntegrationService.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsIntegrationService.mjs","sourceRoot":"","sources":["../../src/services/RewardsIntegrationService.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,OAAO,yBAAyB;IAGpC;;;;OAIG;IACH,YAAY,IAA+B;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,wBAAwB,CAAC,OAE9B;QACC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CACvB,kEAAkE,CACnE,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,6CAA6C;YAC7C,MAAM,uBAAuB,GAC3B,WAAW,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC;YACnD,IAAI,OAA2B,CAAC;YAEhC,IAAI,CAAC;gBACH,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAChD,uBAAuB,CACxB,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;gBAC/B,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB,IAAI,KAAK,CAAC,iDAAiD,CAAC,EAC5D;oBACE,OAAO,EAAE;wBACP,IAAI,EAAE,oDAAoD;wBAC1D,IAAI,EAAE;4BACJ,uBAAuB;yBACxB;qBACF;iBACF,CACF,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAC9D,UAAU,CAAC,OAAO,EAClB,OAAO,CACR,CAAC;YAEF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB,IAAI,KAAK,CAAC,mDAAmD,CAAC,EAC9D;oBACE,OAAO,EAAE;wBACP,IAAI,EAAE,oDAAoD;wBAC1D,IAAI,EAAE;4BACJ,OAAO,EAAE,UAAU,CAAC,OAAO;4BAC3B,OAAO;4BACP,uBAAuB;yBACxB;qBACF;iBACF,CACF,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,cAAc,CAC3D,aAAgD,CACjD,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CACvB,oDAAoD,EACpD;gBACE,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,aAAa;gBACb,YAAY;gBACZ,kBAAkB,EAAE,YAAY,GAAG,GAAG;aACvC,CACF,CAAC;YAEF,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC5B,OAAO,EAAE;oBACP,IAAI,EAAE,oDAAoD;oBAC1D,IAAI,EAAE,EAAE;iBACT;aACF,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF","sourcesContent":["/* eslint-disable no-restricted-syntax, id-denylist */\n// TODO: Fix ESLint errors in this file - tracked for Phase 5 cleanup\nimport type {\n PerpsPlatformDependencies,\n PerpsControllerAccess,\n} from '../types';\n\n/**\n * RewardsIntegrationService\n *\n * Handles rewards-related operations and fee discount calculations.\n * Stateless service that coordinates with RewardsController and NetworkController.\n *\n * Instance-based service with constructor injection of platform dependencies.\n */\nexport class RewardsIntegrationService {\n private readonly deps: PerpsPlatformDependencies;\n\n /**\n * Create a new RewardsIntegrationService instance.\n *\n * @param deps - Platform dependencies for logging, metrics, etc.\n */\n constructor(deps: PerpsPlatformDependencies) {\n this.deps = deps;\n }\n\n /**\n * Calculate user fee discount from rewards.\n * Returns discount in basis points (e.g., 6500 = 65% discount).\n *\n * @param options - Options for fee discount calculation\n * @param options.controllers - Consolidated controller access interface\n * @returns Discount in basis points or undefined if unavailable\n */\n async calculateUserFeeDiscount(options: {\n controllers: PerpsControllerAccess;\n }): Promise<number | undefined> {\n const { controllers } = options;\n\n try {\n const evmAccount = controllers.accounts.getSelectedEvmAccount();\n\n if (!evmAccount) {\n this.deps.debugLogger.log(\n 'RewardsIntegrationService: No EVM account found for fee discount',\n );\n return undefined;\n }\n\n // Get the chain ID using controllers.network\n const selectedNetworkClientId =\n controllers.network.getSelectedNetworkClientId();\n let chainId: string | undefined;\n\n try {\n chainId = controllers.network.getChainIdForNetwork(\n selectedNetworkClientId,\n );\n } catch {\n // Network client may not exist\n chainId = undefined;\n }\n\n if (!chainId) {\n this.deps.logger.error(\n new Error('Chain ID not found for fee discount calculation'),\n {\n context: {\n name: 'RewardsIntegrationService.calculateUserFeeDiscount',\n data: {\n selectedNetworkClientId,\n },\n },\n },\n );\n return undefined;\n }\n\n const caipAccountId = controllers.accounts.formatAccountToCaipId(\n evmAccount.address,\n chainId,\n );\n\n if (!caipAccountId) {\n this.deps.logger.error(\n new Error('Failed to format CAIP account ID for fee discount'),\n {\n context: {\n name: 'RewardsIntegrationService.calculateUserFeeDiscount',\n data: {\n address: evmAccount.address,\n chainId,\n selectedNetworkClientId,\n },\n },\n },\n );\n return undefined;\n }\n\n const discountBips = await controllers.rewards.getFeeDiscount(\n caipAccountId as `${string}:${string}:${string}`,\n );\n\n this.deps.debugLogger.log(\n 'RewardsIntegrationService: Fee discount calculated',\n {\n address: evmAccount.address,\n caipAccountId,\n discountBips,\n discountPercentage: discountBips / 100,\n },\n );\n\n return discountBips;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.deps.logger.error(error, {\n context: {\n name: 'RewardsIntegrationService.calculateUserFeeDiscount',\n data: {},\n },\n });\n return undefined;\n }\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceContext.cjs","sourceRoot":"","sources":["../../src/services/ServiceContext.ts"],"names":[],"mappings":"","sourcesContent":["import type { PerpsControllerMessenger } from '../PerpsController';\nimport type { Order, Position } from '../types';\nimport type {\n TransactionRecord,\n LastTransactionResult,\n} from '../types/transactionTypes';\n\n/**\n * State interface for service state management.\n * Uses generic state shape to decouple from specific PerpsControllerState definition.\n */\ntype ServiceState = {\n lastUpdateTimestamp?: number;\n lastError?: string | null;\n accountState?: unknown;\n withdrawInProgress?: boolean;\n depositInProgress?: boolean;\n lastWithdrawResult?: LastTransactionResult | null;\n lastDepositResult?: LastTransactionResult | null;\n withdrawalRequests: TransactionRecord[];\n depositRequests: TransactionRecord[];\n [key: string]: unknown;\n};\n\n/**\n * ServiceContext\n *\n * Lightweight per-call context for Perps services.\n * Contains ONLY data that varies per operation:\n * - Tracing context (provider, network)\n * - Error context (controller, method)\n * - State management callbacks\n * - Query/action callbacks specific to the operation\n *\n * Platform dependencies (logging, metrics, tracing) are injected into service\n * instances via constructor, not passed per-call.\n *\n * Controller-level singletons (RewardsController, NetworkController, messenger)\n * are also injected into services that need them, not passed per-call.\n *\n * This enables:\n * - Clean method signatures (no verbose dependency passing)\n * - Fat services with complete orchestration\n * - Thin controller with pure delegation\n * - Easy testing through mock contexts and constructor injection\n */\nexport type ServiceContext = {\n /**\n * Tracing context for performance monitoring\n * Used in trace() calls to tag operations\n */\n tracingContext: {\n provider: string;\n isTestnet: boolean;\n };\n\n /**\n * Error logging context\n * Provides consistent error logging across services\n */\n errorContext: {\n controller: string;\n method: string;\n extra?: Record<string, unknown>;\n };\n\n /**\n * State management functions (optional)\n * Only provided for operations that need to mutate controller state\n * Example: Trading operations that update lastTransaction\n */\n stateManager?: {\n update: (updater: (state: ServiceState) => void) => void;\n getState: () => ServiceState;\n };\n\n /**\n * Messenger for controller communication (optional)\n * Required by: DataLakeService (getBearerToken)\n * Note: TradingService now receives this via setControllerDependencies()\n */\n messenger?: PerpsControllerMessenger;\n\n /**\n * Query functions for dependent data\n * Required by: Operations that need to fetch related data\n */\n getOpenOrders?: () => Promise<Order[]>;\n getPositions?: () => Promise<Position[]>;\n\n /**\n * Callback functions for controller-specific operations\n */\n saveTradeConfiguration?: (symbol: string, leverage: number) => void;\n\n /**\n * Feature flag configuration callbacks\n * Required by: FeatureFlagConfigurationService\n */\n getBlockedRegionList?: () => {\n list: string[];\n source: 'remote' | 'fallback';\n };\n setBlockedRegionList?: (\n list: string[],\n source: 'remote' | 'fallback',\n ) => void;\n getHip3Config?: () => {\n enabled: boolean;\n allowlistMarkets: string[];\n blocklistMarkets: string[];\n source: 'remote' | 'fallback';\n };\n setHip3Config?: (config: {\n enabled?: boolean;\n allowlistMarkets?: string[];\n blocklistMarkets?: string[];\n source: 'remote' | 'fallback';\n }) => void;\n incrementHip3ConfigVersion?: () => number;\n refreshEligibility?: () => Promise<void>;\n};\n"]}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import type { PerpsControllerMessenger } from "../PerpsController.cjs";
|
|
2
|
-
import type { Order, Position } from "../types/index.cjs";
|
|
3
|
-
import type { TransactionRecord, LastTransactionResult } from "../types/transactionTypes.cjs";
|
|
4
|
-
/**
|
|
5
|
-
* State interface for service state management.
|
|
6
|
-
* Uses generic state shape to decouple from specific PerpsControllerState definition.
|
|
7
|
-
*/
|
|
8
|
-
type ServiceState = {
|
|
9
|
-
lastUpdateTimestamp?: number;
|
|
10
|
-
lastError?: string | null;
|
|
11
|
-
accountState?: unknown;
|
|
12
|
-
withdrawInProgress?: boolean;
|
|
13
|
-
depositInProgress?: boolean;
|
|
14
|
-
lastWithdrawResult?: LastTransactionResult | null;
|
|
15
|
-
lastDepositResult?: LastTransactionResult | null;
|
|
16
|
-
withdrawalRequests: TransactionRecord[];
|
|
17
|
-
depositRequests: TransactionRecord[];
|
|
18
|
-
[key: string]: unknown;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* ServiceContext
|
|
22
|
-
*
|
|
23
|
-
* Lightweight per-call context for Perps services.
|
|
24
|
-
* Contains ONLY data that varies per operation:
|
|
25
|
-
* - Tracing context (provider, network)
|
|
26
|
-
* - Error context (controller, method)
|
|
27
|
-
* - State management callbacks
|
|
28
|
-
* - Query/action callbacks specific to the operation
|
|
29
|
-
*
|
|
30
|
-
* Platform dependencies (logging, metrics, tracing) are injected into service
|
|
31
|
-
* instances via constructor, not passed per-call.
|
|
32
|
-
*
|
|
33
|
-
* Controller-level singletons (RewardsController, NetworkController, messenger)
|
|
34
|
-
* are also injected into services that need them, not passed per-call.
|
|
35
|
-
*
|
|
36
|
-
* This enables:
|
|
37
|
-
* - Clean method signatures (no verbose dependency passing)
|
|
38
|
-
* - Fat services with complete orchestration
|
|
39
|
-
* - Thin controller with pure delegation
|
|
40
|
-
* - Easy testing through mock contexts and constructor injection
|
|
41
|
-
*/
|
|
42
|
-
export type ServiceContext = {
|
|
43
|
-
/**
|
|
44
|
-
* Tracing context for performance monitoring
|
|
45
|
-
* Used in trace() calls to tag operations
|
|
46
|
-
*/
|
|
47
|
-
tracingContext: {
|
|
48
|
-
provider: string;
|
|
49
|
-
isTestnet: boolean;
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Error logging context
|
|
53
|
-
* Provides consistent error logging across services
|
|
54
|
-
*/
|
|
55
|
-
errorContext: {
|
|
56
|
-
controller: string;
|
|
57
|
-
method: string;
|
|
58
|
-
extra?: Record<string, unknown>;
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* State management functions (optional)
|
|
62
|
-
* Only provided for operations that need to mutate controller state
|
|
63
|
-
* Example: Trading operations that update lastTransaction
|
|
64
|
-
*/
|
|
65
|
-
stateManager?: {
|
|
66
|
-
update: (updater: (state: ServiceState) => void) => void;
|
|
67
|
-
getState: () => ServiceState;
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Messenger for controller communication (optional)
|
|
71
|
-
* Required by: DataLakeService (getBearerToken)
|
|
72
|
-
* Note: TradingService now receives this via setControllerDependencies()
|
|
73
|
-
*/
|
|
74
|
-
messenger?: PerpsControllerMessenger;
|
|
75
|
-
/**
|
|
76
|
-
* Query functions for dependent data
|
|
77
|
-
* Required by: Operations that need to fetch related data
|
|
78
|
-
*/
|
|
79
|
-
getOpenOrders?: () => Promise<Order[]>;
|
|
80
|
-
getPositions?: () => Promise<Position[]>;
|
|
81
|
-
/**
|
|
82
|
-
* Callback functions for controller-specific operations
|
|
83
|
-
*/
|
|
84
|
-
saveTradeConfiguration?: (symbol: string, leverage: number) => void;
|
|
85
|
-
/**
|
|
86
|
-
* Feature flag configuration callbacks
|
|
87
|
-
* Required by: FeatureFlagConfigurationService
|
|
88
|
-
*/
|
|
89
|
-
getBlockedRegionList?: () => {
|
|
90
|
-
list: string[];
|
|
91
|
-
source: 'remote' | 'fallback';
|
|
92
|
-
};
|
|
93
|
-
setBlockedRegionList?: (list: string[], source: 'remote' | 'fallback') => void;
|
|
94
|
-
getHip3Config?: () => {
|
|
95
|
-
enabled: boolean;
|
|
96
|
-
allowlistMarkets: string[];
|
|
97
|
-
blocklistMarkets: string[];
|
|
98
|
-
source: 'remote' | 'fallback';
|
|
99
|
-
};
|
|
100
|
-
setHip3Config?: (config: {
|
|
101
|
-
enabled?: boolean;
|
|
102
|
-
allowlistMarkets?: string[];
|
|
103
|
-
blocklistMarkets?: string[];
|
|
104
|
-
source: 'remote' | 'fallback';
|
|
105
|
-
}) => void;
|
|
106
|
-
incrementHip3ConfigVersion?: () => number;
|
|
107
|
-
refreshEligibility?: () => Promise<void>;
|
|
108
|
-
};
|
|
109
|
-
export {};
|
|
110
|
-
//# sourceMappingURL=ServiceContext.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceContext.d.cts","sourceRoot":"","sources":["../../src/services/ServiceContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,+BAA2B;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,2BAAiB;AAChD,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,sCAAkC;AAEnC;;;GAGG;AACH,KAAK,YAAY,GAAG;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAClD,iBAAiB,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACjD,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,cAAc,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;;OAGG;IACH,YAAY,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;IAEF;;;;OAIG;IACH,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,KAAK,IAAI,CAAC;QACzD,QAAQ,EAAE,MAAM,YAAY,CAAC;KAC9B,CAAC;IAEF;;;;OAIG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAErC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEzC;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM;QAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC/B,CAAC;IACF,oBAAoB,CAAC,EAAE,CACrB,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,QAAQ,GAAG,UAAU,KAC1B,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,MAAM;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC/B,CAAC;IACF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE;QACvB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC/B,KAAK,IAAI,CAAC;IACX,0BAA0B,CAAC,EAAE,MAAM,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C,CAAC"}
|