@metamask-previews/perps-controller 0.0.0-preview-685dbf46b → 1.0.0-preview-bc00f2c
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 +30 -2
- package/dist/PerpsController.cjs +3077 -65
- package/dist/PerpsController.cjs.map +1 -1
- package/dist/PerpsController.d.cts +969 -82
- package/dist/PerpsController.d.cts.map +1 -1
- package/dist/PerpsController.d.mts +969 -82
- package/dist/PerpsController.d.mts.map +1 -1
- package/dist/PerpsController.mjs +3073 -62
- package/dist/PerpsController.mjs.map +1 -1
- package/dist/aggregation/SubscriptionMultiplexer.cjs +441 -0
- package/dist/aggregation/SubscriptionMultiplexer.cjs.map +1 -0
- package/dist/aggregation/SubscriptionMultiplexer.d.cts +171 -0
- package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +1 -0
- package/dist/aggregation/SubscriptionMultiplexer.d.mts +171 -0
- package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +1 -0
- package/dist/aggregation/SubscriptionMultiplexer.mjs +437 -0
- package/dist/aggregation/SubscriptionMultiplexer.mjs.map +1 -0
- package/dist/aggregation/index.cjs +9 -0
- package/dist/aggregation/index.cjs.map +1 -0
- package/dist/aggregation/index.d.cts +6 -0
- package/dist/aggregation/index.d.cts.map +1 -0
- package/dist/aggregation/index.d.mts +6 -0
- package/dist/aggregation/index.d.mts.map +1 -0
- package/dist/aggregation/index.mjs +5 -0
- package/dist/aggregation/index.mjs.map +1 -0
- package/dist/constants/chartConfig.cjs +227 -0
- package/dist/constants/chartConfig.cjs.map +1 -0
- package/dist/constants/chartConfig.d.cts +216 -0
- package/dist/constants/chartConfig.d.cts.map +1 -0
- package/dist/constants/chartConfig.d.mts +216 -0
- package/dist/constants/chartConfig.d.mts.map +1 -0
- package/dist/constants/chartConfig.mjs +221 -0
- package/dist/constants/chartConfig.mjs.map +1 -0
- package/dist/constants/eventNames.cjs +436 -0
- package/dist/constants/eventNames.cjs.map +1 -0
- package/dist/constants/eventNames.d.cts +387 -0
- package/dist/constants/eventNames.d.cts.map +1 -0
- package/dist/constants/eventNames.d.mts +387 -0
- package/dist/constants/eventNames.d.mts.map +1 -0
- package/dist/constants/eventNames.mjs +433 -0
- package/dist/constants/eventNames.mjs.map +1 -0
- package/dist/constants/hyperLiquidConfig.cjs +380 -0
- package/dist/constants/hyperLiquidConfig.cjs.map +1 -0
- package/dist/constants/hyperLiquidConfig.d.cts +236 -0
- package/dist/constants/hyperLiquidConfig.d.cts.map +1 -0
- package/dist/constants/hyperLiquidConfig.d.mts +236 -0
- package/dist/constants/hyperLiquidConfig.d.mts.map +1 -0
- package/dist/constants/hyperLiquidConfig.mjs +371 -0
- package/dist/constants/hyperLiquidConfig.mjs.map +1 -0
- package/dist/constants/index.cjs +28 -0
- package/dist/constants/index.cjs.map +1 -0
- package/dist/constants/index.d.cts +12 -0
- package/dist/constants/index.d.cts.map +1 -0
- package/dist/constants/index.d.mts +12 -0
- package/dist/constants/index.d.mts.map +1 -0
- package/dist/constants/index.mjs +12 -0
- package/dist/constants/index.mjs.map +1 -0
- package/dist/constants/myxConfig.cjs +229 -0
- package/dist/constants/myxConfig.cjs.map +1 -0
- package/dist/constants/myxConfig.d.cts +106 -0
- package/dist/constants/myxConfig.d.cts.map +1 -0
- package/dist/constants/myxConfig.d.mts +106 -0
- package/dist/constants/myxConfig.d.mts.map +1 -0
- package/dist/constants/myxConfig.mjs +219 -0
- package/dist/constants/myxConfig.mjs.map +1 -0
- package/dist/constants/orderTypes.cjs +31 -0
- package/dist/constants/orderTypes.cjs.map +1 -0
- package/dist/constants/orderTypes.d.cts +19 -0
- package/dist/constants/orderTypes.d.cts.map +1 -0
- package/dist/constants/orderTypes.d.mts +19 -0
- package/dist/constants/orderTypes.d.mts.map +1 -0
- package/dist/constants/orderTypes.mjs +27 -0
- package/dist/constants/orderTypes.mjs.map +1 -0
- package/dist/constants/performanceMetrics.cjs +63 -0
- package/dist/constants/performanceMetrics.cjs.map +1 -0
- package/dist/constants/performanceMetrics.d.cts +46 -0
- package/dist/constants/performanceMetrics.d.cts.map +1 -0
- package/dist/constants/performanceMetrics.d.mts +46 -0
- package/dist/constants/performanceMetrics.d.mts.map +1 -0
- package/dist/constants/performanceMetrics.mjs +60 -0
- package/dist/constants/performanceMetrics.mjs.map +1 -0
- package/dist/constants/perpsConfig.cjs +295 -0
- package/dist/constants/perpsConfig.cjs.map +1 -0
- package/dist/constants/perpsConfig.d.cts +221 -0
- package/dist/constants/perpsConfig.d.cts.map +1 -0
- package/dist/constants/perpsConfig.d.mts +221 -0
- package/dist/constants/perpsConfig.d.mts.map +1 -0
- package/dist/constants/perpsConfig.mjs +292 -0
- package/dist/constants/perpsConfig.mjs.map +1 -0
- package/dist/constants/transactionsHistoryConfig.cjs +19 -0
- package/dist/constants/transactionsHistoryConfig.cjs.map +1 -0
- package/dist/constants/transactionsHistoryConfig.d.cts +16 -0
- package/dist/constants/transactionsHistoryConfig.d.cts.map +1 -0
- package/dist/constants/transactionsHistoryConfig.d.mts +16 -0
- package/dist/constants/transactionsHistoryConfig.d.mts.map +1 -0
- package/dist/constants/transactionsHistoryConfig.mjs +16 -0
- package/dist/constants/transactionsHistoryConfig.mjs.map +1 -0
- package/dist/index.cjs +63 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +38 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +38 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +46 -1
- package/dist/index.mjs.map +1 -1
- package/dist/perpsErrorCodes.cjs +80 -0
- package/dist/perpsErrorCodes.cjs.map +1 -0
- package/dist/perpsErrorCodes.d.cts +65 -0
- package/dist/perpsErrorCodes.d.cts.map +1 -0
- package/dist/perpsErrorCodes.d.mts +65 -0
- package/dist/perpsErrorCodes.d.mts.map +1 -0
- package/dist/perpsErrorCodes.mjs +77 -0
- package/dist/perpsErrorCodes.mjs.map +1 -0
- package/dist/providers/AggregatedPerpsProvider.cjs +508 -0
- package/dist/providers/AggregatedPerpsProvider.cjs.map +1 -0
- package/dist/providers/AggregatedPerpsProvider.d.cts +171 -0
- package/dist/providers/AggregatedPerpsProvider.d.cts.map +1 -0
- package/dist/providers/AggregatedPerpsProvider.d.mts +171 -0
- package/dist/providers/AggregatedPerpsProvider.d.mts.map +1 -0
- package/dist/providers/AggregatedPerpsProvider.mjs +504 -0
- package/dist/providers/AggregatedPerpsProvider.mjs.map +1 -0
- package/dist/providers/HyperLiquidProvider.cjs +5679 -0
- package/dist/providers/HyperLiquidProvider.cjs.map +1 -0
- package/dist/providers/HyperLiquidProvider.d.cts +516 -0
- package/dist/providers/HyperLiquidProvider.d.cts.map +1 -0
- package/dist/providers/HyperLiquidProvider.d.mts +516 -0
- package/dist/providers/HyperLiquidProvider.d.mts.map +1 -0
- package/dist/providers/HyperLiquidProvider.mjs +5675 -0
- package/dist/providers/HyperLiquidProvider.mjs.map +1 -0
- package/dist/providers/MYXProvider.cjs +514 -0
- package/dist/providers/MYXProvider.cjs.map +1 -0
- package/dist/providers/MYXProvider.d.cts +105 -0
- package/dist/providers/MYXProvider.d.cts.map +1 -0
- package/dist/providers/MYXProvider.d.mts +105 -0
- package/dist/providers/MYXProvider.d.mts.map +1 -0
- package/dist/providers/MYXProvider.mjs +510 -0
- package/dist/providers/MYXProvider.mjs.map +1 -0
- package/dist/routing/ProviderRouter.cjs +154 -0
- package/dist/routing/ProviderRouter.cjs.map +1 -0
- package/dist/routing/ProviderRouter.d.cts +112 -0
- package/dist/routing/ProviderRouter.d.cts.map +1 -0
- package/dist/routing/ProviderRouter.d.mts +112 -0
- package/dist/routing/ProviderRouter.d.mts.map +1 -0
- package/dist/routing/ProviderRouter.mjs +150 -0
- package/dist/routing/ProviderRouter.mjs.map +1 -0
- package/dist/routing/index.cjs +9 -0
- package/dist/routing/index.cjs.map +1 -0
- package/dist/routing/index.d.cts +6 -0
- package/dist/routing/index.d.cts.map +1 -0
- package/dist/routing/index.d.mts +6 -0
- package/dist/routing/index.d.mts.map +1 -0
- package/dist/routing/index.mjs +5 -0
- package/dist/routing/index.mjs.map +1 -0
- package/dist/selectors.cjs +166 -0
- package/dist/selectors.cjs.map +1 -0
- package/dist/selectors.d.cts +362 -0
- package/dist/selectors.d.cts.map +1 -0
- package/dist/selectors.d.mts +362 -0
- package/dist/selectors.d.mts.map +1 -0
- package/dist/selectors.mjs +158 -0
- package/dist/selectors.mjs.map +1 -0
- package/dist/services/AccountService.cjs +324 -0
- package/dist/services/AccountService.cjs.map +1 -0
- package/dist/services/AccountService.d.cts +56 -0
- package/dist/services/AccountService.d.cts.map +1 -0
- package/dist/services/AccountService.d.mts +56 -0
- package/dist/services/AccountService.d.mts.map +1 -0
- package/dist/services/AccountService.mjs +320 -0
- package/dist/services/AccountService.mjs.map +1 -0
- package/dist/services/DataLakeService.cjs +233 -0
- package/dist/services/DataLakeService.cjs.map +1 -0
- package/dist/services/DataLakeService.d.cts +51 -0
- package/dist/services/DataLakeService.d.cts.map +1 -0
- package/dist/services/DataLakeService.d.mts +51 -0
- package/dist/services/DataLakeService.d.mts.map +1 -0
- package/dist/services/DataLakeService.mjs +229 -0
- package/dist/services/DataLakeService.mjs.map +1 -0
- package/dist/services/DepositService.cjs +98 -0
- package/dist/services/DepositService.cjs.map +1 -0
- package/dist/services/DepositService.d.cts +39 -0
- package/dist/services/DepositService.d.cts.map +1 -0
- package/dist/services/DepositService.d.mts +39 -0
- package/dist/services/DepositService.d.mts.map +1 -0
- package/dist/services/DepositService.mjs +94 -0
- package/dist/services/DepositService.mjs.map +1 -0
- package/dist/services/EligibilityService.cjs +173 -0
- package/dist/services/EligibilityService.cjs.map +1 -0
- package/dist/services/EligibilityService.d.cts +39 -0
- package/dist/services/EligibilityService.d.cts.map +1 -0
- package/dist/services/EligibilityService.d.mts +39 -0
- package/dist/services/EligibilityService.d.mts.map +1 -0
- package/dist/services/EligibilityService.mjs +169 -0
- package/dist/services/EligibilityService.mjs.map +1 -0
- package/dist/services/FeatureFlagConfigurationService.cjs +257 -0
- package/dist/services/FeatureFlagConfigurationService.cjs.map +1 -0
- package/dist/services/FeatureFlagConfigurationService.d.cts +73 -0
- package/dist/services/FeatureFlagConfigurationService.d.cts.map +1 -0
- package/dist/services/FeatureFlagConfigurationService.d.mts +73 -0
- package/dist/services/FeatureFlagConfigurationService.d.mts.map +1 -0
- package/dist/services/FeatureFlagConfigurationService.mjs +253 -0
- package/dist/services/FeatureFlagConfigurationService.mjs.map +1 -0
- package/dist/services/HyperLiquidClientService.cjs +867 -0
- package/dist/services/HyperLiquidClientService.cjs.map +1 -0
- package/dist/services/HyperLiquidClientService.d.cts +214 -0
- package/dist/services/HyperLiquidClientService.d.cts.map +1 -0
- package/dist/services/HyperLiquidClientService.d.mts +214 -0
- package/dist/services/HyperLiquidClientService.d.mts.map +1 -0
- package/dist/services/HyperLiquidClientService.mjs +862 -0
- package/dist/services/HyperLiquidClientService.mjs.map +1 -0
- package/dist/services/HyperLiquidSubscriptionService.cjs +2199 -0
- package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -0
- package/dist/services/HyperLiquidSubscriptionService.d.cts +187 -0
- package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -0
- package/dist/services/HyperLiquidSubscriptionService.d.mts +187 -0
- package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -0
- package/dist/services/HyperLiquidSubscriptionService.mjs +2195 -0
- package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -0
- package/dist/services/HyperLiquidWalletService.cjs +163 -0
- package/dist/services/HyperLiquidWalletService.cjs.map +1 -0
- package/dist/services/HyperLiquidWalletService.d.cts +78 -0
- package/dist/services/HyperLiquidWalletService.d.cts.map +1 -0
- package/dist/services/HyperLiquidWalletService.d.mts +78 -0
- package/dist/services/HyperLiquidWalletService.d.mts.map +1 -0
- package/dist/services/HyperLiquidWalletService.mjs +159 -0
- package/dist/services/HyperLiquidWalletService.mjs.map +1 -0
- package/dist/services/MYXClientService.cjs +304 -0
- package/dist/services/MYXClientService.cjs.map +1 -0
- package/dist/services/MYXClientService.d.cts +81 -0
- package/dist/services/MYXClientService.d.cts.map +1 -0
- package/dist/services/MYXClientService.d.mts +81 -0
- package/dist/services/MYXClientService.d.mts.map +1 -0
- package/dist/services/MYXClientService.mjs +300 -0
- package/dist/services/MYXClientService.mjs.map +1 -0
- package/dist/services/MarketDataService.cjs +848 -0
- package/dist/services/MarketDataService.cjs.map +1 -0
- package/dist/services/MarketDataService.d.cts +291 -0
- package/dist/services/MarketDataService.d.cts.map +1 -0
- package/dist/services/MarketDataService.d.mts +291 -0
- package/dist/services/MarketDataService.d.mts.map +1 -0
- package/dist/services/MarketDataService.mjs +844 -0
- package/dist/services/MarketDataService.mjs.map +1 -0
- package/dist/services/RewardsIntegrationService.cjs +120 -0
- package/dist/services/RewardsIntegrationService.cjs.map +1 -0
- package/dist/services/RewardsIntegrationService.d.cts +28 -0
- package/dist/services/RewardsIntegrationService.d.cts.map +1 -0
- package/dist/services/RewardsIntegrationService.d.mts +28 -0
- package/dist/services/RewardsIntegrationService.d.mts.map +1 -0
- package/dist/services/RewardsIntegrationService.mjs +116 -0
- package/dist/services/RewardsIntegrationService.mjs.map +1 -0
- package/dist/services/ServiceContext.cjs +3 -0
- package/dist/services/ServiceContext.cjs.map +1 -0
- package/dist/services/ServiceContext.d.cts +86 -0
- package/dist/services/ServiceContext.d.cts.map +1 -0
- package/dist/services/ServiceContext.d.mts +86 -0
- package/dist/services/ServiceContext.d.mts.map +1 -0
- package/dist/services/ServiceContext.mjs +2 -0
- package/dist/services/ServiceContext.mjs.map +1 -0
- package/dist/services/TradingReadinessCache.cjs +288 -0
- package/dist/services/TradingReadinessCache.cjs.map +1 -0
- package/dist/services/TradingReadinessCache.d.cts +174 -0
- package/dist/services/TradingReadinessCache.d.cts.map +1 -0
- package/dist/services/TradingReadinessCache.d.mts +174 -0
- package/dist/services/TradingReadinessCache.d.mts.map +1 -0
- package/dist/services/TradingReadinessCache.mjs +285 -0
- package/dist/services/TradingReadinessCache.mjs.map +1 -0
- package/dist/services/TradingService.cjs +1457 -0
- package/dist/services/TradingService.cjs.map +1 -0
- package/dist/services/TradingService.d.cts +195 -0
- package/dist/services/TradingService.d.cts.map +1 -0
- package/dist/services/TradingService.d.mts +195 -0
- package/dist/services/TradingService.d.mts.map +1 -0
- package/dist/services/TradingService.mjs +1453 -0
- package/dist/services/TradingService.mjs.map +1 -0
- package/dist/types/config.cjs +3 -0
- package/dist/types/config.cjs.map +1 -0
- package/dist/types/config.d.cts +49 -0
- package/dist/types/config.d.cts.map +1 -0
- package/dist/types/config.d.mts +49 -0
- package/dist/types/config.d.mts.map +1 -0
- package/dist/types/config.mjs +2 -0
- package/dist/types/config.mjs.map +1 -0
- package/dist/types/hyperliquid-types.cjs +3 -0
- package/dist/types/hyperliquid-types.cjs.map +1 -0
- package/dist/types/hyperliquid-types.d.cts +20 -0
- package/dist/types/hyperliquid-types.d.cts.map +1 -0
- package/dist/types/hyperliquid-types.d.mts +20 -0
- package/dist/types/hyperliquid-types.d.mts.map +1 -0
- package/dist/types/hyperliquid-types.mjs +2 -0
- package/dist/types/hyperliquid-types.mjs.map +1 -0
- package/dist/types/index.cjs +115 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +1262 -0
- package/dist/types/index.d.cts.map +1 -0
- package/dist/types/index.d.mts +1262 -0
- package/dist/types/index.d.mts.map +1 -0
- package/dist/types/index.mjs +97 -0
- package/dist/types/index.mjs.map +1 -0
- package/dist/types/messenger.cjs +3 -0
- package/dist/types/messenger.cjs.map +1 -0
- package/dist/types/messenger.d.cts +27 -0
- package/dist/types/messenger.d.cts.map +1 -0
- package/dist/types/messenger.d.mts +27 -0
- package/dist/types/messenger.d.mts.map +1 -0
- package/dist/types/messenger.mjs +2 -0
- package/dist/types/messenger.mjs.map +1 -0
- package/dist/types/myx-types.cjs +25 -0
- package/dist/types/myx-types.cjs.map +1 -0
- package/dist/types/myx-types.d.cts +63 -0
- package/dist/types/myx-types.d.cts.map +1 -0
- package/dist/types/myx-types.d.mts +63 -0
- package/dist/types/myx-types.d.mts.map +1 -0
- package/dist/types/myx-types.mjs +22 -0
- package/dist/types/myx-types.mjs.map +1 -0
- package/dist/types/perps-types.cjs +4 -0
- package/dist/types/perps-types.cjs.map +1 -0
- package/dist/types/perps-types.d.cts +105 -0
- package/dist/types/perps-types.d.cts.map +1 -0
- package/dist/types/perps-types.d.mts +105 -0
- package/dist/types/perps-types.d.mts.map +1 -0
- package/dist/types/perps-types.mjs +2 -0
- package/dist/types/perps-types.mjs.map +1 -0
- package/dist/types/token.cjs +3 -0
- package/dist/types/token.cjs.map +1 -0
- package/dist/types/token.d.cts +25 -0
- package/dist/types/token.d.cts.map +1 -0
- package/dist/types/token.d.mts +25 -0
- package/dist/types/token.d.mts.map +1 -0
- package/dist/types/token.mjs +2 -0
- package/dist/types/token.mjs.map +1 -0
- package/dist/types/transactionTypes.cjs +28 -0
- package/dist/types/transactionTypes.cjs.map +1 -0
- package/dist/types/transactionTypes.d.cts +64 -0
- package/dist/types/transactionTypes.d.cts.map +1 -0
- package/dist/types/transactionTypes.d.mts +64 -0
- package/dist/types/transactionTypes.d.mts.map +1 -0
- package/dist/types/transactionTypes.mjs +23 -0
- package/dist/types/transactionTypes.mjs.map +1 -0
- package/dist/utils/accountUtils.cjs +100 -0
- package/dist/utils/accountUtils.cjs.map +1 -0
- package/dist/utils/accountUtils.d.cts +30 -0
- package/dist/utils/accountUtils.d.cts.map +1 -0
- package/dist/utils/accountUtils.d.mts +30 -0
- package/dist/utils/accountUtils.d.mts.map +1 -0
- package/dist/utils/accountUtils.mjs +92 -0
- package/dist/utils/accountUtils.mjs.map +1 -0
- package/dist/utils/errorUtils.cjs +35 -0
- package/dist/utils/errorUtils.cjs.map +1 -0
- package/dist/utils/errorUtils.d.cts +15 -0
- package/dist/utils/errorUtils.d.cts.map +1 -0
- package/dist/utils/errorUtils.d.mts +15 -0
- package/dist/utils/errorUtils.d.mts.map +1 -0
- package/dist/utils/errorUtils.mjs +31 -0
- package/dist/utils/errorUtils.mjs.map +1 -0
- package/dist/utils/hyperLiquidAdapter.cjs +331 -0
- package/dist/utils/hyperLiquidAdapter.cjs.map +1 -0
- package/dist/utils/hyperLiquidAdapter.d.cts +42 -0
- package/dist/utils/hyperLiquidAdapter.d.cts.map +1 -0
- package/dist/utils/hyperLiquidAdapter.d.mts +42 -0
- package/dist/utils/hyperLiquidAdapter.d.mts.map +1 -0
- package/dist/utils/hyperLiquidAdapter.mjs +316 -0
- package/dist/utils/hyperLiquidAdapter.mjs.map +1 -0
- package/dist/utils/hyperLiquidOrderBookProcessor.cjs +83 -0
- package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +1 -0
- package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +55 -0
- package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +1 -0
- package/dist/utils/hyperLiquidOrderBookProcessor.d.mts +55 -0
- package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +1 -0
- package/dist/utils/hyperLiquidOrderBookProcessor.mjs +78 -0
- package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +1 -0
- package/dist/utils/hyperLiquidValidation.cjs +426 -0
- package/dist/utils/hyperLiquidValidation.cjs.map +1 -0
- package/dist/utils/hyperLiquidValidation.d.cts +143 -0
- package/dist/utils/hyperLiquidValidation.d.cts.map +1 -0
- package/dist/utils/hyperLiquidValidation.d.mts +143 -0
- package/dist/utils/hyperLiquidValidation.d.mts.map +1 -0
- package/dist/utils/hyperLiquidValidation.mjs +413 -0
- package/dist/utils/hyperLiquidValidation.mjs.map +1 -0
- package/dist/utils/idUtils.cjs +18 -0
- package/dist/utils/idUtils.cjs.map +1 -0
- package/dist/utils/idUtils.d.cts +6 -0
- package/dist/utils/idUtils.d.cts.map +1 -0
- package/dist/utils/idUtils.d.mts +6 -0
- package/dist/utils/idUtils.d.mts.map +1 -0
- package/dist/utils/idUtils.mjs +10 -0
- package/dist/utils/idUtils.mjs.map +1 -0
- package/dist/utils/index.cjs +59 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +25 -0
- package/dist/utils/index.d.cts.map +1 -0
- package/dist/utils/index.d.mts +25 -0
- package/dist/utils/index.d.mts.map +1 -0
- package/dist/utils/index.mjs +30 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/marketDataTransform.cjs +211 -0
- package/dist/utils/marketDataTransform.cjs.map +1 -0
- package/dist/utils/marketDataTransform.d.cts +40 -0
- package/dist/utils/marketDataTransform.d.cts.map +1 -0
- package/dist/utils/marketDataTransform.d.mts +40 -0
- package/dist/utils/marketDataTransform.d.mts.map +1 -0
- package/dist/utils/marketDataTransform.mjs +205 -0
- package/dist/utils/marketDataTransform.mjs.map +1 -0
- package/dist/utils/marketUtils.cjs +151 -0
- package/dist/utils/marketUtils.cjs.map +1 -0
- package/dist/utils/marketUtils.d.cts +30 -0
- package/dist/utils/marketUtils.d.cts.map +1 -0
- package/dist/utils/marketUtils.d.mts +30 -0
- package/dist/utils/marketUtils.d.mts.map +1 -0
- package/dist/utils/marketUtils.mjs +138 -0
- package/dist/utils/marketUtils.mjs.map +1 -0
- package/dist/utils/myxAdapter.cjs +224 -0
- package/dist/utils/myxAdapter.cjs.map +1 -0
- package/dist/utils/myxAdapter.d.cts +81 -0
- package/dist/utils/myxAdapter.d.cts.map +1 -0
- package/dist/utils/myxAdapter.d.mts +81 -0
- package/dist/utils/myxAdapter.d.mts.map +1 -0
- package/dist/utils/myxAdapter.mjs +213 -0
- package/dist/utils/myxAdapter.mjs.map +1 -0
- package/dist/utils/orderCalculations.cjs +283 -0
- package/dist/utils/orderCalculations.cjs.map +1 -0
- package/dist/utils/orderCalculations.d.cts +107 -0
- package/dist/utils/orderCalculations.d.cts.map +1 -0
- package/dist/utils/orderCalculations.d.mts +107 -0
- package/dist/utils/orderCalculations.d.mts.map +1 -0
- package/dist/utils/orderCalculations.mjs +274 -0
- package/dist/utils/orderCalculations.mjs.map +1 -0
- package/dist/utils/rewardsUtils.cjs +98 -0
- package/dist/utils/rewardsUtils.cjs.map +1 -0
- package/dist/utils/rewardsUtils.d.cts +33 -0
- package/dist/utils/rewardsUtils.d.cts.map +1 -0
- package/dist/utils/rewardsUtils.d.mts +33 -0
- package/dist/utils/rewardsUtils.d.mts.map +1 -0
- package/dist/utils/rewardsUtils.mjs +92 -0
- package/dist/utils/rewardsUtils.mjs.map +1 -0
- package/dist/utils/significantFigures.cjs +88 -0
- package/dist/utils/significantFigures.cjs.map +1 -0
- package/dist/utils/significantFigures.d.cts +25 -0
- package/dist/utils/significantFigures.d.cts.map +1 -0
- package/dist/utils/significantFigures.d.mts +25 -0
- package/dist/utils/significantFigures.d.mts.map +1 -0
- package/dist/utils/significantFigures.mjs +82 -0
- package/dist/utils/significantFigures.mjs.map +1 -0
- package/dist/utils/sortMarkets.cjs +93 -0
- package/dist/utils/sortMarkets.cjs.map +1 -0
- package/dist/utils/sortMarkets.d.cts +27 -0
- package/dist/utils/sortMarkets.d.cts.map +1 -0
- package/dist/utils/sortMarkets.d.mts +27 -0
- package/dist/utils/sortMarkets.d.mts.map +1 -0
- package/dist/utils/sortMarkets.mjs +88 -0
- package/dist/utils/sortMarkets.mjs.map +1 -0
- package/dist/utils/standaloneInfoClient.cjs +70 -0
- package/dist/utils/standaloneInfoClient.cjs.map +1 -0
- package/dist/utils/standaloneInfoClient.d.cts +37 -0
- package/dist/utils/standaloneInfoClient.d.cts.map +1 -0
- package/dist/utils/standaloneInfoClient.d.mts +37 -0
- package/dist/utils/standaloneInfoClient.d.mts.map +1 -0
- package/dist/utils/standaloneInfoClient.mjs +64 -0
- package/dist/utils/standaloneInfoClient.mjs.map +1 -0
- package/dist/utils/stringParseUtils.cjs +18 -0
- package/dist/utils/stringParseUtils.cjs.map +1 -0
- package/dist/utils/stringParseUtils.d.cts +3 -0
- package/dist/utils/stringParseUtils.d.cts.map +1 -0
- package/dist/utils/stringParseUtils.d.mts +3 -0
- package/dist/utils/stringParseUtils.d.mts.map +1 -0
- package/dist/utils/stringParseUtils.mjs +13 -0
- package/dist/utils/stringParseUtils.mjs.map +1 -0
- package/dist/utils/transferData.cjs +33 -0
- package/dist/utils/transferData.cjs.map +1 -0
- package/dist/utils/transferData.d.cts +9 -0
- package/dist/utils/transferData.d.cts.map +1 -0
- package/dist/utils/transferData.d.mts +9 -0
- package/dist/utils/transferData.d.mts.map +1 -0
- package/dist/utils/transferData.mjs +29 -0
- package/dist/utils/transferData.mjs.map +1 -0
- package/dist/utils/wait.cjs +6 -0
- package/dist/utils/wait.cjs.map +1 -0
- package/dist/utils/wait.d.cts +2 -0
- package/dist/utils/wait.d.cts.map +1 -0
- package/dist/utils/wait.d.mts +2 -0
- package/dist/utils/wait.d.mts.map +1 -0
- package/dist/utils/wait.mjs +2 -0
- package/dist/utils/wait.mjs.map +1 -0
- package/package.json +16 -2
|
@@ -0,0 +1,1262 @@
|
|
|
1
|
+
import type { CaipAccountId, CaipChainId, CaipAssetId, Hex } from "@metamask/utils";
|
|
2
|
+
import type { CandleData } from "./perps-types.mjs";
|
|
3
|
+
import type { CandlePeriod, TimeDuration } from "../constants/chartConfig.mjs";
|
|
4
|
+
/**
|
|
5
|
+
* Connection states for WebSocket management.
|
|
6
|
+
* Defined inline to avoid importing from Mobile-only services.
|
|
7
|
+
* Must stay in sync with HyperLiquidClientService.WebSocketConnectionState.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum WebSocketConnectionState {
|
|
10
|
+
Disconnected = "disconnected",
|
|
11
|
+
Connecting = "connecting",
|
|
12
|
+
Connected = "connected",
|
|
13
|
+
Disconnecting = "disconnecting"
|
|
14
|
+
}
|
|
15
|
+
/** Provider-agnostic raw ledger update. Fields match the common shape across providers. */
|
|
16
|
+
export type RawLedgerUpdate = {
|
|
17
|
+
hash: string;
|
|
18
|
+
time: number;
|
|
19
|
+
delta: {
|
|
20
|
+
type: string;
|
|
21
|
+
usdc?: string;
|
|
22
|
+
coin?: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export type UserHistoryItem = {
|
|
26
|
+
id: string;
|
|
27
|
+
timestamp: number;
|
|
28
|
+
type: 'deposit' | 'withdrawal';
|
|
29
|
+
amount: string;
|
|
30
|
+
asset: string;
|
|
31
|
+
txHash: string;
|
|
32
|
+
status: 'completed' | 'failed' | 'pending';
|
|
33
|
+
details: {
|
|
34
|
+
source: string;
|
|
35
|
+
bridgeContract?: string;
|
|
36
|
+
recipient?: string;
|
|
37
|
+
blockNumber?: string;
|
|
38
|
+
chainId?: string;
|
|
39
|
+
synthetic?: boolean;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export type GetUserHistoryParams = {
|
|
43
|
+
startTime?: number;
|
|
44
|
+
endTime?: number;
|
|
45
|
+
accountId?: CaipAccountId;
|
|
46
|
+
};
|
|
47
|
+
export type TradeConfiguration = {
|
|
48
|
+
leverage?: number;
|
|
49
|
+
pendingConfig?: {
|
|
50
|
+
amount?: string;
|
|
51
|
+
leverage?: number;
|
|
52
|
+
takeProfitPrice?: string;
|
|
53
|
+
stopLossPrice?: string;
|
|
54
|
+
limitPrice?: string;
|
|
55
|
+
orderType?: OrderType;
|
|
56
|
+
timestamp: number;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export type OrderType = 'market' | 'limit';
|
|
60
|
+
export type MarketType = 'crypto' | 'equity' | 'commodity' | 'forex';
|
|
61
|
+
export type MarketTypeFilter = 'all' | 'crypto' | 'stocks' | 'commodities' | 'forex' | 'new';
|
|
62
|
+
export type InputMethod = 'default' | 'slider' | 'keypad' | 'percentage' | 'max';
|
|
63
|
+
export type TradeAction = 'create_position' | 'increase_exposure';
|
|
64
|
+
export type TrackingData = {
|
|
65
|
+
totalFee: number;
|
|
66
|
+
marketPrice: number;
|
|
67
|
+
metamaskFee?: number;
|
|
68
|
+
metamaskFeeRate?: number;
|
|
69
|
+
feeDiscountPercentage?: number;
|
|
70
|
+
estimatedPoints?: number;
|
|
71
|
+
marginUsed?: number;
|
|
72
|
+
inputMethod?: InputMethod;
|
|
73
|
+
tradeAction?: TradeAction;
|
|
74
|
+
receivedAmount?: number;
|
|
75
|
+
realizedPnl?: number;
|
|
76
|
+
source?: string;
|
|
77
|
+
tradeWithToken?: boolean;
|
|
78
|
+
mmPayTokenSelected?: string;
|
|
79
|
+
mmPayNetworkSelected?: string;
|
|
80
|
+
abTests?: Record<string, string>;
|
|
81
|
+
};
|
|
82
|
+
export type TPSLTrackingData = {
|
|
83
|
+
direction: 'long' | 'short';
|
|
84
|
+
source: string;
|
|
85
|
+
positionSize: number;
|
|
86
|
+
takeProfitPercentage?: number;
|
|
87
|
+
stopLossPercentage?: number;
|
|
88
|
+
isEditingExistingPosition?: boolean;
|
|
89
|
+
entryPrice?: number;
|
|
90
|
+
};
|
|
91
|
+
export type OrderParams = {
|
|
92
|
+
symbol: string;
|
|
93
|
+
isBuy: boolean;
|
|
94
|
+
size: string;
|
|
95
|
+
orderType: OrderType;
|
|
96
|
+
price?: string;
|
|
97
|
+
reduceOnly?: boolean;
|
|
98
|
+
isFullClose?: boolean;
|
|
99
|
+
timeInForce?: 'GTC' | 'IOC' | 'ALO';
|
|
100
|
+
usdAmount?: string;
|
|
101
|
+
priceAtCalculation?: number;
|
|
102
|
+
maxSlippageBps?: number;
|
|
103
|
+
takeProfitPrice?: string;
|
|
104
|
+
stopLossPrice?: string;
|
|
105
|
+
clientOrderId?: string;
|
|
106
|
+
slippage?: number;
|
|
107
|
+
grouping?: 'na' | 'normalTpsl' | 'positionTpsl';
|
|
108
|
+
currentPrice?: number;
|
|
109
|
+
leverage?: number;
|
|
110
|
+
existingPositionLeverage?: number;
|
|
111
|
+
trackingData?: TrackingData;
|
|
112
|
+
providerId?: PerpsProviderType;
|
|
113
|
+
};
|
|
114
|
+
export type OrderResult = {
|
|
115
|
+
success?: boolean;
|
|
116
|
+
orderId?: string;
|
|
117
|
+
error?: string;
|
|
118
|
+
filledSize?: string;
|
|
119
|
+
averagePrice?: string;
|
|
120
|
+
providerId?: PerpsProviderType;
|
|
121
|
+
};
|
|
122
|
+
export type Position = {
|
|
123
|
+
symbol: string;
|
|
124
|
+
size: string;
|
|
125
|
+
entryPrice: string;
|
|
126
|
+
positionValue: string;
|
|
127
|
+
unrealizedPnl: string;
|
|
128
|
+
marginUsed: string;
|
|
129
|
+
leverage: {
|
|
130
|
+
type: 'isolated' | 'cross';
|
|
131
|
+
value: number;
|
|
132
|
+
rawUsd?: string;
|
|
133
|
+
};
|
|
134
|
+
liquidationPrice: string | null;
|
|
135
|
+
maxLeverage: number;
|
|
136
|
+
returnOnEquity: string;
|
|
137
|
+
cumulativeFunding: {
|
|
138
|
+
allTime: string;
|
|
139
|
+
sinceOpen: string;
|
|
140
|
+
sinceChange: string;
|
|
141
|
+
};
|
|
142
|
+
takeProfitPrice?: string;
|
|
143
|
+
stopLossPrice?: string;
|
|
144
|
+
takeProfitCount: number;
|
|
145
|
+
stopLossCount: number;
|
|
146
|
+
providerId?: PerpsProviderType;
|
|
147
|
+
};
|
|
148
|
+
export type AccountState = {
|
|
149
|
+
availableBalance: string;
|
|
150
|
+
totalBalance: string;
|
|
151
|
+
marginUsed: string;
|
|
152
|
+
unrealizedPnl: string;
|
|
153
|
+
returnOnEquity: string;
|
|
154
|
+
/**
|
|
155
|
+
* Per-sub-account balance breakdown (protocol-specific, optional)
|
|
156
|
+
* Maps sub-account identifier to its balance details.
|
|
157
|
+
*
|
|
158
|
+
* Protocol examples:
|
|
159
|
+
* - HyperLiquid HIP-3: '' or 'main' (main DEX), 'xyz' (HIP-3 builder DEX)
|
|
160
|
+
* - dYdX: Sub-account numbers (e.g., '0', '1', '2')
|
|
161
|
+
* - Other protocols: Vault IDs, pool IDs, margin account IDs, etc.
|
|
162
|
+
*
|
|
163
|
+
* Key: Sub-account identifier (protocol-specific string)
|
|
164
|
+
* Value: Balance details for that sub-account
|
|
165
|
+
*/
|
|
166
|
+
subAccountBreakdown?: Record<string, {
|
|
167
|
+
availableBalance: string;
|
|
168
|
+
totalBalance: string;
|
|
169
|
+
}>;
|
|
170
|
+
providerId?: PerpsProviderType;
|
|
171
|
+
};
|
|
172
|
+
export type ClosePositionParams = {
|
|
173
|
+
symbol: string;
|
|
174
|
+
size?: string;
|
|
175
|
+
orderType?: OrderType;
|
|
176
|
+
price?: string;
|
|
177
|
+
currentPrice?: number;
|
|
178
|
+
usdAmount?: string;
|
|
179
|
+
priceAtCalculation?: number;
|
|
180
|
+
maxSlippageBps?: number;
|
|
181
|
+
trackingData?: TrackingData;
|
|
182
|
+
providerId?: PerpsProviderType;
|
|
183
|
+
/**
|
|
184
|
+
* Optional live position data from WebSocket.
|
|
185
|
+
* If provided, skips the REST API position fetch (avoids rate limiting issues).
|
|
186
|
+
* If not provided, falls back to fetching positions via REST API cache.
|
|
187
|
+
*/
|
|
188
|
+
position?: Position;
|
|
189
|
+
};
|
|
190
|
+
export type ClosePositionsParams = {
|
|
191
|
+
symbols?: string[];
|
|
192
|
+
closeAll?: boolean;
|
|
193
|
+
};
|
|
194
|
+
export type ClosePositionsResult = {
|
|
195
|
+
success: boolean;
|
|
196
|
+
successCount: number;
|
|
197
|
+
failureCount: number;
|
|
198
|
+
results: {
|
|
199
|
+
symbol: string;
|
|
200
|
+
success: boolean;
|
|
201
|
+
error?: string;
|
|
202
|
+
}[];
|
|
203
|
+
};
|
|
204
|
+
export type UpdateMarginParams = {
|
|
205
|
+
symbol: string;
|
|
206
|
+
amount: string;
|
|
207
|
+
providerId?: PerpsProviderType;
|
|
208
|
+
};
|
|
209
|
+
export type MarginResult = {
|
|
210
|
+
success: boolean;
|
|
211
|
+
error?: string;
|
|
212
|
+
};
|
|
213
|
+
export type FlipPositionParams = {
|
|
214
|
+
symbol: string;
|
|
215
|
+
position: Position;
|
|
216
|
+
};
|
|
217
|
+
export type InitializeResult = {
|
|
218
|
+
success: boolean;
|
|
219
|
+
error?: string;
|
|
220
|
+
chainId?: string;
|
|
221
|
+
};
|
|
222
|
+
export type ReadyToTradeResult = {
|
|
223
|
+
ready: boolean;
|
|
224
|
+
error?: string;
|
|
225
|
+
walletConnected?: boolean;
|
|
226
|
+
networkSupported?: boolean;
|
|
227
|
+
};
|
|
228
|
+
export type DisconnectResult = {
|
|
229
|
+
success: boolean;
|
|
230
|
+
error?: string;
|
|
231
|
+
};
|
|
232
|
+
export type MarketInfo = {
|
|
233
|
+
name: string;
|
|
234
|
+
szDecimals: number;
|
|
235
|
+
maxLeverage: number;
|
|
236
|
+
marginTableId: number;
|
|
237
|
+
onlyIsolated?: true;
|
|
238
|
+
isDelisted?: true;
|
|
239
|
+
minimumOrderSize?: number;
|
|
240
|
+
providerId?: PerpsProviderType;
|
|
241
|
+
};
|
|
242
|
+
/**
|
|
243
|
+
* Market data with prices for UI display
|
|
244
|
+
* Protocol-agnostic interface for market information with formatted values
|
|
245
|
+
*/
|
|
246
|
+
export type PerpsMarketData = {
|
|
247
|
+
/**
|
|
248
|
+
* Token symbol (e.g., 'BTC', 'ETH')
|
|
249
|
+
*/
|
|
250
|
+
symbol: string;
|
|
251
|
+
/**
|
|
252
|
+
* Full token name (e.g., 'Bitcoin', 'Ethereum')
|
|
253
|
+
*/
|
|
254
|
+
name: string;
|
|
255
|
+
/**
|
|
256
|
+
* Maximum leverage available as formatted string (e.g., '40x', '25x')
|
|
257
|
+
*/
|
|
258
|
+
maxLeverage: string;
|
|
259
|
+
/**
|
|
260
|
+
* Current price as formatted string (e.g., '$50,000.00')
|
|
261
|
+
*/
|
|
262
|
+
price: string;
|
|
263
|
+
/**
|
|
264
|
+
* 24h price change as formatted string (e.g., '+$1,250.00', '-$850.50')
|
|
265
|
+
*/
|
|
266
|
+
change24h: string;
|
|
267
|
+
/**
|
|
268
|
+
* 24h price change percentage as formatted string (e.g., '+2.5%', '-1.8%')
|
|
269
|
+
*/
|
|
270
|
+
change24hPercent: string;
|
|
271
|
+
/**
|
|
272
|
+
* Trading volume as formatted string (e.g., '$1.2B', '$850M')
|
|
273
|
+
*/
|
|
274
|
+
volume: string;
|
|
275
|
+
/**
|
|
276
|
+
* Open interest as formatted string (e.g., '$24.5M', '$1.2B')
|
|
277
|
+
*/
|
|
278
|
+
openInterest?: string;
|
|
279
|
+
/**
|
|
280
|
+
* Next funding time in milliseconds since epoch (optional, market-specific)
|
|
281
|
+
*/
|
|
282
|
+
nextFundingTime?: number;
|
|
283
|
+
/**
|
|
284
|
+
* Funding interval in hours (optional, market-specific)
|
|
285
|
+
*/
|
|
286
|
+
fundingIntervalHours?: number;
|
|
287
|
+
/**
|
|
288
|
+
* Current funding rate as decimal (optional, from predictedFundings API)
|
|
289
|
+
*/
|
|
290
|
+
fundingRate?: number;
|
|
291
|
+
/**
|
|
292
|
+
* Market source DEX identifier (HIP-3 support)
|
|
293
|
+
* - null or undefined: Main validator DEX
|
|
294
|
+
* - "xyz", "abc", etc: HIP-3 builder-deployed DEX
|
|
295
|
+
*/
|
|
296
|
+
marketSource?: string | null;
|
|
297
|
+
/**
|
|
298
|
+
* Market asset type classification (optional)
|
|
299
|
+
* - crypto: Cryptocurrency (default for most markets)
|
|
300
|
+
* - equity: Stock/equity markets (HIP-3)
|
|
301
|
+
* - commodity: Commodity markets (HIP-3)
|
|
302
|
+
* - forex: Foreign exchange pairs (HIP-3)
|
|
303
|
+
*/
|
|
304
|
+
marketType?: MarketType;
|
|
305
|
+
/**
|
|
306
|
+
* Whether this is a HIP-3 market (has DEX prefix like xyz:, flx:)
|
|
307
|
+
* Used to distinguish between crypto (isHip3=false) and non-crypto markets
|
|
308
|
+
*/
|
|
309
|
+
isHip3?: boolean;
|
|
310
|
+
/**
|
|
311
|
+
* Whether this is a new/uncategorized market (HIP-3 markets not yet in explicit mapping)
|
|
312
|
+
* Used for the "New" filter tab
|
|
313
|
+
*/
|
|
314
|
+
isNewMarket?: boolean;
|
|
315
|
+
/**
|
|
316
|
+
* Multi-provider: which provider this market data comes from (injected by aggregator)
|
|
317
|
+
*/
|
|
318
|
+
providerId?: PerpsProviderType;
|
|
319
|
+
};
|
|
320
|
+
export type ToggleTestnetResult = {
|
|
321
|
+
success: boolean;
|
|
322
|
+
isTestnet: boolean;
|
|
323
|
+
error?: string;
|
|
324
|
+
};
|
|
325
|
+
export type AssetRoute = {
|
|
326
|
+
assetId: CaipAssetId;
|
|
327
|
+
chainId: CaipChainId;
|
|
328
|
+
contractAddress: Hex;
|
|
329
|
+
constraints?: {
|
|
330
|
+
minAmount?: string;
|
|
331
|
+
maxAmount?: string;
|
|
332
|
+
estimatedTime?: string;
|
|
333
|
+
estimatedMinutes?: number;
|
|
334
|
+
fees?: {
|
|
335
|
+
fixed?: number;
|
|
336
|
+
percentage?: number;
|
|
337
|
+
token?: string;
|
|
338
|
+
};
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
export type SwitchProviderResult = {
|
|
342
|
+
success: boolean;
|
|
343
|
+
providerId: PerpsActiveProviderMode;
|
|
344
|
+
error?: string;
|
|
345
|
+
};
|
|
346
|
+
export type CancelOrderParams = {
|
|
347
|
+
orderId: string;
|
|
348
|
+
symbol: string;
|
|
349
|
+
providerId?: PerpsProviderType;
|
|
350
|
+
};
|
|
351
|
+
export type CancelOrderResult = {
|
|
352
|
+
success: boolean;
|
|
353
|
+
orderId?: string;
|
|
354
|
+
error?: string;
|
|
355
|
+
providerId?: PerpsProviderType;
|
|
356
|
+
};
|
|
357
|
+
export type BatchCancelOrdersParams = {
|
|
358
|
+
orderId: string;
|
|
359
|
+
symbol: string;
|
|
360
|
+
}[];
|
|
361
|
+
export type CancelOrdersParams = {
|
|
362
|
+
symbols?: string[];
|
|
363
|
+
orderIds?: string[];
|
|
364
|
+
cancelAll?: boolean;
|
|
365
|
+
};
|
|
366
|
+
export type CancelOrdersResult = {
|
|
367
|
+
success: boolean;
|
|
368
|
+
successCount: number;
|
|
369
|
+
failureCount: number;
|
|
370
|
+
results: {
|
|
371
|
+
orderId: string;
|
|
372
|
+
symbol: string;
|
|
373
|
+
success: boolean;
|
|
374
|
+
error?: string;
|
|
375
|
+
}[];
|
|
376
|
+
};
|
|
377
|
+
export type EditOrderParams = {
|
|
378
|
+
orderId: string | number;
|
|
379
|
+
newOrder: OrderParams;
|
|
380
|
+
};
|
|
381
|
+
export type DepositParams = {
|
|
382
|
+
amount: string;
|
|
383
|
+
assetId: CaipAssetId;
|
|
384
|
+
fromChainId?: CaipChainId;
|
|
385
|
+
toChainId?: CaipChainId;
|
|
386
|
+
recipient?: Hex;
|
|
387
|
+
};
|
|
388
|
+
/** Params for depositWithConfirmation: prepares transaction for confirmation screen */
|
|
389
|
+
export type DepositWithConfirmationParams = {
|
|
390
|
+
/** Optional deposit amount (display/tracking; actual amount comes from prepared transaction) */
|
|
391
|
+
amount?: string;
|
|
392
|
+
/** If true, uses addTransaction instead of submit to avoid navigation (e.g. deposit + place order flow) */
|
|
393
|
+
placeOrder?: boolean;
|
|
394
|
+
};
|
|
395
|
+
export type DepositResult = {
|
|
396
|
+
success: boolean;
|
|
397
|
+
txHash?: string;
|
|
398
|
+
error?: string;
|
|
399
|
+
};
|
|
400
|
+
export type DepositStatus = 'idle' | 'preparing' | 'swapping' | 'bridging' | 'depositing' | 'success' | 'error';
|
|
401
|
+
export type DepositFlowType = 'direct' | 'swap' | 'bridge' | 'swap_bridge';
|
|
402
|
+
export type DepositStepInfo = {
|
|
403
|
+
totalSteps: number;
|
|
404
|
+
currentStep: number;
|
|
405
|
+
stepNames: string[];
|
|
406
|
+
stepTxHashes?: string[];
|
|
407
|
+
};
|
|
408
|
+
export type WithdrawParams = {
|
|
409
|
+
amount: string;
|
|
410
|
+
destination?: Hex;
|
|
411
|
+
assetId?: CaipAssetId;
|
|
412
|
+
providerId?: PerpsProviderType;
|
|
413
|
+
};
|
|
414
|
+
export type WithdrawResult = {
|
|
415
|
+
success: boolean;
|
|
416
|
+
txHash?: string;
|
|
417
|
+
error?: string;
|
|
418
|
+
withdrawalId?: string;
|
|
419
|
+
estimatedArrivalTime?: number;
|
|
420
|
+
};
|
|
421
|
+
export type TransferBetweenDexsParams = {
|
|
422
|
+
sourceDex: string;
|
|
423
|
+
destinationDex: string;
|
|
424
|
+
amount: string;
|
|
425
|
+
};
|
|
426
|
+
export type TransferBetweenDexsResult = {
|
|
427
|
+
success: boolean;
|
|
428
|
+
txHash?: string;
|
|
429
|
+
error?: string;
|
|
430
|
+
};
|
|
431
|
+
export type GetHistoricalPortfolioParams = {
|
|
432
|
+
accountId?: CaipAccountId;
|
|
433
|
+
};
|
|
434
|
+
export type HistoricalPortfolioResult = {
|
|
435
|
+
accountValue1dAgo: string;
|
|
436
|
+
timestamp: number;
|
|
437
|
+
};
|
|
438
|
+
export type LiveDataConfig = {
|
|
439
|
+
priceThrottleMs?: number;
|
|
440
|
+
positionThrottleMs?: number;
|
|
441
|
+
maxUpdatesPerSecond?: number;
|
|
442
|
+
};
|
|
443
|
+
export type PerpsControllerConfig = {
|
|
444
|
+
/**
|
|
445
|
+
* Fallback blocked regions to use when RemoteFeatureFlagController fails to fetch.
|
|
446
|
+
* The fallback is set by default if defined and replaced with remote block list once available.
|
|
447
|
+
*/
|
|
448
|
+
fallbackBlockedRegions?: string[];
|
|
449
|
+
/**
|
|
450
|
+
* Fallback HIP-3 equity perps master switch to use when RemoteFeatureFlagController fails to fetch.
|
|
451
|
+
* Controls whether HIP-3 (builder-deployed) DEXs are enabled.
|
|
452
|
+
* The fallback is set by default if defined and replaced with remote feature flag once available.
|
|
453
|
+
*/
|
|
454
|
+
fallbackHip3Enabled?: boolean;
|
|
455
|
+
/**
|
|
456
|
+
* Fallback HIP-3 market allowlist to use when RemoteFeatureFlagController fails to fetch.
|
|
457
|
+
* Empty array = enable all markets (discovery mode), non-empty = allowlist specific markets.
|
|
458
|
+
* Supports wildcards: "xyz:*" (all xyz markets), "xyz" (shorthand for "xyz:*"), "BTC" (main DEX market).
|
|
459
|
+
* Only applies when HIP-3 is enabled.
|
|
460
|
+
* The fallback is set by default if defined and replaced with remote feature flag once available.
|
|
461
|
+
*/
|
|
462
|
+
fallbackHip3AllowlistMarkets?: string[];
|
|
463
|
+
/**
|
|
464
|
+
* Fallback HIP-3 market blocklist to use when RemoteFeatureFlagController fails to fetch.
|
|
465
|
+
* Empty array = no blocking, non-empty = block specific markets.
|
|
466
|
+
* Supports wildcards: "xyz:*" (block all xyz markets), "xyz" (shorthand for "xyz:*"), "BTC" (block main DEX market).
|
|
467
|
+
* Always applied regardless of HIP-3 enabled state.
|
|
468
|
+
* The fallback is set by default if defined and replaced with remote feature flag once available.
|
|
469
|
+
*/
|
|
470
|
+
fallbackHip3BlocklistMarkets?: string[];
|
|
471
|
+
};
|
|
472
|
+
export type PriceUpdate = {
|
|
473
|
+
symbol: string;
|
|
474
|
+
price: string;
|
|
475
|
+
timestamp: number;
|
|
476
|
+
percentChange24h?: string;
|
|
477
|
+
bestBid?: string;
|
|
478
|
+
bestAsk?: string;
|
|
479
|
+
spread?: string;
|
|
480
|
+
markPrice?: string;
|
|
481
|
+
funding?: number;
|
|
482
|
+
openInterest?: number;
|
|
483
|
+
volume24h?: number;
|
|
484
|
+
providerId?: PerpsProviderType;
|
|
485
|
+
};
|
|
486
|
+
export type OrderFill = {
|
|
487
|
+
orderId: string;
|
|
488
|
+
symbol: string;
|
|
489
|
+
side: string;
|
|
490
|
+
size: string;
|
|
491
|
+
price: string;
|
|
492
|
+
pnl: string;
|
|
493
|
+
direction: string;
|
|
494
|
+
fee: string;
|
|
495
|
+
feeToken: string;
|
|
496
|
+
timestamp: number;
|
|
497
|
+
startPosition?: string;
|
|
498
|
+
success?: boolean;
|
|
499
|
+
liquidation?: {
|
|
500
|
+
liquidatedUser: string;
|
|
501
|
+
markPx: string;
|
|
502
|
+
method: string;
|
|
503
|
+
};
|
|
504
|
+
orderType?: 'take_profit' | 'stop_loss' | 'liquidation' | 'regular';
|
|
505
|
+
detailedOrderType?: string;
|
|
506
|
+
providerId?: PerpsProviderType;
|
|
507
|
+
};
|
|
508
|
+
export type CheckEligibilityParams = {
|
|
509
|
+
blockedRegions: string[];
|
|
510
|
+
};
|
|
511
|
+
export type GetPositionsParams = {
|
|
512
|
+
accountId?: CaipAccountId;
|
|
513
|
+
includeHistory?: boolean;
|
|
514
|
+
skipCache?: boolean;
|
|
515
|
+
standalone?: boolean;
|
|
516
|
+
userAddress?: string;
|
|
517
|
+
};
|
|
518
|
+
export type GetAccountStateParams = {
|
|
519
|
+
accountId?: CaipAccountId;
|
|
520
|
+
source?: string;
|
|
521
|
+
standalone?: boolean;
|
|
522
|
+
userAddress?: string;
|
|
523
|
+
};
|
|
524
|
+
export type GetOrderFillsParams = {
|
|
525
|
+
accountId?: CaipAccountId;
|
|
526
|
+
user?: Hex;
|
|
527
|
+
startTime?: number;
|
|
528
|
+
endTime?: number;
|
|
529
|
+
limit?: number;
|
|
530
|
+
aggregateByTime?: boolean;
|
|
531
|
+
};
|
|
532
|
+
/**
|
|
533
|
+
* Parameters for getOrFetchFills - optimized cache-first fill retrieval.
|
|
534
|
+
* Subset of GetOrderFillsParams for cache filtering.
|
|
535
|
+
*/
|
|
536
|
+
export type GetOrFetchFillsParams = {
|
|
537
|
+
startTime?: number;
|
|
538
|
+
symbol?: string;
|
|
539
|
+
};
|
|
540
|
+
export type GetOrdersParams = {
|
|
541
|
+
accountId?: CaipAccountId;
|
|
542
|
+
startTime?: number;
|
|
543
|
+
endTime?: number;
|
|
544
|
+
limit?: number;
|
|
545
|
+
offset?: number;
|
|
546
|
+
skipCache?: boolean;
|
|
547
|
+
standalone?: boolean;
|
|
548
|
+
userAddress?: string;
|
|
549
|
+
};
|
|
550
|
+
export type GetFundingParams = {
|
|
551
|
+
accountId?: CaipAccountId;
|
|
552
|
+
startTime?: number;
|
|
553
|
+
endTime?: number;
|
|
554
|
+
limit?: number;
|
|
555
|
+
offset?: number;
|
|
556
|
+
};
|
|
557
|
+
export type GetSupportedPathsParams = {
|
|
558
|
+
isTestnet?: boolean;
|
|
559
|
+
assetId?: CaipAssetId;
|
|
560
|
+
symbol?: string;
|
|
561
|
+
chainId?: CaipChainId;
|
|
562
|
+
};
|
|
563
|
+
/** Placeholder for future filter/pagination params (e.g., validated, chain). Empty today so the API signature is stable. */
|
|
564
|
+
export type GetAvailableDexsParams = Record<string, never>;
|
|
565
|
+
export type GetMarketsParams = {
|
|
566
|
+
symbols?: string[];
|
|
567
|
+
dex?: string;
|
|
568
|
+
skipFilters?: boolean;
|
|
569
|
+
standalone?: boolean;
|
|
570
|
+
};
|
|
571
|
+
export type SubscribePricesParams = {
|
|
572
|
+
symbols: string[];
|
|
573
|
+
callback: (prices: PriceUpdate[]) => void;
|
|
574
|
+
throttleMs?: number;
|
|
575
|
+
includeOrderBook?: boolean;
|
|
576
|
+
includeMarketData?: boolean;
|
|
577
|
+
};
|
|
578
|
+
export type SubscribePositionsParams = {
|
|
579
|
+
callback: (positions: Position[]) => void;
|
|
580
|
+
accountId?: CaipAccountId;
|
|
581
|
+
includeHistory?: boolean;
|
|
582
|
+
};
|
|
583
|
+
export type SubscribeOrderFillsParams = {
|
|
584
|
+
callback: (fills: OrderFill[], isSnapshot?: boolean) => void;
|
|
585
|
+
accountId?: CaipAccountId;
|
|
586
|
+
since?: number;
|
|
587
|
+
};
|
|
588
|
+
export type SubscribeOrdersParams = {
|
|
589
|
+
callback: (orders: Order[]) => void;
|
|
590
|
+
accountId?: CaipAccountId;
|
|
591
|
+
includeHistory?: boolean;
|
|
592
|
+
};
|
|
593
|
+
export type SubscribeAccountParams = {
|
|
594
|
+
callback: (account: AccountState | null) => void;
|
|
595
|
+
accountId?: CaipAccountId;
|
|
596
|
+
};
|
|
597
|
+
export type SubscribeOICapsParams = {
|
|
598
|
+
callback: (caps: string[]) => void;
|
|
599
|
+
accountId?: CaipAccountId;
|
|
600
|
+
};
|
|
601
|
+
export type SubscribeCandlesParams = {
|
|
602
|
+
symbol: string;
|
|
603
|
+
interval: CandlePeriod;
|
|
604
|
+
duration?: TimeDuration;
|
|
605
|
+
callback: (data: CandleData) => void;
|
|
606
|
+
onError?: (error: Error) => void;
|
|
607
|
+
};
|
|
608
|
+
/**
|
|
609
|
+
* Single price level in the order book
|
|
610
|
+
*/
|
|
611
|
+
export type OrderBookLevel = {
|
|
612
|
+
/** Price at this level */
|
|
613
|
+
price: string;
|
|
614
|
+
/** Size at this level (in base asset) */
|
|
615
|
+
size: string;
|
|
616
|
+
/** Cumulative size up to and including this level */
|
|
617
|
+
total: string;
|
|
618
|
+
/** Notional value in USD */
|
|
619
|
+
notional: string;
|
|
620
|
+
/** Cumulative notional up to and including this level */
|
|
621
|
+
totalNotional: string;
|
|
622
|
+
};
|
|
623
|
+
/**
|
|
624
|
+
* Full order book data with multiple price levels
|
|
625
|
+
*/
|
|
626
|
+
export type OrderBookData = {
|
|
627
|
+
/** Bid levels (buy orders) - highest price first */
|
|
628
|
+
bids: OrderBookLevel[];
|
|
629
|
+
/** Ask levels (sell orders) - lowest price first */
|
|
630
|
+
asks: OrderBookLevel[];
|
|
631
|
+
/** Spread between best bid and best ask */
|
|
632
|
+
spread: string;
|
|
633
|
+
/** Spread as a percentage of mid price */
|
|
634
|
+
spreadPercentage: string;
|
|
635
|
+
/** Mid price (average of best bid and best ask) */
|
|
636
|
+
midPrice: string;
|
|
637
|
+
/** Timestamp of last update */
|
|
638
|
+
lastUpdated: number;
|
|
639
|
+
/** Maximum total size across all levels (for scaling depth bars) */
|
|
640
|
+
maxTotal: string;
|
|
641
|
+
};
|
|
642
|
+
export type SubscribeOrderBookParams = {
|
|
643
|
+
/** Symbol to subscribe to (e.g., 'BTC', 'ETH') */
|
|
644
|
+
symbol: string;
|
|
645
|
+
/** Number of levels to return per side (default: 10) */
|
|
646
|
+
levels?: number;
|
|
647
|
+
/** Price aggregation significant figures (2-5, default: 5). Higher = finer granularity */
|
|
648
|
+
nSigFigs?: 2 | 3 | 4 | 5;
|
|
649
|
+
/** Mantissa for aggregation when nSigFigs is 5 (2 or 5). Controls finest price increments */
|
|
650
|
+
mantissa?: 2 | 5;
|
|
651
|
+
/** Callback function receiving order book updates */
|
|
652
|
+
callback: (orderBook: OrderBookData) => void;
|
|
653
|
+
/** Callback for errors */
|
|
654
|
+
onError?: (error: Error) => void;
|
|
655
|
+
};
|
|
656
|
+
export type LiquidationPriceParams = {
|
|
657
|
+
entryPrice: number;
|
|
658
|
+
leverage: number;
|
|
659
|
+
direction: 'long' | 'short';
|
|
660
|
+
positionSize?: number;
|
|
661
|
+
marginType?: 'isolated' | 'cross';
|
|
662
|
+
asset?: string;
|
|
663
|
+
};
|
|
664
|
+
export type MaintenanceMarginParams = {
|
|
665
|
+
asset: string;
|
|
666
|
+
positionSize?: number;
|
|
667
|
+
};
|
|
668
|
+
export type FeeCalculationParams = {
|
|
669
|
+
orderType: 'market' | 'limit';
|
|
670
|
+
isMaker?: boolean;
|
|
671
|
+
amount?: string;
|
|
672
|
+
symbol: string;
|
|
673
|
+
};
|
|
674
|
+
export type FeeCalculationResult = {
|
|
675
|
+
feeRate?: number;
|
|
676
|
+
feeAmount?: number;
|
|
677
|
+
protocolFeeRate?: number;
|
|
678
|
+
protocolFeeAmount?: number;
|
|
679
|
+
metamaskFeeRate?: number;
|
|
680
|
+
metamaskFeeAmount?: number;
|
|
681
|
+
breakdown?: {
|
|
682
|
+
baseFeeRate: number;
|
|
683
|
+
volumeTier?: string;
|
|
684
|
+
volumeDiscount?: number;
|
|
685
|
+
stakingDiscount?: number;
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
export type UpdatePositionTPSLParams = {
|
|
689
|
+
symbol: string;
|
|
690
|
+
takeProfitPrice?: string;
|
|
691
|
+
stopLossPrice?: string;
|
|
692
|
+
trackingData?: TPSLTrackingData;
|
|
693
|
+
providerId?: PerpsProviderType;
|
|
694
|
+
/**
|
|
695
|
+
* Optional live position data from WebSocket.
|
|
696
|
+
* If provided, skips the REST API position fetch (avoids rate limiting issues).
|
|
697
|
+
* If not provided, falls back to fetching positions via REST API.
|
|
698
|
+
*/
|
|
699
|
+
position?: Position;
|
|
700
|
+
};
|
|
701
|
+
export type Order = {
|
|
702
|
+
orderId: string;
|
|
703
|
+
symbol: string;
|
|
704
|
+
side: 'buy' | 'sell';
|
|
705
|
+
orderType: OrderType;
|
|
706
|
+
size: string;
|
|
707
|
+
originalSize: string;
|
|
708
|
+
price: string;
|
|
709
|
+
filledSize: string;
|
|
710
|
+
remainingSize: string;
|
|
711
|
+
status: 'open' | 'filled' | 'canceled' | 'rejected' | 'triggered' | 'queued';
|
|
712
|
+
timestamp: number;
|
|
713
|
+
lastUpdated?: number;
|
|
714
|
+
takeProfitPrice?: string;
|
|
715
|
+
stopLossPrice?: string;
|
|
716
|
+
stopLossOrderId?: string;
|
|
717
|
+
takeProfitOrderId?: string;
|
|
718
|
+
detailedOrderType?: string;
|
|
719
|
+
isTrigger?: boolean;
|
|
720
|
+
reduceOnly?: boolean;
|
|
721
|
+
isPositionTpsl?: boolean;
|
|
722
|
+
parentOrderId?: string;
|
|
723
|
+
isSynthetic?: boolean;
|
|
724
|
+
triggerPrice?: string;
|
|
725
|
+
providerId?: PerpsProviderType;
|
|
726
|
+
};
|
|
727
|
+
export type Funding = {
|
|
728
|
+
symbol: string;
|
|
729
|
+
amountUsd: string;
|
|
730
|
+
rate: string;
|
|
731
|
+
timestamp: number;
|
|
732
|
+
transactionHash?: string;
|
|
733
|
+
};
|
|
734
|
+
export type PerpsProvider = {
|
|
735
|
+
readonly protocolId: string;
|
|
736
|
+
getDepositRoutes(params?: GetSupportedPathsParams): AssetRoute[];
|
|
737
|
+
getWithdrawalRoutes(params?: GetSupportedPathsParams): AssetRoute[];
|
|
738
|
+
placeOrder(params: OrderParams): Promise<OrderResult>;
|
|
739
|
+
editOrder(params: EditOrderParams): Promise<OrderResult>;
|
|
740
|
+
cancelOrder(params: CancelOrderParams): Promise<CancelOrderResult>;
|
|
741
|
+
cancelOrders?(params: BatchCancelOrdersParams): Promise<CancelOrdersResult>;
|
|
742
|
+
closePosition(params: ClosePositionParams): Promise<OrderResult>;
|
|
743
|
+
closePositions?(params: ClosePositionsParams): Promise<ClosePositionsResult>;
|
|
744
|
+
updatePositionTPSL(params: UpdatePositionTPSLParams): Promise<OrderResult>;
|
|
745
|
+
updateMargin(params: UpdateMarginParams): Promise<MarginResult>;
|
|
746
|
+
getPositions(params?: GetPositionsParams): Promise<Position[]>;
|
|
747
|
+
getAccountState(params?: GetAccountStateParams): Promise<AccountState>;
|
|
748
|
+
getMarkets(params?: GetMarketsParams): Promise<MarketInfo[]>;
|
|
749
|
+
getMarketDataWithPrices(): Promise<PerpsMarketData[]>;
|
|
750
|
+
withdraw(params: WithdrawParams): Promise<WithdrawResult>;
|
|
751
|
+
validateDeposit(params: DepositParams): Promise<{
|
|
752
|
+
isValid: boolean;
|
|
753
|
+
error?: string;
|
|
754
|
+
}>;
|
|
755
|
+
validateOrder(params: OrderParams): Promise<{
|
|
756
|
+
isValid: boolean;
|
|
757
|
+
error?: string;
|
|
758
|
+
}>;
|
|
759
|
+
validateClosePosition(params: ClosePositionParams): Promise<{
|
|
760
|
+
isValid: boolean;
|
|
761
|
+
error?: string;
|
|
762
|
+
}>;
|
|
763
|
+
validateWithdrawal(params: WithdrawParams): Promise<{
|
|
764
|
+
isValid: boolean;
|
|
765
|
+
error?: string;
|
|
766
|
+
}>;
|
|
767
|
+
/**
|
|
768
|
+
* Historical trade fills - actual executed trades with exact prices and fees.
|
|
769
|
+
* Purpose: Track what actually happened when orders were executed.
|
|
770
|
+
* Example: Market long 1 ETH @ $50,000 → OrderFill with exact execution price and fees
|
|
771
|
+
*/
|
|
772
|
+
getOrderFills(params?: GetOrderFillsParams): Promise<OrderFill[]>;
|
|
773
|
+
/**
|
|
774
|
+
* Get fills using WebSocket cache first, falling back to REST API.
|
|
775
|
+
* OPTIMIZATION: Uses cached fills when available (0 API weight), only calls REST on cache miss.
|
|
776
|
+
* Purpose: Prevent 429 errors during rapid market switching by reusing cached fills.
|
|
777
|
+
*
|
|
778
|
+
* @param params - Optional filter parameters (startTime, symbol)
|
|
779
|
+
*/
|
|
780
|
+
getOrFetchFills(params?: GetOrFetchFillsParams): Promise<OrderFill[]>;
|
|
781
|
+
/**
|
|
782
|
+
* Get historical portfolio data
|
|
783
|
+
* Purpose: Retrieve account value from previous periods for PnL tracking
|
|
784
|
+
* Example: Get account value from yesterday to calculate 24h percentage change
|
|
785
|
+
*
|
|
786
|
+
* @param params - Optional parameters for historical portfolio retrieval
|
|
787
|
+
*/
|
|
788
|
+
getHistoricalPortfolio(params?: GetHistoricalPortfolioParams): Promise<HistoricalPortfolioResult>;
|
|
789
|
+
/**
|
|
790
|
+
* Historical order lifecycle - order placement, modifications, and status changes.
|
|
791
|
+
* Purpose: Track the complete journey of orders from request to completion.
|
|
792
|
+
* Example: Limit buy 1 ETH @ $48,000 → Order with status 'open' → 'filled' when executed
|
|
793
|
+
*/
|
|
794
|
+
getOrders(params?: GetOrdersParams): Promise<Order[]>;
|
|
795
|
+
/**
|
|
796
|
+
* Currently active open orders (real-time status).
|
|
797
|
+
* Purpose: Show orders that are currently open/pending execution (not historical states).
|
|
798
|
+
* Different from getOrders() which returns complete historical order lifecycle.
|
|
799
|
+
* Example: Shows only orders that are actually open right now in the exchange.
|
|
800
|
+
*/
|
|
801
|
+
getOpenOrders(params?: GetOrdersParams): Promise<Order[]>;
|
|
802
|
+
/**
|
|
803
|
+
* Historical funding payments - periodic costs/rewards for holding positions.
|
|
804
|
+
* Purpose: Track ongoing expenses and income from position maintenance.
|
|
805
|
+
* Example: Holding long ETH position → Funding payment of -$5.00 (you pay the funding)
|
|
806
|
+
*/
|
|
807
|
+
getFunding(params?: GetFundingParams): Promise<Funding[]>;
|
|
808
|
+
/**
|
|
809
|
+
* Get user non-funding ledger updates (deposits, transfers, withdrawals)
|
|
810
|
+
*/
|
|
811
|
+
getUserNonFundingLedgerUpdates(params?: {
|
|
812
|
+
accountId?: string;
|
|
813
|
+
startTime?: number;
|
|
814
|
+
endTime?: number;
|
|
815
|
+
}): Promise<RawLedgerUpdate[]>;
|
|
816
|
+
/**
|
|
817
|
+
* Get user history (deposits, withdrawals, transfers)
|
|
818
|
+
*/
|
|
819
|
+
getUserHistory(params?: {
|
|
820
|
+
accountId?: CaipAccountId;
|
|
821
|
+
startTime?: number;
|
|
822
|
+
endTime?: number;
|
|
823
|
+
}): Promise<UserHistoryItem[]>;
|
|
824
|
+
calculateLiquidationPrice(params: LiquidationPriceParams): Promise<string>;
|
|
825
|
+
calculateMaintenanceMargin(params: MaintenanceMarginParams): Promise<number>;
|
|
826
|
+
getMaxLeverage(asset: string): Promise<number>;
|
|
827
|
+
calculateFees(params: FeeCalculationParams): Promise<FeeCalculationResult>;
|
|
828
|
+
subscribeToPrices(params: SubscribePricesParams): () => void;
|
|
829
|
+
subscribeToPositions(params: SubscribePositionsParams): () => void;
|
|
830
|
+
subscribeToOrderFills(params: SubscribeOrderFillsParams): () => void;
|
|
831
|
+
subscribeToOrders(params: SubscribeOrdersParams): () => void;
|
|
832
|
+
subscribeToAccount(params: SubscribeAccountParams): () => void;
|
|
833
|
+
subscribeToOICaps(params: SubscribeOICapsParams): () => void;
|
|
834
|
+
subscribeToCandles(params: SubscribeCandlesParams): () => void;
|
|
835
|
+
subscribeToOrderBook(params: SubscribeOrderBookParams): () => void;
|
|
836
|
+
setLiveDataConfig(config: Partial<LiveDataConfig>): void;
|
|
837
|
+
toggleTestnet(): Promise<ToggleTestnetResult>;
|
|
838
|
+
initialize(): Promise<InitializeResult>;
|
|
839
|
+
isReadyToTrade(): Promise<ReadyToTradeResult>;
|
|
840
|
+
disconnect(): Promise<DisconnectResult>;
|
|
841
|
+
ping(timeoutMs?: number): Promise<void>;
|
|
842
|
+
getWebSocketConnectionState?(): WebSocketConnectionState;
|
|
843
|
+
subscribeToConnectionState?(listener: (state: WebSocketConnectionState, reconnectionAttempt: number) => void): () => void;
|
|
844
|
+
reconnect?(): Promise<void>;
|
|
845
|
+
getBlockExplorerUrl(address?: string): string;
|
|
846
|
+
setUserFeeDiscount?(discountBips: number | undefined): void;
|
|
847
|
+
/**
|
|
848
|
+
* Get list of available HIP-3 builder-deployed DEXs
|
|
849
|
+
*
|
|
850
|
+
* @param params - Optional parameters (reserved for future filters/pagination)
|
|
851
|
+
* @returns Array of DEX names (empty string '' represents main DEX)
|
|
852
|
+
*/
|
|
853
|
+
getAvailableDexs?(params?: GetAvailableDexsParams): Promise<string[]>;
|
|
854
|
+
};
|
|
855
|
+
/**
|
|
856
|
+
* Provider identifier type for multi-provider support.
|
|
857
|
+
* Add new providers here as they are implemented.
|
|
858
|
+
*/
|
|
859
|
+
export type PerpsProviderType = 'hyperliquid' | 'myx';
|
|
860
|
+
/**
|
|
861
|
+
* Active provider mode for PerpsController state.
|
|
862
|
+
* - Direct providers: 'hyperliquid', 'myx'
|
|
863
|
+
* - 'aggregated': Multi-provider aggregation mode
|
|
864
|
+
*/
|
|
865
|
+
export type PerpsActiveProviderMode = PerpsProviderType | 'aggregated';
|
|
866
|
+
/**
|
|
867
|
+
* Aggregation mode for read operations.
|
|
868
|
+
* - 'all': Aggregate data from all registered providers
|
|
869
|
+
* - 'active': Only aggregate from providers with active connections
|
|
870
|
+
* - 'specific': Aggregate from a specific subset of providers
|
|
871
|
+
*/
|
|
872
|
+
export type AggregationMode = 'all' | 'active' | 'specific';
|
|
873
|
+
/**
|
|
874
|
+
* Routing strategy for write operations.
|
|
875
|
+
* Phase 1 only supports 'default_provider' - advanced strategies deferred to Phase 3.
|
|
876
|
+
*/
|
|
877
|
+
export type RoutingStrategy = 'default_provider';
|
|
878
|
+
/**
|
|
879
|
+
* Configuration for AggregatedPerpsProvider
|
|
880
|
+
*/
|
|
881
|
+
export type AggregatedProviderConfig = {
|
|
882
|
+
/** Map of provider ID to provider instance */
|
|
883
|
+
providers: Map<PerpsProviderType, PerpsProvider>;
|
|
884
|
+
/** Default provider for write operations when providerId not specified */
|
|
885
|
+
defaultProvider: PerpsProviderType;
|
|
886
|
+
/** Aggregation mode for read operations (default: 'all') */
|
|
887
|
+
aggregationMode?: AggregationMode;
|
|
888
|
+
/** Platform dependencies for logging, metrics, etc. */
|
|
889
|
+
infrastructure: PerpsPlatformDependencies;
|
|
890
|
+
};
|
|
891
|
+
/**
|
|
892
|
+
* Provider-specific error with context for multi-provider error handling
|
|
893
|
+
*/
|
|
894
|
+
export type ProviderError = {
|
|
895
|
+
/** Which provider the error originated from */
|
|
896
|
+
providerId: PerpsProviderType;
|
|
897
|
+
/** Human-readable error message */
|
|
898
|
+
message: string;
|
|
899
|
+
/** Original error object if available */
|
|
900
|
+
originalError?: Error;
|
|
901
|
+
/** Whether the operation can be retried */
|
|
902
|
+
isRetryable?: boolean;
|
|
903
|
+
};
|
|
904
|
+
/**
|
|
905
|
+
* Aggregated account state combining data from multiple providers
|
|
906
|
+
*/
|
|
907
|
+
export type AggregatedAccountState = {
|
|
908
|
+
/** Combined totals across all providers */
|
|
909
|
+
total: AccountState;
|
|
910
|
+
/** Per-provider breakdown */
|
|
911
|
+
byProvider: Map<PerpsProviderType, AccountState>;
|
|
912
|
+
};
|
|
913
|
+
/**
|
|
914
|
+
* Injectable logger interface for error reporting.
|
|
915
|
+
* Allows core package to be platform-agnostic (mobile: Sentry, extension: different impl)
|
|
916
|
+
*/
|
|
917
|
+
export type PerpsLogger = {
|
|
918
|
+
error(error: Error, options?: {
|
|
919
|
+
tags?: Record<string, string | number>;
|
|
920
|
+
context?: {
|
|
921
|
+
name: string;
|
|
922
|
+
data: Record<string, unknown>;
|
|
923
|
+
};
|
|
924
|
+
extras?: Record<string, unknown>;
|
|
925
|
+
}): void;
|
|
926
|
+
};
|
|
927
|
+
/**
|
|
928
|
+
* Analytics events specific to Perps feature.
|
|
929
|
+
* These are the actual event names sent to analytics backend.
|
|
930
|
+
* Values must match the corresponding MetaMetricsEvents values in mobile for compatibility.
|
|
931
|
+
*
|
|
932
|
+
* When migrating to core monorepo, this enum travels with PerpsController.
|
|
933
|
+
*/
|
|
934
|
+
export declare enum PerpsAnalyticsEvent {
|
|
935
|
+
WithdrawalTransaction = "Perp Withdrawal Transaction",
|
|
936
|
+
TradeTransaction = "Perp Trade Transaction",
|
|
937
|
+
PositionCloseTransaction = "Perp Position Close Transaction",
|
|
938
|
+
OrderCancelTransaction = "Perp Order Cancel Transaction",
|
|
939
|
+
ScreenViewed = "Perp Screen Viewed",
|
|
940
|
+
UiInteraction = "Perp UI Interaction",
|
|
941
|
+
RiskManagement = "Perp Risk Management",
|
|
942
|
+
PerpsError = "Perp Error"
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Perps-specific trace names. These must match TraceName enum values in mobile.
|
|
946
|
+
* When in core monorepo, this defines the valid trace names for Perps operations.
|
|
947
|
+
*/
|
|
948
|
+
export type PerpsTraceName = 'Perps Open Position' | 'Perps Close Position' | 'Perps Deposit' | 'Perps Withdraw' | 'Perps Place Order' | 'Perps Edit Order' | 'Perps Cancel Order' | 'Perps Update TP/SL' | 'Perps Update Margin' | 'Perps Flip Position' | 'Perps Order Submission Toast' | 'Perps Market Data Update' | 'Perps Order View' | 'Perps Tab View' | 'Perps Market List View' | 'Perps Position Details View' | 'Perps Adjust Margin View' | 'Perps Order Details View' | 'Perps Order Book View' | 'Perps Flip Position Sheet' | 'Perps Transactions View' | 'Perps Order Fills Fetch' | 'Perps Orders Fetch' | 'Perps Funding Fetch' | 'Perps Get Positions' | 'Perps Get Account State' | 'Perps Get Historical Portfolio' | 'Perps Get Markets' | 'Perps Fetch Historical Candles' | 'Perps WebSocket Connected' | 'Perps WebSocket Disconnected' | 'Perps WebSocket First Positions' | 'Perps WebSocket First Orders' | 'Perps WebSocket First Account' | 'Perps Data Lake Report' | 'Perps Rewards API Call' | 'Perps Close Position View' | 'Perps Withdraw View' | 'Perps Connection Establishment' | 'Perps Account Switch Reconnection' | 'Perps Market Data Preload' | 'Perps User Data Preload';
|
|
949
|
+
/**
|
|
950
|
+
* Perps trace name constants. Values match TraceName enum in mobile.
|
|
951
|
+
* When in core, these ARE the source of truth - mobile will re-export from core.
|
|
952
|
+
*/
|
|
953
|
+
export declare const PerpsTraceNames: {
|
|
954
|
+
readonly PlaceOrder: "Perps Place Order";
|
|
955
|
+
readonly EditOrder: "Perps Edit Order";
|
|
956
|
+
readonly CancelOrder: "Perps Cancel Order";
|
|
957
|
+
readonly ClosePosition: "Perps Close Position";
|
|
958
|
+
readonly UpdateTpsl: "Perps Update TP/SL";
|
|
959
|
+
readonly UpdateMargin: "Perps Update Margin";
|
|
960
|
+
readonly FlipPosition: "Perps Flip Position";
|
|
961
|
+
readonly Withdraw: "Perps Withdraw";
|
|
962
|
+
readonly Deposit: "Perps Deposit";
|
|
963
|
+
readonly GetPositions: "Perps Get Positions";
|
|
964
|
+
readonly GetAccountState: "Perps Get Account State";
|
|
965
|
+
readonly GetMarkets: "Perps Get Markets";
|
|
966
|
+
readonly OrderFillsFetch: "Perps Order Fills Fetch";
|
|
967
|
+
readonly OrdersFetch: "Perps Orders Fetch";
|
|
968
|
+
readonly FundingFetch: "Perps Funding Fetch";
|
|
969
|
+
readonly GetHistoricalPortfolio: "Perps Get Historical Portfolio";
|
|
970
|
+
readonly FetchHistoricalCandles: "Perps Fetch Historical Candles";
|
|
971
|
+
readonly DataLakeReport: "Perps Data Lake Report";
|
|
972
|
+
readonly WebsocketConnected: "Perps WebSocket Connected";
|
|
973
|
+
readonly WebsocketDisconnected: "Perps WebSocket Disconnected";
|
|
974
|
+
readonly WebsocketFirstPositions: "Perps WebSocket First Positions";
|
|
975
|
+
readonly WebsocketFirstOrders: "Perps WebSocket First Orders";
|
|
976
|
+
readonly WebsocketFirstAccount: "Perps WebSocket First Account";
|
|
977
|
+
readonly RewardsApiCall: "Perps Rewards API Call";
|
|
978
|
+
readonly ConnectionEstablishment: "Perps Connection Establishment";
|
|
979
|
+
readonly AccountSwitchReconnection: "Perps Account Switch Reconnection";
|
|
980
|
+
readonly MarketDataPreload: "Perps Market Data Preload";
|
|
981
|
+
readonly UserDataPreload: "Perps User Data Preload";
|
|
982
|
+
};
|
|
983
|
+
/**
|
|
984
|
+
* Perps trace operation constants. Values match TraceOperation enum in mobile.
|
|
985
|
+
* These categorize traces by type of operation for Sentry/observability filtering.
|
|
986
|
+
*/
|
|
987
|
+
export declare const PerpsTraceOperations: {
|
|
988
|
+
readonly Operation: "perps.operation";
|
|
989
|
+
readonly OrderSubmission: "perps.order_submission";
|
|
990
|
+
readonly PositionManagement: "perps.position_management";
|
|
991
|
+
readonly MarketData: "perps.market_data";
|
|
992
|
+
};
|
|
993
|
+
/**
|
|
994
|
+
* Values allowed in trace data/tags. Matches Sentry's TraceValue type.
|
|
995
|
+
*/
|
|
996
|
+
export type PerpsTraceValue = string | number | boolean;
|
|
997
|
+
/**
|
|
998
|
+
* Properties allowed in analytics events. More constrained than unknown.
|
|
999
|
+
* Named PerpsAnalyticsProperties to avoid conflict with PERPS_EVENT_PROPERTY
|
|
1000
|
+
* constant object from eventNames.ts (which contains property key names).
|
|
1001
|
+
*/
|
|
1002
|
+
export type PerpsAnalyticsProperties = Record<string, string | number | boolean | Record<string, string> | null | undefined>;
|
|
1003
|
+
/**
|
|
1004
|
+
* Injectable metrics interface for analytics.
|
|
1005
|
+
* Allows core package to work with different analytics backends.
|
|
1006
|
+
*/
|
|
1007
|
+
export type PerpsMetrics = {
|
|
1008
|
+
isEnabled(): boolean;
|
|
1009
|
+
/**
|
|
1010
|
+
* Track a Perps-specific analytics event with properties.
|
|
1011
|
+
* This abstracts away the MetricsEventBuilder pattern used in mobile.
|
|
1012
|
+
*
|
|
1013
|
+
* @param event - The Perps analytics event type (enum with actual event name values)
|
|
1014
|
+
* @param properties - Type-safe key-value properties to attach to the event
|
|
1015
|
+
*/
|
|
1016
|
+
trackPerpsEvent(event: PerpsAnalyticsEvent, properties: PerpsAnalyticsProperties): void;
|
|
1017
|
+
};
|
|
1018
|
+
/**
|
|
1019
|
+
* Injectable debug logger for development logging.
|
|
1020
|
+
* Only logs in development mode.
|
|
1021
|
+
* Accepts `unknown` to allow logging error objects from catch blocks.
|
|
1022
|
+
*/
|
|
1023
|
+
export type PerpsDebugLogger = {
|
|
1024
|
+
log(...args: unknown[]): void;
|
|
1025
|
+
};
|
|
1026
|
+
/**
|
|
1027
|
+
* Injectable stream manager interface for pause/resume during critical operations.
|
|
1028
|
+
*
|
|
1029
|
+
* WHY THIS IS NEEDED:
|
|
1030
|
+
* PerpsStreamManager is a React-based mobile-specific singleton that:
|
|
1031
|
+
* - Uses React Context for subscription management
|
|
1032
|
+
* - Uses react-native-performance for tracing
|
|
1033
|
+
* - Directly accesses Engine.context (mobile singleton pattern)
|
|
1034
|
+
* - Manages WebSocket connections with throttling/caching
|
|
1035
|
+
*
|
|
1036
|
+
* PerpsController only needs pause/resume during critical operations (withStreamPause method)
|
|
1037
|
+
* to prevent stale UI updates during batch operations. The minimal interface allows:
|
|
1038
|
+
* - Mobile: Wrap existing singleton (streamManager[channel].pause())
|
|
1039
|
+
* - Extension: Implement with whatever streaming solution they use
|
|
1040
|
+
*/
|
|
1041
|
+
/**
|
|
1042
|
+
* Injectable stream manager interface for pause/resume during critical operations.
|
|
1043
|
+
*
|
|
1044
|
+
* WHY THIS IS NEEDED:
|
|
1045
|
+
* PerpsStreamManager is a React-based mobile-specific singleton that:
|
|
1046
|
+
* - Uses React Context for subscription management
|
|
1047
|
+
* - Uses react-native-performance for tracing
|
|
1048
|
+
* - Directly accesses Engine.context (mobile singleton pattern)
|
|
1049
|
+
* - Manages WebSocket connections with throttling/caching
|
|
1050
|
+
*
|
|
1051
|
+
* PerpsController only needs pause/resume during critical operations (withStreamPause method)
|
|
1052
|
+
* to prevent stale UI updates during batch operations. The minimal interface allows:
|
|
1053
|
+
* - Mobile: Wrap existing singleton (streamManager[channel].pause())
|
|
1054
|
+
* - Extension: Implement with whatever streaming solution they use
|
|
1055
|
+
*/
|
|
1056
|
+
export type PerpsStreamManager = {
|
|
1057
|
+
pauseChannel(channel: string): void;
|
|
1058
|
+
resumeChannel(channel: string): void;
|
|
1059
|
+
clearAllChannels(): void;
|
|
1060
|
+
};
|
|
1061
|
+
/**
|
|
1062
|
+
* Injectable performance monitor interface.
|
|
1063
|
+
* Wraps react-native-performance or browser Performance API.
|
|
1064
|
+
*/
|
|
1065
|
+
export type PerpsPerformance = {
|
|
1066
|
+
now(): number;
|
|
1067
|
+
};
|
|
1068
|
+
/**
|
|
1069
|
+
* Injectable tracer interface for Sentry/observability tracing.
|
|
1070
|
+
* Services use this to create spans and measure operation durations.
|
|
1071
|
+
*
|
|
1072
|
+
* Note: trace() returns void because services use name/id pairs to identify traces.
|
|
1073
|
+
* The actual span management is handled internally by the platform adapter.
|
|
1074
|
+
*/
|
|
1075
|
+
export type PerpsTracer = {
|
|
1076
|
+
trace(params: {
|
|
1077
|
+
name: PerpsTraceName;
|
|
1078
|
+
id: string;
|
|
1079
|
+
op: string;
|
|
1080
|
+
tags?: Record<string, PerpsTraceValue>;
|
|
1081
|
+
data?: Record<string, PerpsTraceValue>;
|
|
1082
|
+
}): void;
|
|
1083
|
+
endTrace(params: {
|
|
1084
|
+
name: PerpsTraceName;
|
|
1085
|
+
id: string;
|
|
1086
|
+
data?: Record<string, PerpsTraceValue>;
|
|
1087
|
+
}): void;
|
|
1088
|
+
setMeasurement(name: string, value: number, unit: string): void;
|
|
1089
|
+
};
|
|
1090
|
+
/**
|
|
1091
|
+
* Minimal typed-message params passed to keyring for EIP-712 signing.
|
|
1092
|
+
* Structurally matches KeyringController's TypedMessageParams.
|
|
1093
|
+
*/
|
|
1094
|
+
export type PerpsTypedMessageParams = {
|
|
1095
|
+
from: string;
|
|
1096
|
+
data: unknown;
|
|
1097
|
+
};
|
|
1098
|
+
/**
|
|
1099
|
+
* Minimal transaction params passed to TransactionController.addTransaction.
|
|
1100
|
+
* Only the fields PerpsController actually sets.
|
|
1101
|
+
*/
|
|
1102
|
+
export type PerpsTransactionParams = {
|
|
1103
|
+
from: string;
|
|
1104
|
+
to?: string;
|
|
1105
|
+
value?: string;
|
|
1106
|
+
data?: string;
|
|
1107
|
+
gas?: string;
|
|
1108
|
+
};
|
|
1109
|
+
/**
|
|
1110
|
+
* Options passed to TransactionController.addTransaction.
|
|
1111
|
+
*/
|
|
1112
|
+
export type PerpsAddTransactionOptions = {
|
|
1113
|
+
networkClientId: string;
|
|
1114
|
+
origin?: string;
|
|
1115
|
+
type?: string;
|
|
1116
|
+
skipInitialGasEstimate?: boolean;
|
|
1117
|
+
};
|
|
1118
|
+
/**
|
|
1119
|
+
* Minimal account shape read from AccountTreeController.
|
|
1120
|
+
* Only the fields PerpsController and its services actually use.
|
|
1121
|
+
*/
|
|
1122
|
+
export type PerpsInternalAccount = {
|
|
1123
|
+
address: string;
|
|
1124
|
+
type: string;
|
|
1125
|
+
id: string;
|
|
1126
|
+
};
|
|
1127
|
+
/**
|
|
1128
|
+
* Minimal remote feature flag state shape.
|
|
1129
|
+
* Only the remoteFeatureFlags record is needed by PerpsController.
|
|
1130
|
+
*/
|
|
1131
|
+
export type PerpsRemoteFeatureFlagState = {
|
|
1132
|
+
remoteFeatureFlags: Record<string, unknown>;
|
|
1133
|
+
};
|
|
1134
|
+
/**
|
|
1135
|
+
* Platform dependencies for PerpsController and services.
|
|
1136
|
+
*
|
|
1137
|
+
* Architecture:
|
|
1138
|
+
* - Observability: logger, debugLogger, metrics, performance, tracer
|
|
1139
|
+
* - Platform: streamManager (mobile/extension specific)
|
|
1140
|
+
* - Cache: cache invalidation for standalone queries
|
|
1141
|
+
* - Rewards: delegated rewards interaction (DI — no RewardsController in Core yet)
|
|
1142
|
+
*
|
|
1143
|
+
* Cross-controller communication uses the messenger pattern (messenger.call).
|
|
1144
|
+
* Only rewards remains as DI because RewardsController is not yet in Core.
|
|
1145
|
+
*/
|
|
1146
|
+
export type PerpsPlatformDependencies = {
|
|
1147
|
+
logger: PerpsLogger;
|
|
1148
|
+
debugLogger: PerpsDebugLogger;
|
|
1149
|
+
metrics: PerpsMetrics;
|
|
1150
|
+
performance: PerpsPerformance;
|
|
1151
|
+
tracer: PerpsTracer;
|
|
1152
|
+
streamManager: PerpsStreamManager;
|
|
1153
|
+
featureFlags: {
|
|
1154
|
+
/**
|
|
1155
|
+
* Validate a version-gated feature flag against current app version.
|
|
1156
|
+
* Returns true if flag is enabled AND app meets minimum version,
|
|
1157
|
+
* false if flag is disabled, or undefined if flag is misconfigured/overridden.
|
|
1158
|
+
*
|
|
1159
|
+
* Platform-specific because it uses react-native-device-info (mobile)
|
|
1160
|
+
* or browser APIs (extension) to get the app version.
|
|
1161
|
+
*/
|
|
1162
|
+
validateVersionGated(flag: VersionGatedFeatureFlag): boolean | undefined;
|
|
1163
|
+
};
|
|
1164
|
+
marketDataFormatters: MarketDataFormatters;
|
|
1165
|
+
cacheInvalidator: PerpsCacheInvalidator;
|
|
1166
|
+
rewards: {
|
|
1167
|
+
/**
|
|
1168
|
+
* Get fee discount for an account from the RewardsController.
|
|
1169
|
+
* Returns discount in basis points (e.g., 6500 = 65% discount)
|
|
1170
|
+
*/
|
|
1171
|
+
getPerpsDiscountForAccount(caipAccountId: `${string}:${string}:${string}`): Promise<number>;
|
|
1172
|
+
};
|
|
1173
|
+
};
|
|
1174
|
+
/**
|
|
1175
|
+
* Cache types that can be invalidated.
|
|
1176
|
+
* Used by standalone query caches (e.g., usePerpsPositionForAsset).
|
|
1177
|
+
*/
|
|
1178
|
+
export type PerpsCacheType = 'positions' | 'accountState' | 'markets';
|
|
1179
|
+
/**
|
|
1180
|
+
* Parameters for invalidating a specific cache type.
|
|
1181
|
+
*/
|
|
1182
|
+
export type InvalidateCacheParams = {
|
|
1183
|
+
/** The type of cache to invalidate */
|
|
1184
|
+
cacheType: PerpsCacheType;
|
|
1185
|
+
};
|
|
1186
|
+
/**
|
|
1187
|
+
* Cache invalidation interface for standalone query caches.
|
|
1188
|
+
* Allows services to signal when data has changed without depending on
|
|
1189
|
+
* mobile-specific implementations.
|
|
1190
|
+
*/
|
|
1191
|
+
export type PerpsCacheInvalidator = {
|
|
1192
|
+
/**
|
|
1193
|
+
* Invalidate a specific cache type.
|
|
1194
|
+
* Notifies all subscribers that cached data is stale.
|
|
1195
|
+
*/
|
|
1196
|
+
invalidate(params: InvalidateCacheParams): void;
|
|
1197
|
+
/**
|
|
1198
|
+
* Invalidate all cache types.
|
|
1199
|
+
*/
|
|
1200
|
+
invalidateAll(): void;
|
|
1201
|
+
};
|
|
1202
|
+
/**
|
|
1203
|
+
* Injectable formatters for market data transformation.
|
|
1204
|
+
* Decouples marketDataTransform from mobile-specific intl/formatUtils imports.
|
|
1205
|
+
*
|
|
1206
|
+
* Range configs are opaque (unknown[]) because the concrete type
|
|
1207
|
+
* (FiatRangeConfig on mobile) is platform-specific. The formatter
|
|
1208
|
+
* implementation casts internally.
|
|
1209
|
+
*/
|
|
1210
|
+
export type MarketDataFormatters = {
|
|
1211
|
+
/** Format a number as a USD volume string (e.g., '$1.2B', '$850M') */
|
|
1212
|
+
formatVolume(value: number): string;
|
|
1213
|
+
/** Format a number as a USD fiat string with adaptive precision */
|
|
1214
|
+
formatPerpsFiat(value: number, options?: {
|
|
1215
|
+
ranges?: unknown[];
|
|
1216
|
+
}): string;
|
|
1217
|
+
/** Format a number as a percentage string (e.g., '2.50%', '-1.80%') */
|
|
1218
|
+
formatPercentage(percent: number): string;
|
|
1219
|
+
/** Universal price ranges for formatting (opaque to portable code) */
|
|
1220
|
+
priceRangesUniversal: unknown[];
|
|
1221
|
+
};
|
|
1222
|
+
/**
|
|
1223
|
+
* Minimal payment token for deposit flow.
|
|
1224
|
+
* Only the fields actually used by PerpsController are included.
|
|
1225
|
+
* Replaces the mobile-only AssetType (which extends TokenI and uses ImageSourcePropType).
|
|
1226
|
+
*/
|
|
1227
|
+
export type PaymentToken = {
|
|
1228
|
+
description?: string;
|
|
1229
|
+
address: string;
|
|
1230
|
+
chainId?: string;
|
|
1231
|
+
symbol?: string;
|
|
1232
|
+
};
|
|
1233
|
+
/**
|
|
1234
|
+
* Selected pay-with token shape used in PerpsController state, pending trade config,
|
|
1235
|
+
* selectors, and UI hooks. Use this type everywhere this shape is needed.
|
|
1236
|
+
*/
|
|
1237
|
+
export type PerpsSelectedPaymentToken = {
|
|
1238
|
+
description?: string;
|
|
1239
|
+
address: string;
|
|
1240
|
+
chainId: string;
|
|
1241
|
+
symbol?: string;
|
|
1242
|
+
};
|
|
1243
|
+
/**
|
|
1244
|
+
* Structure for a version-gated feature flag from LaunchDarkly.
|
|
1245
|
+
* Portable: no platform-specific imports.
|
|
1246
|
+
*/
|
|
1247
|
+
export type VersionGatedFeatureFlag = {
|
|
1248
|
+
enabled: boolean;
|
|
1249
|
+
minimumVersion: string;
|
|
1250
|
+
};
|
|
1251
|
+
/**
|
|
1252
|
+
* Type guard for VersionGatedFeatureFlag.
|
|
1253
|
+
* Pure logic, no platform dependencies.
|
|
1254
|
+
*
|
|
1255
|
+
* @param value - The value to check.
|
|
1256
|
+
* @returns True if the value is a VersionGatedFeatureFlag.
|
|
1257
|
+
*/
|
|
1258
|
+
export declare function isVersionGatedFeatureFlag(value: unknown): value is VersionGatedFeatureFlag;
|
|
1259
|
+
export type * from "./perps-types.mjs";
|
|
1260
|
+
export * from "./transactionTypes.mjs";
|
|
1261
|
+
export type { AssetPosition, SpotBalance, PerpsUniverse, PerpsAssetCtx, PredictedFunding, FrontendOrder, SDKOrderParams, ClearinghouseStateResponse, SpotClearinghouseStateResponse, MetaResponse, FrontendOpenOrdersResponse, AllMidsResponse, MetaAndAssetCtxsResponse, PredictedFundingsResponse, SpotMetaResponse, } from "./hyperliquid-types.mjs";
|
|
1262
|
+
//# sourceMappingURL=index.d.mts.map
|