@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,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* P&L calculation utilities for Perps trading
|
|
3
|
-
*/
|
|
4
|
-
import type { Position } from "../types/index.cjs";
|
|
5
|
-
export type PnLCalculationParams = {
|
|
6
|
-
entryPrice: number;
|
|
7
|
-
currentPrice: number;
|
|
8
|
-
size: number;
|
|
9
|
-
};
|
|
10
|
-
export type PnLResult = {
|
|
11
|
-
pnl: number;
|
|
12
|
-
pnlPercentage: number;
|
|
13
|
-
};
|
|
14
|
-
export type PnLFromUnrealizedParams = {
|
|
15
|
-
unrealizedPnl: number;
|
|
16
|
-
entryPrice: number;
|
|
17
|
-
size: number;
|
|
18
|
-
};
|
|
19
|
-
export type TotalPnLParams = {
|
|
20
|
-
positions: Position[];
|
|
21
|
-
};
|
|
22
|
-
export type ExpectedPnLParams = {
|
|
23
|
-
triggerPrice: number;
|
|
24
|
-
entryPrice: number;
|
|
25
|
-
size: number;
|
|
26
|
-
closingFee: number;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Calculate P&L for a position.
|
|
30
|
-
*
|
|
31
|
-
* @param params - P&L calculation parameters
|
|
32
|
-
* @returns The calculated profit or loss value
|
|
33
|
-
*/
|
|
34
|
-
export declare function calculatePnL(params: PnLCalculationParams): number;
|
|
35
|
-
/**
|
|
36
|
-
* Calculate expected profit/loss for TP/SL trigger, accounting for closing fees.
|
|
37
|
-
* Reuses calculatePnL for gross P&L, then subtracts fees.
|
|
38
|
-
*
|
|
39
|
-
* @param params - Expected P&L calculation parameters
|
|
40
|
-
* @returns The expected net profit or loss after fees
|
|
41
|
-
*/
|
|
42
|
-
export declare function calculateExpectedPnL(params: ExpectedPnLParams): number;
|
|
43
|
-
/**
|
|
44
|
-
* Calculate P&L percentage for a position.
|
|
45
|
-
*
|
|
46
|
-
* @param params - P&L calculation parameters
|
|
47
|
-
* @returns The P&L as a percentage value
|
|
48
|
-
*/
|
|
49
|
-
export declare function calculatePnLPercentage(params: PnLCalculationParams): number;
|
|
50
|
-
/**
|
|
51
|
-
* Calculate both P&L and P&L percentage.
|
|
52
|
-
*
|
|
53
|
-
* @param params - P&L calculation parameters
|
|
54
|
-
* @returns Object containing both P&L value and percentage
|
|
55
|
-
*/
|
|
56
|
-
export declare function calculatePnLWithPercentage(params: PnLCalculationParams): PnLResult;
|
|
57
|
-
/**
|
|
58
|
-
* Calculate P&L percentage based on unrealized P&L and position value.
|
|
59
|
-
* This is used when current price is not available.
|
|
60
|
-
*
|
|
61
|
-
* @param params - Parameters including unrealized P&L, entry price, and size
|
|
62
|
-
* @returns The P&L as a percentage value
|
|
63
|
-
*/
|
|
64
|
-
export declare function calculatePnLPercentageFromUnrealized(params: PnLFromUnrealizedParams): number;
|
|
65
|
-
/**
|
|
66
|
-
* Calculate total P&L for multiple positions.
|
|
67
|
-
*
|
|
68
|
-
* @param params - Parameters containing array of positions
|
|
69
|
-
* @returns The sum of unrealized P&L across all positions
|
|
70
|
-
*/
|
|
71
|
-
export declare function calculateTotalPnL(params: TotalPnLParams): number;
|
|
72
|
-
/**
|
|
73
|
-
* Calculate total P&L percentage for multiple positions.
|
|
74
|
-
*
|
|
75
|
-
* @param params - Parameters containing array of positions
|
|
76
|
-
* @returns The weighted average P&L percentage across all positions
|
|
77
|
-
*/
|
|
78
|
-
export declare function calculateTotalPnLPercentage(params: TotalPnLParams): number;
|
|
79
|
-
//# sourceMappingURL=pnlCalculations.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pnlCalculations.d.cts","sourceRoot":"","sources":["../../src/utils/pnlCalculations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,2BAAiB;AAEzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAGjE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAQtE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAG3E;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,oBAAoB,GAC3B,SAAS,CAKX;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAMhE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAgB1E"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* P&L calculation utilities for Perps trading
|
|
3
|
-
*/
|
|
4
|
-
import type { Position } from "../types/index.mjs";
|
|
5
|
-
export type PnLCalculationParams = {
|
|
6
|
-
entryPrice: number;
|
|
7
|
-
currentPrice: number;
|
|
8
|
-
size: number;
|
|
9
|
-
};
|
|
10
|
-
export type PnLResult = {
|
|
11
|
-
pnl: number;
|
|
12
|
-
pnlPercentage: number;
|
|
13
|
-
};
|
|
14
|
-
export type PnLFromUnrealizedParams = {
|
|
15
|
-
unrealizedPnl: number;
|
|
16
|
-
entryPrice: number;
|
|
17
|
-
size: number;
|
|
18
|
-
};
|
|
19
|
-
export type TotalPnLParams = {
|
|
20
|
-
positions: Position[];
|
|
21
|
-
};
|
|
22
|
-
export type ExpectedPnLParams = {
|
|
23
|
-
triggerPrice: number;
|
|
24
|
-
entryPrice: number;
|
|
25
|
-
size: number;
|
|
26
|
-
closingFee: number;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Calculate P&L for a position.
|
|
30
|
-
*
|
|
31
|
-
* @param params - P&L calculation parameters
|
|
32
|
-
* @returns The calculated profit or loss value
|
|
33
|
-
*/
|
|
34
|
-
export declare function calculatePnL(params: PnLCalculationParams): number;
|
|
35
|
-
/**
|
|
36
|
-
* Calculate expected profit/loss for TP/SL trigger, accounting for closing fees.
|
|
37
|
-
* Reuses calculatePnL for gross P&L, then subtracts fees.
|
|
38
|
-
*
|
|
39
|
-
* @param params - Expected P&L calculation parameters
|
|
40
|
-
* @returns The expected net profit or loss after fees
|
|
41
|
-
*/
|
|
42
|
-
export declare function calculateExpectedPnL(params: ExpectedPnLParams): number;
|
|
43
|
-
/**
|
|
44
|
-
* Calculate P&L percentage for a position.
|
|
45
|
-
*
|
|
46
|
-
* @param params - P&L calculation parameters
|
|
47
|
-
* @returns The P&L as a percentage value
|
|
48
|
-
*/
|
|
49
|
-
export declare function calculatePnLPercentage(params: PnLCalculationParams): number;
|
|
50
|
-
/**
|
|
51
|
-
* Calculate both P&L and P&L percentage.
|
|
52
|
-
*
|
|
53
|
-
* @param params - P&L calculation parameters
|
|
54
|
-
* @returns Object containing both P&L value and percentage
|
|
55
|
-
*/
|
|
56
|
-
export declare function calculatePnLWithPercentage(params: PnLCalculationParams): PnLResult;
|
|
57
|
-
/**
|
|
58
|
-
* Calculate P&L percentage based on unrealized P&L and position value.
|
|
59
|
-
* This is used when current price is not available.
|
|
60
|
-
*
|
|
61
|
-
* @param params - Parameters including unrealized P&L, entry price, and size
|
|
62
|
-
* @returns The P&L as a percentage value
|
|
63
|
-
*/
|
|
64
|
-
export declare function calculatePnLPercentageFromUnrealized(params: PnLFromUnrealizedParams): number;
|
|
65
|
-
/**
|
|
66
|
-
* Calculate total P&L for multiple positions.
|
|
67
|
-
*
|
|
68
|
-
* @param params - Parameters containing array of positions
|
|
69
|
-
* @returns The sum of unrealized P&L across all positions
|
|
70
|
-
*/
|
|
71
|
-
export declare function calculateTotalPnL(params: TotalPnLParams): number;
|
|
72
|
-
/**
|
|
73
|
-
* Calculate total P&L percentage for multiple positions.
|
|
74
|
-
*
|
|
75
|
-
* @param params - Parameters containing array of positions
|
|
76
|
-
* @returns The weighted average P&L percentage across all positions
|
|
77
|
-
*/
|
|
78
|
-
export declare function calculateTotalPnLPercentage(params: TotalPnLParams): number;
|
|
79
|
-
//# sourceMappingURL=pnlCalculations.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pnlCalculations.d.mts","sourceRoot":"","sources":["../../src/utils/pnlCalculations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,2BAAiB;AAEzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAGjE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAQtE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAG3E;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,oBAAoB,GAC3B,SAAS,CAKX;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAMhE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAgB1E"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* P&L calculation utilities for Perps trading
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Calculate P&L for a position.
|
|
6
|
-
*
|
|
7
|
-
* @param params - P&L calculation parameters
|
|
8
|
-
* @returns The calculated profit or loss value
|
|
9
|
-
*/
|
|
10
|
-
export function calculatePnL(params) {
|
|
11
|
-
const { entryPrice, currentPrice, size } = params;
|
|
12
|
-
return (currentPrice - entryPrice) * size;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Calculate expected profit/loss for TP/SL trigger, accounting for closing fees.
|
|
16
|
-
* Reuses calculatePnL for gross P&L, then subtracts fees.
|
|
17
|
-
*
|
|
18
|
-
* @param params - Expected P&L calculation parameters
|
|
19
|
-
* @returns The expected net profit or loss after fees
|
|
20
|
-
*/
|
|
21
|
-
export function calculateExpectedPnL(params) {
|
|
22
|
-
const { triggerPrice, entryPrice, size, closingFee } = params;
|
|
23
|
-
const grossPnL = calculatePnL({
|
|
24
|
-
entryPrice,
|
|
25
|
-
currentPrice: triggerPrice,
|
|
26
|
-
size,
|
|
27
|
-
});
|
|
28
|
-
return grossPnL - closingFee;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Calculate P&L percentage for a position.
|
|
32
|
-
*
|
|
33
|
-
* @param params - P&L calculation parameters
|
|
34
|
-
* @returns The P&L as a percentage value
|
|
35
|
-
*/
|
|
36
|
-
export function calculatePnLPercentage(params) {
|
|
37
|
-
const { entryPrice, currentPrice, size } = params;
|
|
38
|
-
return ((currentPrice - entryPrice) / entryPrice) * 100 * Math.sign(size);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Calculate both P&L and P&L percentage.
|
|
42
|
-
*
|
|
43
|
-
* @param params - P&L calculation parameters
|
|
44
|
-
* @returns Object containing both P&L value and percentage
|
|
45
|
-
*/
|
|
46
|
-
export function calculatePnLWithPercentage(params) {
|
|
47
|
-
return {
|
|
48
|
-
pnl: calculatePnL(params),
|
|
49
|
-
pnlPercentage: calculatePnLPercentage(params),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Calculate P&L percentage based on unrealized P&L and position value.
|
|
54
|
-
* This is used when current price is not available.
|
|
55
|
-
*
|
|
56
|
-
* @param params - Parameters including unrealized P&L, entry price, and size
|
|
57
|
-
* @returns The P&L as a percentage value
|
|
58
|
-
*/
|
|
59
|
-
export function calculatePnLPercentageFromUnrealized(params) {
|
|
60
|
-
const { unrealizedPnl, entryPrice, size } = params;
|
|
61
|
-
const entryValue = entryPrice * Math.abs(size);
|
|
62
|
-
if (entryValue === 0) {
|
|
63
|
-
return 0;
|
|
64
|
-
}
|
|
65
|
-
return (unrealizedPnl / entryValue) * 100;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Calculate total P&L for multiple positions.
|
|
69
|
-
*
|
|
70
|
-
* @param params - Parameters containing array of positions
|
|
71
|
-
* @returns The sum of unrealized P&L across all positions
|
|
72
|
-
*/
|
|
73
|
-
export function calculateTotalPnL(params) {
|
|
74
|
-
const { positions } = params;
|
|
75
|
-
return positions.reduce((sum, position) => sum + parseFloat(position.unrealizedPnl || '0'), 0);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Calculate total P&L percentage for multiple positions.
|
|
79
|
-
*
|
|
80
|
-
* @param params - Parameters containing array of positions
|
|
81
|
-
* @returns The weighted average P&L percentage across all positions
|
|
82
|
-
*/
|
|
83
|
-
export function calculateTotalPnLPercentage(params) {
|
|
84
|
-
const { positions } = params;
|
|
85
|
-
let totalPnl = 0;
|
|
86
|
-
let totalEntryValue = 0;
|
|
87
|
-
positions.forEach((position) => {
|
|
88
|
-
const pnl = parseFloat(position.unrealizedPnl || '0');
|
|
89
|
-
const entryPrice = parseFloat(position.entryPrice || '0');
|
|
90
|
-
const size = Math.abs(parseFloat(position.size || '0'));
|
|
91
|
-
const entryValue = entryPrice * size;
|
|
92
|
-
totalPnl += pnl;
|
|
93
|
-
totalEntryValue += entryValue;
|
|
94
|
-
});
|
|
95
|
-
return totalEntryValue === 0 ? 0 : (totalPnl / totalEntryValue) * 100;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=pnlCalculations.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pnlCalculations.mjs","sourceRoot":"","sources":["../../src/utils/pnlCalculations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgCH;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAA4B;IACvD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAClD,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9D,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC5B,UAAU;QACV,YAAY,EAAE,YAAY;QAC1B,IAAI;KACL,CAAC,CAAC;IACH,OAAO,QAAQ,GAAG,UAAU,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA4B;IACjE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAClD,OAAO,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAA4B;IAE5B,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC;QACzB,aAAa,EAAE,sBAAsB,CAAC,MAAM,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oCAAoC,CAClD,MAA+B;IAE/B,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACnD,MAAM,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAC7B,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,IAAI,GAAG,CAAC,EAClE,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAsB;IAChE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;QAErC,QAAQ,IAAI,GAAG,CAAC;QAChB,eAAe,IAAI,UAAU,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC;AACxE,CAAC","sourcesContent":["/**\n * P&L calculation utilities for Perps trading\n */\n\nimport type { Position } from '../types';\n\nexport type PnLCalculationParams = {\n entryPrice: number;\n currentPrice: number;\n size: number;\n};\n\nexport type PnLResult = {\n pnl: number;\n pnlPercentage: number;\n};\n\nexport type PnLFromUnrealizedParams = {\n unrealizedPnl: number;\n entryPrice: number;\n size: number;\n};\n\nexport type TotalPnLParams = {\n positions: Position[];\n};\n\nexport type ExpectedPnLParams = {\n triggerPrice: number;\n entryPrice: number;\n size: number;\n closingFee: number;\n};\n\n/**\n * Calculate P&L for a position.\n *\n * @param params - P&L calculation parameters\n * @returns The calculated profit or loss value\n */\nexport function calculatePnL(params: PnLCalculationParams): number {\n const { entryPrice, currentPrice, size } = params;\n return (currentPrice - entryPrice) * size;\n}\n\n/**\n * Calculate expected profit/loss for TP/SL trigger, accounting for closing fees.\n * Reuses calculatePnL for gross P&L, then subtracts fees.\n *\n * @param params - Expected P&L calculation parameters\n * @returns The expected net profit or loss after fees\n */\nexport function calculateExpectedPnL(params: ExpectedPnLParams): number {\n const { triggerPrice, entryPrice, size, closingFee } = params;\n const grossPnL = calculatePnL({\n entryPrice,\n currentPrice: triggerPrice,\n size,\n });\n return grossPnL - closingFee;\n}\n\n/**\n * Calculate P&L percentage for a position.\n *\n * @param params - P&L calculation parameters\n * @returns The P&L as a percentage value\n */\nexport function calculatePnLPercentage(params: PnLCalculationParams): number {\n const { entryPrice, currentPrice, size } = params;\n return ((currentPrice - entryPrice) / entryPrice) * 100 * Math.sign(size);\n}\n\n/**\n * Calculate both P&L and P&L percentage.\n *\n * @param params - P&L calculation parameters\n * @returns Object containing both P&L value and percentage\n */\nexport function calculatePnLWithPercentage(\n params: PnLCalculationParams,\n): PnLResult {\n return {\n pnl: calculatePnL(params),\n pnlPercentage: calculatePnLPercentage(params),\n };\n}\n\n/**\n * Calculate P&L percentage based on unrealized P&L and position value.\n * This is used when current price is not available.\n *\n * @param params - Parameters including unrealized P&L, entry price, and size\n * @returns The P&L as a percentage value\n */\nexport function calculatePnLPercentageFromUnrealized(\n params: PnLFromUnrealizedParams,\n): number {\n const { unrealizedPnl, entryPrice, size } = params;\n const entryValue = entryPrice * Math.abs(size);\n if (entryValue === 0) {\n return 0;\n }\n return (unrealizedPnl / entryValue) * 100;\n}\n\n/**\n * Calculate total P&L for multiple positions.\n *\n * @param params - Parameters containing array of positions\n * @returns The sum of unrealized P&L across all positions\n */\nexport function calculateTotalPnL(params: TotalPnLParams): number {\n const { positions } = params;\n return positions.reduce(\n (sum, position) => sum + parseFloat(position.unrealizedPnl || '0'),\n 0,\n );\n}\n\n/**\n * Calculate total P&L percentage for multiple positions.\n *\n * @param params - Parameters containing array of positions\n * @returns The weighted average P&L percentage across all positions\n */\nexport function calculateTotalPnLPercentage(params: TotalPnLParams): number {\n const { positions } = params;\n let totalPnl = 0;\n let totalEntryValue = 0;\n\n positions.forEach((position) => {\n const pnl = parseFloat(position.unrealizedPnl || '0');\n const entryPrice = parseFloat(position.entryPrice || '0');\n const size = Math.abs(parseFloat(position.size || '0'));\n const entryValue = entryPrice * size;\n\n totalPnl += pnl;\n totalEntryValue += entryValue;\n });\n\n return totalEntryValue === 0 ? 0 : (totalPnl / totalEntryValue) * 100;\n}\n"]}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPositionDirection = exports.calculatePercentageFromUSDAmount = exports.calculatePercentageFromTokenAmount = exports.formatCloseAmountUSD = exports.calculateCloseValue = exports.formatCloseAmountDisplay = exports.validateCloseAmountLimits = exports.calculateCloseAmountFromPercentage = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Position calculation utilities for closing positions
|
|
6
|
-
*/
|
|
7
|
-
const perpsConfig_1 = require("../constants/perpsConfig.cjs");
|
|
8
|
-
/**
|
|
9
|
-
* Calculate close amounts from percentage for both USD and token modes
|
|
10
|
-
* Uses USD as source of truth with precision validation (matches order placement logic)
|
|
11
|
-
*
|
|
12
|
-
* @param params - Percentage, position size, current price, and asset-specific decimal precision
|
|
13
|
-
* @returns Object with token amount and USD value
|
|
14
|
-
*/
|
|
15
|
-
function calculateCloseAmountFromPercentage(params) {
|
|
16
|
-
const { percentage, positionSize, currentPrice, szDecimals } = params;
|
|
17
|
-
// Validate required parameters
|
|
18
|
-
if (szDecimals === undefined || szDecimals === null) {
|
|
19
|
-
throw new Error('szDecimals is required for close position calculation');
|
|
20
|
-
}
|
|
21
|
-
if (szDecimals < 0) {
|
|
22
|
-
throw new Error(`szDecimals must be >= 0, got: ${szDecimals}`);
|
|
23
|
-
}
|
|
24
|
-
if (isNaN(percentage) ||
|
|
25
|
-
isNaN(positionSize) ||
|
|
26
|
-
isNaN(currentPrice) ||
|
|
27
|
-
percentage < 0 ||
|
|
28
|
-
percentage > 100) {
|
|
29
|
-
return { tokenAmount: 0, usdValue: 0 };
|
|
30
|
-
}
|
|
31
|
-
// Calculate initial token amount and USD value
|
|
32
|
-
let tokenAmount = (percentage / 100) * Math.abs(positionSize);
|
|
33
|
-
const usdValue = tokenAmount * currentPrice;
|
|
34
|
-
// Apply asset-specific decimal precision rounding
|
|
35
|
-
const multiplier = Math.pow(10, szDecimals);
|
|
36
|
-
tokenAmount = Math.round(tokenAmount * multiplier) / multiplier;
|
|
37
|
-
// Ensure rounded size meets requested USD value (fix validation gap)
|
|
38
|
-
// This matches the logic in calculatePositionSize for consistency
|
|
39
|
-
const actualUsd = tokenAmount * currentPrice;
|
|
40
|
-
if (actualUsd < usdValue) {
|
|
41
|
-
// Add 1 minimum increment to meet requested USD
|
|
42
|
-
tokenAmount += 1 / multiplier;
|
|
43
|
-
}
|
|
44
|
-
return {
|
|
45
|
-
tokenAmount: Number(tokenAmount.toFixed(szDecimals)),
|
|
46
|
-
usdValue: Number(usdValue.toFixed(perpsConfig_1.CLOSE_POSITION_CONFIG.UsdDecimalPlaces)),
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
exports.calculateCloseAmountFromPercentage = calculateCloseAmountFromPercentage;
|
|
50
|
-
/**
|
|
51
|
-
* Validate and clamp close amount within limits
|
|
52
|
-
*
|
|
53
|
-
* @param params - Amount to validate, maximum allowed, and optional minimum
|
|
54
|
-
* @returns Clamped amount within valid range
|
|
55
|
-
*/
|
|
56
|
-
function validateCloseAmountLimits(params) {
|
|
57
|
-
const { amount, maxAmount, minAmount = 0 } = params;
|
|
58
|
-
if (isNaN(amount) || amount < 0) {
|
|
59
|
-
return 0;
|
|
60
|
-
}
|
|
61
|
-
return Math.max(minAmount, Math.min(amount, maxAmount));
|
|
62
|
-
}
|
|
63
|
-
exports.validateCloseAmountLimits = validateCloseAmountLimits;
|
|
64
|
-
/**
|
|
65
|
-
* Format close amount for display based on mode and decimals
|
|
66
|
-
*
|
|
67
|
-
* @param params - Value string, display mode, and decimal places
|
|
68
|
-
* @returns Formatted string with appropriate decimal precision
|
|
69
|
-
*/
|
|
70
|
-
function formatCloseAmountDisplay(params) {
|
|
71
|
-
const { value, displayMode, decimals } = params;
|
|
72
|
-
if (!value || value === '') {
|
|
73
|
-
return '0';
|
|
74
|
-
}
|
|
75
|
-
const numericValue = parseFloat(value);
|
|
76
|
-
if (isNaN(numericValue)) {
|
|
77
|
-
return '0';
|
|
78
|
-
}
|
|
79
|
-
const decimalPlaces = decimals ??
|
|
80
|
-
(displayMode === 'usd'
|
|
81
|
-
? perpsConfig_1.CLOSE_POSITION_CONFIG.UsdDecimalPlaces
|
|
82
|
-
: perpsConfig_1.CLOSE_POSITION_CONFIG.AmountCalculationPrecision);
|
|
83
|
-
// For USD mode, limit input to specified decimal places
|
|
84
|
-
if (displayMode === 'usd' && value.includes('.')) {
|
|
85
|
-
const parts = value.split('.');
|
|
86
|
-
const integerPart = parts[0] || '0';
|
|
87
|
-
const decimalPart = (parts[1] || '').slice(0, perpsConfig_1.CLOSE_POSITION_CONFIG.UsdDecimalPlaces);
|
|
88
|
-
return `${integerPart}${decimalPart ? `.${decimalPart}` : ''}`;
|
|
89
|
-
}
|
|
90
|
-
return numericValue.toFixed(decimalPlaces);
|
|
91
|
-
}
|
|
92
|
-
exports.formatCloseAmountDisplay = formatCloseAmountDisplay;
|
|
93
|
-
/**
|
|
94
|
-
* Calculate USD value for a given token amount
|
|
95
|
-
*
|
|
96
|
-
* @param params - Token amount and current price
|
|
97
|
-
* @returns USD value formatted to 2 decimal places
|
|
98
|
-
*/
|
|
99
|
-
function calculateCloseValue(params) {
|
|
100
|
-
const { amount, price } = params;
|
|
101
|
-
if (isNaN(amount) || isNaN(price) || amount < 0 || price <= 0) {
|
|
102
|
-
return 0;
|
|
103
|
-
}
|
|
104
|
-
const value = amount * price;
|
|
105
|
-
return Number(value.toFixed(perpsConfig_1.CLOSE_POSITION_CONFIG.UsdDecimalPlaces));
|
|
106
|
-
}
|
|
107
|
-
exports.calculateCloseValue = calculateCloseValue;
|
|
108
|
-
/**
|
|
109
|
-
* Formats a USD value for close amount display with proper decimal places
|
|
110
|
-
* Uses the centralized USD_DECIMAL_PLACES configuration
|
|
111
|
-
*
|
|
112
|
-
* @param value - Raw USD value to format
|
|
113
|
-
* @returns Formatted string with configured decimal places
|
|
114
|
-
*/
|
|
115
|
-
function formatCloseAmountUSD(value) {
|
|
116
|
-
if (isNaN(value) || value < 0) {
|
|
117
|
-
return '0';
|
|
118
|
-
}
|
|
119
|
-
return value.toFixed(perpsConfig_1.CLOSE_POSITION_CONFIG.UsdDecimalPlaces);
|
|
120
|
-
}
|
|
121
|
-
exports.formatCloseAmountUSD = formatCloseAmountUSD;
|
|
122
|
-
/**
|
|
123
|
-
* Calculate percentage from token amount
|
|
124
|
-
*
|
|
125
|
-
* @param tokenAmount - Amount in token units
|
|
126
|
-
* @param totalPositionSize - Total position size in token units
|
|
127
|
-
* @returns Percentage (0-100)
|
|
128
|
-
*/
|
|
129
|
-
function calculatePercentageFromTokenAmount(tokenAmount, totalPositionSize) {
|
|
130
|
-
if (isNaN(tokenAmount) ||
|
|
131
|
-
isNaN(totalPositionSize) ||
|
|
132
|
-
totalPositionSize === 0) {
|
|
133
|
-
return 0;
|
|
134
|
-
}
|
|
135
|
-
const percentage = (Math.abs(tokenAmount) / Math.abs(totalPositionSize)) * 100;
|
|
136
|
-
return Math.max(0, Math.min(100, percentage));
|
|
137
|
-
}
|
|
138
|
-
exports.calculatePercentageFromTokenAmount = calculatePercentageFromTokenAmount;
|
|
139
|
-
/**
|
|
140
|
-
* Calculate percentage from USD amount
|
|
141
|
-
*
|
|
142
|
-
* @param usdAmount - Amount in USD
|
|
143
|
-
* @param totalPositionValue - Total position value in USD
|
|
144
|
-
* @returns Percentage (0-100)
|
|
145
|
-
*/
|
|
146
|
-
function calculatePercentageFromUSDAmount(usdAmount, totalPositionValue) {
|
|
147
|
-
if (isNaN(usdAmount) ||
|
|
148
|
-
isNaN(totalPositionValue) ||
|
|
149
|
-
totalPositionValue === 0) {
|
|
150
|
-
return 0;
|
|
151
|
-
}
|
|
152
|
-
const percentage = (usdAmount / totalPositionValue) * 100;
|
|
153
|
-
return Math.max(0, Math.min(100, percentage));
|
|
154
|
-
}
|
|
155
|
-
exports.calculatePercentageFromUSDAmount = calculatePercentageFromUSDAmount;
|
|
156
|
-
/**
|
|
157
|
-
* Helper function to determine position direction based on size value
|
|
158
|
-
*
|
|
159
|
-
* @param sizeString - The position size as a string
|
|
160
|
-
* @returns 'long', 'short', or 'unknown'
|
|
161
|
-
*/
|
|
162
|
-
function getPositionDirection(sizeString) {
|
|
163
|
-
const sizeValue = parseFloat(sizeString);
|
|
164
|
-
if (!Number.isFinite(sizeValue)) {
|
|
165
|
-
return 'unknown';
|
|
166
|
-
}
|
|
167
|
-
if (sizeValue > 0) {
|
|
168
|
-
return 'long';
|
|
169
|
-
}
|
|
170
|
-
if (sizeValue < 0) {
|
|
171
|
-
return 'short';
|
|
172
|
-
}
|
|
173
|
-
return 'unknown';
|
|
174
|
-
}
|
|
175
|
-
exports.getPositionDirection = getPositionDirection;
|
|
176
|
-
//# sourceMappingURL=positionCalculations.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"positionCalculations.cjs","sourceRoot":"","sources":["../../src/utils/positionCalculations.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Position calculation utilities for closing positions\n */\nimport { CLOSE_POSITION_CONFIG } from '../constants/perpsConfig';\n\ntype CloseAmountFromPercentageParams = {\n percentage: number;\n positionSize: number;\n currentPrice: number;\n szDecimals: number;\n};\n\ntype CloseAmountLimitsParams = {\n amount: number;\n maxAmount: number;\n minAmount?: number;\n};\n\ntype CloseAmountDisplayParams = {\n value: string;\n displayMode: 'usd' | 'token';\n decimals?: number;\n};\n\ntype CloseValueParams = {\n amount: number;\n price: number;\n};\n\n/**\n * Calculate close amounts from percentage for both USD and token modes\n * Uses USD as source of truth with precision validation (matches order placement logic)\n *\n * @param params - Percentage, position size, current price, and asset-specific decimal precision\n * @returns Object with token amount and USD value\n */\nexport function calculateCloseAmountFromPercentage(\n params: CloseAmountFromPercentageParams,\n): { tokenAmount: number; usdValue: number } {\n const { percentage, positionSize, currentPrice, szDecimals } = params;\n\n // Validate required parameters\n if (szDecimals === undefined || szDecimals === null) {\n throw new Error('szDecimals is required for close position calculation');\n }\n if (szDecimals < 0) {\n throw new Error(`szDecimals must be >= 0, got: ${szDecimals}`);\n }\n\n if (\n isNaN(percentage) ||\n isNaN(positionSize) ||\n isNaN(currentPrice) ||\n percentage < 0 ||\n percentage > 100\n ) {\n return { tokenAmount: 0, usdValue: 0 };\n }\n\n // Calculate initial token amount and USD value\n let tokenAmount = (percentage / 100) * Math.abs(positionSize);\n const usdValue = tokenAmount * currentPrice;\n\n // Apply asset-specific decimal precision rounding\n const multiplier = Math.pow(10, szDecimals);\n tokenAmount = Math.round(tokenAmount * multiplier) / multiplier;\n\n // Ensure rounded size meets requested USD value (fix validation gap)\n // This matches the logic in calculatePositionSize for consistency\n const actualUsd = tokenAmount * currentPrice;\n if (actualUsd < usdValue) {\n // Add 1 minimum increment to meet requested USD\n tokenAmount += 1 / multiplier;\n }\n\n return {\n tokenAmount: Number(tokenAmount.toFixed(szDecimals)),\n usdValue: Number(usdValue.toFixed(CLOSE_POSITION_CONFIG.UsdDecimalPlaces)),\n };\n}\n\n/**\n * Validate and clamp close amount within limits\n *\n * @param params - Amount to validate, maximum allowed, and optional minimum\n * @returns Clamped amount within valid range\n */\nexport function validateCloseAmountLimits(\n params: CloseAmountLimitsParams,\n): number {\n const { amount, maxAmount, minAmount = 0 } = params;\n\n if (isNaN(amount) || amount < 0) {\n return 0;\n }\n\n return Math.max(minAmount, Math.min(amount, maxAmount));\n}\n\n/**\n * Format close amount for display based on mode and decimals\n *\n * @param params - Value string, display mode, and decimal places\n * @returns Formatted string with appropriate decimal precision\n */\nexport function formatCloseAmountDisplay(\n params: CloseAmountDisplayParams,\n): string {\n const { value, displayMode, decimals } = params;\n\n if (!value || value === '') {\n return '0';\n }\n\n const numericValue = parseFloat(value);\n if (isNaN(numericValue)) {\n return '0';\n }\n\n const decimalPlaces =\n decimals ??\n (displayMode === 'usd'\n ? CLOSE_POSITION_CONFIG.UsdDecimalPlaces\n : CLOSE_POSITION_CONFIG.AmountCalculationPrecision);\n\n // For USD mode, limit input to specified decimal places\n if (displayMode === 'usd' && value.includes('.')) {\n const parts = value.split('.');\n const integerPart = parts[0] || '0';\n const decimalPart = (parts[1] || '').slice(\n 0,\n CLOSE_POSITION_CONFIG.UsdDecimalPlaces,\n );\n return `${integerPart}${decimalPart ? `.${decimalPart}` : ''}`;\n }\n\n return numericValue.toFixed(decimalPlaces);\n}\n\n/**\n * Calculate USD value for a given token amount\n *\n * @param params - Token amount and current price\n * @returns USD value formatted to 2 decimal places\n */\nexport function calculateCloseValue(params: CloseValueParams): number {\n const { amount, price } = params;\n\n if (isNaN(amount) || isNaN(price) || amount < 0 || price <= 0) {\n return 0;\n }\n\n const value = amount * price;\n return Number(value.toFixed(CLOSE_POSITION_CONFIG.UsdDecimalPlaces));\n}\n\n/**\n * Formats a USD value for close amount display with proper decimal places\n * Uses the centralized USD_DECIMAL_PLACES configuration\n *\n * @param value - Raw USD value to format\n * @returns Formatted string with configured decimal places\n */\nexport function formatCloseAmountUSD(value: number): string {\n if (isNaN(value) || value < 0) {\n return '0';\n }\n return value.toFixed(CLOSE_POSITION_CONFIG.UsdDecimalPlaces);\n}\n\n/**\n * Calculate percentage from token amount\n *\n * @param tokenAmount - Amount in token units\n * @param totalPositionSize - Total position size in token units\n * @returns Percentage (0-100)\n */\nexport function calculatePercentageFromTokenAmount(\n tokenAmount: number,\n totalPositionSize: number,\n): number {\n if (\n isNaN(tokenAmount) ||\n isNaN(totalPositionSize) ||\n totalPositionSize === 0\n ) {\n return 0;\n }\n\n const percentage =\n (Math.abs(tokenAmount) / Math.abs(totalPositionSize)) * 100;\n return Math.max(0, Math.min(100, percentage));\n}\n\n/**\n * Calculate percentage from USD amount\n *\n * @param usdAmount - Amount in USD\n * @param totalPositionValue - Total position value in USD\n * @returns Percentage (0-100)\n */\nexport function calculatePercentageFromUSDAmount(\n usdAmount: number,\n totalPositionValue: number,\n): number {\n if (\n isNaN(usdAmount) ||\n isNaN(totalPositionValue) ||\n totalPositionValue === 0\n ) {\n return 0;\n }\n\n const percentage = (usdAmount / totalPositionValue) * 100;\n return Math.max(0, Math.min(100, percentage));\n}\n\n/**\n * Helper function to determine position direction based on size value\n *\n * @param sizeString - The position size as a string\n * @returns 'long', 'short', or 'unknown'\n */\nexport function getPositionDirection(\n sizeString: string,\n): 'long' | 'short' | 'unknown' {\n const sizeValue = parseFloat(sizeString);\n\n if (!Number.isFinite(sizeValue)) {\n return 'unknown';\n }\n\n if (sizeValue > 0) {\n return 'long';\n }\n\n if (sizeValue < 0) {\n return 'short';\n }\n\n return 'unknown';\n}\n"]}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
type CloseAmountFromPercentageParams = {
|
|
2
|
-
percentage: number;
|
|
3
|
-
positionSize: number;
|
|
4
|
-
currentPrice: number;
|
|
5
|
-
szDecimals: number;
|
|
6
|
-
};
|
|
7
|
-
type CloseAmountLimitsParams = {
|
|
8
|
-
amount: number;
|
|
9
|
-
maxAmount: number;
|
|
10
|
-
minAmount?: number;
|
|
11
|
-
};
|
|
12
|
-
type CloseAmountDisplayParams = {
|
|
13
|
-
value: string;
|
|
14
|
-
displayMode: 'usd' | 'token';
|
|
15
|
-
decimals?: number;
|
|
16
|
-
};
|
|
17
|
-
type CloseValueParams = {
|
|
18
|
-
amount: number;
|
|
19
|
-
price: number;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Calculate close amounts from percentage for both USD and token modes
|
|
23
|
-
* Uses USD as source of truth with precision validation (matches order placement logic)
|
|
24
|
-
*
|
|
25
|
-
* @param params - Percentage, position size, current price, and asset-specific decimal precision
|
|
26
|
-
* @returns Object with token amount and USD value
|
|
27
|
-
*/
|
|
28
|
-
export declare function calculateCloseAmountFromPercentage(params: CloseAmountFromPercentageParams): {
|
|
29
|
-
tokenAmount: number;
|
|
30
|
-
usdValue: number;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Validate and clamp close amount within limits
|
|
34
|
-
*
|
|
35
|
-
* @param params - Amount to validate, maximum allowed, and optional minimum
|
|
36
|
-
* @returns Clamped amount within valid range
|
|
37
|
-
*/
|
|
38
|
-
export declare function validateCloseAmountLimits(params: CloseAmountLimitsParams): number;
|
|
39
|
-
/**
|
|
40
|
-
* Format close amount for display based on mode and decimals
|
|
41
|
-
*
|
|
42
|
-
* @param params - Value string, display mode, and decimal places
|
|
43
|
-
* @returns Formatted string with appropriate decimal precision
|
|
44
|
-
*/
|
|
45
|
-
export declare function formatCloseAmountDisplay(params: CloseAmountDisplayParams): string;
|
|
46
|
-
/**
|
|
47
|
-
* Calculate USD value for a given token amount
|
|
48
|
-
*
|
|
49
|
-
* @param params - Token amount and current price
|
|
50
|
-
* @returns USD value formatted to 2 decimal places
|
|
51
|
-
*/
|
|
52
|
-
export declare function calculateCloseValue(params: CloseValueParams): number;
|
|
53
|
-
/**
|
|
54
|
-
* Formats a USD value for close amount display with proper decimal places
|
|
55
|
-
* Uses the centralized USD_DECIMAL_PLACES configuration
|
|
56
|
-
*
|
|
57
|
-
* @param value - Raw USD value to format
|
|
58
|
-
* @returns Formatted string with configured decimal places
|
|
59
|
-
*/
|
|
60
|
-
export declare function formatCloseAmountUSD(value: number): string;
|
|
61
|
-
/**
|
|
62
|
-
* Calculate percentage from token amount
|
|
63
|
-
*
|
|
64
|
-
* @param tokenAmount - Amount in token units
|
|
65
|
-
* @param totalPositionSize - Total position size in token units
|
|
66
|
-
* @returns Percentage (0-100)
|
|
67
|
-
*/
|
|
68
|
-
export declare function calculatePercentageFromTokenAmount(tokenAmount: number, totalPositionSize: number): number;
|
|
69
|
-
/**
|
|
70
|
-
* Calculate percentage from USD amount
|
|
71
|
-
*
|
|
72
|
-
* @param usdAmount - Amount in USD
|
|
73
|
-
* @param totalPositionValue - Total position value in USD
|
|
74
|
-
* @returns Percentage (0-100)
|
|
75
|
-
*/
|
|
76
|
-
export declare function calculatePercentageFromUSDAmount(usdAmount: number, totalPositionValue: number): number;
|
|
77
|
-
/**
|
|
78
|
-
* Helper function to determine position direction based on size value
|
|
79
|
-
*
|
|
80
|
-
* @param sizeString - The position size as a string
|
|
81
|
-
* @returns 'long', 'short', or 'unknown'
|
|
82
|
-
*/
|
|
83
|
-
export declare function getPositionDirection(sizeString: string): 'long' | 'short' | 'unknown';
|
|
84
|
-
export {};
|
|
85
|
-
//# sourceMappingURL=positionCalculations.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"positionCalculations.d.cts","sourceRoot":"","sources":["../../src/utils/positionCalculations.ts"],"names":[],"mappings":"AAKA,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,+BAA+B,GACtC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAyC3C;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CA8BR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CASpE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAYR;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAWR;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,OAAO,GAAG,SAAS,CAgB9B"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
type CloseAmountFromPercentageParams = {
|
|
2
|
-
percentage: number;
|
|
3
|
-
positionSize: number;
|
|
4
|
-
currentPrice: number;
|
|
5
|
-
szDecimals: number;
|
|
6
|
-
};
|
|
7
|
-
type CloseAmountLimitsParams = {
|
|
8
|
-
amount: number;
|
|
9
|
-
maxAmount: number;
|
|
10
|
-
minAmount?: number;
|
|
11
|
-
};
|
|
12
|
-
type CloseAmountDisplayParams = {
|
|
13
|
-
value: string;
|
|
14
|
-
displayMode: 'usd' | 'token';
|
|
15
|
-
decimals?: number;
|
|
16
|
-
};
|
|
17
|
-
type CloseValueParams = {
|
|
18
|
-
amount: number;
|
|
19
|
-
price: number;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Calculate close amounts from percentage for both USD and token modes
|
|
23
|
-
* Uses USD as source of truth with precision validation (matches order placement logic)
|
|
24
|
-
*
|
|
25
|
-
* @param params - Percentage, position size, current price, and asset-specific decimal precision
|
|
26
|
-
* @returns Object with token amount and USD value
|
|
27
|
-
*/
|
|
28
|
-
export declare function calculateCloseAmountFromPercentage(params: CloseAmountFromPercentageParams): {
|
|
29
|
-
tokenAmount: number;
|
|
30
|
-
usdValue: number;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Validate and clamp close amount within limits
|
|
34
|
-
*
|
|
35
|
-
* @param params - Amount to validate, maximum allowed, and optional minimum
|
|
36
|
-
* @returns Clamped amount within valid range
|
|
37
|
-
*/
|
|
38
|
-
export declare function validateCloseAmountLimits(params: CloseAmountLimitsParams): number;
|
|
39
|
-
/**
|
|
40
|
-
* Format close amount for display based on mode and decimals
|
|
41
|
-
*
|
|
42
|
-
* @param params - Value string, display mode, and decimal places
|
|
43
|
-
* @returns Formatted string with appropriate decimal precision
|
|
44
|
-
*/
|
|
45
|
-
export declare function formatCloseAmountDisplay(params: CloseAmountDisplayParams): string;
|
|
46
|
-
/**
|
|
47
|
-
* Calculate USD value for a given token amount
|
|
48
|
-
*
|
|
49
|
-
* @param params - Token amount and current price
|
|
50
|
-
* @returns USD value formatted to 2 decimal places
|
|
51
|
-
*/
|
|
52
|
-
export declare function calculateCloseValue(params: CloseValueParams): number;
|
|
53
|
-
/**
|
|
54
|
-
* Formats a USD value for close amount display with proper decimal places
|
|
55
|
-
* Uses the centralized USD_DECIMAL_PLACES configuration
|
|
56
|
-
*
|
|
57
|
-
* @param value - Raw USD value to format
|
|
58
|
-
* @returns Formatted string with configured decimal places
|
|
59
|
-
*/
|
|
60
|
-
export declare function formatCloseAmountUSD(value: number): string;
|
|
61
|
-
/**
|
|
62
|
-
* Calculate percentage from token amount
|
|
63
|
-
*
|
|
64
|
-
* @param tokenAmount - Amount in token units
|
|
65
|
-
* @param totalPositionSize - Total position size in token units
|
|
66
|
-
* @returns Percentage (0-100)
|
|
67
|
-
*/
|
|
68
|
-
export declare function calculatePercentageFromTokenAmount(tokenAmount: number, totalPositionSize: number): number;
|
|
69
|
-
/**
|
|
70
|
-
* Calculate percentage from USD amount
|
|
71
|
-
*
|
|
72
|
-
* @param usdAmount - Amount in USD
|
|
73
|
-
* @param totalPositionValue - Total position value in USD
|
|
74
|
-
* @returns Percentage (0-100)
|
|
75
|
-
*/
|
|
76
|
-
export declare function calculatePercentageFromUSDAmount(usdAmount: number, totalPositionValue: number): number;
|
|
77
|
-
/**
|
|
78
|
-
* Helper function to determine position direction based on size value
|
|
79
|
-
*
|
|
80
|
-
* @param sizeString - The position size as a string
|
|
81
|
-
* @returns 'long', 'short', or 'unknown'
|
|
82
|
-
*/
|
|
83
|
-
export declare function getPositionDirection(sizeString: string): 'long' | 'short' | 'unknown';
|
|
84
|
-
export {};
|
|
85
|
-
//# sourceMappingURL=positionCalculations.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"positionCalculations.d.mts","sourceRoot":"","sources":["../../src/utils/positionCalculations.ts"],"names":[],"mappings":"AAKA,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,+BAA+B,GACtC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAyC3C;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CA8BR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CASpE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAYR;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAWR;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,OAAO,GAAG,SAAS,CAgB9B"}
|